[med-svn] [python-ete3] 01/01: New upstream version 3.0.0b35

Alba Crespi albac-guest at moszumanska.debian.org
Sun Aug 13 01:45:36 UTC 2017


This is an automated email from the git hooks/post-receive script.

albac-guest pushed a commit to branch master
in repository python-ete3.

commit 81f6c6f02bb6673eed016d7ee0cc2d4c821bb170
Author: Alba Crespi <crespialba+debian at gmail.com>
Date:   Sun Aug 13 02:42:23 2017 +0100

    New upstream version 3.0.0b35
---
 CITATION.txt                                       |    16 +
 LICENSE                                            |   674 +
 MANIFEST.in                                        |    18 +
 PKG-INFO                                           |    46 +
 README.rst                                         |    63 +
 THANKS.rst                                         |    20 +
 VERSION                                            |     1 +
 doc/.buildinfo                                     |     4 +
 doc/ETE.pdf                                        |   Bin 0 -> 2626602 bytes
 doc/_downloads/apaf.xml                            |   666 +
 doc/_downloads/face_grid.py                        |    74 +
 doc/_downloads/nexml_annotated_trees.py            |    48 +
 doc/_downloads/nexml_from_scratch.py               |    30 +
 doc/_downloads/nexml_parser.py                     |    77 +
 doc/_downloads/phyloxml_from_scratch.py            |    80 +
 doc/_downloads/phyloxml_parser.py                  |    16 +
 doc/_downloads/species_aware_phylogenies.py        |    84 +
 doc/_downloads/tolweb.xml                          |    48 +
 doc/_downloads/trees.xml                           |   126 +
 doc/_images/M2_curve.png                           |   Bin 0 -> 42656 bytes
 doc/_images/M2_default.png                         |   Bin 0 -> 33905 bytes
 doc/_images/M2_sticks.png                          |   Bin 0 -> 32967 bytes
 doc/_images/M2_super_profesional.png               |   Bin 0 -> 89121 bytes
 doc/_images/barcharts.png                          |   Bin 0 -> 33022 bytes
 doc/_images/bubble_map.png                         |   Bin 0 -> 112579 bytes
 doc/_images/bubbles_validation.png                 |   Bin 0 -> 89183 bytes
 doc/_images/face_borders.png                       |   Bin 0 -> 2005 bytes
 doc/_images/face_positions.png                     |   Bin 0 -> 30249 bytes
 doc/_images/fb_clean.png                           |   Bin 0 -> 299086 bytes
 doc/_images/fb_default.png                         |   Bin 0 -> 290990 bytes
 doc/_images/float_piechart.png                     |   Bin 0 -> 289006 bytes
 doc/_images/img_faces.png                          |   Bin 0 -> 60235 bytes
 doc/_images/item_faces.png                         |   Bin 0 -> 35247 bytes
 doc/_images/node_background.png                    |   Bin 0 -> 51805 bytes
 doc/_images/node_style.png                         |   Bin 0 -> 10303 bytes
 doc/_images/node_style_red_and_blue_nodes.png      |   Bin 0 -> 2238 bytes
 doc/_images/node_style_red_nodes.png               |   Bin 0 -> 1733 bytes
 doc/_images/phylotree.png                          |   Bin 0 -> 48918 bytes
 doc/_images/profile_faces.png                      |   Bin 0 -> 8306 bytes
 doc/_images/rotated_faces.png                      |   Bin 0 -> 33631 bytes
 doc/_images/rotated_tree.png                       |   Bin 0 -> 5265 bytes
 doc/_images/scale_x.png                            |   Bin 0 -> 7857 bytes
 doc/_images/scale_y.png                            |   Bin 0 -> 7196 bytes
 doc/_images/semi_circular_tree.png                 |   Bin 0 -> 44130 bytes
 doc/_images/seq_motif_faces.png                    |   Bin 0 -> 16453 bytes
 doc/_images/seqmotif.png                           |   Bin 0 -> 97444 bytes
 doc/_images/show_info.png                          |   Bin 0 -> 18256 bytes
 doc/_images/svg_colors.png                         |   Bin 0 -> 309085 bytes
 doc/_images/tree_faces.png                         |   Bin 0 -> 118000 bytes
 doc/_images/treeko_logo.png                        |   Bin 0 -> 11637 bytes
 doc/_sources/about.txt                             |    18 +
 doc/_sources/changelog/changelog2.1.txt            |    78 +
 doc/_sources/changelog/changelog2.2.txt            |   240 +
 doc/_sources/changelog/changelog2.3.txt            |   104 +
 doc/_sources/changelog/index.txt                   |     9 +
 doc/_sources/faqs/index.txt                        |   278 +
 doc/_sources/index.txt                             |    17 +
 doc/_sources/reference/index.txt                   |    29 +
 doc/_sources/reference/reference_clustering.txt    |    16 +
 doc/_sources/reference/reference_evoltree.txt      |    13 +
 doc/_sources/reference/reference_ncbi.txt          |    12 +
 doc/_sources/reference/reference_nexml.txt         |    29 +
 doc/_sources/reference/reference_phylo.txt         |    14 +
 doc/_sources/reference/reference_phylomedb.txt     |     9 +
 doc/_sources/reference/reference_phyloxml.txt      |    28 +
 doc/_sources/reference/reference_seqgroup.txt      |    11 +
 doc/_sources/reference/reference_tree.txt          |    10 +
 doc/_sources/reference/reference_treeview.txt      |   100 +
 doc/_sources/reference/reference_webplugin.txt     |    12 +
 doc/_sources/support.txt                           |    13 +
 doc/_sources/tutorial/index.txt                    |    17 +
 doc/_sources/tutorial/tutorial_adaptation.txt      |   564 +
 doc/_sources/tutorial/tutorial_clustering.txt      |   166 +
 doc/_sources/tutorial/tutorial_drawing.txt         |   509 +
 doc/_sources/tutorial/tutorial_etree2orthoxml.txt  |   355 +
 doc/_sources/tutorial/tutorial_ncbitaxonomy.txt    |   259 +
 doc/_sources/tutorial/tutorial_nexml.txt           |   136 +
 doc/_sources/tutorial/tutorial_phylogeny.txt       |   689 +
 doc/_sources/tutorial/tutorial_phylomedb.txt       |    74 +
 doc/_sources/tutorial/tutorial_phyloxml.txt        |    56 +
 doc/_sources/tutorial/tutorial_trees.txt           |  1920 +++
 doc/_sources/tutorial/tutorial_webplugin.txt       |   165 +
 doc/_sources/tutorial/tutorial_xml.txt             |    42 +
 doc/about.html                                     |   243 +
 doc/changelog/changelog2.1.html                    |   374 +
 doc/changelog/changelog2.2.html                    |   506 +
 doc/changelog/changelog2.3.html                    |   338 +
 doc/changelog/index.html                           |   271 +
 doc/faqs/index.html                                |   530 +
 doc/genindex.html                                  |  1079 ++
 doc/index.html                                     |   316 +
 doc/objects.inv                                    |   Bin 0 -> 2265 bytes
 doc/py-modindex.html                               |   299 +
 doc/reference/index.html                           |   284 +
 doc/reference/reference_clustering.html            |   358 +
 doc/reference/reference_evoltree.html              |   721 +
 doc/reference/reference_ncbi.html                  |   255 +
 doc/reference/reference_nexml.html                 |  1875 +++
 doc/reference/reference_phylo.html                 |   646 +
 doc/reference/reference_phylomedb.html             |   232 +
 doc/reference/reference_phyloxml.html              |   539 +
 doc/reference/reference_seqgroup.html              |   324 +
 doc/reference/reference_tree.html                  |  1467 ++
 doc/reference/reference_treeview.html              |   995 ++
 doc/reference/reference_webplugin.html             |   316 +
 doc/search.html                                    |   245 +
 doc/searchindex.js                                 |     1 +
 doc/support.html                                   |   237 +
 doc/tutorial/index.html                            |   429 +
 doc/tutorial/tutorial_adaptation.html              |   785 +
 doc/tutorial/tutorial_clustering.html              |   512 +
 doc/tutorial/tutorial_drawing.html                 |  1372 ++
 doc/tutorial/tutorial_etree2orthoxml.html          |   573 +
 doc/tutorial/tutorial_ncbitaxonomy.html            |   488 +
 doc/tutorial/tutorial_nexml.html                   |   530 +
 doc/tutorial/tutorial_phylogeny.html               |  1249 ++
 doc/tutorial/tutorial_phylomedb.html               |   288 +
 doc/tutorial/tutorial_phyloxml.html                |   402 +
 doc/tutorial/tutorial_trees.html                   |  2170 +++
 doc/tutorial/tutorial_webplugin.html               |   394 +
 doc/tutorial/tutorial_xml.html                     |   303 +
 ete3.egg-info/PKG-INFO                             |    46 +
 ete3.egg-info/SOURCES.txt                          |   830 +
 ete3.egg-info/dependency_links.txt                 |     1 +
 ete3.egg-info/entry_points.txt                     |     3 +
 ete3.egg-info/top_level.txt                        |     1 +
 ete3/__init__.py                                   |    81 +
 ete3/_ph.py                                        |   142 +
 ete3/citation.py                                   |   122 +
 ete3/clustering/__init__.py                        |    42 +
 ete3/clustering/clustertree.py                     |   256 +
 ete3/clustering/clustvalidation.py                 |   204 +
 ete3/clustering/pstat.py                           |  1110 ++
 ete3/clustering/stats.py                           |  4567 ++++++
 ete3/coretype/__init__.py                          |    39 +
 ete3/coretype/arraytable.py                        |   266 +
 ete3/coretype/seqgroup.py                          |   166 +
 ete3/coretype/tree.py                              |  2474 +++
 ete3/evol/__init__.py                              |    59 +
 ete3/evol/control.py                               |   313 +
 ete3/evol/evoltree.py                              |   552 +
 ete3/evol/model.py                                 |   379 +
 ete3/evol/parser/__init__.py                       |    45 +
 ete3/evol/parser/codemlparser.py                   |   347 +
 ete3/evol/parser/slrparser.py                      |    93 +
 ete3/evol/utils.py                                 |   464 +
 ete3/ncbi_taxonomy/SQLite-Levenshtein/.gitignore   |     1 +
 ete3/ncbi_taxonomy/SQLite-Levenshtein/EXAMPLE      |    10 +
 ete3/ncbi_taxonomy/SQLite-Levenshtein/Makefile     |     7 +
 ete3/ncbi_taxonomy/SQLite-Levenshtein/README       |     5 +
 .../SQLite-Levenshtein/src/levenshtein.c           |    87 +
 ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/README |    18 +
 .../SQLite-Levenshtein/tests/levenshtein-test.sql  |    67 +
 ete3/ncbi_taxonomy/__init__.py                     |    40 +
 ete3/ncbi_taxonomy/ncbiquery.py                    |   811 +
 ete3/nexml/__init__.py                             |    90 +
 ete3/nexml/_nexml.py                               | 16157 +++++++++++++++++++
 ete3/nexml/_nexml_tree.py                          |   196 +
 ete3/orthoxml/__init__.py                          |    40 +
 ete3/orthoxml/_orthoxml.py                         |  1972 +++
 ete3/parser/__init__.py                            |    39 +
 ete3/parser/fasta.py                               |   134 +
 ete3/parser/newick.py                              |   454 +
 ete3/parser/paml.py                                |   195 +
 ete3/parser/phylip.py                              |   212 +
 ete3/parser/text_arraytable.py                     |   157 +
 ete3/phylo/__init__.py                             |    44 +
 ete3/phylo/evolevents.py                           |    76 +
 ete3/phylo/phylotree.py                            |   815 +
 ete3/phylo/reconciliation.py                       |   213 +
 ete3/phylo/spoverlap.py                            |   240 +
 ete3/phylomedb/__init__.py                         |   103 +
 ete3/phylomedb/phylomeDB.py                        |   686 +
 ete3/phylomedb/phylomeDB3.py                       |  1507 ++
 ete3/phyloxml/__init__.py                          |    68 +
 ete3/phyloxml/_phyloxml.py                         |  4076 +++++
 ete3/phyloxml/_phyloxml_tree.py                    |   152 +
 ete3/test/__init__.py                              |     0
 ete3/test/datasets.py                              |   236 +
 .../ete_evol_data/CladeModelCD/ECP_EDN_15.fasta    |    32 +
 ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.nw |     1 +
 .../L_example/alignment_L_measuring_evol.fasta     |    28 +
 .../ete_evol_data/L_example/measuring_L_tree.nw    |     1 +
 ete3/test/ete_evol_data/S_example/ali.fasta        |     8 +
 ete3/test/ete_evol_data/S_example/paml/M1/2NG.dN   |     5 +
 ete3/test/ete_evol_data/S_example/paml/M1/2NG.dS   |     5 +
 ete3/test/ete_evol_data/S_example/paml/M1/2NG.t    |     5 +
 .../test/ete_evol_data/S_example/paml/M1/4fold.nuc |    17 +
 ete3/test/ete_evol_data/S_example/paml/M1/algn     |     9 +
 ete3/test/ete_evol_data/S_example/paml/M1/lnf      |    53 +
 ete3/test/ete_evol_data/S_example/paml/M1/out      |   191 +
 ete3/test/ete_evol_data/S_example/paml/M1/rst      |   100 +
 ete3/test/ete_evol_data/S_example/paml/M1/rst1     |     1 +
 ete3/test/ete_evol_data/S_example/paml/M1/rub      |     3 +
 ete3/test/ete_evol_data/S_example/paml/M1/tmp.ctl  |    30 +
 ete3/test/ete_evol_data/S_example/paml/M1/tree     |     1 +
 ete3/test/ete_evol_data/S_example/paml/M2/2NG.dN   |     5 +
 ete3/test/ete_evol_data/S_example/paml/M2/2NG.dS   |     5 +
 ete3/test/ete_evol_data/S_example/paml/M2/2NG.t    |     5 +
 .../test/ete_evol_data/S_example/paml/M2/4fold.nuc |    17 +
 ete3/test/ete_evol_data/S_example/paml/M2/algn     |     9 +
 ete3/test/ete_evol_data/S_example/paml/M2/lnf      |    54 +
 ete3/test/ete_evol_data/S_example/paml/M2/out      |   229 +
 ete3/test/ete_evol_data/S_example/paml/M2/rst      |   203 +
 ete3/test/ete_evol_data/S_example/paml/M2/rst1     |     1 +
 ete3/test/ete_evol_data/S_example/paml/M2/rub      |     3 +
 ete3/test/ete_evol_data/S_example/paml/M2/tmp.ctl  |    30 +
 ete3/test/ete_evol_data/S_example/paml/M2/tree     |     1 +
 ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dN  |     5 +
 ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dS  |     5 +
 ete3/test/ete_evol_data/S_example/paml/bsA/2NG.t   |     5 +
 .../ete_evol_data/S_example/paml/bsA/4fold.nuc     |    17 +
 ete3/test/ete_evol_data/S_example/paml/bsA/algn    |     9 +
 ete3/test/ete_evol_data/S_example/paml/bsA/lnf     |    53 +
 ete3/test/ete_evol_data/S_example/paml/bsA/out     |   212 +
 ete3/test/ete_evol_data/S_example/paml/bsA/rst     |   191 +
 ete3/test/ete_evol_data/S_example/paml/bsA/rst1    |     1 +
 ete3/test/ete_evol_data/S_example/paml/bsA/rub     |     3 +
 ete3/test/ete_evol_data/S_example/paml/bsA/tmp.ctl |    30 +
 ete3/test/ete_evol_data/S_example/paml/bsA/tree    |     1 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dN |     5 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dS |     5 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.t  |     5 +
 .../ete_evol_data/S_example/paml/bsA1/4fold.nuc    |    17 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/algn   |     9 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/lnf    |    53 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/out    |   183 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/rst    |   102 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/rst1   |     1 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/rub    |     3 +
 .../test/ete_evol_data/S_example/paml/bsA1/tmp.ctl |    30 +
 ete3/test/ete_evol_data/S_example/paml/bsA1/tree   |     1 +
 ete3/test/ete_evol_data/S_example/paml/fb/2NG.dN   |     5 +
 ete3/test/ete_evol_data/S_example/paml/fb/2NG.dS   |     5 +
 ete3/test/ete_evol_data/S_example/paml/fb/2NG.t    |     5 +
 .../test/ete_evol_data/S_example/paml/fb/4fold.nuc |    17 +
 ete3/test/ete_evol_data/S_example/paml/fb/algn     |     9 +
 ete3/test/ete_evol_data/S_example/paml/fb/lnf      |    53 +
 ete3/test/ete_evol_data/S_example/paml/fb/out      |   197 +
 ete3/test/ete_evol_data/S_example/paml/fb/rst      |   656 +
 ete3/test/ete_evol_data/S_example/paml/fb/rst1     |    89 +
 ete3/test/ete_evol_data/S_example/paml/fb/rub      |     3 +
 ete3/test/ete_evol_data/S_example/paml/fb/tmp.ctl  |    30 +
 ete3/test/ete_evol_data/S_example/paml/fb/tree     |     1 +
 ete3/test/ete_evol_data/S_example/tree.nw          |     1 +
 ete3/test/ete_evol_data/XS_example/ali.fasta       |     4 +
 ete3/test/ete_evol_data/XS_example/tree.nw         |     1 +
 .../protamine/PRM1/alignments.fasta_ali            |   196 +
 .../ete_evol_data/protamine/PRM1/paml/M0/2NG.dN    |    99 +
 .../ete_evol_data/protamine/PRM1/paml/M0/2NG.dS    |    99 +
 .../ete_evol_data/protamine/PRM1/paml/M0/2NG.t     |    99 +
 .../ete_evol_data/protamine/PRM1/paml/M0/4fold.nuc |   299 +
 .../test/ete_evol_data/protamine/PRM1/paml/M0/algn |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M0/lnf |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M0/out |  1569 ++
 ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst |     2 +
 .../test/ete_evol_data/protamine/PRM1/paml/M0/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/M0/tmp.ctl   |    24 +
 .../test/ete_evol_data/protamine/PRM1/paml/M0/tree |     1 +
 .../ete_evol_data/protamine/PRM1/paml/M1/2NG.dN    |     0
 .../ete_evol_data/protamine/PRM1/paml/M1/2NG.dS    |     0
 .../ete_evol_data/protamine/PRM1/paml/M1/2NG.t     |     0
 .../ete_evol_data/protamine/PRM1/paml/M1/4fold.nuc |   299 +
 .../ete_evol_data/protamine/PRM1/paml/M1/M1.out    |  1465 ++
 .../test/ete_evol_data/protamine/PRM1/paml/M1/algn |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M1/lnf |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst |    85 +
 .../test/ete_evol_data/protamine/PRM1/paml/M1/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/M1/tmp.ctl   |    24 +
 .../test/ete_evol_data/protamine/PRM1/paml/M1/tree |     1 +
 .../ete_evol_data/protamine/PRM1/paml/M2/2NG.dN    |     0
 .../ete_evol_data/protamine/PRM1/paml/M2/2NG.dS    |     0
 .../ete_evol_data/protamine/PRM1/paml/M2/2NG.t     |     0
 .../ete_evol_data/protamine/PRM1/paml/M2/4fold.nuc |   299 +
 .../ete_evol_data/protamine/PRM1/paml/M2/M2.out    |  1521 ++
 .../test/ete_evol_data/protamine/PRM1/paml/M2/algn |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M2/lnf |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst |   175 +
 .../test/ete_evol_data/protamine/PRM1/paml/M2/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/M2/tmp.ctl   |    24 +
 .../test/ete_evol_data/protamine/PRM1/paml/M2/tree |     1 +
 .../ete_evol_data/protamine/PRM1/paml/M7/2NG.dN    |     0
 .../ete_evol_data/protamine/PRM1/paml/M7/2NG.dS    |     0
 .../ete_evol_data/protamine/PRM1/paml/M7/2NG.t     |     0
 .../ete_evol_data/protamine/PRM1/paml/M7/4fold.nuc |   299 +
 .../ete_evol_data/protamine/PRM1/paml/M7/M7.out    |  1468 ++
 .../test/ete_evol_data/protamine/PRM1/paml/M7/algn |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M7/lnf |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst |    85 +
 .../test/ete_evol_data/protamine/PRM1/paml/M7/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/M7/tmp.ctl   |    24 +
 .../test/ete_evol_data/protamine/PRM1/paml/M7/tree |     1 +
 .../ete_evol_data/protamine/PRM1/paml/M8/2NG.dN    |     0
 .../ete_evol_data/protamine/PRM1/paml/M8/2NG.dS    |     0
 .../ete_evol_data/protamine/PRM1/paml/M8/2NG.t     |     0
 .../ete_evol_data/protamine/PRM1/paml/M8/4fold.nuc |   299 +
 .../ete_evol_data/protamine/PRM1/paml/M8/M8.out    |  1515 ++
 .../test/ete_evol_data/protamine/PRM1/paml/M8/algn |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M8/lnf |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst |   177 +
 .../test/ete_evol_data/protamine/PRM1/paml/M8/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/M8/tmp.ctl   |    24 +
 .../test/ete_evol_data/protamine/PRM1/paml/M8/tree |     1 +
 .../ete_evol_data/protamine/PRM1/paml/fb/2NG.dN    |     0
 .../ete_evol_data/protamine/PRM1/paml/fb/2NG.dS    |     0
 .../ete_evol_data/protamine/PRM1/paml/fb/2NG.t     |     0
 .../ete_evol_data/protamine/PRM1/paml/fb/4fold.nuc |   299 +
 .../test/ete_evol_data/protamine/PRM1/paml/fb/algn |   197 +
 .../ete_evol_data/protamine/PRM1/paml/fb/fb.out    |  1468 ++
 ete3/test/ete_evol_data/protamine/PRM1/paml/fb/lnf |    69 +
 .../ete_evol_data/protamine/PRM1/paml/fb/rst.fb    |     2 +
 .../test/ete_evol_data/protamine/PRM1/paml/fb/rst1 |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rub |     3 +
 .../ete_evol_data/protamine/PRM1/paml/fb/tmp.ctl   |    27 +
 .../test/ete_evol_data/protamine/PRM1/paml/fb/tree |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dN  |     0
 ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dS  |     0
 ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.t   |     0
 .../ete_evol_data/protamine/PRM1/slr/4fold.nuc     |   299 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/algn    |   197 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/fb.out  |  1468 ++
 ete3/test/ete_evol_data/protamine/PRM1/slr/lnf     |    69 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/rst.fb  |     2 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/rst1    |     1 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/rub     |     3 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/slr.ctl |     4 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/tmp.ctl |    27 +
 ete3/test/ete_evol_data/protamine/PRM1/slr/tree    |     1 +
 .../test/ete_evol_data/protamine/PRM1/slr/tree.slr |     2 +
 ete3/test/ete_evol_data/protamine/PRM1/tree.nw     |     1 +
 ete3/test/test_all.py                              |    13 +
 ete3/test/test_api.py                              |    23 +
 ete3/test/test_arraytable.py                       |    47 +
 ete3/test/test_circle_label.py                     |   124 +
 ete3/test/test_clustertree.py                      |    29 +
 ete3/test/test_ete_build/NUP62.aa.fa               |    51 +
 ete3/test/test_ete_build/NUP62.nt.fa               |   101 +
 ete3/test/test_ete_build/P53.alg.fa                |    16 +
 ete3/test/test_ete_build/P53.fa                    |    16 +
 ete3/test/test_ete_build/__init__.py               |     2 +
 ete3/test/test_ete_build/__main__.py               |    13 +
 ete3/test/test_ete_build/cog_seqs.fa               |    29 +
 ete3/test/test_ete_build/cog_seqs.nt.fa            |    28 +
 ete3/test/test_ete_build/fake_alg1.fa              |    10 +
 ete3/test/test_ete_build/fake_alg1.nt.fa           |    10 +
 ete3/test/test_ete_build/fake_alg2.fa              |    10 +
 ete3/test/test_ete_build/fake_alg2.nt.fa           |    10 +
 ete3/test/test_ete_build/fake_alg3.fa              |     9 +
 ete3/test/test_ete_build/fake_alg3.nt.fa           |     8 +
 ete3/test/test_ete_build/fake_cogs.tsv             |     4 +
 ete3/test/test_ete_build/test_genetree.py          |    36 +
 ete3/test/test_ete_build/test_manual_alg.py        |    68 +
 ete3/test/test_ete_build/test_modeltest.py         |    57 +
 ete3/test/test_ete_build/test_sptree.py            |    59 +
 ete3/test/test_ete_evol.py                         |    45 +
 ete3/test/test_evol.py                             |   225 +
 ete3/test/test_interop.py                          |    26 +
 ete3/test/test_ncbiquery.py                        |   100 +
 ete3/test/test_phylotree.py                        |   318 +
 ete3/test/test_seqgroup.py                         |    93 +
 ete3/test/test_tree.py                             |  1292 ++
 ete3/test/test_treeview/__init__.py                |     0
 .../test_treeview/barchart_and_piechart_faces.py   |    40 +
 ete3/test/test_treeview/barcharts.png              |   Bin 0 -> 33022 bytes
 ete3/test/test_treeview/bubble_map.png             |   Bin 0 -> 112579 bytes
 ete3/test/test_treeview/bubble_map.py              |    49 +
 ete3/test/test_treeview/chimp.png                  |   Bin 0 -> 1115 bytes
 ete3/test/test_treeview/dog.png                    |   Bin 0 -> 4130 bytes
 ete3/test/test_treeview/face_grid.py               |    48 +
 ete3/test/test_treeview/face_positions.py          |   103 +
 ete3/test/test_treeview/face_rotation.py           |    30 +
 ete3/test/test_treeview/fish.png                   |   Bin 0 -> 2767 bytes
 ete3/test/test_treeview/float_piechart.png         |   Bin 0 -> 289006 bytes
 ete3/test/test_treeview/floating_piecharts.py      |    30 +
 ete3/test/test_treeview/fly.png                    |   Bin 0 -> 3971 bytes
 ete3/test/test_treeview/human.png                  |   Bin 0 -> 3503 bytes
 ete3/test/test_treeview/img_faces.png              |   Bin 0 -> 60235 bytes
 ete3/test/test_treeview/img_faces.py               |   135 +
 ete3/test/test_treeview/item_faces.png             |   Bin 0 -> 35247 bytes
 ete3/test/test_treeview/item_faces.py              |   121 +
 ete3/test/test_treeview/motifs.png                 |   Bin 0 -> 174830 bytes
 ete3/test/test_treeview/mouse.png                  |   Bin 0 -> 1324 bytes
 ete3/test/test_treeview/new_seq_face.py            |   308 +
 ete3/test/test_treeview/node_background.png        |   Bin 0 -> 51805 bytes
 ete3/test/test_treeview/node_background.py         |    44 +
 ete3/test/test_treeview/node_style.png             |   Bin 0 -> 10303 bytes
 ete3/test/test_treeview/node_style.py              |    66 +
 ete3/test/test_treeview/phylotree_visualization.py |    44 +
 ete3/test/test_treeview/random_draw.py             |   123 +
 ete3/test/test_treeview/rotated_faces.png          |   Bin 0 -> 33631 bytes
 ete3/test/test_treeview/seq_motif_faces.png        |   Bin 0 -> 163991 bytes
 ete3/test/test_treeview/seq_motif_faces.py         |    49 +
 ete3/test/test_treeview/seqmotif.png               |   Bin 0 -> 97444 bytes
 ete3/test/test_treeview/test_all_treeview.py       |   161 +
 ete3/test/test_treeview/tree_faces.png             |   Bin 0 -> 118000 bytes
 ete3/test/test_treeview/tree_faces.py              |    53 +
 ete3/test/test_xml_parsers.py                      |    63 +
 ete3/tools/__init__.py                             |    38 +
 ete3/tools/common.py                               |   257 +
 ete3/tools/ete.py                                  |   241 +
 ete3/tools/ete_annotate.py                         |   119 +
 ete3/tools/ete_compare.py                          |   215 +
 ete3/tools/ete_evol.py                             |   974 ++
 ete3/tools/ete_expand.py                           |    48 +
 ete3/tools/ete_extract.py                          |    66 +
 ete3/tools/ete_generate.py                         |    57 +
 ete3/tools/ete_maptrees.py                         |   349 +
 ete3/tools/ete_mod.py                              |   135 +
 ete3/tools/ete_ncbiquery.py                        |   186 +
 ete3/tools/ete_split.py                            |    55 +
 ete3/tools/ete_upgrade_tools.py                    |    69 +
 ete3/tools/ete_view.py                             |   588 +
 ete3/tools/phylobuild.cfg                          |   508 +
 ete3/tools/phylobuild.py                           |  1104 ++
 ete3/tools/phylobuild_lib/__init__.py              |    38 +
 ete3/tools/phylobuild_lib/apps.py                  |   249 +
 ete3/tools/phylobuild_lib/configcheck.py           |   472 +
 ete3/tools/phylobuild_lib/configobj.py             |  2524 +++
 ete3/tools/phylobuild_lib/curses_gui.py            |   152 +
 ete3/tools/phylobuild_lib/db.py                    |   539 +
 ete3/tools/phylobuild_lib/errors.py                |    67 +
 ete3/tools/phylobuild_lib/getch.py                 |   108 +
 ete3/tools/phylobuild_lib/interface.py             |   529 +
 ete3/tools/phylobuild_lib/logger.py                |    82 +
 ete3/tools/phylobuild_lib/master_job.py            |   228 +
 ete3/tools/phylobuild_lib/master_task.py           |   631 +
 ete3/tools/phylobuild_lib/ordereddict.py           |   298 +
 ete3/tools/phylobuild_lib/scheduler.py             |   685 +
 ete3/tools/phylobuild_lib/seqio.py                 |   287 +
 ete3/tools/phylobuild_lib/sge.py                   |   160 +
 ete3/tools/phylobuild_lib/task/__init__.py         |    62 +
 ete3/tools/phylobuild_lib/task/clustalo.py         |    92 +
 ete3/tools/phylobuild_lib/task/cog_creator.py      |   552 +
 ete3/tools/phylobuild_lib/task/cog_selector.py     |   247 +
 ete3/tools/phylobuild_lib/task/concat_alg.py       |   292 +
 ete3/tools/phylobuild_lib/task/dialigntx.py        |    85 +
 ete3/tools/phylobuild_lib/task/dummyalg.py         |    49 +
 ete3/tools/phylobuild_lib/task/dummytree.py        |    87 +
 ete3/tools/phylobuild_lib/task/fasttree.py         |   113 +
 ete3/tools/phylobuild_lib/task/jmodeltest.py       |   113 +
 ete3/tools/phylobuild_lib/task/mafft.py            |    83 +
 ete3/tools/phylobuild_lib/task/merger.py           |   256 +
 ete3/tools/phylobuild_lib/task/meta_aligner.py     |   227 +
 ete3/tools/phylobuild_lib/task/msf.py              |    87 +
 ete3/tools/phylobuild_lib/task/muscle.py           |    84 +
 ete3/tools/phylobuild_lib/task/phyml.py            |   176 +
 ete3/tools/phylobuild_lib/task/pmodeltest.py       |    69 +
 ete3/tools/phylobuild_lib/task/prottest.py         |   159 +
 ete3/tools/phylobuild_lib/task/prottest2.py        |   162 +
 ete3/tools/phylobuild_lib/task/raxml.py            |   300 +
 ete3/tools/phylobuild_lib/task/tcoffee.py          |    42 +
 ete3/tools/phylobuild_lib/task/trimal.py           |   111 +
 ete3/tools/phylobuild_lib/task/uhire.py            |   114 +
 ete3/tools/phylobuild_lib/utils.py                 |   647 +
 ete3/tools/phylobuild_lib/validate.py              |  1491 ++
 ete3/tools/phylobuild_lib/visualize.py             |   215 +
 ete3/tools/phylobuild_lib/workflow/__init__.py     |    38 +
 ete3/tools/phylobuild_lib/workflow/common.py       |   638 +
 ete3/tools/phylobuild_lib/workflow/genetree.py     |   485 +
 ete3/tools/phylobuild_lib/workflow/supermatrix.py  |   287 +
 ete3/tools/utils.py                                |    44 +
 ete3/treeview/__init__.py                          |    44 +
 ete3/treeview/_about.py                            |    82 +
 ete3/treeview/_mainwindow.py                       |   263 +
 ete3/treeview/_open_newick.py                      |    67 +
 ete3/treeview/_search_dialog.py                    |   114 +
 ete3/treeview/_show_codeml.py                      |   132 +
 ete3/treeview/_show_newick.py                      |   124 +
 ete3/treeview/about.ui                             |    53 +
 ete3/treeview/clean_search.png                     |   Bin 0 -> 1808 bytes
 ete3/treeview/drawer.py                            |   136 +
 ete3/treeview/ete_icon.png                         |   Bin 0 -> 867 bytes
 ete3/treeview/ete_logo.png                         |   Bin 0 -> 5756 bytes
 ete3/treeview/ete_qt4app.ui                        |   362 +
 ete3/treeview/ete_resources.qrc                    |    26 +
 ete3/treeview/ete_resources_rc.py                  |  1863 +++
 ete3/treeview/export_pdf.png                       |   Bin 0 -> 1308 bytes
 ete3/treeview/faces.py                             |  2325 +++
 ete3/treeview/fileopen.png                         |   Bin 0 -> 962 bytes
 ete3/treeview/filesave.png                         |   Bin 0 -> 751 bytes
 ete3/treeview/fit_region.png                       |   Bin 0 -> 1080 bytes
 ete3/treeview/fit_tree.png                         |   Bin 0 -> 1500 bytes
 ete3/treeview/force_topo.png                       |   Bin 0 -> 583 bytes
 ete3/treeview/image_properties.ui                  |   201 +
 ete3/treeview/layouts.py                           |   263 +
 ete3/treeview/main.py                              |   778 +
 ete3/treeview/node_gui_actions.py                  |   293 +
 ete3/treeview/open_newick.ui                       |    38 +
 ete3/treeview/qt4_circular_render.py               |   401 +
 ete3/treeview/qt4_compile_resources.sh             |    11 +
 ete3/treeview/qt4_face_render.py                   |   399 +
 ete3/treeview/qt4_gui.py                           |   973 ++
 ete3/treeview/qt4_rect_render.py                   |   110 +
 ete3/treeview/qt4_render.py                        |  1142 ++
 ete3/treeview/search.png                           |   Bin 0 -> 1639 bytes
 ete3/treeview/search_dialog.ui                     |   200 +
 ete3/treeview/show_dist.png                        |   Bin 0 -> 454 bytes
 ete3/treeview/show_names.png                       |   Bin 0 -> 491 bytes
 ete3/treeview/show_newick.png                      |   Bin 0 -> 797 bytes
 ete3/treeview/show_newick.ui                       |   256 +
 ete3/treeview/show_support.png                     |   Bin 0 -> 651 bytes
 ete3/treeview/svg_colors.py                        |   566 +
 ete3/treeview/templates.py                         |    73 +
 ete3/treeview/x_expand.png                         |   Bin 0 -> 904 bytes
 ete3/treeview/x_reduce.png                         |   Bin 0 -> 920 bytes
 ete3/treeview/y_expand.png                         |   Bin 0 -> 838 bytes
 ete3/treeview/y_reduce.png                         |   Bin 0 -> 887 bytes
 ete3/treeview/zoom_in.png                          |   Bin 0 -> 1284 bytes
 ete3/treeview/zoom_out.png                         |   Bin 0 -> 1241 bytes
 ete3/utils.py                                      |   226 +
 ete3/version.py                                    |     2 +
 ete3/webplugin/__init__.py                         |    38 +
 ete3/webplugin/webapp.py                           |   346 +
 examples/clustering/bubbles_validation.py          |    64 +
 examples/clustering/cluster_visualization.py       |    36 +
 examples/clustering/clustering_tree.py             |   102 +
 examples/clustering/diauxic.array                  |   835 +
 examples/clustering/diauxic.nw                     |   935 ++
 examples/evol/1_freeratio.py                       |    72 +
 examples/evol/2_sites_model.py                     |    80 +
 examples/evol/3_branchsite_test.py                 |    67 +
 examples/evol/4_branch_models.py                   |    91 +
 examples/evol/5_branchsite_cladetest.py            |    73 +
 examples/evol/6_ancestral_sequence.py              |    45 +
 examples/evol/7_slr.py                             |    32 +
 examples/evol/README                               |     9 +
 examples/evol/data/CladeModelCD/ECP_EDN_15.fasta   |    32 +
 examples/evol/data/CladeModelCD/ECP_EDN_15.nw      |     1 +
 .../L_example/alignment_L_measuring_evol.fasta     |    28 +
 examples/evol/data/L_example/measuring_L_tree.nw   |     1 +
 .../S_example/alignment_S_measuring_evol.fasta     |     8 +
 examples/evol/data/S_example/measuring_S_tree.nw   |     1 +
 examples/evol/data/S_example/paml/M1/2NG.dN        |     5 +
 examples/evol/data/S_example/paml/M1/2NG.dS        |     5 +
 examples/evol/data/S_example/paml/M1/2NG.t         |     5 +
 examples/evol/data/S_example/paml/M1/4fold.nuc     |    17 +
 examples/evol/data/S_example/paml/M1/algn          |     9 +
 examples/evol/data/S_example/paml/M1/lnf           |    53 +
 examples/evol/data/S_example/paml/M1/out           |   191 +
 examples/evol/data/S_example/paml/M1/rst           |   100 +
 examples/evol/data/S_example/paml/M1/rst1          |     1 +
 examples/evol/data/S_example/paml/M1/rub           |     3 +
 examples/evol/data/S_example/paml/M1/tmp.ctl       |    30 +
 examples/evol/data/S_example/paml/M1/tree          |     1 +
 examples/evol/data/S_example/paml/M2/2NG.dN        |     5 +
 examples/evol/data/S_example/paml/M2/2NG.dS        |     5 +
 examples/evol/data/S_example/paml/M2/2NG.t         |     5 +
 examples/evol/data/S_example/paml/M2/4fold.nuc     |    17 +
 examples/evol/data/S_example/paml/M2/algn          |     9 +
 examples/evol/data/S_example/paml/M2/lnf           |    54 +
 examples/evol/data/S_example/paml/M2/out           |   229 +
 examples/evol/data/S_example/paml/M2/rst           |   203 +
 examples/evol/data/S_example/paml/M2/rst1          |     1 +
 examples/evol/data/S_example/paml/M2/rub           |     3 +
 examples/evol/data/S_example/paml/M2/tmp.ctl       |    30 +
 examples/evol/data/S_example/paml/M2/tree          |     1 +
 examples/evol/data/S_example/paml/bsA/2NG.dN       |     5 +
 examples/evol/data/S_example/paml/bsA/2NG.dS       |     5 +
 examples/evol/data/S_example/paml/bsA/2NG.t        |     5 +
 examples/evol/data/S_example/paml/bsA/4fold.nuc    |    17 +
 examples/evol/data/S_example/paml/bsA/algn         |     9 +
 examples/evol/data/S_example/paml/bsA/lnf          |    53 +
 examples/evol/data/S_example/paml/bsA/out          |   212 +
 examples/evol/data/S_example/paml/bsA/rst          |   191 +
 examples/evol/data/S_example/paml/bsA/rst1         |     1 +
 examples/evol/data/S_example/paml/bsA/rub          |     3 +
 examples/evol/data/S_example/paml/bsA/tmp.ctl      |    30 +
 examples/evol/data/S_example/paml/bsA/tree         |     1 +
 examples/evol/data/S_example/paml/bsA1/2NG.dN      |     5 +
 examples/evol/data/S_example/paml/bsA1/2NG.dS      |     5 +
 examples/evol/data/S_example/paml/bsA1/2NG.t       |     5 +
 examples/evol/data/S_example/paml/bsA1/4fold.nuc   |    17 +
 examples/evol/data/S_example/paml/bsA1/algn        |     9 +
 examples/evol/data/S_example/paml/bsA1/lnf         |    53 +
 examples/evol/data/S_example/paml/bsA1/out         |   183 +
 examples/evol/data/S_example/paml/bsA1/rst         |   102 +
 examples/evol/data/S_example/paml/bsA1/rst1        |     1 +
 examples/evol/data/S_example/paml/bsA1/rub         |     3 +
 examples/evol/data/S_example/paml/bsA1/tmp.ctl     |    30 +
 examples/evol/data/S_example/paml/bsA1/tree        |     1 +
 examples/evol/data/S_example/paml/fb/2NG.dN        |     5 +
 examples/evol/data/S_example/paml/fb/2NG.dS        |     5 +
 examples/evol/data/S_example/paml/fb/2NG.t         |     5 +
 examples/evol/data/S_example/paml/fb/4fold.nuc     |    17 +
 examples/evol/data/S_example/paml/fb/algn          |     9 +
 examples/evol/data/S_example/paml/fb/lnf           |    53 +
 examples/evol/data/S_example/paml/fb/out           |   197 +
 examples/evol/data/S_example/paml/fb/rst           |   656 +
 examples/evol/data/S_example/paml/fb/rst1          |    89 +
 examples/evol/data/S_example/paml/fb/rub           |     3 +
 examples/evol/data/S_example/paml/fb/tmp.ctl       |    30 +
 examples/evol/data/S_example/paml/fb/tree          |     1 +
 .../evol/data/protamine/PRM1/alignments.fasta_ali  |   196 +
 examples/evol/data/protamine/PRM1/paml/M0/2NG.dN   |    99 +
 examples/evol/data/protamine/PRM1/paml/M0/2NG.dS   |    99 +
 examples/evol/data/protamine/PRM1/paml/M0/2NG.t    |    99 +
 .../evol/data/protamine/PRM1/paml/M0/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/M0/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/M0/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/M0/out      |  1569 ++
 examples/evol/data/protamine/PRM1/paml/M0/rst      |     2 +
 examples/evol/data/protamine/PRM1/paml/M0/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/M0/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/M0/tmp.ctl  |    24 +
 examples/evol/data/protamine/PRM1/paml/M0/tree     |     1 +
 examples/evol/data/protamine/PRM1/paml/M1/2NG.dN   |     0
 examples/evol/data/protamine/PRM1/paml/M1/2NG.dS   |     0
 examples/evol/data/protamine/PRM1/paml/M1/2NG.t    |     0
 .../evol/data/protamine/PRM1/paml/M1/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/M1/M1.out   |  1465 ++
 examples/evol/data/protamine/PRM1/paml/M1/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/M1/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/M1/rst      |    85 +
 examples/evol/data/protamine/PRM1/paml/M1/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/M1/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/M1/tmp.ctl  |    24 +
 examples/evol/data/protamine/PRM1/paml/M1/tree     |     1 +
 examples/evol/data/protamine/PRM1/paml/M2/2NG.dN   |     0
 examples/evol/data/protamine/PRM1/paml/M2/2NG.dS   |     0
 examples/evol/data/protamine/PRM1/paml/M2/2NG.t    |     0
 .../evol/data/protamine/PRM1/paml/M2/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/M2/M2.out   |  1521 ++
 examples/evol/data/protamine/PRM1/paml/M2/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/M2/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/M2/rst      |   175 +
 examples/evol/data/protamine/PRM1/paml/M2/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/M2/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/M2/tmp.ctl  |    24 +
 examples/evol/data/protamine/PRM1/paml/M2/tree     |     1 +
 examples/evol/data/protamine/PRM1/paml/M7/2NG.dN   |     0
 examples/evol/data/protamine/PRM1/paml/M7/2NG.dS   |     0
 examples/evol/data/protamine/PRM1/paml/M7/2NG.t    |     0
 .../evol/data/protamine/PRM1/paml/M7/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/M7/M7.out   |  1468 ++
 examples/evol/data/protamine/PRM1/paml/M7/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/M7/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/M7/rst      |    85 +
 examples/evol/data/protamine/PRM1/paml/M7/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/M7/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/M7/tmp.ctl  |    24 +
 examples/evol/data/protamine/PRM1/paml/M7/tree     |     1 +
 examples/evol/data/protamine/PRM1/paml/M8/2NG.dN   |     0
 examples/evol/data/protamine/PRM1/paml/M8/2NG.dS   |     0
 examples/evol/data/protamine/PRM1/paml/M8/2NG.t    |     0
 .../evol/data/protamine/PRM1/paml/M8/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/M8/M8.out   |  1515 ++
 examples/evol/data/protamine/PRM1/paml/M8/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/M8/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/M8/rst      |   177 +
 examples/evol/data/protamine/PRM1/paml/M8/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/M8/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/M8/tmp.ctl  |    24 +
 examples/evol/data/protamine/PRM1/paml/M8/tree     |     1 +
 examples/evol/data/protamine/PRM1/paml/fb/2NG.dN   |     0
 examples/evol/data/protamine/PRM1/paml/fb/2NG.dS   |     0
 examples/evol/data/protamine/PRM1/paml/fb/2NG.t    |     0
 .../evol/data/protamine/PRM1/paml/fb/4fold.nuc     |   299 +
 examples/evol/data/protamine/PRM1/paml/fb/algn     |   197 +
 examples/evol/data/protamine/PRM1/paml/fb/fb.out   |  1468 ++
 examples/evol/data/protamine/PRM1/paml/fb/lnf      |    69 +
 examples/evol/data/protamine/PRM1/paml/fb/rst.fb   |     2 +
 examples/evol/data/protamine/PRM1/paml/fb/rst1     |     1 +
 examples/evol/data/protamine/PRM1/paml/fb/rub      |     3 +
 examples/evol/data/protamine/PRM1/paml/fb/tmp.ctl  |    27 +
 examples/evol/data/protamine/PRM1/paml/fb/tree     |     1 +
 examples/evol/data/protamine/PRM1/slr/2NG.dN       |     0
 examples/evol/data/protamine/PRM1/slr/2NG.dS       |     0
 examples/evol/data/protamine/PRM1/slr/2NG.t        |     0
 examples/evol/data/protamine/PRM1/slr/4fold.nuc    |   299 +
 examples/evol/data/protamine/PRM1/slr/algn         |   197 +
 examples/evol/data/protamine/PRM1/slr/fb.out       |  1468 ++
 examples/evol/data/protamine/PRM1/slr/lnf          |    69 +
 examples/evol/data/protamine/PRM1/slr/rst.fb       |     2 +
 examples/evol/data/protamine/PRM1/slr/rst1         |     1 +
 examples/evol/data/protamine/PRM1/slr/rub          |     3 +
 examples/evol/data/protamine/PRM1/slr/slr.ctl      |     4 +
 examples/evol/data/protamine/PRM1/slr/tmp.ctl      |    27 +
 examples/evol/data/protamine/PRM1/slr/tree         |     1 +
 examples/evol/data/protamine/PRM1/slr/tree.slr     |     2 +
 examples/evol/data/protamine/PRM1/tree.nw          |     1 +
 examples/evol/measuring_evolution_trees.py         |   184 +
 examples/evol/test_hist.py                         |    34 +
 examples/evol/test_protamine.py                    |    58 +
 examples/general/add_features.py                   |    47 +
 examples/general/byoperand_search.py               |    21 +
 examples/general/chimp.png                         |   Bin 0 -> 1115 bytes
 examples/general/copy_and_paste_trees.py           |    60 +
 examples/general/create_trees_from_scratch.py      |    39 +
 examples/general/custom_search.py                  |    18 +
 examples/general/custom_tree_traversing.py         |    25 +
 examples/general/custom_tree_visualization.py      |   134 +
 examples/general/dog.png                           |   Bin 0 -> 4130 bytes
 examples/general/fish.png                          |   Bin 0 -> 2767 bytes
 examples/general/fly.png                           |   Bin 0 -> 3971 bytes
 examples/general/genes_tree.nh                     |     1 +
 examples/general/get_common_ancestor.py            |    42 +
 examples/general/get_distances_between_nodes.py    |    59 +
 examples/general/get_midpoint_outgroup.py          |    71 +
 examples/general/getting_leaves.py                 |    33 +
 examples/general/human.png                         |   Bin 0 -> 3503 bytes
 examples/general/iterators.py                      |    22 +
 examples/general/label_nodes.py                    |    16 +
 examples/general/mouse.png                         |   Bin 0 -> 1324 bytes
 examples/general/nhx_format.py                     |    49 +
 examples/general/prune_tree.py                     |    40 +
 examples/general/random_tree.png                   |   Bin 0 -> 103821 bytes
 examples/general/read_newick.py                    |     9 +
 examples/general/remove_and_delete_nodes.py        |    73 +
 examples/general/render_tree_images.py             |    13 +
 examples/general/rooting_subtrees.py               |    55 +
 examples/general/rooting_trees.py                  |    54 +
 examples/general/search_nodes.py                   |    20 +
 examples/general/tree_basis.py                     |    21 +
 examples/general/tree_traverse.py                  |    48 +
 examples/general/write_newick.py                   |     8 +
 examples/nexml/02_dogfish_no_taxrefs.xml           |    94 +
 examples/nexml/characters.xml                      |   531 +
 examples/nexml/meta_taxa.xml                       |    48 +
 examples/nexml/nexml.xml                           |     8 +
 examples/nexml/nexml_annotated_trees.py            |    48 +
 examples/nexml/nexml_from_scratch.py               |    30 +
 examples/nexml/nexml_parser.py                     |    77 +
 examples/nexml/phenoscape.xml                      |    44 +
 examples/nexml/taxa.xml                            |    83 +
 examples/nexml/timetree.xml                        |   282 +
 examples/nexml/tolweb.xml                          |    48 +
 examples/nexml/trees.xml                           |   126 +
 examples/phylogenies/dating_evolutionary_events.py |    71 +
 .../phylogenies/link_sequences_to_phylogenies.py   |    72 +
 .../orthology_and_paralogy_prediction.py           |    73 +
 examples/phylogenies/phylotree.png                 |   Bin 0 -> 48918 bytes
 examples/phylogenies/phylotree_visualization.py    |    44 +
 examples/phylogenies/species_aware_phylogenies.py  |    84 +
 examples/phylogenies/tree_reconciliation.py        |    80 +
 examples/phyloxml/apaf.xml                         |   666 +
 examples/phyloxml/bcl_2.xml                        |  2099 +++
 examples/phyloxml/example1.xml                     |    51 +
 examples/phyloxml/example2.xml                     |    47 +
 examples/phyloxml/example3.xml                     |   428 +
 examples/phyloxml/multiple_supports.xml            |   168 +
 examples/phyloxml/ncbi_taxonomy_metazoa.xml.bz2    |   Bin 0 -> 645989 bytes
 examples/phyloxml/phyloxml_examples.xml            |   416 +
 examples/phyloxml/phyloxml_from_scratch.py         |    80 +
 examples/phyloxml/phyloxml_parser.py               |    16 +
 examples/phyloxml/tol_life_on_earth.xml.bz2        |   Bin 0 -> 564207 bytes
 examples/treeview/barchart_and_piechart_faces.py   |    41 +
 examples/treeview/barcharts.png                    |   Bin 0 -> 33022 bytes
 examples/treeview/bubble_map.png                   |   Bin 0 -> 112579 bytes
 examples/treeview/bubble_map.py                    |    49 +
 examples/treeview/face_grid.py                     |    48 +
 examples/treeview/face_positions.py                |   103 +
 examples/treeview/face_rotation.py                 |    30 +
 examples/treeview/float_piechart.png               |   Bin 0 -> 289006 bytes
 examples/treeview/floating_piecharts.py            |    30 +
 examples/treeview/img_faces/chimp.png              |   Bin 0 -> 1115 bytes
 examples/treeview/img_faces/dog.png                |   Bin 0 -> 4130 bytes
 examples/treeview/img_faces/fish.png               |   Bin 0 -> 2767 bytes
 examples/treeview/img_faces/fly.png                |   Bin 0 -> 3971 bytes
 examples/treeview/img_faces/human.png              |   Bin 0 -> 3503 bytes
 examples/treeview/img_faces/img_faces.png          |   Bin 0 -> 60235 bytes
 examples/treeview/img_faces/img_faces.py           |   135 +
 examples/treeview/img_faces/mouse.png              |   Bin 0 -> 1324 bytes
 examples/treeview/item_faces.png                   |   Bin 0 -> 35247 bytes
 examples/treeview/item_faces.py                    |   121 +
 examples/treeview/new_seq_face.py                  |   308 +
 examples/treeview/node_background.png              |   Bin 0 -> 51805 bytes
 examples/treeview/node_background.py               |    44 +
 examples/treeview/node_style.png                   |   Bin 0 -> 10303 bytes
 examples/treeview/node_style.py                    |    66 +
 examples/treeview/random_draw.py                   |   123 +
 examples/treeview/rotated_faces.png                |   Bin 0 -> 33631 bytes
 examples/treeview/seq_motif_faces.png              |   Bin 0 -> 16453 bytes
 examples/treeview/seq_motif_faces.py               |    83 +
 examples/treeview/seqmotif.png                     |   Bin 0 -> 97444 bytes
 examples/treeview/tree_faces.png                   |   Bin 0 -> 118000 bytes
 examples/treeview/tree_faces.py                    |    53 +
 ez_setup.py                                        |   286 +
 setup.cfg                                          |     5 +
 setup.py                                           |   191 +
 784 files changed, 155950 insertions(+)

diff --git a/CITATION.txt b/CITATION.txt
new file mode 100644
index 0000000..4429747
--- /dev/null
+++ b/CITATION.txt
@@ -0,0 +1,16 @@
+ETE is currently maintained by Jaime Huerta-Cepas at the Structural and
+Computational Biology Unit of EMBL (Heidelberg, Germany).
+
+
+Citation: 
+
+   Jaime Huerta-Cepas, François Serra and Peer Bork. "ETE 3: Reconstruction,
+   analysis and visualization of phylogenomic data."  Mol Biol Evol (2016) doi:
+   10.1093/molbev/msw046
+
+CONTACT: jhcepas at gmail.com
+
+Previous references: 
+
+  - Jaime Huerta-Cepas, Joaquín Dopazo and Toni Gabaldón. ETE: a python
+  Environment for Tree Exploration. BMC Bioinformatics 2010, 11:2 4.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..cc612a2
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,18 @@
+include MANIFEST.in
+include VERSION
+include README.rst
+include CITATION.txt
+include THANKS.rst
+include LICENSE
+include ez_setup.py
+
+graft ete3
+graft doc
+graft examples 
+
+global-exclude *.pyc
+global-exclude *.pyo
+global-exclude ~*
+global-exclude *~
+global-exclude #*
+global-exclude *.gz
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..d0715ea
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,46 @@
+Metadata-Version: 1.1
+Name: ete3
+Version: 3.0.0b35
+Summary: A Python Environment for (phylogenetic) Tree Exploration
+Home-page: http://etetoolkit.org
+Author: Jaime Huerta-Cepas
+Author-email: huerta at embl.de
+License: GPLv3
+Download-URL: http://etetoolkit.org/static/releases/ete3/
+Description: 
+        The Environment for Tree Exploration (ETE) is a Python programming
+        toolkit that assists in the recontruction, manipulation, analysis and
+        visualization of phylogenetic trees (although clustering trees or any
+        other tree-like data structure are also supported).
+        
+        ETE is currently developed as a tool for researchers working in
+        phylogenetics and genomics. If you use ETE for a published work,
+        please cite:
+        
+        ::
+        
+           Jaime Huerta-Cepas, François Serra and Peer Bork. "ETE 3: Reconstruction,
+           analysis and visualization of phylogenomic data."  Mol Biol Evol (2016) doi:
+           10.1093/molbev/msw046
+        
+        Visit http://etetoolkit.org for more info.
+        
+Keywords: tree,tree reconstruction,tree visualization,tree comparison,phylogeny,phylogenetics,phylogenomics
+Platform: OS Independent
+Classifier: Development Status :: 6 - Mature
+Classifier: Environment :: Console
+Classifier: Environment :: X11 Applications :: Qt
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Other Audience
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: English
+Classifier: Operating System :: MacOS
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
+Classifier: Topic :: Scientific/Engineering :: Visualization
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires: six
+Provides: ete3
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..d85a609
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,63 @@
+README
+=======
+
+.. image:: https://travis-ci.org/etetoolkit/ete.svg?branch=master
+   :target: https://travis-ci.org/etetoolkit/ete
+
+.. image:: https://badges.gitter.im/Join%20Chat.svg
+   :alt: Join the chat at https://gitter.im/jhcepas/ete
+   :target: https://gitter.im/jhcepas/ete?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge 
+
+..
+   .. image:: https://coveralls.io/repos/jhcepas/ete/badge.png
+
+
+ETE (Environment for Tree Exploration is a Python programming
+toolkit that assists in the automated manipulation, analysis and
+visualization of phylogenetic trees. Clustering trees or any
+other tree-like data structure are also supported. 
+
+ETE is currently developed as a tool for researchers working in phylogenetics
+and genomics. ETE provides specialized tools to reconstruct, compare and visualize
+phylogenetic trees. If you use ETE for a published work, please cite:
+
+::
+
+   Jaime Huerta-Cepas, François Serra and Peer Bork. "ETE 3: Reconstruction,
+   analysis and visualization of phylogenomic data."  Mol Biol Evol (2016) doi:
+   10.1093/molbev/msw046
+
+Install/Documentation
+-----------------------------
+
+- The official web site of ETE is http://etetoolkit.org. Downloading
+  instructions and further documentation can be found there.
+
+- News and announcements are usually posted on twitter: http://twitter.com/etetoolkit
+
+Gallery of examples
+--------------------
+  
+.. image:: https://raw.githubusercontent.com/jhcepas/ete/master/sdoc/gallery.png
+   :width: 600
+  
+
+Contributing and BUG reporting
+---------------------------------
+https://github.com/jhcepas/ete/blob/master/CONTRIBUTING.rst
+
+
+Getting support
+------------------
+
+- There is a mailing list providing user support at
+  https://groups.google.com/d/forum/etetoolkit. In order to avoid spam,
+  messages from new users are moderated. Expect some delay until your first
+  message and account is validated.
+
+- For general questions on how to use ETE in bioinformatic projects, the
+  BioStars community (http://biostars.org) provides an excellent and broader
+  help desk. Please feel free to raise any question there and tag it with the
+  "etetoolkit" label.
+
+
diff --git a/THANKS.rst b/THANKS.rst
new file mode 100644
index 0000000..3c460b1
--- /dev/null
+++ b/THANKS.rst
@@ -0,0 +1,20 @@
+Current Team 
+--------------
+- Jaime Huerta-Cepas - EMBL (huerta at embl.de)
+- Francois Serra - CNAG (EvolTree/ete-evol)  
+- Renato Alves - EMBL (maintainer)
+
+with greatly appreciated contributions from:
+--------------------------------------------
+
+- Finlay Maguire - Python3 ports 
+- Keith Hughitt - Python3 ports  
+- Shankar Vembu - fast tree reconciliation method
+- Alexandros Pittis - testing
+- François Serra - EvolTree
+- Marina Marcet - help with PhylomeDB API and TreeKO tests
+- Salvador Capella - maintainer of phylomedb API
+- Ivan Denisov - help with phylomedb webplugin
+- Joaquín Dopazo - original author
+- Toni Gabaldon - original author
+  
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..64c7e5d
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+3.0.0b35
\ No newline at end of file
diff --git a/doc/.buildinfo b/doc/.buildinfo
new file mode 100644
index 0000000..df8c7de
--- /dev/null
+++ b/doc/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 30df121f9c8c534e71cfc7f5981fa56e
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/doc/ETE.pdf b/doc/ETE.pdf
new file mode 100644
index 0000000..6694294
Binary files /dev/null and b/doc/ETE.pdf differ
diff --git a/doc/_downloads/apaf.xml b/doc/_downloads/apaf.xml
new file mode 100644
index 0000000..b43221d
--- /dev/null
+++ b/doc/_downloads/apaf.xml
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd" xmlns="http://www.phyloxml.org">
+<phylogeny rooted="true">
+   <clade>
+      <clade>
+         <branch_length>0.18105</branch_length>
+         <confidence type="unknown">89.0</confidence>
+         <clade>
+            <branch_length>0.07466</branch_length>
+            <confidence type="unknown">32.0</confidence>
+            <clade>
+               <branch_length>0.26168</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <branch_length>0.22058</branch_length>
+                  <confidence type="unknown">89.0</confidence>
+                  <clade>
+                     <branch_length>0.28901</branch_length>
+                     <confidence type="unknown">100.0</confidence>
+                     <clade>
+                        <branch_length>0.06584</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <branch_length>0.02309</branch_length>
+                           <confidence type="unknown">43.0</confidence>
+                           <clade>
+                              <branch_length>0.0746</branch_length>
+                              <confidence type="unknown">100.0</confidence>
+                              <clade>
+                                 <branch_length>0.02365</branch_length>
+                                 <confidence type="unknown">88.0</confidence>
+                                 <clade>
+                                    <name>22_MOUSE</name>
+                                    <branch_length>0.05998</branch_length>
+                                    <taxonomy>
+                                       <code>MOUSE</code>
+                                    </taxonomy>
+                                    <sequence>
+                                       <domain_architecture length="1249">
+                                          <domain from="6" to="90" confidence="7.0E-26">CARD</domain>
+                                          <domain from="109" to="414" confidence="7.2E-117">NB-ARC</domain>
+                                          <domain from="605" to="643" confidence="2.4E-6">WD40</domain>
+                                          <domain from="647" to="685" confidence="1.1E-12">WD40</domain>
+                                          <domain from="689" to="729" confidence="2.4E-7">WD40</domain>
+                                          <domain from="733" to="771" confidence="4.7E-14">WD40</domain>
+                                          <domain from="872" to="910" confidence="2.5E-8">WD40</domain>
+                                          <domain from="993" to="1031" confidence="4.6E-6">WD40</domain>
+                                          <domain from="1075" to="1113" confidence="6.3E-7">WD40</domain>
+                                          <domain from="1117" to="1155" confidence="1.4E-7">WD40</domain>
+                                          <domain from="1168" to="1204" confidence="0.3">WD40</domain>
+                                       </domain_architecture>
+                                    </sequence>
+                                 </clade>
+                                 <clade>
+                                    <name>Apaf-1_HUMAN</name>
+                                    <branch_length>0.01825</branch_length>
+                                    <taxonomy>
+                                       <code>HUMAN</code>
+                                    </taxonomy>
+                                    <sequence>
+                                       <domain_architecture length="1248">
+                                          <domain from="6" to="90" confidence="1.1E-25">CARD</domain>
+                                          <domain from="109" to="414" confidence="3.0E-134">NB-ARC</domain>
+                                          <domain from="605" to="643" confidence="8.5E-6">WD40</domain>
+                                          <domain from="647" to="685" confidence="2.5E-11">WD40</domain>
+                                          <domain from="689" to="729" confidence="2.4E-8">WD40</domain>
+                                          <domain from="733" to="771" confidence="3.6E-14">WD40</domain>
+                                          <domain from="872" to="910" confidence="3.8E-8">WD40</domain>
+                                          <domain from="1075" to="1113" confidence="4.0E-7">WD40</domain>
+                                          <domain from="1117" to="1155" confidence="5.9E-8">WD40</domain>
+                                       </domain_architecture>
+                                    </sequence>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <name>12_CANFA</name>
+                                 <branch_length>0.04683</branch_length>
+                                 <taxonomy>
+                                    <code>CANFA</code>
+                                 </taxonomy>
+                                 <sequence>
+                                    <domain_architecture length="1153">
+                                       <domain from="6" to="90" confidence="4.5E-22">CARD</domain>
+                                       <domain from="110" to="415" confidence="4.0E-119">NB-ARC</domain>
+                                       <domain from="597" to="635" confidence="3.9E-5">WD40</domain>
+                                       <domain from="639" to="677" confidence="2.5E-11">WD40</domain>
+                                       <domain from="681" to="721" confidence="1.8E-7">WD40</domain>
+                                       <domain from="725" to="763" confidence="9.4E-13">WD40</domain>
+                                       <domain from="889" to="927" confidence="1.1E-6">WD40</domain>
+                                       <domain from="971" to="1009" confidence="1.7E-7">WD40</domain>
+                                       <domain from="1013" to="1051" confidence="1.9E-7">WD40</domain>
+                                    </domain_architecture>
+                                 </sequence>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>11_CHICK</name>
+                              <branch_length>0.15226</branch_length>
+                              <taxonomy>
+                                 <code>CHICK</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="1207">
+                                    <domain from="6" to="90" confidence="3.6E-21">CARD</domain>
+                                    <domain from="109" to="414" confidence="3.6E-109">NB-ARC</domain>
+                                    <domain from="603" to="641" confidence="1.6E-4">WD40</domain>
+                                    <domain from="645" to="683" confidence="8.2E-11">WD40</domain>
+                                    <domain from="687" to="727" confidence="6.2E-10">WD40</domain>
+                                    <domain from="731" to="769" confidence="1.8E-11">WD40</domain>
+                                    <domain from="828" to="866" confidence="1.8">WD40</domain>
+                                    <domain from="993" to="1030" confidence="2.9E-4">WD40</domain>
+                                    <domain from="1034" to="1072" confidence="1.7E-8">WD40</domain>
+                                    <domain from="1076" to="1114" confidence="7.5E-9">WD40</domain>
+                                    <domain from="1127" to="1163" confidence="0.044">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>16_XENLA</name>
+                           <branch_length>0.4409</branch_length>
+                           <taxonomy>
+                              <code>XENLA</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1362">
+                                 <domain from="6" to="90" confidence="4.0E-20">CARD</domain>
+                                 <domain from="109" to="410" confidence="3.1E-56">NB-ARC</domain>
+                                 <domain from="148" to="298" confidence="0.8">NACHT</domain>
+                                 <domain from="729" to="767" confidence="7.0E-6">WD40</domain>
+                                 <domain from="771" to="809" confidence="2.3E-11">WD40</domain>
+                                 <domain from="813" to="853" confidence="1.1E-8">WD40</domain>
+                                 <domain from="857" to="895" confidence="1.1E-10">WD40</domain>
+                                 <domain from="992" to="1030" confidence="8.4E-9">WD40</domain>
+                                 <domain from="1116" to="1154" confidence="7.3E-11">WD40</domain>
+                                 <domain from="1158" to="1196" confidence="1.6E-8">WD40</domain>
+                                 <domain from="1200" to="1238" confidence="1.2E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.17031</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <branch_length>0.10929</branch_length>
+                           <confidence type="unknown">100.0</confidence>
+                           <clade>
+                              <name>14_FUGRU</name>
+                              <branch_length>0.02255</branch_length>
+                              <taxonomy>
+                                 <code>FUGRU</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="1258">
+                                    <domain from="8" to="92" confidence="4.6E-24">CARD</domain>
+                                    <domain from="111" to="418" confidence="7.0E-74">NB-ARC</domain>
+                                    <domain from="609" to="647" confidence="2.8E-4">WD40</domain>
+                                    <domain from="651" to="689" confidence="2.3E-12">WD40</domain>
+                                    <domain from="740" to="778" confidence="1.8E-6">WD40</domain>
+                                    <domain from="874" to="912" confidence="1.6E-9">WD40</domain>
+                                    <domain from="998" to="1036" confidence="9.8E-13">WD40</domain>
+                                    <domain from="1040" to="1080" confidence="1.6E-4">WD40</domain>
+                                    <domain from="1084" to="1122" confidence="1.5E-9">WD40</domain>
+                                    <domain from="1126" to="1164" confidence="6.2E-9">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                           <clade>
+                              <name>15_TETNG</name>
+                              <branch_length>0.09478</branch_length>
+                              <taxonomy>
+                                 <code>TETNG</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="621">
+                                    <domain from="8" to="92" confidence="2.5E-24">CARD</domain>
+                                    <domain from="104" to="308" confidence="9.8E-11">NB-ARC</domain>
+                                    <domain from="366" to="404" confidence="1.2E-12">WD40</domain>
+                                    <domain from="455" to="493" confidence="1.0E-10">WD40</domain>
+                                    <domain from="537" to="575" confidence="4.1E-10">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>17_BRARE</name>
+                           <branch_length>0.1811</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1260">
+                                 <domain from="6" to="90" confidence="3.9E-23">CARD</domain>
+                                 <domain from="137" to="444" confidence="1.7E-72">NB-ARC</domain>
+                                 <domain from="635" to="673" confidence="1.6">WD40</domain>
+                                 <domain from="694" to="732" confidence="5.3E-12">WD40</domain>
+                                 <domain from="783" to="821" confidence="2.0E-8">WD40</domain>
+                                 <domain from="1040" to="1078" confidence="2.4E-8">WD40</domain>
+                                 <domain from="1081" to="1121" confidence="6.6E-4">WD40</domain>
+                                 <domain from="1125" to="1163" confidence="5.1E-8">WD40</domain>
+                                 <domain from="1167" to="1205" confidence="1.3E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.01594</branch_length>
+                     <confidence type="unknown">53.0</confidence>
+                     <clade>
+                        <branch_length>0.10709</branch_length>
+                        <confidence type="unknown">68.0</confidence>
+                        <clade>
+                           <name>1_BRAFL</name>
+                           <branch_length>0.26131</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1238">
+                                 <domain from="6" to="89" confidence="5.7E-19">CARD</domain>
+                                 <domain from="111" to="413" confidence="4.2E-48">NB-ARC</domain>
+                                 <domain from="600" to="638" confidence="3.2E-8">WD40</domain>
+                                 <domain from="642" to="680" confidence="1.5E-10">WD40</domain>
+                                 <domain from="730" to="768" confidence="9.6E-11">WD40</domain>
+                                 <domain from="857" to="895" confidence="3.7E-10">WD40</domain>
+                                 <domain from="984" to="1022" confidence="6.7E-10">WD40</domain>
+                                 <domain from="1025" to="1064" confidence="3.1E-6">WD40</domain>
+                                 <domain from="1069" to="1107" confidence="1.5E-4">WD40</domain>
+                                 <domain from="1111" to="1149" confidence="7.9E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                        <clade>
+                           <name>18_NEMVE</name>
+                           <branch_length>0.38014</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1290">
+                                 <domain from="7" to="90" confidence="1.5E-13">CARD</domain>
+                                 <domain from="117" to="200" confidence="5.4E-14">CARD</domain>
+                                 <domain from="216" to="517" confidence="1.5E-50">NB-ARC</domain>
+                                 <domain from="711" to="749" confidence="1.0E-7">WD40</domain>
+                                 <domain from="753" to="791" confidence="8.5E-12">WD40</domain>
+                                 <domain from="795" to="833" confidence="4.3E-11">WD40</domain>
+                                 <domain from="837" to="875" confidence="1.0E-12">WD40</domain>
+                                 <domain from="920" to="957" confidence="2.0E-4">WD40</domain>
+                                 <domain from="961" to="999" confidence="3.0E-6">WD40</domain>
+                                 <domain from="1085" to="1123" confidence="4.4E-6">WD40</domain>
+                                 <domain from="1128" to="1166" confidence="3.0E-4">WD40</domain>
+                                 <domain from="1170" to="1207" confidence="1.7E-10">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>23_STRPU</name>
+                        <branch_length>0.48179</branch_length>
+                        <taxonomy>
+                           <code>STRPU</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="1236">
+                              <domain from="110" to="402" confidence="1.0E-40">NB-ARC</domain>
+                              <domain from="594" to="632" confidence="8.9E-4">WD40</domain>
+                              <domain from="636" to="673" confidence="2.5E-6">WD40</domain>
+                              <domain from="721" to="759" confidence="0.0043">WD40</domain>
+                              <domain from="765" to="802" confidence="0.0036">WD40</domain>
+                              <domain from="848" to="886" confidence="9.0E-10">WD40</domain>
+                              <domain from="975" to="1013" confidence="1.9E-5">WD40</domain>
+                              <domain from="1015" to="1053" confidence="2.4E-6">WD40</domain>
+                              <domain from="1057" to="1095" confidence="2.7E-9">WD40</domain>
+                              <domain from="1099" to="1137" confidence="4.9E-8">WD40</domain>
+                              <domain from="1141" to="1177" confidence="0.011">WD40</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>0.34475</branch_length>
+                  <confidence type="unknown">100.0</confidence>
+                  <clade>
+                     <name>26_STRPU</name>
+                     <branch_length>0.36374</branch_length>
+                     <taxonomy>
+                        <code>STRPU</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1319">
+                           <domain from="18" to="98" confidence="3.4E-5">Death</domain>
+                           <domain from="189" to="481" confidence="1.8E-10">NB-ARC</domain>
+                           <domain from="630" to="668" confidence="8.2E-5">WD40</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>25_STRPU</name>
+                     <branch_length>0.33137</branch_length>
+                     <taxonomy>
+                        <code>STRPU</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1947">
+                           <domain from="143" to="227" confidence="7.4E-5">Death</domain>
+                           <domain from="227" to="550" confidence="2.0E-13">NB-ARC</domain>
+                           <domain from="697" to="736" confidence="7.9E-4">WD40</domain>
+                           <domain from="745" to="785" confidence="1.5">WD40</domain>
+                           <domain from="1741" to="1836" confidence="2.0">Adeno_VII</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>1.31498</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <name>CED4_CAEEL</name>
+                  <branch_length>0.13241</branch_length>
+                  <taxonomy>
+                     <code>CAEEL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="714">
+                        <domain from="7" to="90" confidence="9.2E-14">CARD</domain>
+                        <domain from="116" to="442" confidence="5.8E-151">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+               <clade>
+                  <name>31_CAEBR</name>
+                  <branch_length>0.04777</branch_length>
+                  <taxonomy>
+                     <code>CAEBR</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="554">
+                        <domain from="1" to="75" confidence="0.0046">CARD</domain>
+                        <domain from="101" to="427" confidence="2.1E-123">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+         </clade>
+         <clade>
+            <branch_length>0.13172</branch_length>
+            <confidence type="unknown">45.0</confidence>
+            <clade>
+               <branch_length>0.24915</branch_length>
+               <confidence type="unknown">95.0</confidence>
+               <clade>
+                  <branch_length>0.76898</branch_length>
+                  <confidence type="unknown">100.0</confidence>
+                  <clade>
+                     <name>28_DROPS</name>
+                     <branch_length>0.1732</branch_length>
+                     <taxonomy>
+                        <code>DROPS</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="535">
+                           <domain from="112" to="399" confidence="1.4E-5">NB-ARC</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>Dark_DROME</name>
+                     <branch_length>0.18863</branch_length>
+                     <taxonomy>
+                        <code>DROME</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1421">
+                           <domain from="108" to="397" confidence="2.1E-5">NB-ARC</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>29_AEDAE</name>
+                  <branch_length>0.86398</branch_length>
+                  <taxonomy>
+                     <code>AEDAE</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="423">
+                        <domain from="109" to="421" confidence="9.3E-6">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <name>30_TRICA</name>
+               <branch_length>0.97698</branch_length>
+               <taxonomy>
+                  <code>TRICA</code>
+               </taxonomy>
+               <sequence>
+                  <domain_architecture length="1279">
+                     <domain from="5" to="81" confidence="0.59">CARD</domain>
+                     <domain from="92" to="400" confidence="9.0E-11">NB-ARC</domain>
+                     <domain from="630" to="668" confidence="1.1E-5">WD40</domain>
+                  </domain_architecture>
+               </sequence>
+            </clade>
+         </clade>
+      </clade>
+      <clade>
+         <branch_length>0.18105</branch_length>
+         <confidence type="unknown">89.0</confidence>
+         <clade>
+            <branch_length>0.15891</branch_length>
+            <confidence type="unknown">64.0</confidence>
+            <clade>
+               <branch_length>0.54836</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <branch_length>0.09305</branch_length>
+                  <confidence type="unknown">46.0</confidence>
+                  <clade>
+                     <branch_length>0.21648</branch_length>
+                     <confidence type="unknown">61.0</confidence>
+                     <clade>
+                        <branch_length>0.93134</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <name>34_BRAFL</name>
+                           <branch_length>0.093</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="752">
+                                 <domain from="49" to="356" confidence="9.0E-6">NB-ARC</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                        <clade>
+                           <name>35_BRAFL</name>
+                           <branch_length>0.08226</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="753">
+                                 <domain from="25" to="105" confidence="0.16">DED</domain>
+                                 <domain from="113" to="409" confidence="1.1E-6">NB-ARC</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>8_BRAFL</name>
+                        <branch_length>0.58563</branch_length>
+                        <taxonomy>
+                           <code>BRAFL</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="916">
+                              <domain from="58" to="369" confidence="8.4E-7">NB-ARC</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.28437</branch_length>
+                     <confidence type="unknown">84.0</confidence>
+                     <clade>
+                        <name>20_NEMVE</name>
+                        <branch_length>0.71946</branch_length>
+                        <taxonomy>
+                           <code>NEMVE</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="786">
+                              <domain from="8" to="91" confidence="1.7E-17">DED</domain>
+                              <domain from="8" to="85" confidence="0.37">PAAD_DAPIN</domain>
+                              <domain from="90" to="388" confidence="6.8E-5">NB-ARC</domain>
+                              <domain from="575" to="608" confidence="0.27">TPR_1</domain>
+                              <domain from="657" to="690" confidence="0.22">TPR_2</domain>
+                              <domain from="698" to="731" confidence="4.2E-5">TPR_2</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                     <clade>
+                        <name>21_NEMVE</name>
+                        <branch_length>0.9571</branch_length>
+                        <taxonomy>
+                           <code>NEMVE</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="1563">
+                              <domain from="234" to="317" confidence="2.3E-14">CARD</domain>
+                              <domain from="238" to="318" confidence="0.5">Death</domain>
+                              <domain from="329" to="619" confidence="0.022">NB-ARC</domain>
+                              <domain from="906" to="939" confidence="0.17">TPR_1</domain>
+                              <domain from="1326" to="1555" confidence="3.2E-26">RVT_1</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>9_BRAFL</name>
+                  <branch_length>1.09612</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1011">
+                        <domain from="5" to="321" confidence="5.0E-5">NB-ARC</domain>
+                        <domain from="497" to="616" confidence="1.6">BTAD</domain>
+                        <domain from="500" to="533" confidence="5.6E-4">TPR_1</domain>
+                        <domain from="542" to="575" confidence="0.43">TPR_1</domain>
+                        <domain from="626" to="659" confidence="0.0084">TPR_2</domain>
+                        <domain from="708" to="741" confidence="1.9E-4">TPR_2</domain>
+                        <domain from="708" to="739" confidence="1.3">TPR_3</domain>
+                        <domain from="708" to="733" confidence="0.16">TPR_4</domain>
+                        <domain from="833" to="916" confidence="5.6E-14">Death</domain>
+                        <domain from="846" to="868" confidence="0.36">LTXXQ</domain>
+                        <domain from="930" to="1011" confidence="8.3E-17">Death</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>0.34914</branch_length>
+               <confidence type="unknown">98.0</confidence>
+               <clade>
+                  <branch_length>0.22189</branch_length>
+                  <confidence type="unknown">95.0</confidence>
+                  <clade>
+                     <name>3_BRAFL</name>
+                     <branch_length>0.48766</branch_length>
+                     <taxonomy>
+                        <code>BRAFL</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="2080">
+                           <domain from="116" to="423" confidence="1.4E-12">NB-ARC</domain>
+                           <domain from="620" to="659" confidence="1.4E-6">WD40</domain>
+                           <domain from="663" to="701" confidence="1.4E-8">WD40</domain>
+                           <domain from="705" to="743" confidence="3.0E-11">WD40</domain>
+                           <domain from="747" to="785" confidence="1.1E-8">WD40</domain>
+                           <domain from="788" to="826" confidence="1.6E-5">WD40</domain>
+                           <domain from="830" to="870" confidence="1.3E-4">WD40</domain>
+                           <domain from="874" to="914" confidence="6.2E-9">WD40</domain>
+                           <domain from="919" to="957" confidence="0.0011">WD40</domain>
+                           <domain from="961" to="1000" confidence="1.8E-8">WD40</domain>
+                           <domain from="1013" to="1051" confidence="1.3E-6">WD40</domain>
+                           <domain from="1055" to="1092" confidence="0.096">WD40</domain>
+                           <domain from="1794" to="1853" confidence="3.6E-4">Collagen</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>2_BRAFL</name>
+                     <branch_length>0.65293</branch_length>
+                     <taxonomy>
+                        <code>BRAFL</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1691">
+                           <domain from="162" to="457" confidence="4.4E-10">NB-ARC</domain>
+                           <domain from="640" to="680" confidence="0.0068">WD40</domain>
+                           <domain from="684" to="722" confidence="1.6E-8">WD40</domain>
+                           <domain from="726" to="764" confidence="6.0E-9">WD40</domain>
+                           <domain from="827" to="865" confidence="6.9E-10">WD40</domain>
+                           <domain from="868" to="906" confidence="1.2E-6">WD40</domain>
+                           <domain from="910" to="950" confidence="0.0080">WD40</domain>
+                           <domain from="954" to="994" confidence="0.0016">WD40</domain>
+                           <domain from="999" to="1037" confidence="4.9E-6">WD40</domain>
+                           <domain from="1042" to="1080" confidence="6.3E-8">WD40</domain>
+                           <domain from="1100" to="1138" confidence="1.9E-8">WD40</domain>
+                           <domain from="1142" to="1178" confidence="1.4">WD40</domain>
+                           <domain from="1577" to="1615" confidence="4.3E-4">WD40</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>19_NEMVE</name>
+                  <branch_length>0.57144</branch_length>
+                  <taxonomy>
+                     <code>NEMVE</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1649">
+                        <domain from="99" to="174" confidence="4.6E-7">DED</domain>
+                        <domain from="181" to="503" confidence="8.0E-13">NB-ARC</domain>
+                        <domain from="696" to="734" confidence="1.4E-8">WD40</domain>
+                        <domain from="738" to="776" confidence="2.9E-9">WD40</domain>
+                        <domain from="780" to="818" confidence="3.8E-10">WD40</domain>
+                        <domain from="822" to="860" confidence="6.4E-9">WD40</domain>
+                        <domain from="864" to="902" confidence="2.1E-10">WD40</domain>
+                        <domain from="906" to="944" confidence="1.3E-8">WD40</domain>
+                        <domain from="948" to="986" confidence="1.2E-8">WD40</domain>
+                        <domain from="990" to="1028" confidence="9.4E-8">WD40</domain>
+                        <domain from="1032" to="1070" confidence="6.0E-8">WD40</domain>
+                        <domain from="1074" to="1112" confidence="2.6E-4">WD40</domain>
+                        <domain from="1364" to="1597" confidence="1.9">SGL</domain>
+                        <domain from="1442" to="1480" confidence="9.7E-7">WD40</domain>
+                        <domain from="1527" to="1565" confidence="1.2">WD40</domain>
+                        <domain from="1568" to="1606" confidence="1.1E-6">WD40</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+         </clade>
+         <clade>
+            <branch_length>0.43438</branch_length>
+            <confidence type="unknown">92.0</confidence>
+            <clade>
+               <branch_length>0.92214</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <name>37_BRAFL</name>
+                  <branch_length>0.21133</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1793">
+                        <domain from="6" to="89" confidence="9.6E-13">CARD</domain>
+                        <domain from="118" to="202" confidence="4.5E-9">CARD</domain>
+                        <domain from="206" to="491" confidence="0.0011">NB-ARC</domain>
+                        <domain from="238" to="388" confidence="0.0043">NACHT</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+               <clade>
+                  <name>36_BRAFL</name>
+                  <branch_length>0.16225</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="918">
+                        <domain from="9" to="93" confidence="1.6E-9">CARD</domain>
+                        <domain from="98" to="403" confidence="0.0019">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <name>33_BRAFL</name>
+               <branch_length>0.8363</branch_length>
+               <taxonomy>
+                  <code>BRAFL</code>
+               </taxonomy>
+               <sequence>
+                  <domain_architecture length="1212">
+                     <domain from="5" to="87" confidence="4.7E-12">Death</domain>
+                     <domain from="154" to="465" confidence="2.0E-6">NB-ARC</domain>
+                  </domain_architecture>
+               </sequence>
+            </clade>
+         </clade>
+      </clade>
+   </clade>
+</phylogeny>
+</phyloxml>
\ No newline at end of file
diff --git a/doc/_downloads/face_grid.py b/doc/_downloads/face_grid.py
new file mode 100644
index 0000000..5de3dcc
--- /dev/null
+++ b/doc/_downloads/face_grid.py
@@ -0,0 +1,74 @@
+from ete3 import Tree, TextFace, NodeStyle, TreeStyle
+
+t = Tree("((a,b),c);")
+
+right_c0_r0 = TextFace("right_col0_row0")
+right_c0_r1 = TextFace("right_col0_row1")
+right_c1_r0 = TextFace("right_col1_row0")
+right_c1_r1 = TextFace("right_col1_row1")
+right_c1_r2 = TextFace("right_col1_row2")
+
+top_c0_r0 = TextFace("top_col0_row0")
+top_c0_r1 = TextFace("top_col0_row1")
+
+bottom_c0_r0 = TextFace("bottom_col0_row0")
+bottom_c0_r1 = TextFace("bottom_col0_row1")
+
+aligned_c0_r0 = TextFace("aligned_col0_row0")
+aligned_c0_r1 = TextFace("aligned_col0_row1")
+
+aligned_c1_r0 = TextFace("aligned_col1_row0")
+aligned_c1_r1 = TextFace("aligned_col1_row1")
+
+all_faces = [right_c0_r0, right_c0_r1, right_c1_r0, right_c1_r1, right_c1_r2, top_c0_r0, \
+     top_c0_r1, bottom_c0_r0, bottom_c0_r1, aligned_c0_r0, aligned_c0_r1,\
+     aligned_c1_r0, aligned_c1_r1]
+
+# set a border in all faces
+for f in all_faces:
+    f.margin_border.width = 1
+    f.margin_bottom = 5
+    f.margin_top = 5
+    f.margin_right = 10
+
+
+t.add_face(right_c0_r0, column=0, position="branch-right")
+t.add_face(right_c0_r1, column=0, position="branch-right")
+
+t.add_face(right_c1_r0, column=1, position="branch-right")
+t.add_face(right_c1_r1, column=1, position="branch-right")
+t.add_face(right_c1_r2, column=1, position="branch-right")
+
+t.add_face(top_c0_r0, column=0, position="branch-top")
+t.add_face(top_c0_r1, column=0, position="branch-top")
+
+t.add_face(bottom_c0_r0, column=0, position="branch-bottom")
+t.add_face(bottom_c0_r1, column=0, position="branch-bottom")
+
+a = t&"a"
+a.set_style(NodeStyle())
+a.img_style["bgcolor"] = "lightgreen"
+
+b = t&"b"
+b.set_style(NodeStyle())
+b.img_style["bgcolor"] = "indianred"
+
+c = t&"c"
+c.set_style(NodeStyle())
+c.img_style["bgcolor"] = "lightblue"
+
+t.set_style(NodeStyle())
+t.img_style["bgcolor"] = "lavender"
+t.img_style["size"] = 12
+
+for leaf in t.iter_leaves():
+    leaf.img_style["size"] = 12
+    leaf.add_face(right_c0_r0, 0, "branch-right")
+    leaf.add_face(aligned_c0_r1, 0, "aligned")
+    leaf.add_face(aligned_c0_r0, 0, "aligned")
+    leaf.add_face(aligned_c1_r1, 1, "aligned")
+    leaf.add_face(aligned_c1_r0, 1, "aligned")
+
+ts = TreeStyle()
+ts.show_scale = False
+t.render("face_positions.png", w=800, tree_style=ts)
diff --git a/doc/_downloads/nexml_annotated_trees.py b/doc/_downloads/nexml_annotated_trees.py
new file mode 100644
index 0000000..845506d
--- /dev/null
+++ b/doc/_downloads/nexml_annotated_trees.py
@@ -0,0 +1,48 @@
+from ete3 import Nexml
+
+# Creates and empty NeXML project
+p = Nexml()
+# Fill it with the tolweb example
+p.build_from_file("tolweb.xml")
+
+# extract the first collection of trees
+tree_collection = p.trees[0]
+# and all the tree instances in it
+trees = tree_collection.tree
+
+# For each loaded tree, prints its structure and some of its
+# meta-properties
+for t in trees:
+    print t
+    print
+    print "Leaf node meta information:\n"
+    print
+    for meta in  t.children[0].nexml_node.meta:
+        print  meta.property, ":", (meta.content)
+
+
+# Output
+# ==========
+#
+# ---- /-node3(Eurysphindus)
+#
+# Leaf node meta information:
+#
+#
+# dc:description :
+# tbe:AUTHORITY : Leconte
+# tbe:AUTHDATE : 1878
+# tba:ANCESTORWITHPAGE : 117851
+# tba:CHILDCOUNT : 0
+# tba:COMBINATION_DATE : null
+# tba:CONFIDENCE : 0
+# tba:EXTINCT : 0
+# tba:HASPAGE : 1
+# tba:ID : 117855
+# tba:INCOMPLETESUBGROUPS : 0
+# tba:IS_NEW_COMBINATION : 0
+# tba:ITALICIZENAME : 1
+# tba:LEAF : 0
+# tba:PHYLESIS : 0
+# tba:SHOWAUTHORITY : 0
+# tba:SHOWAUTHORITYCONTAINING : 1
diff --git a/doc/_downloads/nexml_from_scratch.py b/doc/_downloads/nexml_from_scratch.py
new file mode 100644
index 0000000..bf4e0ad
--- /dev/null
+++ b/doc/_downloads/nexml_from_scratch.py
@@ -0,0 +1,30 @@
+import sys
+# Note that we import the nexml module rather than the root Nexml
+#  class.  This module contains a python object for each of the
+#  nexml elements declared in its XML schema.
+from ete3 import nexml
+
+# Create an empty Nexml project
+nexml_project = nexml.Nexml()
+tree_collection = nexml.Trees()
+
+# NexmlTree is a special PhyloTree instance that is prepared to be
+# added to NeXML projects. So lets populate a random tree
+nexml_tree = nexml.NexmlTree()
+# Random tree with 10 leaves
+nexml_tree.populate(10, random_branches=True)
+# We add the tree to the collection
+tree_collection.add_tree(nexml_tree)
+
+# Create another tree from a newick string
+nexml_tree2 = nexml.NexmlTree("((hello, nexml):1.51, project):0.6;")
+tree_collection.add_tree(nexml_tree2)
+
+# Tree can be handled as normal ETE objects
+nexml_tree2.show()
+
+# Add the collection of trees to the NexML project object
+nexml_project.add_trees(tree_collection)
+
+# Now we can export the project containing our two trees
+nexml_project.export()
diff --git a/doc/_downloads/nexml_parser.py b/doc/_downloads/nexml_parser.py
new file mode 100644
index 0000000..67e9d66
--- /dev/null
+++ b/doc/_downloads/nexml_parser.py
@@ -0,0 +1,77 @@
+from ete3 import Nexml
+# Create an empty Nexml project
+nexml_project = Nexml()
+
+# Load content from NeXML file
+nexml_project.build_from_file("trees.xml")
+
+# All XML elements are within the project instance.
+# exist in each element to access their attributes.
+print "Loaded Taxa:"
+for taxa in  nexml_project.get_otus():
+    for otu in taxa.get_otu():
+        print "OTU:", otu.id
+
+# Extracts all the collection of trees in the project
+tree_collections = nexml_project.get_trees()
+# Select the first collection
+collection_1 = tree_collections[0]
+
+# print the topology of every tree
+for tree in  collection_1.get_tree():
+    # trees contain all the nexml information in their "nexml_node",
+    # "nexml_tree", and "nexml_edge" attributes.
+    print "Tree id", tree.nexml_tree.id
+    print tree
+    for node in tree.traverse():
+        print "node", node.nexml_node.id, "is associated with", node.nexml_node.otu, "OTU"
+
+
+# Output:
+# ==========
+# Loaded Taxa:
+# OTU: t1
+# OTU: t2
+# OTU: t3
+# OTU: t4
+# OTU: t5
+# Tree id tree1
+#
+#                /-n5(n5)
+#           /---|
+#          |     \-n6(n6)
+#      /---|
+#     |    |     /-n8(n8)
+# ----|     \---|
+#     |          \-n9(n9)
+#     |
+#      \-n2(n2)
+# node n1 is associated with None OTU
+# node n3 is associated with None OTU
+# node n2 is associated with t1 OTU
+# node n4 is associated with None OTU
+# node n7 is associated with None OTU
+# node n5 is associated with t3 OTU
+# node n6 is associated with t2 OTU
+# node n8 is associated with t5 OTU
+# node n9 is associated with t4 OTU
+# Tree id tree2
+#
+#                /-tree2n5(n5)
+#           /---|
+#          |     \-tree2n6(n6)
+#      /---|
+#     |    |     /-tree2n8(n8)
+# ----|     \---|
+#     |          \-tree2n9(n9)
+#     |
+#      \-tree2n2(n2)
+# node tree2n1 is associated with None OTU
+# node tree2n3 is associated with None OTU
+# node tree2n2 is associated with t1 OTU
+# node tree2n4 is associated with None OTU
+# node tree2n7 is associated with None OTU
+# node tree2n5 is associated with t3 OTU
+# node tree2n6 is associated with t2 OTU
+# node tree2n8 is associated with t5 OTU
+# node tree2n9 is associated with t4 OTU
diff --git a/doc/_downloads/phyloxml_from_scratch.py b/doc/_downloads/phyloxml_from_scratch.py
new file mode 100644
index 0000000..4ce568a
--- /dev/null
+++ b/doc/_downloads/phyloxml_from_scratch.py
@@ -0,0 +1,80 @@
+from ete3 import Phyloxml, phyloxml
+import random
+project = Phyloxml()
+
+# Creates a random tree
+phylo = phyloxml.PhyloxmlTree()
+phylo.populate(5, random_branches=True)
+phylo.phyloxml_phylogeny.set_name("test_tree")
+# Add the tree to the phyloxml project
+project.add_phylogeny(phylo)
+
+print project.get_phylogeny()[0]
+
+#          /-iajom
+#     /---|
+#    |     \-wiszh
+#----|
+#    |     /-xrygw
+#     \---|
+#         |     /-gjlwx
+#          \---|
+#               \-ijvnk
+
+# Trees can be operated as normal ETE trees
+phylo.show()
+
+
+# Export the project as phyloXML format
+project.export()
+
+# <phy:Phyloxml xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd">
+#     <phy:phylogeny>
+#         <phy:name>test_tree</phy:name>
+#         <phy:clade>
+#             <phy:name>NoName</phy:name>
+#             <phy:branch_length>0.000000e+00</phy:branch_length>
+#             <phy:confidence type="branch_support">1.0</phy:confidence>
+#             <phy:clade>
+#                 <phy:name>NoName</phy:name>
+#                 <phy:branch_length>1.665083e-01</phy:branch_length>
+#                 <phy:confidence type="branch_support">0.938507980435</phy:confidence>
+#                 <phy:clade>
+#                     <phy:name>NoName</phy:name>
+#                     <phy:branch_length>1.366655e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.791888248212</phy:confidence>
+#                     <phy:clade>
+#                         <phy:name>ojnfg</phy:name>
+#                         <phy:branch_length>2.194209e-01</phy:branch_length>
+#                         <phy:confidence type="branch_support">0.304705977822</phy:confidence>
+#                     </phy:clade>
+#                     <phy:clade>
+#                         <phy:name>qrfnz</phy:name>
+#                         <phy:branch_length>5.235437e-02</phy:branch_length>
+#                         <phy:confidence type="branch_support">0.508533765418</phy:confidence>
+#                     </phy:clade>
+#                 </phy:clade>
+#                 <phy:clade>
+#                     <phy:name>shngq</phy:name>
+#                     <phy:branch_length>9.740958e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.642187390965</phy:confidence>
+#                 </phy:clade>
+#             </phy:clade>
+#             <phy:clade>
+#                 <phy:name>NoName</phy:name>
+#                 <phy:branch_length>3.806412e-01</phy:branch_length>
+#                 <phy:confidence type="branch_support">0.383619811911</phy:confidence>
+#                 <phy:clade>
+#                     <phy:name>vfmnk</phy:name>
+#                     <phy:branch_length>6.495163e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.141298879514</phy:confidence>
+#                 </phy:clade>
+#                 <phy:clade>
+#                     <phy:name>btexi</phy:name>
+#                     <phy:branch_length>5.704955e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.951876078012</phy:confidence>
+#                 </phy:clade>
+#             </phy:clade>
+#         </phy:clade>
+#     </phy:phylogeny>
+# </phy:Phyloxml>
diff --git a/doc/_downloads/phyloxml_parser.py b/doc/_downloads/phyloxml_parser.py
new file mode 100644
index 0000000..0deeb4c
--- /dev/null
+++ b/doc/_downloads/phyloxml_parser.py
@@ -0,0 +1,16 @@
+from ete3 import Phyloxml
+project = Phyloxml()
+project.build_from_file("apaf.xml")
+
+# Each tree contains the same methods as a PhyloTree object
+for tree in project.get_phylogeny():
+    print tree
+    # you can even use rendering options
+    tree.show()
+    # PhyloXML features are stored in the phyloxml_clade attribute
+    for node in tree:
+        print "Node name:", node.name
+        for seq in node.phyloxml_clade.get_sequence():
+            for domain in seq.domain_architecture.get_domain():
+                domain_data = [domain.valueOf_, domain.get_from(), domain.get_to()]
+                print "  Domain:", '\t'.join(map(str, domain_data))
diff --git a/doc/_downloads/species_aware_phylogenies.py b/doc/_downloads/species_aware_phylogenies.py
new file mode 100644
index 0000000..dc1312b
--- /dev/null
+++ b/doc/_downloads/species_aware_phylogenies.py
@@ -0,0 +1,84 @@
+from ete3 import PhyloTree
+# Reads a phylogenetic tree (using default species name encoding)
+t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
+#                              /-Hsa_001
+#                    /--------|
+#                   |          \-Ptr_001
+#          /--------|
+#         |         |          /-Cfa_001
+#         |          \--------|
+#---------|                    \-Mms_001
+#         |
+#         |          /-Dme_001
+#          \--------|
+#                    \-Dme_002
+#
+# Prints current leaf names and species codes
+print "Deafult mode:"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Dme
+# node: Dme_002 Species name: Dme
+# node: Hsa_001 Species name: Hsa
+# node: Ptr_001 Species name: Ptr
+# node: Cfa_001 Species name: Cfa
+# node: Mms_001 Species name: Mms
+#
+# We can also use our own leaf name parsing function to obtain species
+# names. All we need to do is create a python function that takes
+# node's name as argument and return its corresponding species name.
+def get_species_name(node_name_string):
+    # Species code is the first part of leaf name (separated by an
+    #  underscore character)
+    spcode = node_name_string.split("_")[0]
+    # We could even translate the code to complete names
+    code2name = {
+      "Dme":"Drosophila melanogaster",
+      "Hsa":"Homo sapiens",
+      "Ptr":"Pan troglodytes",
+      "Mms":"Mus musculus",
+      "Cfa":"Canis familiaris"
+      }
+    return code2name[spcode]
+# Now, let's ask the tree to use our custom species naming function
+t.set_species_naming_function(get_species_name)
+print "Custom mode:"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Drosophila melanogaster
+# node: Dme_002 Species name: Drosophila melanogaster
+# node: Hsa_001 Species name: Homo sapiens
+# node: Ptr_001 Species name: Pan troglodytes
+# node: Cfa_001 Species name: Canis familiaris
+# node: Mms_001 Species name: Mus musculus
+#
+# Of course, you can disable the automatic generation of species
+# names. To do so, you can set the species naming function to
+# None. This is useful to set the species names manually or for
+# reading them from a newick file. Other wise, species attribute would
+# be overwriten
+mynewick = """
+(((Hsa_001[&&NHX:species=Human],Ptr_001[&&NHX:species=Chimp]),
+(Cfa_001[&&NHX:species=Dog],Mms_001[&&NHX:species=Mouse])),
+(Dme_001[&&NHX:species=Fly],Dme_002[&&NHX:species=Fly]));
+"""
+t = PhyloTree(mynewick, sp_naming_function=None)
+print "Disabled mode (manual set):"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Fly
+# node: Dme_002 Species name: Fly
+# node: Hsa_001 Species name: Human
+# node: Ptr_001 Species name: Chimp
+# node: Cfa_001 Species name: Dog
+# node: Mms_001 Species name: Mouse
+#
+# Of course, once this info is available you can query any internal
+# node for species covered.
+human_mouse_ancestor = t.get_common_ancestor("Hsa_001", "Mms_001")
+print "These are the species under the common ancestor of Human & Mouse"
+print '\n'.join( human_mouse_ancestor.get_species() )
+# Mouse
+# Chimp
+# Dog
+# Human
diff --git a/doc/_downloads/tolweb.xml b/doc/_downloads/tolweb.xml
new file mode 100644
index 0000000..d94a492
--- /dev/null
+++ b/doc/_downloads/tolweb.xml
@@ -0,0 +1,48 @@
+<nex:nexml 
+  generator="Bio::Phylo::Project v.0.21_1265" 
+  version="0.9" 
+  xmlns="http://www.nexml.org/2009" 
+  xmlns:dc="http://purl.org/dc/elements/1.1/contributor" 
+  xmlns:dcterms="http://purl.org/dc/terms/" 
+  xmlns:nex="http://www.nexml.org/2009" 
+  xmlns:owl="http://www.w3.org/2002/07/owl#" 
+  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+  xmlns:tba="http://tolweb.org/tree/home.pages/downloadtree.html#attributes" 
+  xmlns:tbe="http://tolweb.org/tree/home.pages/downloadtree.html#elements" 
+  xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+  xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"> 
+  <otus id="otus26"> 
+    <otu id="otu27" label="Eurysphindus"/> 
+  </otus> 
+  <trees about="#trees22" id="trees22" otus="otus26"> 
+    <meta content="117855" datatype="xsd:integer" id="meta24" property="dcterms:identifier" xsi:type="nex:LiteralMeta"/> 
+    <meta href="http://tolweb.org/117855" id="meta25" rel="owl:sameAs" xsi:type="nex:ResourceMeta"/> 
+    <tree id="tree1" xsi:type="nex:IntTree"> 
+      <node about="#node2" id="node2" root="true"> 
+        <meta content="117851" datatype="xsd:integer" id="meta21" property="tba:ID" xsi:type="nex:LiteralMeta"/> 
+      </node> 
+      <node about="#node3" id="node3" label="Eurysphindus" otu="otu27"> 
+        <meta content="" datatype="xsd:string" id="meta4" property="dc:description" xsi:type="nex:LiteralMeta"/> 
+        <meta content="Leconte" datatype="xsd:string" id="meta5" property="tbe:AUTHORITY" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1878" datatype="xsd:integer" id="meta6" property="tbe:AUTHDATE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="117851" datatype="xsd:integer" id="meta7" property="tba:ANCESTORWITHPAGE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta8" property="tba:CHILDCOUNT" xsi:type="nex:LiteralMeta"/> 
+        <meta content="null" datatype="xsd:string" id="meta9" property="tba:COMBINATION_DATE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta10" property="tba:CONFIDENCE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta11" property="tba:EXTINCT" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta12" property="tba:HASPAGE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="117855" datatype="xsd:integer" id="meta13" property="tba:ID" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta14" property="tba:INCOMPLETESUBGROUPS" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta15" property="tba:IS_NEW_COMBINATION" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta16" property="tba:ITALICIZENAME" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta17" property="tba:LEAF" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta18" property="tba:PHYLESIS" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta19" property="tba:SHOWAUTHORITY" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta20" property="tba:SHOWAUTHORITYCONTAINING" xsi:type="nex:LiteralMeta"/> 
+      </node> 
+      <edge id="edge3" source="node2" target="node3"/> 
+    </tree> 
+  </trees> 
+</nex:nexml> 
\ No newline at end of file
diff --git a/doc/_downloads/trees.xml b/doc/_downloads/trees.xml
new file mode 100644
index 0000000..dbaa85e
--- /dev/null
+++ b/doc/_downloads/trees.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 
+	For an explanation of the structure of the root element 
+	and the taxa element refer to the file taxa.xml.
+-->
+<nex:nexml 
+	version="0.9" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:xml="http://www.w3.org/XML/1998/namespace"
+	xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"
+	xmlns:nex="http://www.nexml.org/2009"
+	xmlns:cdao="http://www.cs.nmsu.edu/~epontell/CURRENT.owl#"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns="http://www.nexml.org/2009">	        
+	<otus id="tax1" label="RootTaxaBlock">
+		<otu id="t1"/>
+		<otu id="t2"/>
+		<otu id="t3"/>
+		<otu id="t4"/>
+		<otu id="t5"/>
+	</otus>
+	<!--
+		The trees block is structured as follows:
+			* the root element takes the same attributes as 
+			  characters elements do: an id, a reference
+			  to a taxa element, and various optional
+			  attributes.
+			* the trees element contains one or more tree/network
+			  elements, which are the same structure as
+			  GraphML documents (http://graphml.graphdrawing.org/),
+			  with the following extentions:
+			  	- there are two subclasses (xsi:type="nex:Tree" and
+			  	  xsi:type="nex:Network"), which only differ in the
+			  	  constrained in-degree of node elements (one for 
+			  	  trees, one or more for networks)
+			  	- node elements can have an additional taxon attribute
+			  	  to refer to a taxon element defined earlier 
+			  	- edge elements can have a 'length' attribute
+			  	  to specify edge length/weight, which is a 
+			  	  IEEE 754-1985 compliant floating point number on 
+			  	  trees of type FloatTree.
+	-->
+	<trees otus="tax1" id="Trees" label="TreesBlockFromXML">
+		<!--
+			A tree with float edges. 
+		-->
+		<tree id="tree1" xsi:type="nex:FloatTree" label="tree1">
+			<node id="n1" label="n1" root="true"/>
+			<node id="n2" label="n2" otu="t1"/>
+			<node id="n3" label="n3"/>
+			<node id="n4" label="n4" about="#n4">
+			    <meta 
+			        id="dict1" 
+			        property="cdao:has_tag" 
+			        content="true" 
+			        xsi:type="nex:LiteralMeta"
+			        datatype="xsd:boolean"/>
+			</node>
+			<node id="n5" label="n5" otu="t3"/>
+			<node id="n6" label="n6" otu="t2"/>
+			<node id="n7" label="n7"/>
+			<node id="n8" label="n8" otu="t5"/>
+			<node id="n9" label="n9" otu="t4"/>
+			<edge source="n1" target="n3" id="e1" length="0.34534"/>			
+			<edge source="n1" target="n2" id="e2" length="0.4353"/>
+			<edge source="n3" target="n4" id="e3" length="0.324"/>
+			<edge source="n3" target="n7" id="e4" length="0.3247"/>
+			<edge source="n4" target="n5" id="e5" length="0.234"/>
+			<edge source="n4" target="n6" id="e6" length="0.3243"/>
+			<edge source="n7" target="n8" id="e7" length="0.32443"/>
+			<edge source="n7" target="n9" id="e8" length="0.2342"/>
+		</tree>
+		<!--  
+			A tree with int edges.
+		-->
+		<tree id="tree2" xsi:type="nex:IntTree" label="tree2">
+			<node id="tree2n1" label="n1"/>
+			<node id="tree2n2" label="n2" otu="t1"/>
+			<node id="tree2n3" label="n3"/>
+			<node id="tree2n4" label="n4">
+			    <meta 
+			    	id="tree2dict1" 
+			        property="cdao:has_tag" 
+			        content="true" 
+			        xsi:type="nex:LiteralMeta"
+			        datatype="xsd:boolean"/>
+			</node>
+			<node id="tree2n5" label="n5" otu="t3"/>
+			<node id="tree2n6" label="n6" otu="t2"/>
+			<node id="tree2n7" label="n7"/>
+			<node id="tree2n8" label="n8" otu="t5"/>
+			<node id="tree2n9" label="n9" otu="t4"/>
+			<edge source="tree2n1" target="tree2n3" id="tree2e1" length="1"/>			
+			<edge source="tree2n1" target="tree2n2" id="tree2e2" length="2"/>
+			<edge source="tree2n3" target="tree2n4" id="tree2e3" length="3"/>
+			<edge source="tree2n3" target="tree2n7" id="tree2e4" length="1"/>
+			<edge source="tree2n4" target="tree2n5" id="tree2e5" length="2"/>
+			<edge source="tree2n4" target="tree2n6" id="tree2e6" length="1"/>
+			<edge source="tree2n7" target="tree2n8" id="tree2e7" length="1"/>
+			<edge source="tree2n7" target="tree2n9" id="tree2e8" length="1"/>
+		</tree>	
+		<!--  
+			A network with int edges.
+		-->
+		<network id="tree3" xsi:type="nex:IntNetwork" label="tree2">
+			<node id="tree3n1" label="tree3n1"/>
+			<node id="tree3n2" label="tree3n2" otu="t1"/>
+			<node id="tree3n3" label="tree3n3"/>
+			<node id="tree3n4" label="tree3n4"/>
+			<node id="tree3n5" label="tree3n5" otu="t3"/>
+			<node id="tree3n6" label="tree3n6" otu="t2"/>
+			<node id="tree3n7" label="tree3n7"/>
+			<node id="tree3n8" label="tree3n8" otu="t5"/>
+			<node id="tree3n9" label="tree3n9" otu="t4"/>
+			<edge source="tree3n1" target="tree3n3" id="tree3e1" length="1"/>			
+			<edge source="tree3n1" target="tree3n2" id="tree3e2" length="2"/>
+			<edge source="tree3n3" target="tree3n4" id="tree3e3" length="3"/>
+			<edge source="tree3n3" target="tree3n7" id="tree3e4" length="1"/>
+			<edge source="tree3n4" target="tree3n5" id="tree3e5" length="2"/>
+			<edge source="tree3n4" target="tree3n6" id="tree3e6" length="1"/>
+			<edge source="tree3n7" target="tree3n6" id="tree3e7" length="1"/> <!-- extra edge -->
+			<edge source="tree3n7" target="tree3n8" id="tree3e9" length="1"/>
+			<edge source="tree3n7" target="tree3n9" id="tree3e8" length="1"/>
+		</network>				
+	</trees>
+</nex:nexml>
diff --git a/doc/_images/M2_curve.png b/doc/_images/M2_curve.png
new file mode 100644
index 0000000..7aff467
Binary files /dev/null and b/doc/_images/M2_curve.png differ
diff --git a/doc/_images/M2_default.png b/doc/_images/M2_default.png
new file mode 100644
index 0000000..5b0224a
Binary files /dev/null and b/doc/_images/M2_default.png differ
diff --git a/doc/_images/M2_sticks.png b/doc/_images/M2_sticks.png
new file mode 100644
index 0000000..d79af3a
Binary files /dev/null and b/doc/_images/M2_sticks.png differ
diff --git a/doc/_images/M2_super_profesional.png b/doc/_images/M2_super_profesional.png
new file mode 100644
index 0000000..a92c575
Binary files /dev/null and b/doc/_images/M2_super_profesional.png differ
diff --git a/doc/_images/barcharts.png b/doc/_images/barcharts.png
new file mode 100644
index 0000000..d62bb8a
Binary files /dev/null and b/doc/_images/barcharts.png differ
diff --git a/doc/_images/bubble_map.png b/doc/_images/bubble_map.png
new file mode 100644
index 0000000..01dbcd6
Binary files /dev/null and b/doc/_images/bubble_map.png differ
diff --git a/doc/_images/bubbles_validation.png b/doc/_images/bubbles_validation.png
new file mode 100644
index 0000000..ba89f41
Binary files /dev/null and b/doc/_images/bubbles_validation.png differ
diff --git a/doc/_images/face_borders.png b/doc/_images/face_borders.png
new file mode 100644
index 0000000..683e259
Binary files /dev/null and b/doc/_images/face_borders.png differ
diff --git a/doc/_images/face_positions.png b/doc/_images/face_positions.png
new file mode 100644
index 0000000..2b624d2
Binary files /dev/null and b/doc/_images/face_positions.png differ
diff --git a/doc/_images/fb_clean.png b/doc/_images/fb_clean.png
new file mode 100644
index 0000000..de8482b
Binary files /dev/null and b/doc/_images/fb_clean.png differ
diff --git a/doc/_images/fb_default.png b/doc/_images/fb_default.png
new file mode 100644
index 0000000..ea7dcc6
Binary files /dev/null and b/doc/_images/fb_default.png differ
diff --git a/doc/_images/float_piechart.png b/doc/_images/float_piechart.png
new file mode 100644
index 0000000..5afb49d
Binary files /dev/null and b/doc/_images/float_piechart.png differ
diff --git a/doc/_images/img_faces.png b/doc/_images/img_faces.png
new file mode 100644
index 0000000..f0ecc54
Binary files /dev/null and b/doc/_images/img_faces.png differ
diff --git a/doc/_images/item_faces.png b/doc/_images/item_faces.png
new file mode 100644
index 0000000..57a498c
Binary files /dev/null and b/doc/_images/item_faces.png differ
diff --git a/doc/_images/node_background.png b/doc/_images/node_background.png
new file mode 100644
index 0000000..8454f21
Binary files /dev/null and b/doc/_images/node_background.png differ
diff --git a/doc/_images/node_style.png b/doc/_images/node_style.png
new file mode 100644
index 0000000..40ae31a
Binary files /dev/null and b/doc/_images/node_style.png differ
diff --git a/doc/_images/node_style_red_and_blue_nodes.png b/doc/_images/node_style_red_and_blue_nodes.png
new file mode 100644
index 0000000..bad4f51
Binary files /dev/null and b/doc/_images/node_style_red_and_blue_nodes.png differ
diff --git a/doc/_images/node_style_red_nodes.png b/doc/_images/node_style_red_nodes.png
new file mode 100644
index 0000000..7bfe9cc
Binary files /dev/null and b/doc/_images/node_style_red_nodes.png differ
diff --git a/doc/_images/phylotree.png b/doc/_images/phylotree.png
new file mode 100644
index 0000000..1da59eb
Binary files /dev/null and b/doc/_images/phylotree.png differ
diff --git a/doc/_images/profile_faces.png b/doc/_images/profile_faces.png
new file mode 100644
index 0000000..8ece2b2
Binary files /dev/null and b/doc/_images/profile_faces.png differ
diff --git a/doc/_images/rotated_faces.png b/doc/_images/rotated_faces.png
new file mode 100644
index 0000000..75ba647
Binary files /dev/null and b/doc/_images/rotated_faces.png differ
diff --git a/doc/_images/rotated_tree.png b/doc/_images/rotated_tree.png
new file mode 100644
index 0000000..7f353fc
Binary files /dev/null and b/doc/_images/rotated_tree.png differ
diff --git a/doc/_images/scale_x.png b/doc/_images/scale_x.png
new file mode 100644
index 0000000..71a8415
Binary files /dev/null and b/doc/_images/scale_x.png differ
diff --git a/doc/_images/scale_y.png b/doc/_images/scale_y.png
new file mode 100644
index 0000000..8d74cb9
Binary files /dev/null and b/doc/_images/scale_y.png differ
diff --git a/doc/_images/semi_circular_tree.png b/doc/_images/semi_circular_tree.png
new file mode 100644
index 0000000..8e54980
Binary files /dev/null and b/doc/_images/semi_circular_tree.png differ
diff --git a/doc/_images/seq_motif_faces.png b/doc/_images/seq_motif_faces.png
new file mode 100644
index 0000000..cd8a5b3
Binary files /dev/null and b/doc/_images/seq_motif_faces.png differ
diff --git a/doc/_images/seqmotif.png b/doc/_images/seqmotif.png
new file mode 100644
index 0000000..2d20d96
Binary files /dev/null and b/doc/_images/seqmotif.png differ
diff --git a/doc/_images/show_info.png b/doc/_images/show_info.png
new file mode 100644
index 0000000..312162f
Binary files /dev/null and b/doc/_images/show_info.png differ
diff --git a/doc/_images/svg_colors.png b/doc/_images/svg_colors.png
new file mode 100644
index 0000000..fc8602f
Binary files /dev/null and b/doc/_images/svg_colors.png differ
diff --git a/doc/_images/tree_faces.png b/doc/_images/tree_faces.png
new file mode 100644
index 0000000..31a6289
Binary files /dev/null and b/doc/_images/tree_faces.png differ
diff --git a/doc/_images/treeko_logo.png b/doc/_images/treeko_logo.png
new file mode 100644
index 0000000..1a8aa13
Binary files /dev/null and b/doc/_images/treeko_logo.png differ
diff --git a/doc/_sources/about.txt b/doc/_sources/about.txt
new file mode 100644
index 0000000..c6851b2
--- /dev/null
+++ b/doc/_sources/about.txt
@@ -0,0 +1,18 @@
+*****************
+About ETE
+*****************
+
+ETE is currently developed by the `Comparative genomics group
+<http://gabaldonlab.crg.es/>`_ at the `Centre for Genomic Regulation
+<http://www.crg.es/>`_
+
+You can cite ETE as:
+
+Jaime Huerta-Cepas, Joaquín Dopazo and Toni Gabaldón. **ETE: a python
+Environment for Tree Exploration.** *BMC Bioinformatics 2010, 11:24.*
+
+People using ETE 
+==================
+
+.. warning::
+   UNDER CONSTRUCTION
diff --git a/doc/_sources/changelog/changelog2.1.txt b/doc/_sources/changelog/changelog2.1.txt
new file mode 100644
index 0000000..e4b1940
--- /dev/null
+++ b/doc/_sources/changelog/changelog2.1.txt
@@ -0,0 +1,78 @@
+What's new in ETE 2.1
+*********************************
+
+.. currentmodule:: ete3
+
+* A basic standalone tree visualization program called "ete3" is now
+  installed along with the package. 
+
+* The drawing engine has been completely rewritten to provide the
+  following new features:
+
+  * Added :class:`TreeStyle` class allowing to set the following
+
+    * Added **circular tree drawing** mode
+    * Added tree *title face block* (Text or images that rendered on top of the tree)
+    * Added tree *legend face block* (Text or images that rendered as image legend)
+    * Added support for *tree rotation and orientation*
+    * Possibility of drawing *aligned faces as a table*
+    * Added header and footer regions for aligned faces.
+    * And more! Check :class:`TreeStyle` documentation
+  * Added new face positions **float**, **branch-top** and
+    **branch-bottom**. See tutorial (:ref:`sec:node_faces`) for more details.
+
+  * Added several :class:`Face` attributes:
+
+    * face border
+    * face background color
+    * left, right, top and bottom margins
+    * face opacity
+    * horizontal and vertical alignment (useful when faces are rendered as table)
+  * Added support for predefined :class:`NodeStyle`, which can be set
+    outside the layout function (allows to save and export image rendering info)
+  * Added new face types:
+     * :class:`CircleFace` (basic circle/sphere forms)
+     * :class:`TreeFace` (trees within trees)
+     * :class:`StaticItemFace` and :class:`DynamicItemFace` (create custom and interactive QtGraphicsItems)
+  * Improved faces:
+     * :class:`AttrFace` accepts prefix and suffix text, as well as a
+       text formatter function. :attr:`fstyle` argument can be set to
+       ``italic``
+     * :class:`TextFace`: :attr:`fstyle` argument  can be set to ``italic``
+  * Save and export images
+     * Added full support for SVG image rendering  
+     * Added more options to the :func:`TreeNode.render` function to
+       control image size and resolution
+  * Added support for :data:`SVG_COLORS` names in faces and node styles
+* Core methods:
+   * Added :func:`TreeNode.copy`:  returns an exact and independent copy of node and all its attributes
+   * Added :func:`TreeNode.convert_to_ultrametric`: converts all branch lengths to allow leaves to be equidistant to root
+   * Added :func:`TreeNode.sort_descendants`: sort tree branches according to node names.
+   * Added :func:`TreeNode.ladderize`: sort tree branches according to partition size
+   * Added :func:`TreeNode.get_partitions`: return the set of all possible partitions grouping leaf nodes
+   * Tree nodes can now be fully exported using cPickle 
+   * Newick parser can read and export branch distances and support values using scientific notation
+   * :func:`TreeNode.swap_childs` method has changed to :func:`TreeNode.swap_children`
+* Added :mod:`ete3.nexml` module (read and write nexml format)
+* Added :mod:`ete3.phyloxml` module (read and write phyloxml format)
+* Added :mod:`ete3.webplugin` module: Allows to create interactive web tree applications 
+* Tree visualization GUI checks now for newer version of the ETE package.
+* Added :class:`PhylomeDB3Connector`
+                         
+* Added :func:`PhyloNode.get_farthest_oldest_node` function, which allows to find the best outgroup node in a tree, even if it is an internal node.
+* Bug Fixes and improvements: 
+   * Fix: :func:`TreeNode.get_common_ancestor` accepts a single argument (node or list of nodes) instead of a succession or nodes. It can also return the path of each node to the parent.
+   * Fix: Fast scroll based zoom-in was producing tree image inversions
+   * Fix: Phylip parser does not truncate long names by default
+   * Fix: "if not node" syntax was using a len(node) test, which made
+     it totally inefficient. Now, the same expression returns always *True*
+   * Improvement: Traversing methods are now much faster (specially preorder and levelorder)
+   * Improvement: Faster populate function (added possibility of random and non-random branch lengths)
+   * Improvement: Faster prune function
+   * Improvement: unicode support for tree files
+   * Improvement: Added newick support for scientific notation in branch lengths
+
+* Improved documentation and examples:
+   * Online and PDF tutorial 
+   * Better library reference 
+   * A set of examples is now provided with the installation package and `here <http://etetoolkit.org/releases/ete3/examples-ete3.tar.gz>`_
diff --git a/doc/_sources/changelog/changelog2.2.txt b/doc/_sources/changelog/changelog2.2.txt
new file mode 100644
index 0000000..3643423
--- /dev/null
+++ b/doc/_sources/changelog/changelog2.2.txt
@@ -0,0 +1,240 @@
+What's new in ETE 2.2
+*********************************
+.. currentmodule:: ete3
+
+BUGFIXES
+==========
+
+* Fixes in NeXML parser and exporting functions
+* Fixed 'paste newick' functionality on the GUI
+* Fixed :func:`PhyloNode.is_monophyletic` and moved to
+  :func:`TreeNode.check_monophyly`.
+* Fixed consistency issued in :func:`TreeNode.sort_descendants` function. 
+
+SCRIPTS
+==========
+* Improvements in the standalone visualization script (a.k.a. ete3) 
+* Added the :ref:`etree2orthoxml script <etree2orthoxml>`, which
+  provides conversion between phylogenetic tree and the orthoXML
+  format
+
+NEW MODULES
+====================
+* New :class:`EvolNode` tree object type is available as a part of
+  adaptation-test extension recently developed by François Serra (see
+  :doc:`../tutorial/tutorial_adaptation` in the tutorial).
+
+  .. figure:: ../ex_figures/M2_super_profesional.png
+            :scale: 100 %
+
+NEW FEATURES
+====================
+
+* **News in core Tree instances:**
+
+  * Added :func:`TreeNode.robinson_foulds` distance to compare the
+    topology of two trees (i.e. tree.robinson_foulds(tree2)). It
+    includes automatic pruning to compare trees of different
+    sizes. :ref:`See tutorial and examples <robinson_foulds>`
+
+  * Added new options to :func:`TreeNode.copy` function, allowing
+    faster methods to duplicate tree node instances.
+    :ref:`See tutorial and examples <copying_trees>`
+
+  * Added :attr:`preserve_branch_length` argument to
+    :func:`TreeNode.prune` and :func:`TreeNode.delete`, which allows
+    to remove nodes from a tree while keeping original branch length
+    distances among the remaining nodes.
+
+  * Added :func:`TreeNode.resolve_polytomy` function to convert
+    multifurcated nodes into an arbitrary structure of binary split
+    nodes with distance. :ref:`See tutorial and examples
+    <resolve_polytomy>`
+
+  * Added :func:`TreeNode.get_cached_content` function, which returns
+    a dictionary linking each node instance with its leaf
+    content. Such a dictionary might be used as a cache to speed up
+    functions that require intensive use of node
+    traversing. :ref:`See tutorial and examples <cache_node_content>`
+  
+  * Improved :func:`TreeNode.get_ascii` function for text-based
+    visualization of trees. A new `attributes` argument can be passed
+    to display node attributes within the ASCII tree representation.
+
+    :: 
+
+        from ete3 import Tree
+        t = Tree("((A, B)Internal_1:0.7, (C, D)Internal_2:0.5)root:1.3;", format=1)
+        t.add_features(size=4)
+        print t.get_ascii(attributes=["name", "dist", "size"])
+        #
+        #                            /-A, 0.0
+        #             /Internal_1, 0.7
+        #            |               \-B, 0.0
+        # -root, 1.3, 4
+        #            |               /-C, 0.0
+        #             \Internal_2, 0.5
+        #                            \-D, 0.0
+        #
+
+
+  * Random branch length and support values generation is now available
+    for the :func:`TreeNode.populate` function.
+
+  * a new argument :attr:`is_leaf_fn` is available for a number of
+    traversing functions, thus allowing to provide custom stopping
+    criteria when browsing a tree. This is, any node matching the
+    function provided through the :attr:`is_leaf_fn` argument will be
+    temporarily considered as a terminal/leaf node by the traversing
+    function (tree will look as a pruned version of itself).
+    :ref:`See tutorial and examples <is_leaf_fn>`
+
+  * Added :func:`TreeNode.iter_ancestors` and
+    :func:`TreeNode.get_ancestors` functions.
+
+  * Added :func:`TreeNode.iter_prepostorder` tree node iterator.
+
+  * Newick parser accepts now the creation of single node trees. For
+    example, a text string such as :attr:`"node1;"` will be parsed as
+    a single tree node whose name is :attr:`node1`. By contrast, the
+    newick string :attr:`(node1);` will be interpreted as an unnamed
+    root node plus a single child named :attr:`name1`.
+
+  * :func:`TreeNode.write` accepts now a :attr:`format_root_node`
+    argument to export root node features as a part of the newick
+    string.
+
+  * The new :func:`TreeNode.check_monophyly` method allows to check
+    if a node is mono, poly or paraphyletic for a given attribute and
+    values (i.e. grouped species). Although monophyly is actually a
+    phylogenetic concept, the idea can be applied to any tree, so any
+    topology could be queried for the monophyly of certain attribute
+    values. If not monophyletic, the method will return also the type
+    of relationship connecting the provided values (para- or
+    poly-phyletic). :ref:`See tutorial and examples <check_monophyly>`
+
+  * New :func:`TreeNode.get_monophyletic` method that returns a list
+    of nodes in a tree matching a custom monophyly criteria.
+
+
+* **News PhyloTree instances:**
+
+  * Added :func:`PhyloNode.get_speciation_trees` method, which returns
+    all possible species topologies present in a gene family tree as
+    described in `Treeko <http://treeko.cgenomics.org>`_. :ref:`See tutorial and examples <treeko_trees>`
+
+
+    .. seealso:: .. figure:: ../treeko_logo.png 
+                    :scale: 70% 
+
+      `TreeKO: a duplication-aware algorithm for the comparison of phylogenetic trees. <http://www.ncbi.nlm.nih.gov/pubmed/21335609>`_
+
+      Marcet-Houben M, Gabaldón T.
+
+      Nucleic Acids Res. 2011 May;39(10):e66. doi: 10.1093/nar/gkr087. 
+
+
+  * Added :func:`PhyloNode.split_by_dups` method, which returns a list
+    of partial subtrees resulting from splitting a tree at duplication
+    nodes. :ref:`See tutorial and examples <split_by_dup>`
+
+  * Added :func:`PhyloNode.collapse_lineage_specific_expansions` method,
+    which returns a pruned version of a tree, where nodes representing
+    lineage specific expansions are converted into a single leaf node. 
+    :ref:`See tutorial and examples <collapse_expansions>`
+
+* **News on sequence and multiple sequence alignment parsing:** 
+
+  * added the option to disable the automatic correction of duplicated
+    names when loading :class:`SeqGroup` data from phylip and fasta
+    files.
+
+* **News on tree visualization and image rendering:**
+
+  * node style attributes can now be modified without the need of
+    initialization by directly accessing the
+    :attr:`TreeNode.img_style` attribute.
+
+  * Multiple layout functions can now be provided to combine their
+    functionality. This way, you can keep separate styling templates
+    and combine them as necessary.
+
+     :: 
+     
+       from ete3 import TreeStyle
+        
+       def color_leaves(node):
+           if node.is_leaf():
+              node.img_style["fgcolor"] = "red"
+        
+       def size_internal(node):
+           if not node.is_leaf():
+              node.img_style["size"] = 15
+        
+       ts = TreeStyle()
+       # provide a list of layout functions, instead of a single one
+       ts.layout_fn = [color_leaves, size_internal]
+     
+
+  * :attr:`COLOR_SCHEMES` and :attr:`SVG_COLORS` dictionaries are
+    provided for easy access to color codes and several predefined
+    color schemes. In addition, a :func:`random_color` function is
+    also available as a generator of RGB colors (where saturation and
+    lightness can be fixed).
+
+    :: 
+
+        from ete3 import random_color, COLOR_SCHEMES, SVG_COLORS
+
+        # generate 20 random colors
+        node_colors = [random_color(s=0.4, l=4) for i in xrange(20)]
+
+
+* **News on node faces:**
+
+  * New :attr:`face.rotation` attribute, that allows to rotate
+    individual faces even when a global :attr:`treestyle.rotation` is
+    used.
+
+      .. figure:: ../../examples/treeview/rotated_faces.png
+              :scale: 75 %
+      
+  * Improved :class:`SequenceFace`: Sequence sites are now rendered
+    one by one, allowing interaction with each of them and getting rid
+    of the previous pixmap size limitation. Site image dimensions and
+    colours are now configurable.
+
+  * Added new :class:`SeqMotifFace` class, which represent an enriched
+    version of the former :class:`SequenceFace` instance. This new
+    face type allows to represent sequences as a succession of
+    domain/motif elements or to represent sequence positions as color
+    points. Gaps can also be taken into account and therefore shown as
+    as a black space or a flat line.  
+
+      .. figure:: ../../examples/treeview/seqmotif.png
+              :scale: 75 %
+
+
+  * Added :class:`PieChartFace` and :class:`BarChartFace` face types
+    for built-in representation of statistics attached to nodes.
+
+
+      .. figure:: ../../examples/treeview/float_piechart.png
+              :scale: 65 %
+
+      .. figure:: ../../examples/treeview/barcharts.png 
+              :scale: 55 %
+
+
+  * Improved :class:`ImgFace` class, now accepting on the fly image
+    scaling.
+
+* **News on the GUI**
+
+  * Allows image region selection.
+  * Allows zooming on selected regions or specific nodes (Z - zoomIn, X - zoomOut, R - focus region).
+  * :kbd:`C-c` will now interrupt the GUI application when started
+    from a terminal.
+  * Added keyboard-based node navigation (click on a node and play the
+    arrow keys).
+
diff --git a/doc/_sources/changelog/changelog2.3.txt b/doc/_sources/changelog/changelog2.3.txt
new file mode 100644
index 0000000..1526a37
--- /dev/null
+++ b/doc/_sources/changelog/changelog2.3.txt
@@ -0,0 +1,104 @@
+What's new in ETE 2.3 
+*********************************
+.. currentmodule:: ete2
+
+Update 2.3.2
+=================
+* added :func:`NCBITaxa.get_descendant_taxa` 
+* added :func:`NCBITaxa.get_common_names` 
+* `ete ncbiquery <http://etetoolkit.org/documentation/ete-ncbiquery/>`_: dump descendant taxa given a taxid or taxa name. new option `--descendants`_; renamed `--taxonomy`_ by `--tree`_ 
+* fixes <misaligned branches <https://github.com/jhcepas/ete/issues/113>`_ in ultrametric tree images using vt_line_width > 0
+* fixes <windows installation problem <https://github.com/jhcepas/ete/issues/114>`_
+
+New Modules
+=============
+
+tools
+--------
+
+A collection of `command line tools
+<http://etetoolkit.org/documentation/tools/>`_, implementing common tree
+operations has been added to the ETE core package. All tools are wrapped by the
+**ete** command, which should become available in your path after installation.
+
+* `ete build <http://etetoolkit.org/documentation/ete-build/>`_: Build phylogenetic trees using a using a number of predefined built-in gene-tree and species-tree workflows. `Watch example <http://etetoolkit.org/static/img/etebuild.gif>`_
+* `ete view <http://etetoolkit.org/documentation/ete-view/>`_: visualize and generate tree images directly form the command line. 
+* `ete compare <http://etetoolkit.org/documentation/ete-compare/>`_: compare tree topologies based on any node feature (i.e. name, species name, etc) using the Robinson-Foulds distance and edge compatibility scores. 
+* `ete ncbiquery <http://etetoolkit.org/documentation/ete-ncbiquery/>`_: query the ncbi taxonomy tree directly from the database.
+* **ete mod**: modify tree topologies directly from the command line. Allows rooting, sorting leaves, pruning and more
+* **ete annotate**: add features to the tree nodes by combining newick and text files.
+* **ete generate**: generate random trees, mostly for teaching and testing
+
+.. figure:: http://etetoolkit.org/static/img/ete23_demo.gif
+   :scale: 50%
+
+ncbi taxonomy
+---------------------
+
+The new **ncbi_taxonomy** module provides the class :class:`NCBITaxa`, which allows to query a locally parsed
+NCBI taxonomy database. It provides taxid-name translations, tree annotation tools
+and other handy functions. A brief tutorial and examples on how to use it is
+available `here <../tutorial/tutorial_ncbitaxonomy.html>`_
+
+
+New features
+=================
+
+**News in Tree instances**
+
+* added :func:`TreeNode.iter_edges` and :func:`TreeNode.get_edges`
+
+* added :func:`TreeNode.compare` function
+
+* added :func:`TreeNode.standardize` utility function to quickly get rid of  multifurcations, single-child nodes in a tree.  
+
+* added :func:`TreeNode.get_topology_id` utility function to get an unique identifier of a tree based on their content and topology. 
+
+* added :func:`TreeNode.expand_polytomies` 
+
+* improved :func:`TreeNode.robinson_foulds` function to auto expand polytomies, filter by branch support, and auto prune. 
+
+* improved :func:`TreeNode.check_monophyly` function now accepts unrooted trees as input
+
+* Default node is set to blank instead of the "NoName" string, which saves memory in very large trees. 
+
+* The branch length distance of root nodes is set to 0.0 by default.   
+
+* newick export allows to control the format of branch distance and support values. 
+
+* Tree and SeqGroup instances allow now to open gzipped files transparently. 
+
+..
+   **News in PhyloTree instances**
+
+   * added new reconciliation algorithm: Zmasek and Eddy's 2001, implemented by  ?????
+
+**News in the treeview module** 
+
+* improved SVG tree rendering 
+
+* improved :func:`random_color` function (a list of colors can be fetch with a single call)
+
+* improved :class:`SeqMotifFace` 
+
+* Added :class:`RectFace`
+
+* Added :class:`StackedBarFace`
+
+
+
+..
+   * Improved heatmap support???
+  
+Highlighted Bug Fixes 
+============================
+
+* `Newick parser <https://github.com/jhcepas/ete/issues/97>`_ is now more strict  when reading node names and branch distances, avoiding silent errors when  parsing node names containing illegal symbols (i.e. ][)(,: )
+* fixes several minor bugs when retrieving extra attributes in  :func:`PhyloNode.get_speciation_trees`. 
+* Tree viewer `crashes <https://github.com/jhcepas/ete/issues/94>`_ when redrawing after changing node properties. 
+* fixed `installation problem <https://github.com/jhcepas/ete/issues/82>`_ using pip. 
+* visualizing internal tree nodes as a circular tree `produce crashes <https://github.com/jhcepas/ete/issues/84>`_
+* `math domain error <https://github.com/jhcepas/ete/issues/98>`_ in SequencePlotFace. 
+* Fix likelihood calculation bug in EvolTree 
+* Fix `BarChartFace problem with negative numbers <https://github.com/jhcepas/ete/issues/109>`_
+* Fix problem that produced `TreeStyle attributes to be ignored in PhyloTree instances. <https://github.com/jhcepas/ete/issues/75>`_ 
diff --git a/doc/_sources/changelog/index.txt b/doc/_sources/changelog/index.txt
new file mode 100644
index 0000000..795909e
--- /dev/null
+++ b/doc/_sources/changelog/index.txt
@@ -0,0 +1,9 @@
+Changelog history
+******************
+
+.. toctree::
+
+   changelog2.3
+   changelog2.2
+   changelog2.1
+
diff --git a/doc/_sources/faqs/index.txt b/doc/_sources/faqs/index.txt
new file mode 100644
index 0000000..2739935
--- /dev/null
+++ b/doc/_sources/faqs/index.txt
@@ -0,0 +1,278 @@
+Frequently Asked Questions (FAQs)
+**********************************
+.. contents::
+
+
+General 
+============
+
+How do I use ETE?
+-----------------------------------------------------------------
+
+From 2.1 version, ETE includes a basic standalone program that can be
+used to quickly visualize your trees. Type ``ete3`` in a terminal to
+access the program. For instance:
+
+  ``# ete3 "((A,B),C);"``
+
+or 
+
+  ``# ete3 mytreefile.nw``
+
+
+However, ETE is not a standalone program. The ``ete3`` script is a
+very simple implementation and does not allow for fancy
+customization. The main goal of ETE is to provide a Python programming
+library, so you can create your own scripts to manipulate and
+visualize phylogenetic trees. Many examples are available `here
+<http:://etetoolkit.org/releases/ete3/examples-ete3.tar.gz>`_ and
+along with the ETE tutorial.
+
+
+Tree Browsing
+===============
+
+
+How do I find a leaf by its name?
+-----------------------------------------------------------------
+You can use the :func:`TreeNode.search_nodes` function: 
+
+:: 
+  
+  matching_nodes = tree.search_nodes(name="Tip1")
+  
+Or use the following shortcut (not that it assumes no duplicated
+names)
+
+:: 
+
+  node = tree&"Tip1"
+
+How do I visit all nodes within a tree?
+-----------------------------------------
+
+There are many ways, but this is the easiest one:
+
+:: 
+
+  for node in t.traverse():
+      print node.name
+
+Can I control the order in which nodes are visited?
+-----------------------------------------------------
+
+Yes, currently 3 strategies are implemented: pre-order, post-order and
+level-over. You can check the differences at
+http://packages.python.org/ete3/tutorial/tutorial_trees.html#traversing-browsing-trees
+      
+
+What's the difference between :func:`Tree.get_leaves` and :func:`Tree.iter_leaves`?
+--------------------------------------------------------------------------------------
+
+All methods starting with :attr:`get_` (i.e. get_leaves,
+get_descendants, etc.) return an independent list of items. This means
+that tree traversing is fully performed before returning the result.
+In contrast, iter\_ methods return one item at a time, saving memory
+and, increasing the performance of some operations.
+
+Note also that tree topology cannot be modified while iterating
+methods are being executed. This limitation does not apply for get\_
+methods.
+
+In addition, get\_ methods can be used to cache tree browsing paths
+(the order in which nodes must be visited), so the same tree
+traversing operations don't need to be repeated:
+
+::
+
+  nodes_in_preorder = tree.get_descendants("preorder")
+  for n in nodes_in_preorder:
+      pass # Do something
+  #
+  # (...)
+  #
+  for n in nodes_in_preorder:
+      pass # Do something else
+  
+
+Reading and writing tree
+===========================
+
+How do I load a tree with internal node names?
+-----------------------------------------------
+
+Newick format can be slightly different across programs. ETE allows to
+read and write several newick subformats, including support for
+internal node labeling:
+
+.. table::
+
+  ======  ============================================== =========================================================================================
+  FORMAT  DESCRIPTION                                         SAMPLE
+  ======  ============================================== =========================================================================================
+  0        flexible with support values                    ((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);
+  1        flexible with internal node names               ((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);
+  2        all branches + leaf names + internal supports   ((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);
+  3        all branches + all names                        ((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);
+  4        leaf branches + leaf names                      ((D:0.723274,F:0.567784),(B:0.279326,H:0.756049));
+  5        internal and leaf branches + leaf names         ((D:0.723274,F:0.567784):0.067192,(B:0.279326,H:0.756049):0.807788);
+  6        internal branches + leaf names                  ((D,F):0.067192,(B,H):0.807788);
+  7        leaf branches + all names                       ((D:0.723274,F:0.567784)E,(B:0.279326,H:0.756049)B);
+  8        all names                                       ((D,F)E,(B,H)B);
+  9        leaf names                                      ((D,F),(B,H));
+  100      topology only                                   ((,),(,)); 
+  ======  ============================================== =========================================================================================
+
+In order to load (or write) a tree with internal node names, you can
+specify format 1:
+
+:: 
+   
+   from ete3 import Tree
+   t = Tree("myTree.nw", format=1)
+
+   t.write(format=1)
+
+
+How do I export tree node annotations using the Newick format?
+---------------------------------------------------------------
+
+You will need to use the extended newick format. To do so, you only
+need to specify the name of the node attributes that must be exported
+when calling tree.write() function. For instance:
+
+::
+
+   tree.write(features=["name", "dist"])
+
+If you want all node features to be exported in the newick string, use
+"features=[]":
+
+::
+
+   tree.write(features=[])
+
+
+
+Tree visualization
+===================
+
+Can ETE draw circular trees?
+----------------------------------
+
+Yes, starting from version 2.1, ete can render trees in circular
+mode. Install the latest version from
+http://pypi.python.org/pypi/ete3 or by executing ``easy_install -U
+ete3``.
+
+
+What are all these dotted lines that appear in my circular trees?
+-------------------------------------------------------------------
+
+Opposite to other popular visualization software, ETE's drawing engine
+will try by all means to avoid overlaps among lines and all other
+graphical elements. When faces are added to nodes (specially to
+internal nodes), the required space to allocate such elements requires
+to expand the branches of the tree. Instead of breaking the relative
+length of all branches, it will add dotted lines until reaching the
+its minimal position. This effect could only be avoided by increasing
+the branch scale. Alternatively, you can modify the aspect of the
+dotted lines using :class:`TreeStyle` options, such as
+:attr:`extra_branch_line_type`.
+
+As by Jun 2012, ETE 2.1 includes a patch that allows to automatically
+detect the optimal scale value that would avoid dotted lines. Two
+levels of optimization are available, see :attr:`optimal_scale_level`
+option in :class:`TreeStyle` class. This feature is now
+user-transparent and enabled by default, so, if no scale is provided,
+the optimal one will be used.
+
+
+Why some circular trees are too large?
+-------------------------------------------------------------------
+
+In order to avoid overlaps among elements of the tree (i.e. node
+faces), ETE will expand branch lengths until the desired layout is
+fully satisfied. 
+
+
+How do I export tree images as SVG
+-----------------------------------------------------------------
+
+Image format is automatically detected from the filename extension.
+The following code will automatically render the tree as a vector
+image.
+
+::
+                
+        tree.render("mytree.svg")
+
+How do I visualize internal node names?
+----------------------------------------
+
+You will need to change the default tree layout. By creating your
+custom layout functions, you will be able to add, remove or modify
+almost any element of the tree image.
+
+A basic example would read as follow:
+
+::
+    
+    from ete3 import Tree, faces, AttrFace, TreeStyle
+     
+    def my_layout(node):
+        if node.is_leaf():
+             # If terminal node, draws its name
+             name_face = AttrFace("name")
+        else:                
+             # If internal node, draws label with smaller font size
+             name_face = AttrFace("name", fsize=10)
+        # Adds the name face to the image at the preferred position
+        faces.add_face_to_node(name_face, node, column=0, position="branch-right")
+     
+    ts = TreeStyle()
+    # Do not add leaf names automatically
+    ts.show_leaf_name = False
+    # Use my custom layout 
+    ts.layout_fn = my_layout
+         
+    t = Tree("((B,(E,(A,G)M1_t1)M_1_t2)M2_t3,(C,D)M2_t1)M2_t2;", format=8)
+    # Tell ETE to use your custom Tree Style
+    t.show(tree_style=ts)
+
+Can the visualization of trees with very unbalanced tree branches be improved? 
+--------------------------------------------------------------------------------
+
+Yes, the experience of visualizing trees with extreme differences in
+branch lengths can be improved in several ways.
+
+1) Convert your tree to ultrametric topology. This will modify all
+branches in your tree to make all nodes to end at the same length.
+
+::
+   
+    from ete3 import Tree, TreeStyle
+
+    t = Tree()
+    t.populate(50, random_branches=True)
+    t.convert_to_ultrametric()
+    t.show()
+
+
+2) You can enable the :attr:`force_topology` option in
+:class:`TreeStyle`, so all branches will be seen as the same length by
+the tree drawing engine (Note that in this case, actual tree branches
+are not modified)
+
+::
+   
+    from ete3 import Tree, TreeStyle
+
+    t = Tree()
+    t.populate(50, random_branches=True)
+    ts = TreeStyle()
+    ts.force_topology = True
+    t.show(tree_style=ts)
+
+
+
diff --git a/doc/_sources/index.txt b/doc/_sources/index.txt
new file mode 100644
index 0000000..a2b20a7
--- /dev/null
+++ b/doc/_sources/index.txt
@@ -0,0 +1,17 @@
+Contents
+***************
+
+:download:`[Download PDF documentation]  <../doc/ETE.pdf>` || 
+
+.. toctree::
+
+   changelog/index
+   tutorial/index
+   reference/index
+   
+   tools/index
+
+
+:genindex:
+:modindex:
+
diff --git a/doc/_sources/reference/index.txt b/doc/_sources/reference/index.txt
new file mode 100644
index 0000000..26b46ee
--- /dev/null
+++ b/doc/_sources/reference/index.txt
@@ -0,0 +1,29 @@
+ETE's Reference Guide
+=======================
+
+.. inheritance-diagram::
+
+   ete2.coretype.tree
+   ete2.phylo.phylotree
+   ete2.evol.evoltree
+   ete2.evol.model
+   ete2.clustering.clustertree
+   :parts: 1
+
+
+
+Current modules:
+
+.. toctree::
+   :maxdepth: 2
+
+   reference_tree
+   reference_treeview
+   reference_phylo
+   reference_clustering
+   reference_nexml
+   reference_phyloxml
+   reference_seqgroup
+   reference_webplugin
+   reference_evoltree
+   reference_ncbi
diff --git a/doc/_sources/reference/reference_clustering.txt b/doc/_sources/reference/reference_clustering.txt
new file mode 100644
index 0000000..fc18c8c
--- /dev/null
+++ b/doc/_sources/reference/reference_clustering.txt
@@ -0,0 +1,16 @@
+.. module:: ete3.clustering
+
+.. contents::
+
+
+Clustering module
+====================
+
+.. autoclass:: ete3.ClusterNode
+   :members:
+   :show-inheritance:
+
+
+.. autoclass:: ete3.ClusterTree
+   :members:
+   :show-inheritance:
diff --git a/doc/_sources/reference/reference_evoltree.txt b/doc/_sources/reference/reference_evoltree.txt
new file mode 100644
index 0000000..9381626
--- /dev/null
+++ b/doc/_sources/reference/reference_evoltree.txt
@@ -0,0 +1,13 @@
+.. module:: ete3.evol
+
+====================
+EvolTree class
+====================
+
+.. autoclass:: ete3.EvolNode
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+.. autoclass:: ete3.EvolTree
+
diff --git a/doc/_sources/reference/reference_ncbi.txt b/doc/_sources/reference/reference_ncbi.txt
new file mode 100644
index 0000000..4e98675
--- /dev/null
+++ b/doc/_sources/reference/reference_ncbi.txt
@@ -0,0 +1,12 @@
+.. module:: ete2.ncbi_taxonomy
+
+====================
+NCBITaxa class
+====================
+
+.. autoclass:: ete2.NCBITaxa
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
diff --git a/doc/_sources/reference/reference_nexml.txt b/doc/_sources/reference/reference_nexml.txt
new file mode 100644
index 0000000..9a64467
--- /dev/null
+++ b/doc/_sources/reference/reference_nexml.txt
@@ -0,0 +1,29 @@
+.. versionadded:: 2.1
+
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. module:: ete3.nexml
+
+.. currentmodule:: ete3
+
+Nexml module
+***************
+
+Nexml classes linked to ETE
+===============================
+
+.. autoclass:: ete3.Nexml
+   :members:
+
+.. autoclass:: ete3.NexmlTree
+   :members:
+
+
+Generic Nexml classes
+=======================
+
+.. automodule:: ete3.nexml
+   :members:
+   :noindex:
+   
+
diff --git a/doc/_sources/reference/reference_phylo.txt b/doc/_sources/reference/reference_phylo.txt
new file mode 100644
index 0000000..6647658
--- /dev/null
+++ b/doc/_sources/reference/reference_phylo.txt
@@ -0,0 +1,14 @@
+.. module:: ete3.phylo
+
+================
+PhyloTree class
+================
+
+.. autoclass:: ete3.PhyloNode
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+.. autoclass:: ete3.PhyloTree
+
+.. autoclass:: ete3.phylo.EvolEvent
diff --git a/doc/_sources/reference/reference_phylomedb.txt b/doc/_sources/reference/reference_phylomedb.txt
new file mode 100644
index 0000000..e8f9a77
--- /dev/null
+++ b/doc/_sources/reference/reference_phylomedb.txt
@@ -0,0 +1,9 @@
+PhylomeDB3 Connector
+==================================
+
+.. currentmodule:: ete3
+
+.. autoclass:: ete3.PhylomeDB3Connector
+   :inherited-members:
+   :members:
+   :no-undoc-members: 
diff --git a/doc/_sources/reference/reference_phyloxml.txt b/doc/_sources/reference/reference_phyloxml.txt
new file mode 100644
index 0000000..767b579
--- /dev/null
+++ b/doc/_sources/reference/reference_phyloxml.txt
@@ -0,0 +1,28 @@
+.. versionadded:: 2.1
+
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. module:: ete3.phyloxml
+
+.. currentmodule:: ete3
+
+Phyloxml Module
+******************
+
+Phyloxml classes linked to ETE
+===============================
+
+.. autoclass:: Phyloxml
+   :members:
+
+.. autoclass:: PhyloxmlTree
+   :members:
+
+Generic Phyloxml classes
+=======================
+
+.. automodule:: ete3.phyloxml
+   :members:
+   :noindex:
+   
+
diff --git a/doc/_sources/reference/reference_seqgroup.txt b/doc/_sources/reference/reference_seqgroup.txt
new file mode 100644
index 0000000..184c9f1
--- /dev/null
+++ b/doc/_sources/reference/reference_seqgroup.txt
@@ -0,0 +1,11 @@
+.. module:: ete3.parser.seqgroup
+
+Seqgroup class
+==================
+
+.. autoclass:: ete3.SeqGroup
+   :members:
+   :undoc-members: 
+   :inherited-members:
+   :show-inheritance:
+
diff --git a/doc/_sources/reference/reference_tree.txt b/doc/_sources/reference/reference_tree.txt
new file mode 100644
index 0000000..46a1be3
--- /dev/null
+++ b/doc/_sources/reference/reference_tree.txt
@@ -0,0 +1,10 @@
+Master Tree class
+==================================
+
+.. currentmodule:: ete3
+
+.. autoclass:: ete3.TreeNode
+   :members:
+   :no-undoc-members: 
+
+.. autoclass:: ete3.Tree
diff --git a/doc/_sources/reference/reference_treeview.txt b/doc/_sources/reference/reference_treeview.txt
new file mode 100644
index 0000000..2e35f62
--- /dev/null
+++ b/doc/_sources/reference/reference_treeview.txt
@@ -0,0 +1,100 @@
+.. module:: ete3.treeview
+
+Treeview module 
+*************************
+
+.. contents::
+
+TreeStyle
+====================
+
+.. autoclass:: ete3.TreeStyle
+
+.. autoclass:: ete3.FaceContainer
+   :members:
+
+NodeStyle
+=====================
+
+.. autoclass:: ete3.NodeStyle
+
+
+Faces
+=========================
+
+.. autofunction:: add_face_to_node
+
+.. autoclass:: ete3.Face
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.TextFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.AttrFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.ImgFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.CircleFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.RectFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.StackedBarFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.SequenceFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.SeqMotifFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.BarChartFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.PieChartFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.ProfileFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.TreeFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.StaticItemFace
+   :members:
+   :no-undoc-members:
+
+.. autoclass:: ete3.DynamicItemFace
+   :members:
+   :no-undoc-members:
+
+Color names
+=================
+
+.. py:data:: SVG_COLORS
+
+   Apart from RGB color codes, the following SVG color names are supported:
+
+ .. image:: ../svg_colors.png
+
+.. py:data:: COLOR_SCHEMES
+
+.. autofunction:: random_color
+
+
diff --git a/doc/_sources/reference/reference_webplugin.txt b/doc/_sources/reference/reference_webplugin.txt
new file mode 100644
index 0000000..cd72301
--- /dev/null
+++ b/doc/_sources/reference/reference_webplugin.txt
@@ -0,0 +1,12 @@
+:Author: Jaime Huerta-Cepas
+
+.. versionadded:: 2.1
+
+.. module:: ete3.webplugin
+
+WebTreeApplication object 
+===========================
+
+.. autoclass:: ete3.WebTreeApplication
+   :members:
+   :no-undoc-members:
diff --git a/doc/_sources/support.txt b/doc/_sources/support.txt
new file mode 100644
index 0000000..d2b1b90
--- /dev/null
+++ b/doc/_sources/support.txt
@@ -0,0 +1,13 @@
+Help and Support
+***************************
+
+Could not find an answer? Join the ETE toolkit community and post your
+question!!
+
+You will also be updated with important news and announcements. 
+
+https://groups.google.com/forum/#!forum/etetoolkit
+
+(etetoolkit at googlegroups.com)
+
+
diff --git a/doc/_sources/tutorial/index.txt b/doc/_sources/tutorial/index.txt
new file mode 100644
index 0000000..94a9c05
--- /dev/null
+++ b/doc/_sources/tutorial/index.txt
@@ -0,0 +1,17 @@
+The ETE tutorial
+============================================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 3
+
+   tutorial_trees
+   tutorial_drawing
+   tutorial_phylogeny
+   tutorial_clustering
+   tutorial_xml
+   tutorial_webplugin
+   tutorial_adaptation
+   tutorial_ncbitaxonomy
+   tutorial_etree2orthoxml
diff --git a/doc/_sources/tutorial/tutorial_adaptation.txt b/doc/_sources/tutorial/tutorial_adaptation.txt
new file mode 100644
index 0000000..f175cf2
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_adaptation.txt
@@ -0,0 +1,564 @@
+:Author: François Serra
+
+.. currentmodule:: ete3
+
+
+Testing Evolutionary Hypothesis
+*******************************
+
+.. contents::
+
+Extension Requirements:
+==========================
+
+You should have codeml and slr in your path:
+
+ * CodeML, you can download it from
+   http://abacus.gene.ucl.ac.uk/software/paml.html
+
+ * SLR, from here: http://www.ebi.ac.uk/goldman-srv/SLR/
+
+Download, compile and install both of the programs, in order to be able to run the examples.
+
+This ETE extension is written on top of these two external programs, so it is strongly recommended to read their corresponding documentation.
+
+Overview
+================
+
+An other aspect in the study of evolutionary history, is the analysis of selective pressures accounting for the conservation or degeneration of **protein coding genes**.
+
+The :class:`EvolTree` class is an extension of the class :class:`PhyloTree` that implements mainly bindings to the PAML package [yang2007]_ but also to the SLR program [massingham2005]_.
+
+Evolutionary variables that are used to summary selective pressures are, of course the branch-length (*bL*) already available in :class:`PhyloTree`, but also the rate of non-synonymous mutations (*dN*), the rate of synonymous mutations (*dS*) and finally the :math:`\omega` ratio:
+
+.. math::
+  :nowrap:
+
+  \begin{eqnarray}
+    \omega = \frac{dN}{dS}
+  \end{eqnarray}
+
+
+The working directory
+---------------------
+
+EvolTree works mainly as PhyloTree, thus it needs a tree and an alignment. However as you are going to run external programs over it, **a working directory needs to be defined**. By default tree.workdiris "/tmp/ete3-codeml/", but it is recommended to change it to a more useful path.
+
+Jobs will be stored in the workdir, and you will be able to load precomputed evolutionary models from there.
+
+
+Descriptive analysis
+====================
+
+In order to identify the evolutionary trends in a phylogenetic tree, one can either:
+
+  * conduct an analysis over branches and compute the value of
+    :math:`\omega` in each of them.
+
+  * look at the selective pressures along the alignment.
+
+
+Branch model
+--------------
+
+As for :class:`PhyloTree`, we first load the tree and alignment (and you working directory, if you want to save a copy of your jobs):
+
+::
+  
+  from ete3 import EvolTree
+
+  tree = EvolTree("((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);")
+  
+  tree.link_to_alignment ('''>Hylobates_lar
+  ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+  >Papio_cynocephalus	                                                                                          
+  ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
+  >Gorilla_gorilla	                                                                                          
+  ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+  >Pan_troglodytes	                                                                                          
+  ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT''')  
+
+  tree.workdir = '/path_to/my_working_directory/'
+
+Once loaded we are able to compute selective pressure among the tree according to an evolutionary model. In this case, we will use free-ratio model:
+::
+  
+  tree.run_model ('fb.example')
+  
+:func:`EvolNode.run_model` allows to run different evolutionary models (follow this link :func:`EvolNode.run_model` to see the full list of models available). By convention, the name of the model called is the first word, the rest of the string, after the dot, corresponds to its identifier in order to differentiate different runs of one model. We can thus either run "fb" model and "fb.something" with the same result, but they will be stored under different names instead of being overwritten.
+
+Once computation is done, we can retrieve the :class:`evol.Model` object from the tree, with the :func:`EvolNode.get_evol_model` function.
+
+::
+  
+  my_first_fb_model = tree.get_evol_model('fb.example')
+
+  print my_first_fb_model
+
+This last print statement would ouptut:
+
+::
+
+   Evolutionary Model fb.example:
+          log likelihood       : -521.421323
+          number of parameters : 13
+          sites inference      : None
+          sites classes        : None
+          branches             : 
+          mark: #0  , omega: None      , node_ids: 5   , name: NoName
+          mark: #1  , omega: 0.0001    , node_ids: 6   , name: NoName
+          mark: #2  , omega: 999.0     , node_ids: 4   , name: Papio_cynocephalus
+          mark: #3  , omega: 999.0     , node_ids: 2   , name: Hylobates_lar
+          mark: #4  , omega: 0.0001    , node_ids: 7   , name: NoName
+          mark: #5  , omega: 0.1049    , node_ids: 1   , name: Gorilla_gorilla
+          mark: #6  , omega: 0.5334    , node_ids: 3   , name: Pan_troglodytes
+
+
+By default, the free-branch model is run with this parameters:
+
+::
+
+    print my_first_fb_model.get_ctrl_string()
+
+    #      seqfile = algn
+    #     treefile = tree
+    #      outfile = out
+    #  
+    #       aaDist = 0
+    #    fix_alpha = 1
+    #        alpha = 0.0
+    #  fix_blength = 0
+    #    cleandata = 0
+    #        clock = 0
+    #    CodonFreq = 2
+    #        getSE = 0
+    #        icode = 0
+    #    fix_kappa = 0
+    #        kappa = 2
+    #       Malpha = 0
+    #       method = 0
+    #        Mgene = 0
+    #        model = 1
+    #        ncatG = 8
+    #        noisy = 0
+    #      NSsites = 0
+    #    fix_omega = 0
+    #        omega = 0.7
+    # RateAncestor = 0
+    #      runmode = 0
+    #      seqtype = 1
+    #   Small_Diff = 1e-6
+    #      verbose = 2
+
+However, it is usually recommended to run one model several times with different starting values, and keep only the model with higher likelihood. Here an example, on how to do this.
+
+::
+
+  best_model = None
+  best_lnl   = float('-inf')
+  for starting_omega in [0.2, 0.7, 1.2]:
+      tree.run_model('fb.'+str(starting_omega))
+      current_model = tree.get_evol_model('fb.'+str(starting_omega))
+      print 'current model log likelihood:', current_model.lnL
+      if current_model.lnL > best_lnl:
+          best_lnl = current_model.lnL
+          best_model = current_model
+      
+Finally in order to have a quick look of the selctive pressures over our phylogeny:
+
+::
+
+  tree.show()
+
+by default this will the picture obtained:
+
+.. _fb_default-fig:
+
+.. figure:: ../ex_figures/fb_default.png
+  :scale: 50 %
+      
+
+Node size, and color dependant of the :math:`\omega` value. But other displays are available:
+
+::
+
+  from ete3.treeview.layouts import evol_clean_layout
+
+  tree.show(layout=evol_clean_layout)
+
+.. _fb_clean-fig:
+
+.. figure:: ../ex_figures/fb_clean.png
+  :scale: 62 %
+  
+
+With here :math:`\omega` ratios in red and also in gray the *dN* and *dS* values.
+
+
+Site model
+-----------
+
+Another way to look at selective pressures, is to compute directly along the alignment, the value of :math:`\omega` for a whole column (putting all leaves together). For doing this, we can use for example the model M2 of CodeML or directly use SLR. As before we just have to:
+
+::
+
+  tree.run_model('M2')
+  tree.run_model('SLR.lele')
+
+and to display the results:
+
+::
+
+  tree.show (histfaces=['M2'])
+
+when a site model is computed, an histface is automatically generated. Thus with this call, what we are doing is to draw the default histface corresponding to the model named M2.lala. This is the result:
+
+
+.. _M2_default-fig:
+
+.. figure:: ../ex_figures/M2_default.png
+  :scale: 100 %
+
+However customizing this face is feasible:
+
+::
+
+  model2 = tree.get_evol_model ('M2')
+
+  col2 = {'NS' : 'black', 'RX' : 'black',
+          'RX+': 'black', 'CN' : 'black',
+          'CN+': 'black', 'PS' : 'black', 'PS+': 'black'}
+
+
+  model2.set_histface (up=False, kind='curve', colors=col2, ylim=[0,4], hlines = [2.5, 1.0, 4.0, 0.5], header = 'Many lines, error boxes, background black', hlines_col=['orange', 'yellow', 'red', 'cyan'], errors=True)
+
+  tree.show(histfaces=['M2'])
+
+
+.. _M2_error-fig:
+
+.. figure:: ../ex_figures/M2_curve.png
+  :scale: 100 %
+
+or:
+
+::
+
+  col = {'NS' : 'grey', 'RX' : 'black',
+         'RX+': 'grey', 'CN' : 'black',
+         'CN+': 'grey', 'PS' : 'black', 'PS+': 'black'}
+  model2.set_histface (up=False, kind='stick', hlines = [1.0,0.3], hlines_col=['black','grey'])
+
+
+  tree.show(histfaces=['M2'])
+
+.. _M2_super_profesional-fig:
+
+.. figure:: ../ex_figures/M2_sticks.png
+  :scale: 100 %
+
+
+The col dictionary contains the colors for sites detected to be under positive selection (PS), relaxation (RX), or conserved (CN). However, it is not a good idea to use them now as we do not know if there is indeed positive selection.
+
+To be able to accept M2 results we will have to test this model against a null model.
+
+
+Hypothesis Testing
+===================
+
+In order to know if the parameters estimated under a given model a reliable, we have to compare its likelihood to a null model.
+
+Usually, the alternative model is a model that estimates the proportion of sites with :math:`\omega > 1` and we compare its likelihood with a null model, usually a model that do not (letting :math:`\omega <= 1`). This comparison is done through a likelihood ratio test. If the alternative model has the best fit than we are able to accept the possibility of :math:`\omega > 1`.
+
+To see a non-exhaustive list of famous comparison see the documentation of the function: :func:`EvolNode.get_most_likely`
+
+
+Test on sites
+--------------
+
+In order to know if some sites are significantly under positive selection, relaxed or conserved we have usually to compare 2 models. However using the model "SLR" we can directly infer positive selection or relaxation through the SLR program [massingham2005]_.
+
+The most usual comparison, and perhaps the most robust, is the comparison of models M2 and M1.
+
+::
+
+  tree.run_model ('M1')
+  tree.run_model ('M2')
+
+  pval = tree.get_most_likely ('M2','M1')
+
+  model2 = tree.get_evol_model('M2')
+
+  print model2
+
+  # Evolutionary Model M2:
+  #        log likelihood       : -517.824749
+  #        number of parameters : 11
+  #        sites inference      : BEB, NEB
+  #        sites classes        : 
+  #           proportions: p0=0.98794   p1=0.00000   p2=0.01206   
+  #           w          : w0=0.09887   w1=1.00000   w2=178.86153 
+  #        branches             : 
+  #           mark: #0, omega: 2.25526440485   , nodes paml_ids: 6 4 2 7 1 3  
+
+  if pval < 0.05:
+    print 'M2 model wins.'
+    for s in range(len(model2.sites['BEB']['aa'])):
+      if model2.sites['BEB']['p2'][s] > 0.95:
+        print 'positively selected site %s at position: %s, with probability: %s' % (model2.sites['BEB']['aa'][s], s+1, model2.sites['BEB']['p2'][s])
+  else:
+    print 'M1 model is not rejected'
+
+  # M2 model wins.
+  # positively selected site P at position: 81, with probability: 0.96293
+
+Each sites model, contains a dictionary 'model.sites' in which are stored the results of CodeML. These are displayed through the histface, but they are still accessible by digging a bit. 'site' dictionary usually contains the result of the NEB and BEB analysis (prefer the BEB when available). For each of BEB and NEB, the probability of belonging from one category of site is summarized by 'p0', 'p1' and 'p2' in the case of M2 model that have only 3 class of sites (p0, the probability of b [...]
+
+
+Test on branches
+------------------
+
+CodeML allows to test models that infer different selective pressures on a set of given branches. To do it, some branches of the tree are marked (usually with strings like this: '#1'). This is how to do it with ETE:
+
+::
+
+  marks = ['2', '3', '4']
+
+  # mark a group of branches
+  tree.mark_tree (marks, ['#1', '#1', '#1'])
+  print tree.write ()
+
+  # ((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes #1) #1),Papio_cynocephalus);
+
+By doing this a branch model will compute different :math:`\omega` values in mark branches (usually called foreground :math:`\omega_{frg}`) and in the rest of the tree (usually called background :math:`\omega_{bkg}`).
+
+Two kinds of branch models are usually used:
+  * the free-branch model: were :math:`\omega_{frg}` and :math:`\omega_{bkg}` are free
+  * the neutral-branch model: were :math:`\omega_{frg}` is fixed to one.
+  * the M0 model: were all branches evolve at the same rate.
+
+The comparison between free-branch and M0, will tell us if foreground branches have an :math:`\omega` significantly different from the rest of the tree.
+
+And the comparison between free-branch and neutral-branch models will tell us if :math:`\omega_{frg}` is significantly higher than 1.
+
+::
+
+  tree.run_model ('b_free')
+  tree.run_model ('b_neut')
+  tree.run_model ('M0')
+
+  b_free = tree.get_evol_model('b_free')
+
+  print b_free
+
+  # Evolutionary Model b_free.234:
+  #      log likelihood       : -525.690213
+  #      number of parameters : 9
+  #      sites inference      : None
+  #      sites classes        : None
+  #      branches             : 
+  #        mark: #0, omega: 0.157280451975  , nodes paml_ids: 6 4 2
+  #        mark: #1, omega: 0.118462858241  , nodes paml_ids: 7 1 3
+
+
+  if tree.get_most_likely ('b_free', 'M0') < 0.05:
+      # branch models have a branches dictionary were keys corresponds to paml_id of nodes in the tree
+      # select one of the marked branches
+      frg_node = tree.search_nodes(_nid=2)[0]
+      frg_pamlid = frg_node.paml_id 
+      w_frg = bfree.branches[frg_pamlid]['w']
+      # select one of the unmarked branches
+      bkg_node = tree.search_nodes(_nid=1)[0]
+      bkg_pamlid = bkg_node.paml_id 
+      w_bkg = bfree.branches[bkg_pamlid]['w']
+      print 'foreground branches evolving at omega value of %s significantly diferent from %s.' % (w_frg, w_bkg)
+
+  if  tree.get_most_likely ('b_free', 'b_neut') < 0.05:
+      print 'foreground branches are significantly different from 1.'
+
+*for the given example, background and foreground are not different...*
+
+Test on branch-sites
+---------------------
+
+An other popular test is the branch-site test contrasting model A and A1. This test allows to detect genes with some sites under positive selection.
+
+this example shows how to run it over all branches in the tree:
+
+::
+
+  # also needs the M0 model as null model
+  tree.run_model ('M0')
+
+  for leaf in tree:
+      leaf.node_id
+      print '\n---------\nNow working with leaf ' + leaf.name
+      tree.mark_tree ([leaf.node_id], marks=['#1'])
+      print tree.write()
+      # to organize a bit, we name model with the name of the marked node
+      # any character after the dot, in model name, is not taken into account
+      # for computation. (have a look in /tmp/ete3.../bsA.. directory)
+      print 'running model bsA and bsA1'
+      tree.run_model ('bsA.'+ leaf.name)
+      tree.run_model ('bsA1.' + leaf.name)
+      print 'p-value of positive selection for sites on this branch is: '
+      ps = tree.get_most_likely ('bsA.' + leaf.name, 'bsA1.'+ leaf.name)
+      rx = tree.get_most_likely ('bsA1.'+ leaf.name, 'M0')
+      print str (ps)
+      print 'p-value of relaxation for sites on this branch is: '
+      print str (rx)
+      if ps<0.05 and float (bsA.wfrg2a)>1:
+          print 'we have positive selection on sites on this branch'
+      elif rx<0.05 and ps>=0.05:
+          print 'we have relaxation on sites on this branch'
+      else:
+          print 'no signal detected on this branch, best fit for M0'
+      print '\nclean tree, remove marks'
+      tree.mark_tree (map (lambda x: x.node_id, tree.get_descendants()),
+                      marks=[''] * len (tree.get_descendants()), verbose=True)
+
+  print tree.get_evol_model('bsA.Hylobates_lar')
+
+  #  Evolutionary Model bsA.Hylobates_lar:
+  #         log likelihood       : -521.203318
+  #         number of parameters : 11
+  #         sites inference      : BEB, NEB
+  #         sites classes        : 
+  #         foreground w: f0=0.06452   f1=1.00000   f2=3.15727   f3=3.15727   
+  #         proportions : p0=0.00415   p1=0.00023   p2=0.94413   p3=0.05150   
+  #         background w: b0=0.06452   b1=1.00000   b2=0.06452   b3=1.00000   
+  #         branches             : 
+  #         mark: #0  , omega: None      , node_ids: 5   , name: NoName
+  #         mark: #0  , omega: None      , node_ids: 6   , name: NoName
+  #         mark: #0  , omega: None      , node_ids: 4   , name: Papio_cynocephalus
+  #         mark: #1  , omega: None      , node_ids: 2   , name: Hylobates_lar
+  #         mark: #0  , omega: None      , node_ids: 7   , name: NoName
+  #         mark: #0  , omega: None      , node_ids: 1   , name: Gorilla_gorilla
+  #         mark: #0  , omega: None      , node_ids: 3   , name: Pan_troglodytes
+
+
+Utilities
+==========
+
+Load precomputed evolutionary model
+------------------------------------
+
+When an evolutionary model is computed, the output is stored in *tree.workdir* and can be load afterwards. Inside *tree.workdir*, a new directory is created for each model you compute (if each model has a different name), thus to load one model:
+
+::
+
+  from ete3 import EvolTree
+
+  tree = EvolTree("((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);")
+  
+  tree.link_to_alignment ('''>Hylobates_lar
+  ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+  >Papio_cynocephalus
+  ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
+  >Gorilla_gorilla
+  ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+  >Pan_troglodytes
+  ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT''')  
+  tree.link_to_evol_model('/path_to/my_working_directory/fb.example/out', 'fb')
+
+*Note:* :func:`EvolNode.link_to_evol_model` is also able to load directly :class:`evol.Model` objects.
+
+Indeed all output files generated do not need to be kept, only a `pickle or cPickle <http://docs.python.org/library/pickle.html>`_ of the model for example.
+
+Thus we can save a tree with all Models computed, after having run some models:
+
+::
+
+  # assume we already have run some models:
+  for model in  tree._models:
+      print tree.get_evol_model(model)
+
+  #  Evolutionary Model M2.example:
+  #         log likelihood       : -517.824749
+  #         number of parameters : 11
+  #         sites inference      : BEB, NEB
+  #         sites classes        : 
+  #            proportions : p0=0.98794   p1=0.00000   p2=0.01206   
+  #            w           : w0=0.09887   w1=1.00000   w2=178.86192 
+  #         branches             : 
+  #            mark: #0, omega: 2.25526864047   , nodes paml_ids: 6 4 2 7 1 3
+  #         
+  #  Evolutionary Model M1.example:
+  #         log likelihood       : -521.541845
+  #         number of parameters : 9
+  #         sites inference      : NEB
+  #         sites classes        : 
+  #            proportions : p0=0.94075   p1=0.05925   
+  #            w           : w0=0.07025   w1=1.00000   
+  #         branches             : 
+  #            mark: #0, omega: 0.125334579074  , nodes paml_ids: 6 4 2 7 1 3
+
+  # we save the whole tree into my_tree.pik
+  from cPickle import dump
+
+  out = open('my_tree.pik', 'w')
+  dump (tree, out)
+  out.close()
+
+and load them:
+
+::
+
+  from cPickle import load
+
+  
+  out = open('my_tree.pik')
+  tree = load(out)
+  out.close()
+
+  # and here the same result
+  for model in  tree._models:
+      print tree.get_evol_model(model)
+
+  #  Evolutionary Model M2.example:
+  #         log likelihood       : -517.824749
+  #         number of parameters : 11
+  #         sites inference      : BEB, NEB
+  #         sites classes        : 
+  #            proportions : p0=0.98794   p1=0.00000   p2=0.01206   
+  #            w           : w0=0.09887   w1=1.00000   w2=178.86192 
+  #         branches             : 
+  #            mark: #0, omega: 2.25526864047   , nodes paml_ids: 6 4 2 7 1 3
+  #         
+  #  Evolutionary Model M1.example:
+  #         log likelihood       : -521.541845
+  #         number of parameters : 9
+  #         sites inference      : NEB
+  #         sites classes        : 
+  #            proportions : p0=0.94075   p1=0.05925   
+  #            w           : w0=0.07025   w1=1.00000   
+  #         branches             : 
+  #            mark: #0, omega: 0.125334579074  , nodes paml_ids: 6 4 2 7 1 3
+
+this also can be done for one model alone:
+
+::
+
+  from cPickle import dump, load
+
+  m2_to_save = tree.get_evol_model('M2.example')
+
+  out = open ('m2.pik', 'w')
+  dump(m2_to_save, out)
+  out.close()
+
+  # and then load it
+  out = open ('m2.pik')
+  m2_to_save = dump(out)
+  out.close()
+
+  tree.link_to_evol_model(m2_to_save)
+
+
+References
+==========
+
+
+.. [yang2007] Yang, Z., PAML 4: phylogenetic analysis by maximum likelihood. Molecular biology and evolution 24: 1586-91. (2007)
+
+.. [massingham2005] Massingham T. and Goldman N. Detecting amino acid sites under positive selection and purifying selection. Genetics 169: 1853-1762. (2005)
diff --git a/doc/_sources/tutorial/tutorial_clustering.txt b/doc/_sources/tutorial/tutorial_clustering.txt
new file mode 100644
index 0000000..58fa1ec
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_clustering.txt
@@ -0,0 +1,166 @@
+.. module:: ete3.clustering
+  :synopsis: Extends Tree object: link trees to numeric matrices, perform cluster validation analysis, visualize node profiles
+.. moduleauthor:: Jaime Huerta-Cepas
+:Author: Jaime Huerta-Cepas
+
+.. currentmodule:: ete3
+
+Clustering Trees
+****************
+
+.. contents::
+
+Overview
+================
+
+Cluster analysis is the assignment of a set of observations into
+subsets (called clusters) so that observations in the same cluster are
+similar in some sense.  Clustering is a method of unsupervised
+learning, and a common technique for statistical data analysis used in
+many fields, including machine learning, data mining, pattern
+recognition, image analysis and bioinformatics. Hierarchical
+clustering creates a hierarchy of clusters which may be represented in
+a tree structure called a dendrogram. The root of the tree consists of
+a single cluster containing all observations, and the leaves
+correspond to individual observations. [The Wikipedia project
+Jun-2009].
+
+ETE provides special :class:`ClusterNode` (alias ClusterTree)
+instances to deal with trees associated to a clustering analysis. The
+basic difference between :class:`Tree` and :class:`ClusterTree` is
+that leaf nodes in a cluster-tree are linked to numerical
+profiles. Such profiles are expected to represent the data used to
+generate the clustering tree.  In other words, trees are bound to
+numerical arrays.
+
+::
+
+  #              /-A 
+  #          ---|
+  #              \-B 
+  #  
+  # #Names  col1   col2   col3
+  # A       1.1    0.1    1.33
+  # B       2.0    1.0    2.0
+ 
+
+Based on this, :class:`ClusterTree` instances provide several several
+clustering validation techniques that help in the analysis of cluster
+quality. Currently, inter and intra-cluster distances, cluster
+std.deviation, Silhouette analysis and Dunn indexes are supported. In
+addition, ClusterTree nodes can be visualized using the
+:class:`ProfileFace` face type, which can represent cluster profiles
+in different ways, such as line plots, heatmaps or bar plots.
+
+
+Although this type of trees are intended to be used for clustering
+results, any tree that can be linked to a table (i.e. phylogenetic
+profiles) could be loaded using this data type, thus taking advantage
+of the profile visualization modes, etc.
+
+Loading ClusterTrees
+=======================
+
+A :class:`ClusterTree` can be linked to a numerical matrix by using
+the :attr:`text_array` argument.
+
+::
+
+  from ete3 import ClusterTree
+   
+  # Example of a minimalistic numerical matrix. It is encoded as a text
+  # string for convenience, but it usally be loaded from a text file.
+  matrix = """
+  #Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7
+  A\t-1.23\t-0.81\t1.79\t0.78\t-0.42\t-0.69\t0.58
+  B\t-1.76\t-0.94\t1.16\t0.36\t0.41\t-0.35\t1.12
+  C\t-2.19\t0.13\t0.65\t-0.51\t0.52\t1.04\t0.36
+  D\t-1.22\t-0.98\t0.79\t-0.76\t-0.29\t1.54\t0.93
+  E\t-1.47\t-0.83\t0.85\t0.07\t-0.81\t1.53\t0.65
+  F\t-1.04\t-1.11\t0.87\t-0.14\t-0.80\t1.74\t0.48
+  G\t-1.57\t-1.17\t1.29\t0.23\t-0.20\t1.17\t0.26
+  H\t-1.53\t-1.25\t0.59\t-0.30\t0.32\t1.41\t0.77
+  """
+  print "Example numerical matrix"
+  print matrix
+  # #Names  col1    col2    col3    col4    col5    col6    col7
+  # A       -1.23   -0.81   1.79    0.78    -0.42   -0.69   0.58
+  # B       -1.76   -0.94   1.16    0.36    0.41    -0.35   1.12
+  # C       -2.19   0.13    0.65    -0.51   0.52    1.04    0.36
+  # D       -1.22   -0.98   0.79    -0.76   -0.29   1.54    0.93
+  # E       -1.47   -0.83   0.85    0.07    -0.81   1.53    0.65
+  # F       -1.04   -1.11   0.87    -0.14   -0.80   1.74    0.48
+  # G       -1.57   -1.17   1.29    0.23    -0.20   1.17    0.26
+  # H       -1.53   -1.25   0.59    -0.30   0.32    1.41    0.77
+  #
+  #
+  # We load a tree structure whose leaf nodes correspond to rows in the
+  # numerical matrix. We use the text_array argument to link the tree
+  # with numerical matrix.
+  t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));", text_array=matrix)
+
+Alternatively, you can re-link the tree (or a sub-part of it) to a new
+matrix using the :func:`ClusterNode.link_to_arraytable` method.
+
+::
+  
+    t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));")
+    t.children[0].link_to_arraytable(matrix1)
+    t.children[1].link_to_arraytable(matrix2)
+
+
+Once the tree is linked to a table of profiles, the following node
+properties will be available: :attr:`PhyloNode.profile`,
+:attr:`PhyloNode.deviation`, :attr:`PhyloNode.silhoutte`,
+:attr:`PhyloNode.intercluster_dist`,
+:attr:`PhyloNode.intracluster_dist`, :attr:`PhyloNode.dunn`.
+
+Similarly, the following methods are provide for convenience
+:func:`PhyloNode.iter_leaf_profiles`,
+:func:`PhyloNode.get_leaf_profiles`, :func:`PhyloNode.get_silhouette`
+and :func:`PhyloNode.get_dunn` methods.
+
+Visualization of matrix associated Trees
+========================================
+
+Clustering or not, any ClusterTree instance, associated to a numerical
+matrix, can be visualized together with the graphical representation
+of its node's numeric profiles. To this end, the :class:`ProfileFace`
+class is provided by the :mod:`treeview` module. This face type can
+represent a node's numeric profile in four different ways:
+
+  .. figure:: ../ex_figures/profile_faces.png 
+
+Additionally, three basic layouts are provided that use different
+styles of ProfileFace instances: **heatmap**, **line_profiles**,
+**bar_profiles**, **cbar_profiles**.
+
+.. literalinclude:: ../../examples/clustering/cluster_visualization.py
+  
+
+
+Cluster Validation Example
+========================================
+
+If associated matrix represents the dataset used to produce a given
+tree, clustering validation values can be used to assess the quality
+of partitions. To do so, you will need to set the distance function
+that was used to calculate distances among items (leaf nodes). ETE
+implements three common distance methods in bioinformatics :
+**euclidean**, **pearson** correlation and **spearman** correlation
+distances.
+
+In the following example, a microarray clustering result is visualized
+and validated using ETE.
+
+.. figure:: ../ex_figures/bubbles_validation.png
+      
+Image resulting from a microarray clustering validation analysis. Red
+bubbles represent a bad silhouette index (S<0), while green represents
+good silhouette index (S>0). Size of bubbles is proportional to the
+Silhouette index. Internal nodes are drawn with the average expression
+profile grouped by their partitions. Leaf node profiles are shown as a
+heatmap.
+
+.. literalinclude:: ../../examples/clustering/bubbles_validation.py
+
diff --git a/doc/_sources/tutorial/tutorial_drawing.txt b/doc/_sources/tutorial/tutorial_drawing.txt
new file mode 100644
index 0000000..4b76b7b
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_drawing.txt
@@ -0,0 +1,509 @@
+:Author: Jaime Huerta-Cepas
+
+.. currentmodule:: ete3
+
+The Programmable Tree Drawing Engine
+************************************
+.. _drawing:
+
+.. contents::
+
+Overview
+=================
+
+ETE's treeview extension provides a highly programmable drawing system
+to render any hierarchical tree structure as PDF, SVG or PNG
+images. Although several predefined visualization layouts are included
+with the default installation, custom styles can be easily created
+from scratch.
+
+Image customization is performed through four elements: **a)**
+:class:`TreeStyle`, setting general options about the image (shape,
+rotation, etc.), **b)** :class:`NodeStyle`, which defines the
+specific aspect of each node (size, color, background, line type,
+etc.), **c)** node :class:`faces.Face` which are small pieces of extra
+graphical information that can be added to nodes (text labels, images,
+graphs, etc.) **d)** a :attr:`layout` function, a normal python
+function that controls how node styles and faces are dynamically added
+to nodes.
+
+Images can be rendered as **PNG**, **PDF** or **SVG** files using the
+:func:`TreeNode.render` method or interactively visualized using a
+built-in Graphical User Interface (GUI) invoked by the
+:func:`TreeNode.show` method.
+
+Interactive visualization of trees
+==================================
+
+ETE's tree drawing engine is fully integrated with a built-in
+graphical user interface (GUI). Thus, ETE allows to visualize trees
+using an interactive interface that allows to explore and manipulate
+node's properties and tree topology.  To start the visualization of a
+node (tree or subtree), you can simply call the :func:`TreeNode.show`
+method.
+
+One of the advantages of this on-line GUI visualization is that you
+can use it to interrupt a given program/analysis, explore the tree,
+manipulate them, and continuing with the execution thread. Note that
+**changes made using the GUI will be kept after quiting the
+GUI**. This feature is specially useful for using during python
+sessions, in which analyses are performed interactively.
+
+The GUI allows many operations to be performed graphically, however it
+does not implement all the possibilities of the programming toolkit.
+
+:: 
+
+  from ete3 import Tree 
+  t = Tree( "((a,b),c);" )
+  t.show()
+
+Rendering trees as images
+=============================
+
+Tree images can be directly written as image files. SVG, PDF and PNG
+formats are supported. Note that, while PNG images are raster images,
+PDF and SVG pictures are rendered as `vector graphics
+<http://en.wikipedia.org/wiki/Vector_graphics>`_, thus allowing its
+later modification and scaling.
+
+To generate an image, the :func:`TreeNode.render` method should be
+used instead of :func:`TreeNode.show`. The only required argument is
+the file name, whose extension will determine the image format (.PDF,
+.SVG or .PNG). Several parameters regarding the image size and
+resolution can be adjusted:
+
+.. table::
+
+   ================= ==============================================================
+   Argument           Description
+   ================= ==============================================================
+   :attr:`units`     "**px**": pixels, "**mm**": millimeters, "**in**": inches
+   :attr:`h`         height of the image in :attr:`units`.       
+   :attr:`w`         width of the image in :attr:`units`.
+   :attr:`dpi`       dots per inches.
+   ================= ==============================================================
+
+.. note:: 
+
+   If :attr:`h` and :attr:`w` values are both provided, image size
+   will be adjusted even if it requires to break the original aspect
+   ratio of the image. If only one value (:attr:`h` or :attr:`w`) is
+   provided, the other will be estimated to maintain aspect ratio. If
+   no sizing values are provided, image will be adjusted to A4
+   dimensions.
+
+:: 
+
+  from ete3 import Tree 
+  t = Tree( "((a,b),c);" )
+  t.render("mytree.png", w=183, units="mm")
+
+Customizing the aspect of trees
+==================================
+
+Image customization is performed through four main elements:
+
+Tree style 
+-------------------
+
+The :class:`TreeStyle` class can be used to create a custom set of
+options that control the general aspect of the tree image. Tree styles
+can be passed to the :func:`TreeNode.show` and :func:`TreeNode.render`
+methods.  For instance, :class:`TreeStyle` allows to modify the scale
+used to render tree branches or choose between circular or rectangular
+tree drawing modes.
+
+:: 
+
+  from ete3 import Tree, TreeStyle
+
+  t = Tree( "((a,b),c);" )
+  circular_style = TreeStyle()
+  circular_style.mode = "c" # draw tree in circular mode
+  circular_style.scale = 20
+  t.render("mytree.png", w=183, units="mm", tree_style=circular_style)
+  
+.. warning:: 
+
+   A number of parameters can be controlled through custom
+   tree style objects, check :class:`TreeStyle` documentation for a
+   complete list of accepted values.
+
+Some common uses include:
+
+Show leaf node names, branch length and branch support 
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: ../ex_figures/show_info.png
+
+  Automatically adds node names and branch information to the tree image:
+  ::
+
+    from ete3 import Tree, TreeStyle
+    t = Tree()
+    t.populate(10, random_dist=True)
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+    t.show(tree_style=ts)
+
+Change branch length scale (zoom in X)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: ../ex_figures/scale_x.png
+
+  Increases the length of the tree by changing the scale:
+
+  ::
+   
+    from ete3 import Tree, TreeStyle
+    t = Tree()
+    t.populate(10, random_dist=True)
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+    ts.scale =  120 # 120 pixels per branch length unit
+    t.show(tree_style=ts)
+
+
+Change branch separation between nodes (zoom in Y)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: ../ex_figures/scale_y.png
+
+  Increases the separation between leaf branches:
+  ::
+   
+    from ete3 import Tree, TreeStyle
+    t = Tree()
+    t.populate(10, random_dist=True)
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+    ts.branch_vertical_margin = 10 # 10 pixels between adjacent branches
+    t.show(tree_style=ts)
+
+
+Rotate a tree
+^^^^^^^^^^^^^^^
+
+.. figure:: ../ex_figures/rotated_tree.png
+
+  Draws a rectangular tree from top to bottom:
+  :: 
+   
+    from ete3 import Tree, TreeStyle
+    t = Tree()
+    t.populate(10)
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+    ts.rotation = 90
+    t.show(tree_style=ts)
+
+circular tree in 180 degrees
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: ../ex_figures/semi_circular_tree.png 
+
+   Draws a circular tree using a semi-circumference:
+   :: 
+    
+     from ete3 import Tree, TreeStyle
+     t = Tree()
+     t.populate(30)
+     ts = TreeStyle()
+     ts.show_leaf_name = True
+     ts.mode = "c"
+     ts.arc_start = -180 # 0 degrees = 3 o'clock
+     ts.arc_span = 180
+     t.show(tree_style=ts)
+
+
+Add legend and title 
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:: 
+
+  from ete3 import Tree, TreeStyle, TextFace
+  t = Tree( "((a,b),c);" )
+  ts = TreeStyle()
+  ts.show_leaf_name = True
+  ts.title.add_face(TextFace("Hello ETE", fsize=20), column=0) 
+  t.show(tree_style=ts)
+
+
+Node style
+-------------------
+
+Through the :class:`NodeStyle` class the aspect of each single node
+can be controlled, including its size, color, background and branch type.
+
+A node style can be defined statically and attached to several nodes: 
+
+.. figure:: ../ex_figures/node_style_red_nodes.png
+
+  Simple tree in which the same style is applied to all nodes:
+  :: 
+   
+    from ete3 import Tree, NodeStyle, TreeStyle
+    t = Tree( "((a,b),c);" )
+   
+    # Basic tree style
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+   
+    # Draws nodes as small red spheres of diameter equal to 10 pixels
+    nstyle = NodeStyle()
+    nstyle["shape"] = "sphere"   
+    nstyle["size"] = 10  
+    nstyle["fgcolor"] = "darkred" 
+   
+    # Gray dashed branch lines
+    nstyle["hz_line_type"] = 1 
+    nstyle["hz_line_color"] = "#cccccc" 
+   
+    # Applies the same static style to all nodes in the tree. Note that,
+    # if "nstyle" is modified, changes will affect to all nodes
+    for n in t.traverse():
+       n.set_style(nstyle)
+   
+    t.show(tree_style=ts) 
+
+If you want to draw nodes with different styles, an independent
+:class:`NodeStyle` instance must be created for each node. Note that
+node styles can be modified at any moment by accessing the
+:attr:`TreeNode.img_style` attribute.
+
+.. figure:: ../ex_figures/node_style_red_and_blue_nodes.png
+
+  Simple tree in which the different styles are applied to each node:
+  ::
+   
+    from ete3 import Tree, NodeStyle, TreeStyle
+    t = Tree( "((a,b),c);" )
+   
+    # Basic tree style
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+   
+    # Creates an independent node style for each node, which is
+    # initialized with a red foreground color.
+    for n in t.traverse():
+       nstyle = NodeStyle()
+       nstyle["fgcolor"] = "red"
+       nstyle["size"] = 15
+       n.set_style(nstyle)
+   
+    # Let's now modify the aspect of the root node
+    t.img_style["size"] = 30
+    t.img_style["fgcolor"] = "blue"
+   
+    t.show(tree_style=ts) 
+
+
+Static node styles, set through the :func:`set_style` method, will be
+attached to the nodes and exported as part of their information. For
+instance, :func:`TreeNode.copy` will replicate all node styles in the
+replicate tree. Note that node styles can be also modified on the fly
+through a :attr:`layout` function (see :ref:`sec:layout_functions`)
+
+
+.. _sec:node_faces:
+
+Node faces
+-------------
+
+.. currentmodule:: ete3.treeview.faces
+
+Node faces are small pieces of graphical information that can be
+linked to nodes. For instance, text labels or external images could be
+linked to nodes and they will be plotted within the tree image. 
+
+Several types of node faces are provided by the main :mod:`ete3`
+module, ranging from simple text (:class:`TextFace`) and geometric
+shapes (:class:`CircleFace`), to molecular sequence representations
+(:class:`SequenceFace`), heatmaps and profile plots
+(:class:`ProfileFace`). A complete list of available faces can be
+found at the :mod:`ete3.treeview` reference page..
+
+Faces position
+^^^^^^^^^^^^^^^^
+
+Faces can be added to different areas around the node, namely
+**branch-right**, **branch-top**, **branch-bottom** or **aligned**.
+Each area represents a table in which faces can be added through the
+:func:`TreeNode.add_face` method. For instance, if two text labels
+want to be drawn bellow the branch line of a given node, a pair of
+:class:`TextFace` faces can be created and added to the columns 0
+and 1 of the **branch-bottom** area:
+
+:: 
+   
+  from ete3 import Tree, TreeStyle, TextFace
+  t = Tree( "((a,b),c);" )
+
+  # Basic tree style
+  ts = TreeStyle()
+  ts.show_leaf_name = True
+
+  # Add two text faces to different columns 
+  t.add_face(TextFace("hola "), column=0, position = "branch-right")
+  t.add_face(TextFace("mundo!"), column=1, position = "branch-right")
+  t.show(tree_style=ts)
+
+If you add more than one face to the same area and column, they will
+be piled up. See the following image as an example of face positions:
+
+ .. figure:: ../ex_figures/face_positions.png
+  :alt: possible face positions
+
+  :download:`Source code <../face_grid.py>` used to generate the
+  above image.
+
+.. note::
+
+  Once a face object is created, it can be linked to one or more
+  nodes. For instance, the same text label can be recycled and added
+  to several nodes.
+
+
+Face properties
+^^^^^^^^^^^^^^^^^^
+
+Apart from the specific config values of each face type, all face
+instances contain same basic attributes that permit to modify general
+aspects such as margins, background colors, border, etc. A complete
+list of face attributes can be found in the general :class:`Face`
+class documentation. Here is a very simple example:
+
+.. figure:: ../ex_figures/face_borders.png
+
+   Basic use of face general attributes
+
+   :: 
+    
+     from ete3 import Tree, TreeStyle, TextFace
+    
+     t = Tree( "(a,b);" )
+    
+     # Basic tree style
+     ts = TreeStyle()
+     ts.show_leaf_name = True
+    
+     # Creates two faces
+     hola = TextFace("hola")
+     mundo = TextFace("mundo")
+    
+     # Set some attributes
+     hola.margin_top = 10
+     hola.margin_right = 10
+     hola.margin_left = 10
+     hola.margin_bottom = 10
+     hola.opacity = 0.5 # from 0 to 1
+     hola.inner_border.width = 1 # 1 pixel border
+     hola.inner_border.type = 1  # dashed line
+     hola.border.width = 1
+     hola.background.color = "LightGreen"
+      
+     t.add_face(hola, column=0, position = "branch-top")
+     t.add_face(mundo, column=1, position = "branch-bottom")
+    
+     t.show(tree_style=ts)
+
+.. _sec:layout_functions:
+
+layout functions
+-------------------
+
+Layout functions act as pre-drawing `hooking functions
+<http://en.wikipedia.org/wiki/Hooking>`_. This means, when a node is
+about to be drawn, it is first sent to a layout function.  Node
+properties, style and faces can be then modified on the fly and return
+it to the drawer engine. Thus, layout functions can be understood as a
+collection of rules controlling how different nodes should be drawn. 
+
+:: 
+
+  from ete3 import Tree
+  t = Tree( "((((a,b),c), d), e);" )
+
+  def abc_layout(node):
+      vowels = set(["a", "e", "i", "o", "u"])
+      if node.name in vowels:
+
+         # Note that node style are already initialized with the
+         # default values
+
+         node.img_style["size"] = 15
+         node.img_style["color"] = "red"
+
+  # Basic tree style
+  ts = TreeStyle()
+  ts.show_leaf_name = True
+
+  # Add two text faces to different columns 
+  t.add_face(TextFace("hola "), column=0, position = "branch-right")
+  t.add_face(TextFace("mundo!"), column=1, position = "branch-right")
+  t.show(tree_style=ts)
+
+
+Combining styles, faces and layouts
+=====================================
+
+Examples are probably the best way to show how ETE works: 
+
+Fixed node styles
+-------------------
+
+ .. figure:: ../../examples/treeview/node_style.png
+
+ .. literalinclude:: ../../examples/treeview/node_style.py
+
+
+Node backgrounds
+-------------------
+
+ .. figure:: ../../examples/treeview/node_background.png
+
+ .. literalinclude:: ../../examples/treeview/node_background.py
+
+Img Faces
+-------------------
+
+ .. figure:: ../../examples/treeview/img_faces/img_faces.png
+
+Note that images are attached to terminal and internal nodes. 
+
+ .. literalinclude:: ../../examples/treeview/img_faces/img_faces.py
+
+Bubble tree maps
+-------------------
+
+ .. figure:: ../../examples/treeview/bubble_map.png
+
+ .. literalinclude:: ../../examples/treeview/bubble_map.py
+
+Trees within trees
+-------------------
+
+ .. figure:: ../../examples/treeview/tree_faces.png
+
+ .. literalinclude:: ../../examples/treeview/tree_faces.py
+
+Phylogenetic trees and sequence domains
+--------------------------------------------
+
+ .. figure:: ../../examples/treeview/seq_motif_faces.png
+
+ .. literalinclude:: ../../examples/treeview/seq_motif_faces.py
+
+
+Creating your custom interactive Item faces
+-------------------------------------------
+
+ .. figure:: ../../examples/treeview/item_faces.png 
+ 
+Note that item faces shown in this image are not static. When the tree
+is view using the tree.show() method, you can interact with items.
+
+ .. literalinclude:: ../../examples/treeview/item_faces.py
diff --git a/doc/_sources/tutorial/tutorial_etree2orthoxml.txt b/doc/_sources/tutorial/tutorial_etree2orthoxml.txt
new file mode 100644
index 0000000..128bf85
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_etree2orthoxml.txt
@@ -0,0 +1,355 @@
+.. module:: ete3
+  :synopsis: Converts evolutionary events into OrthoXML format
+
+.. moduleauthor:: Jaime Huerta-Cepas
+.. currentmodule:: ete3
+
+.. _etree2orthoxml:
+
+SCRIPTS: orthoXML
+************************************
+
+.. contents::
+
+OrthoXML parser
+============================
+
+:attr:`etree2orthoxml` is a python script distributed as a part of the
+ETE toolkit package. It uses an automatic python parser generated on
+the basis of the OrthoXML schema to convert the evolutionary events in
+phylogenetic tree topologies into the orthoXML format.
+
+ETE OrthoXML parser is a low level python module that allows to
+operate with the orthoXML structure using python objects. Every
+element defined in the orthoXML schema has its akin in the parser
+module, so a complete orthoXML structure can be generated from scratch
+within a python script. In other words, low level access to the
+orthoXML parser allows to create orthoxml documents in a programmatic
+way.
+
+
+The following example will create a basic orthoXML document
+:: 
+
+    from ete3 import orthoxml
+    # Creates an empty orthoXML object
+    oxml = orthoxml.orthoXML()
+
+    # Add an ortho group container to the orthoXML document
+    ortho_groups = orthoxml.groups()
+    oxml.set_groups(ortho_groups)
+
+    # Add an orthology group including two sequences
+    orthologs = orthoxml.group()
+    orthologs.add_geneRef(orthoxml.geneRef(1))
+    orthologs.add_geneRef(orthoxml.geneRef(2))
+    ortho_groups.add_orthologGroup(orthologs)
+
+    oxml_file = open("test_orthoxml.xml", "w")
+    oxml.export(oxml_file, level=0)
+    oxml_file.close()
+
+    # producing the following output
+    #<ortho:orthoXML>
+    #   <ortho:groups>
+    #       <ortho:orthologGroup>
+    #           <ortho:geneRef id="1"/>
+    #           <ortho:geneRef id="2"/>
+    #       </ortho:orthologGroup>
+    #   </ortho:groups>
+    #</ortho:orthoXML>
+
+
+The etree2orthoxml script 
+================================
+
+:attr:`etree2orthoxml` is a standalone python script that allows to
+read a phylogenetic tree in newick format and export their
+evolutionary events (duplication and speciation events) as an orthoXML
+document. The program is installed along with ETE, so it should be
+found in your path. Alternatively you can found it in the script
+folder of the latest ETE package release
+(http://etetoolkit.org/releases/ete3/).
+
+To work, :attr:`etree2orthoxml` requires only one argument containing
+the newick representation of a tree or the name of the file that
+contains it. By default, automatic detection of speciation and
+duplication events will be carried out using the built-in
+:ref:`species overlap algorithm <spoverlap>`, although this behavior
+can be easily disabled when event information is provided along with
+the newick tree. In the following sections you will find some use case
+examples.
+
+Also, consider reading the source code of the script. It is documented
+and it can be used as a template for more specific applications. Note
+that :attr:`etree2orthoxml` is a work in progress, so feel free to use
+the `etetoolkit mailing list
+<https://groups.google.com/forum/#!forum/etetoolkit>`_ to report any
+feedback or improvement to the code.
+
+Usage
+----------------
+
+::
+
+   usage: etree2orthoxml [-h] [--sp_delimiter SPECIES_DELIMITER]
+                         [--sp_field SPECIES_FIELD] [--root [ROOT [ROOT ...]]]
+                         [--skip_ortholog_detection]
+                         [--evoltype_attr EVOLTYPE_ATTR] [--database DATABASE]
+                         [--show] [--ascii] [--newick]
+                         tree_file
+    
+   etree2orthoxml is a python script that extracts evolutionary events
+   (speciation and duplication) from a newick tree and exports them as a
+   OrthoXML file.
+    
+   positional arguments:
+     tree_file             A tree file (or text string) in newick format.
+    
+   optional arguments:
+     -h, --help            show this help message and exit
+     --sp_delimiter SPECIES_DELIMITER
+                           When species names are guessed from node names, this
+                           argument specifies how to split node name to guess the
+                           species code
+     --sp_field SPECIES_FIELD
+                           When species names are guessed from node names, this
+                           argument specifies the position of the species name
+                           code relative to the name splitting delimiter
+     --root [ROOT [ROOT ...]]
+                           Roots the tree to the node grouping the list of node
+                           names provided (space separated). In example:'--root
+                           human rat mouse'
+     --skip_ortholog_detection
+                           Skip automatic detection of speciation and duplication
+                           events, thus relying in the correct annotation of the
+                           provided tree using the extended newick format (i.e.
+                           '((A, A)[&&NHX:evoltype=D], B)[&&NHX:evoltype=S];')
+     --evoltype_attr EVOLTYPE_ATTR
+                           When orthology detection is disabled, the attribute
+                           name provided here will be expected to exist in all
+                           internal nodes and read from the extended newick
+                           format
+     --database DATABASE   Database name
+     --show                Show the tree and its evolutionary events before
+                           orthoXML export
+     --ascii               Show the tree using ASCII representation and all its
+                           evolutionary events before orthoXML export
+     --newick              print the extended newick format for provided tree
+                           using ASCII representation and all its evolutionary
+                           events before orthoXML export
+
+
+
+Example: Using custom evolutionary annotation 
+------------------------------------------------------
+
+If all internal nodes in the provided tree are correctly label as
+duplication or speciation nodes, automatic detection of events can be
+disabled using the :attr:`--skip_ortholog_detection` flag. 
+
+Node labeling should be provided using the extended newick
+format. Duplication nodes should contain the label :attr:`evoltype`
+set to :attr:`D`, while speciation nodes should be set to
+:attr:`evoltype=S`. If tag names is different, the option
+:attr:`evoltype_attr` can be used as convenient.
+
+
+In the following example, we force the HUMAN clade to be considered a
+speciation node.
+
+:: 
+
+   # etree2orthoxml --skip_ortholog_detection '((HUMAN_A, HUMAN_B)[&&NHX:evoltype=S], MOUSE_B)[&&NHX:evoltype=S];'
+
+    <orthoXML>
+        <species name="A">
+            <database name="">
+               <genes>
+                    <gene protId="HUMAN_A" id="0"/>
+                </genes>
+            </database>
+        </species>
+        <species name="B">
+            <database name="">
+                <genes>
+                    <gene protId="HUMAN_B" id="1"/>
+                    <gene protId="MOUSE_B" id="2"/>
+                </genes>
+            </database>
+        </species>
+        <groups>
+            <orthologGroup>
+                <geneRef id="2"/>
+                <orthologGroup>
+                    <geneRef id="0"/>
+                    <geneRef id="1"/>
+                </orthologGroup>
+            </orthologGroup>
+        </groups>
+    </orthoXML>
+
+
+You can avoid tree reformatting when node labels are slightly
+different by using the :attr:`evoltype_attr`: 
+
+:: 
+
+   # etree2orthoxml --evoltype_attr E --skip_ortholog_detection '((HUMAN_A, HUMAN_B)[&&NHX:E=S], MOUSE_B)[&&NHX:E=S];'
+
+However, more complex modifications on raw trees can be easily
+performed using the core methods of the ETE library, so they match the
+requirements of the :attr:`etree2orthoxml` script.
+
+:: 
+
+   from ete3 import Tree
+   # Having the followin tree
+   t = Tree('((HUMAN_A, HUMAN_B)[&&NHX:speciation=N], MOUSE_B)[&&NHX:speciation=Y];')
+
+   # We read the speciation tag from nodes and convert it into a vaild evoltree label
+   for node in t.traverse():
+      if not node.is_leaf():
+         etype = "D" if node.speciation == "N" else "S"
+         node.add_features(evoltype=etype)
+ 
+   # We the export a newick string that is compatible with etree2orthoxml script
+   t.write(features=["evoltype"], format_root_node=True)
+
+   # converted newick:
+   # '((HUMAN_A:1,HUMAN_B:1)1:1[&&NHX:evoltype=D],MOUSE_B:1)1:1[&&NHX:evoltype=S];'
+
+
+Example: Automatic detection of species names 
+--------------------------------------------------
+As different databases and software may produce slightly different
+newick tree formats, the script provides several customization
+options.
+
+In gene family trees, species names are usually encoded as a part of
+leaf names (i.e. P53_HUMAN). If such codification follows a simple
+rule, :attr:`etree2orthoxml` can automatically detect species name and
+used to populate the relevant sections within the orthoXML document. 
+
+For this, the :attr:`sp_delimiter` and :attr:`sp_field` arguments can
+be used. Note how species are correctly detected in the following example:
+
+:: 
+
+   # etree2orthoxml --database TestDB --evoltype_attr E --skip_ortholog_detection --sp_delimiter '_' --sp_field 0  '((HUMAN_A, HUMAN_B)[&&NHX:E=S], MOUSE_B)[&&NHX:E=S];'
+   <orthoXML>
+    <species name="HUMAN">
+        <database name="TestDB">
+            <genes>
+                <gene protId="HUMAN_A" id="0"/>
+                <gene protId="HUMAN_B" id="1"/>
+            </genes>
+        </database>
+    </species>
+    <species name="MOUSE">
+        <database name="TestDB">
+            <genes>
+                <gene protId="MOUSE_B" id="2"/>
+            </genes>
+        </database>
+    </species>
+    <groups>
+        <orthologGroup>
+            <geneRef id="2"/>
+            <orthologGroup>
+                <geneRef id="0"/>
+                <geneRef id="1"/>
+            </orthologGroup>
+        </orthologGroup>
+    </groups>
+   </orthoXML>
+
+
+Example: Tree rooting
+---------------------------
+
+When evolutionary events are expected to be automatically inferred
+from tree topology, outgroup information can be passed to the program to
+root the tree before performing the detection. 
+
+::
+
+   # etree2orthoxml --ascii --root FLY_1 FLY_2 --sp_delimiter '_' --sp_field 0  '((HUMAN_A, HUMAN_B), MOUSE_B, (FLY_1, FLY_2));' 
+
+
+
+                         /-FLY_1
+                /D, NoName
+               |         \-FLY_2
+       -S, NoName
+               |                  /-HUMAN_A
+               |         /D, NoName
+                \S, NoName        \-HUMAN_B
+                        |
+                         \-MOUSE_B
+
+
+       <orthoXML>
+           <species name="FLY">
+               <database name="">
+                   <genes>
+                       <gene protId="FLY_1" id="0"/>
+                       <gene protId="FLY_2" id="1"/>
+                   </genes>
+               </database>
+           </species>
+           <species name="HUMAN">
+               <database name="">
+                   <genes>
+                       <gene protId="HUMAN_A" id="2"/>
+                       <gene protId="HUMAN_B" id="3"/>
+                   </genes>
+               </database>
+           </species>
+           <species name="MOUSE">
+               <database name="">
+                   <genes>
+                       <gene protId="MOUSE_B" id="4"/>
+                   </genes>
+               </database>
+           </species>
+           <groups>
+               <orthologGroup>
+                   <paralogGroup>
+                       <geneRef id="0"/>
+                       <geneRef id="1"/>
+                   </paralogGroup>
+                   <orthologGroup>
+                       <geneRef id="4"/>
+                       <paralogGroup>
+                           <geneRef id="2"/>
+                           <geneRef id="3"/>
+                       </paralogGroup>
+                   </orthologGroup>
+               </orthologGroup>
+           </groups>
+       </orthoXML>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/_sources/tutorial/tutorial_ncbitaxonomy.txt b/doc/_sources/tutorial/tutorial_ncbitaxonomy.txt
new file mode 100644
index 0000000..f6d5c9c
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_ncbitaxonomy.txt
@@ -0,0 +1,259 @@
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. versionadded:: 2.3
+
+.. currentmodule:: ete3
+
+Dealing with the NCBI Taxonomy database
+=================================================
+
+ETE's `ncbi_taxonomy` module provides utilities to efficiently query a local
+copy of the NCBI Taxonomy database. The class :class:`NCBITaxonomy` offers
+methods to convert from taxid to names (and vice versa), to fetch pruned
+topologies connecting a given set of species, or to download rank, names and
+lineage track information.
+ 
+It is also fully integrated with :class:`PhyloTree` instances through the
+:func:`PhyloNode.annotate_ncbi_taxa` method.
+
+Setting up a local copy of the NCBI taxonomy database
+-------------------------------------------------------
+
+The first time you attempt to use :class:`NCBITaxa`, ETE will detect that your
+local database is empty and it will attempt to download the latest NCBI taxonomy
+database (~300MB) and will store a parsed version of it in your home directory:
+`~/.etetoolkit/taxa.sqlite`. All future imports of _`NCBITaxa` will detect the
+local database and will skip this step.
+
+::
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+
+Upgrading the local database
+------------------------------
+
+Use the method :NCBITaxa:`update_taxonomy_database` to download and parse the
+latest database from the NCBI ftp site. Your current local database will be
+overwritten.
+
+::
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+   ncbi.update_taxonomy_database()
+
+
+Getting taxid information 
+-----------------------------
+
+you can fetch species names, ranks and linage track information for your taxids
+using the following methods:
+
+ - :func:`NCBITaxa.get_rank`
+ - :func:`NCBITaxa.get_lineage`
+ - :func:`NCBITaxa.get_taxid_translator`
+ - :func:`NCBITaxa.get_name_translator`
+ - :func:`NCBITaxa.translate_to_names`
+
+The so called get-translator-functions will return a dictionary converting
+between taxids and species names. Either species or linage names/taxids are
+accepted as input.
+
+::
+ 
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+   taxid2name = ncbi.get_taxid_translator([9606, 9443])
+   print taxid2name
+   # {9443: u'Primates', 9606: u'Homo sapiens'}
+   
+   name2taxid = ncbi.get_name_translator(['Homo sapiens', 'primates'])
+   print name2taxid
+   # {'Homo sapiens': [9606], 'primates': [9443]}
+
+   # when the same name points to several taxa, all taxids are returned
+   name2taxid = ncbi.get_name_translator(['Bacteria'])
+   print name2taxid
+   # {'Bacteria': [2, 629395]}
+
+   
+Other functions allow to extract further information using taxid numbers as a query. 
+
+::
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+
+   print ncbi.get_rank([9606, 9443])
+   # {9443: u'order', 9606: u'species'}
+
+   print ncbi.get_lineage(9606) 
+
+   # [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742,
+   # 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347,
+   # 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598, 9605,
+   # 9606]
+
+
+And you can combine combine all at once:
+
+::
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+
+   lineage = ncbi.get_lineage(9606) 
+   print lineage
+
+   # [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742,
+   # 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347,
+   # 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598, 9605,
+   # 9606]
+
+   names = ncbi.get_taxid_translator(lineage)
+   print [names[taxid] for taxid in lineage]
+ 
+   # [u'root', u'cellular organisms', u'Eukaryota', u'Opisthokonta', u'Metazoa',
+   # u'Eumetazoa', u'Bilateria', u'Deuterostomia', u'Chordata', u'Craniata',
+   # u'Vertebrata', u'Gnathostomata', u'Teleostomi', u'Euteleostomi',
+   # u'Sarcopterygii', u'Dipnotetrapodomorpha', u'Tetrapoda', u'Amniota',
+   # u'Mammalia', u'Theria', u'Eutheria', u'Boreoeutheria', u'Euarchontoglires',
+   # u'Primates', u'Haplorrhini', u'Simiiformes', u'Catarrhini', u'Hominoidea',
+   # u'Hominidae', u'Homininae', u'Homo', u'Homo sapiens']
+
+
+Getting descendant taxa
+-----------------------------
+
+Given a taxid or a taxa name from an internal node in the NCBI taxonomy tree,
+their descendants can be retrieved as follows:
+
+::
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+
+   descendants = ncbi.get_descendant_taxa('Homo')
+   print ncbi.translate_to_names(descendants)
+
+   # [u'Homo heidelbergensis', u'Homo sapiens ssp. Denisova', u'Homo sapiens neanderthalensis']
+
+   # you can easily ignore subspecies, so only taxa labeled as "species" will be reported:
+   descendants = ncbi.get_descendant_taxa('Homo', collapse_subspecies=True)
+   print ncbi.translate_to_names(descendants)
+
+   # [u'Homo sapiens', u'Homo heidelbergensis']
+
+   # or even returned as an annotated tree
+   tree = ncbi.get_descendant_taxa('Homo', collapse_subspecies=True, return_tree=True)
+   print tree.get_ascii(attributes=['sci_name', 'taxid'])
+
+   #           /-Homo sapiens, 9606
+   # -Homo, 9605
+   #           \-Homo heidelbergensis, 1425170
+
+
+Getting NCBI species tree topology
+---------------------------------------
+
+Getting the NCBI taxonomy tree for a given set of species is one of the most
+useful ways to get all information at once. The method
+:func:`NCBITaxa.get_topology` allows to query your local NCBI database and
+extract the smallest tree that connects all your query taxids. It returns a
+normal ETE tree in which all nodes, internal or leaves, are annotated for
+lineage, scientific names, ranks, and so on.
+
+::
+
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+   
+   tree = ncbi.get_topology([9606, 9598, 10090, 7707, 8782])
+   print tree.get_ascii(attributes=["sci_name", "rank"])
+
+   #                     /-Dendrochirotida, order
+   #                    |
+   #                    |                                                                /-Pan troglodytes, species
+   # -Deuterostomia, no rank                                           /Homininae, subfamily
+   #                    |                /Euarchontoglires, superorder                   \-Homo sapiens, species
+   #                    |               |                           |
+   #                     \Amniota, no rank                           \-Mus musculus, species
+   #                                    |
+   #                                     \-Aves, class
+
+
+If needed, all intermediate nodes connecting the species can also be kept in the tree: 
+
+::
+
+
+   from ete3 import NCBITaxa
+   ncbi = NCBITaxa()
+   
+   tree = ncbi.get_topology([2, 33208], intermediate_nodes=True)
+   print tree.get_ascii(attributes=["sci_name"])
+
+   #                  /Eukaryota - Opisthokonta - Metazoa
+   # -cellular organisms
+   #                  \-Bacteria
+
+
+
+Automatic tree annotation using NCBI taxonomy
+--------------------------------------------------
+
+NCBI taxonomy annotation consists of adding additional information to any
+internal a leaf node in a give user tree. Only an attribute containing the taxid
+associated to each node is required for the nodes in the query tree. The
+annotation process will add the following features to the nodes:
+
+ - sci_name  
+ - taxid
+ - named_lineage 
+ - lineage 
+ - rank
+
+Note that, for internal nodes, taxid can be automatically inferred based on
+their sibling nodes. The easiest way to annotate a tree is to use a
+:class:`PhyloTree` instance where the species name attribute is transparently
+used as the taxid attribute.  Note that the :PhyloNode:`annotate_ncbi_taxa`:
+function will also return the used name, lineage and rank translators.
+
+Remember that species names in `PhyloTree` instances are automatically extracted
+from leaf names. The parsing method can be easily adapted to any formatting:
+
+::
+
+
+   from ete3 import PhyloTree
+
+   # load the whole leaf name as species taxid
+   tree = PhyloTree('((9606, 9598), 10090);', sp_naming_function=lambda name: name)
+   tax2names, tax2lineages, tax2rank = tree.annotate_ncbi_taxa()
+
+   # split names by '|' and return the first part as the species taxid 
+   tree = PhyloTree('((9606|protA, 9598|protA), 10090|protB);', sp_naming_function=lambda name: name.split('|')[0])
+   tax2names, tax2lineages, tax2rank = tree.annotate_ncbi_taxa()
+
+   print tree.get_ascii(attributes=["name", "sci_name", "taxid"])
+
+
+   #                                             /-9606|protA, Homo sapiens, 9606
+   #                          /, Homininae, 207598
+   #-, Euarchontoglires, 314146                  \-9598|protA, Pan troglodytes, 9598
+   #                         |
+   #                          \-10090|protB, Mus musculus, 10090
+
+
+Alternatively, you can also use the :func:`NCBITaxa.annotate_tree` function to
+annotate a custom tree instance.
+
+::
+
+   from ete3 import Tree, NCBITaxa
+   ncbi = NCBITaxa()
+   tree = Tree("")
+   ncbi.annotate_tree(tree, taxid_attr="name")
+
+
diff --git a/doc/_sources/tutorial/tutorial_nexml.txt b/doc/_sources/tutorial/tutorial_nexml.txt
new file mode 100644
index 0000000..955f54a
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_nexml.txt
@@ -0,0 +1,136 @@
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. versionadded:: 2.1
+
+.. currentmodule:: ete3
+
+NeXML 
+************************
+
+NeXML(http://nexml.org) is an exchange standard for representing
+phyloinformatic data inspired by the commonly used NEXUS format, but
+more robust and easier to process.
+
+
+Reading NeXML projects
+----------------------------
+
+Nexml projects are handled through the :class:`Nexml` base class.  To
+load a NexML file, the :func:`Nexml.build_from_file` method can be
+used. 
+
+:: 
+
+  from ete3 import Nexml
+
+  nexml_prj = Nexml()
+  nexml_prj.build_from_file("/path/to/nexml_example.xml")
+
+
+Note that the ETE parser will read the provided XML file and convert
+all elements into python instances, which will be hierarchically
+connected to the Nexml root instance.
+
+Every NeXML XML element has its own python class. Content and
+attributes can be handled through the "set_" and "get_" methods
+existing in all objects. Nexml classes can be imported from the
+:mod:`ete3.nexml` module.
+
+:: 
+
+  from ete3 import Nexml, nexml
+  nexml_prj = Nexml()
+  nexml_meta = nexml.LiteralMeta(datatype="double", property="branch_support", content=1.0)
+  nexml_prj.add_meta(nexml_meta)
+  nexml_prj.export()
+
+  # Will produce:
+  #
+  # <Nexml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Nexml">
+  #    <meta datatype="double" content="1.0" property="branch_support" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LiteralMeta"/>
+  # </Nexml>
+
+NeXML trees
+==============
+
+NeXML tree elements are automatically converted into
+:class:`PhyloTree` instances, containing all ETE functionality
+(traversing, drawing, etc) plus normal NeXML attributes.
+
+In the Nexml standard, trees are represented as plain lists of nodes
+and edges. ETE will convert such lists into tree topologies, in which
+every node will contain a :attr:`nexml_node` and :attr:`nexml_edge`
+attribute. In addition, each tree node will have a :attr:`nexml_tree`
+attribute (i.e. ``NEXML->FloatTree``) , which can be used to set the
+nexml properties of the subtree represented by each node. Note also
+that :attr:`node.dist` and :attr:`node.name` features will be linked
+to :attr:`node.nexml_edge.length` and :attr:`node.nexml_node.label`,
+respectively.
+
+.. literalinclude:: ../../examples/nexml/nexml_parser.py
+
+:download:`[Download tolweb.xml example]  <../../examples/nexml/trees.xml>` ||
+:download:`[Download script]  <../../examples/nexml/nexml_parser.py>`
+
+Node meta information is also available:
+
+.. literalinclude:: ../../examples/nexml/nexml_annotated_trees.py 
+
+:download:`[Download tolweb.xml example]  <../../examples/nexml/tolweb.xml>` || 
+:download:`[Download script]  <../../examples/nexml/nexml_annotated_trees.py>`
+
+------------------------------------
+Creating Nexml project from scratch 
+------------------------------------
+
+:class:`Nexml` base class can also be used to create projects from
+scratch in a programmatic way. Using the collection of NeXML classes
+provided by the:mod:`ete3.nexml` module, you can populate an empty
+project and export it as XML.
+
+.. literalinclude:: ../../examples/nexml/nexml_from_scratch.py
+
+:download:`[Download script]  <../../examples/nexml/nexml_from_scratch.py>`
+
+--------------------------------------
+Writing NeXML objects
+--------------------------------------
+
+Every NexML object has its own :func:`export` method. By calling it,
+you can obtain the XML representation of any instance contained in the
+Nexml project structure. Usually, all you will need is to export the
+whole project, but individual elements can be exported. 
+
+:: 
+
+   import sys
+   from ete3 import Nexml
+   # Create an empty Nexml project 
+   nexml_project = Nexml()
+
+   # Upload content from file
+   nexml_project.build_from_file("nexml_example.xml")
+  
+   # Extract first collection of trees
+   tree_collection =  nexml.get_trees()[0]
+
+   # And export it
+   tree_collection.export(output=sys.stdout, level=0)
+
+
+NeXML tree manipulation and visualization
+---------------------------------------------
+
+NeXML trees contain all ETE PhyloTree functionality: orthology
+prediction, topology manipulation and traversing methods,
+visualization, etc.
+
+For instance, tree changes performed through the visualization GUI are
+kept in the NeXML format.
+
+:: 
+
+   from ete3 import nexml
+   nexml_tree = nexml.NexMLTree("((hello, nexml):1.51, project):0.6;")
+   tree_collection.add_tree(nexml_tree)
+   nexml_tree.show()
diff --git a/doc/_sources/tutorial/tutorial_phylogeny.txt b/doc/_sources/tutorial/tutorial_phylogeny.txt
new file mode 100644
index 0000000..961e6f7
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_phylogeny.txt
@@ -0,0 +1,689 @@
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. :author:: Jaime Huerta-Cepas
+
+.. currentmodule:: ete3
+
+Phylogenetic Trees
+********************
+
+.. contents::
+
+Overview
+================
+
+Phylogenetic trees are the result of most evolutionary analyses. They
+represent the evolutionary relationships among a set of species or, in
+molecular biology, a set of homologous sequences.
+
+The :class:`PhyloTree` class is an extension of the base :class:`Tree`
+object, providing a appropriate way to deal with phylogenetic trees.
+Thus, while leaves are considered to represent species (or sequences
+from a given species genome), internal nodes are considered ancestral
+nodes. A direct consequence of this is, for instance, that every split
+in the tree will represent a speciation or duplication event.
+
+Linking Phylogenetic Trees with Multiple Sequence Alignments
+================================================================
+
+:class:`PhyloTree` instances allow molecular phylogenies to be linked
+to the Multiple Sequence Alignments (MSA). To associate a MSA with a
+phylogenetic tree you can use the :func:`PhyloNode.link_to_alignment`
+method. You can use the :attr:`alg_format` argument to specify its
+format (See :class:`SeqGroup` documentation for available formats)
+
+Given that Fasta format are not only applicable for MSA but also for
+**Unaligned Sequences**, you may also associate sequences of different
+lengths with tree nodes.
+
+::
+  
+  from ete3 import PhyloTree
+  fasta_txt = """
+  >seqA
+  MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+  >seqB
+  MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+  >seqC
+  MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+  >seqD
+  MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+  """
+
+  # Load a tree and link it to an alignment.
+  t = PhyloTree("(((seqA,seqB),seqC),seqD);")
+  t.link_to_alignment(alignment=fasta_txt, alg_format="fasta") 
+
+The same could be done at the same time the tree is being loaded, by
+using the :attr:`alignment` and :attr:`alg_format` arguments of
+:class:`PhyloTree`.
+
+::
+
+  # Load a tree and link it to an alignment. 
+  t = PhyloTree("(((seqA,seqB),seqC),seqD);", alignment=fasta_txt, alg_format="fasta")
+
+
+As currently implemented, sequence linking process is not strict,
+which means that a perfect match between all node names and sequences
+names **is not required**. Thus, if only one match is found between
+sequences names within the MSA file and tree node names, only one tree
+node will contain an associated sequence. Also, it is important to
+note that sequence linking is not limited to terminal nodes. If
+internal nodes are named, and such names find a match within the
+provided MSA file, their corresponding sequences will be also loaded
+into the tree structure. Once a MSA is linked, sequences will be
+available for every tree node through its :attr:`node.sequence`
+attribute.
+
+.. literalinclude:: ../../examples/phylogenies/link_sequences_to_phylogenies.py
+
+Visualization of phylogenetic trees
+===================================
+
+PhyloTree instances can benefit from all the features of the
+programmable drawing engine. However, a built-in phylogenetic layout
+is provided for convenience. 
+
+All PhyloTree instances are, by default, attached to such layout for
+tree visualization, thus allowing for in-place alignment visualization
+and evolutionary events labeling. 
+
+.. figure:: ../../examples/phylogenies/phylotree.png
+
+.. literalinclude:: ../../examples/phylogenies/phylotree_visualization.py
+
+
+Adding taxonomic information
+===============================
+.. _taxonomic_info:
+
+:class:`PhyloTree` instances allow to deal with leaf names and species
+names separately.  This is useful when working with molecular
+phylogenies, in which node names usually represent sequence
+identifiers.  Species names will be stored in the
+:attr:`PhyloNode.species` attribute of each leaf node. The method
+:func:`PhyloNode.get_species` can be used obtain the set of species
+names found under a given internal node (speciation or duplication
+event).  Often, sequence names do contain species information as a
+part of the name, and ETE can parse this information automatically. 
+
+There are three ways to establish the species of the different tree
+nodes:
+
++ Default: The three first letters of node's name represent the species 
++ The species code of each node is dynamically created based on node's name
++ The species code of each node is manually set.
+
+Automatic control of species info
+------------------------------------
+
+::
+
+  from ete3 import PhyloTree
+  # Reads a phylogenetic tree (using default species name encoding)
+  t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
+  #                              /-Hsa_001
+  #                    /--------|
+  #                   |          \-Ptr_001
+  #          /--------|
+  #         |         |          /-Cfa_001
+  #         |          \--------|
+  #---------|                    \-Mms_001
+  #         |
+  #         |          /-Dme_001
+  #          \--------|
+  #                    \-Dme_002
+  #
+  # Prints current leaf names and species codes
+  print "Deafult mode:"
+  for n in t.get_leaves():
+      print "node:", n.name, "Species name:", n.species
+  # node: Dme_001 Species name: Dme
+  # node: Dme_002 Species name: Dme
+  # node: Hsa_001 Species name: Hsa
+  # node: Ptr_001 Species name: Ptr
+  # node: Cfa_001 Species name: Cfa
+  # node: Mms_001 Species name: Mms
+
+
+Automatic (and custom) control of the species info
+----------------------------------------------------
+
+The default behavior can be changed by using the
+:func:`PhyloNode.set_species_naming_function` method or by using the
+:attr:`sp_naming_function` argument of the :class:`PhyloTree` class.
+Note that, using the :attr:`sp_naming_function` argument, the whole
+tree structure will be initialized to use the provided parsing
+function to obtain species name
+information. :func:`PhyloNode.set_species_naming_function` (present in
+all tree nodes) can be used to change the behavior in a previously
+loaded tree, or to set different parsing function to different parts
+of the tree.
+
+::
+
+  from ete3 import PhyloTree
+  # Reads a phylogenetic tree
+  t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
+
+  # Let's use our own leaf name parsing function to obtain species
+  # names. All we need to do is create a python function that takes
+  # node's name as argument and return its corresponding species name.
+  def get_species_name(node_name_string):
+      # Species code is the first part of leaf name (separated by an
+      #  underscore character)
+      spcode = node_name_string.split("_")[0]
+      # We could even translate the code to complete names
+      code2name = {
+        "Dme":"Drosophila melanogaster",
+        "Hsa":"Homo sapiens",
+        "Ptr":"Pan troglodytes",
+        "Mms":"Mus musculus",
+        "Cfa":"Canis familiaris"
+        }
+      return code2name[spcode]
+   
+  # Now, let's ask the tree to use our custom species naming function
+  t.set_species_naming_function(get_species_name)
+  print "Custom mode:"
+  for n in t.get_leaves():
+      print "node:", n.name, "Species name:", n.species
+
+  # node: Dme_001 Species name: Drosophila melanogaster
+  # node: Dme_002 Species name: Drosophila melanogaster
+  # node: Hsa_001 Species name: Homo sapiens
+  # node: Ptr_001 Species name: Pan troglodytes
+  # node: Cfa_001 Species name: Canis familiaris
+  # node: Mms_001 Species name: Mus musculus
+
+
+Manual control of the species info
+-------------------------------------
+
+To disable the automatic generation of species names based on node
+names, a ``None`` value can be passed to the
+:func:`PhyloNode.set_species_naming_function` function. From then on,
+species attribute will not be automatically updated based on the name
+of nodes and it could be controlled manually. 
+
+::
+
+  from ete3 import PhyloTree
+  # Reads a phylogenetic tree
+  t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
+
+  # Of course, you can disable the automatic generation of species
+  # names. To do so, you can set the species naming function to
+  # None. This is useful to set the species names manually or for
+  # reading them from a newick file. Other wise, species attribute would
+  # be overwriten
+  mynewick = """
+  (((Hsa_001[&&NHX:species=Human],Ptr_001[&&NHX:species=Chimp]),
+  (Cfa_001[&&NHX:species=Dog],Mms_001[&&NHX:species=Mouse])),
+  (Dme_001[&&NHX:species=Fly],Dme_002[&&NHX:species=Fly]));
+  """
+  t = PhyloTree(mynewick, sp_naming_function=None)
+  print "Disabled mode (manual set)"
+  for n in t.get_leaves():
+      print "node:", n.name, "Species name:", n.species
+   
+  # node: Dme_001 Species name: Fly
+  # node: Dme_002 Species name: Fly
+  # node: Hsa_001 Species name: Human
+  # node: Ptr_001 Species name: Chimp
+  # node: Cfa_001 Species name: Dog
+  # node: Mms_001 Species name: Mouse  
+
+
+**Full Example:** :download:`Species aware trees
+<../../examples/phylogenies/species_aware_phylogenies.py>`.
+
+
+Detecting evolutionary events
+=============================
+
+There are several ways to automatically detect duplication and
+speciation nodes. ETE provides two methodologies: One implements the
+algorithm described in `Huerta-Cepas (2007)
+<http://genomebiology.com/2007/8/6/R109>`_ and is based on the species
+overlap (SO) between partitions and thus does not depend on the
+availability of a species tree. The second, which requires the
+comparison between the gene tree and a previously defined species
+tree, implements a strict tree reconciliation algorithm (Page and
+Charleston, 1997). By detecting evolutionary events, orthology and
+paralogy relationships among sequences can also be inferred.  Find a
+comparison of both methods in `Marcet-Houben and Gabaldon (2009)
+<http://www.plosone.org/article/info:doi%2F10.1371%2Fjournal.pone.0004357>`_.
+
+
+.. _spoverlap: 
+
+Species Overlap (SO) algorithm
+------------------------------
+
+In order to apply the SO algorithm, you can use the
+:func:`PhyloNode.get_descendant_evol_events` method (it will detect
+all evolutionary events under the current node) or the
+:func:`PhyloNode.get_my_evol_events` method (it will detect only the
+evolutionary events in which current node, a leaf, is involved).
+
+By default the **species overlap score (SOS) threshold** is set to
+0.0, which means that a single species in common between two node
+branches will rise a duplication event. This has been shown to perform
+the best with real data, however you can adjust the threshold using
+the ``sos_thr`` argument present in both methods.
+
+.. literalinclude:: ../../examples/phylogenies/orthology_and_paralogy_prediction.py
+
+Tree reconciliation algorithm
+---------------------------------------
+
+Tree reconciliation algorithm uses a predefined species tree to infer
+all the necessary genes losses that explain a given gene tree
+topology. Consequently, duplication and separation nodes will strictly
+follow the species tree topology.
+
+To perform a tree reconciliation analysis over a given node in a
+molecular phylogeny you can use the :func:`PhyloNode.reconcile`
+method, which requires a species :class:`PhyloTree` as its first
+argument. Leaf node names in the the species are expected to be the
+same species codes in the gene tree (see
+`taxonomic_info`_). All species codes present in the
+gene tree should appear in the species tree.
+
+As a result, the :func:`PhyloNode.reconcile` method will label the
+original gene tree nodes as duplication or speciation, will return the
+list of inferred events, and will return a new **reconcilied tree**
+(:class:`PhyloTree` instance), in which inferred gene losses are
+present and labeled.
+
+
+.. literalinclude:: ../../examples/phylogenies/tree_reconciliation.py
+
+
+A closer look to the evolutionary event object
+------------------------------------------------
+
+Both methods, species overlap and tree reconciliation, can be used to
+label each tree node as a duplication or speciation event. Thus, the
+:attr:`PhyloNode.evoltype` attribute of every node will be set to one
+of the following states: ``D`` (Duplication), ``S`` (Speciation) or
+``L`` gene loss.
+
+Additionally, a list of all the detected events is returned. Each
+event is a python object of type :class:`phylo.EvolEvent`, containing
+some basic information about each event ( :attr:`etype`,
+:attr:`in_seqs`, :attr:`out_seqs`, :attr:`node`):
+
+If an event represents a duplication, ``in_seqs`` **are all
+paralogous** to ``out_seqs``. Similarly, if an event represents a
+speciation, ``in_seqs`` **are all orthologous** to ``out_seqs``.
+
+
+Relative dating phylogenetic nodes
+=====================================
+
+In molecular phylogeny, nodes can be interpreted as evolutionary
+events. Therefore, they represent duplication or speciation events. In
+the case of gene duplication events, nodes can also be assigned to a
+certain point in a relative temporal scale. In other words, you can
+obtain a relative dating of all the duplication events detected.
+
+Although **absolute dating is always preferred and more precise**,
+topological dating provides a faster approach to compare the relative
+age of paralogous sequences (`read this
+<http://bioinformatics.oxfordjournals.org/content/27/1/38.long>`_ for
+a comparison with other methods, such as the use of synonymous
+substitution rates as a proxy to the divergence time).
+
+Some applications of topological dating can be found in `Huerta-Cepas
+et al, 2007 <http://genomebiology.com/2007/8/6/r109>`_ or, more
+recently, in `Huerta-Cepas et al, 2011
+<http://bib.oxfordjournals.org/content/12/5/442.abstract>`_ or
+`Kalinka et al, 2001
+<http://www.nature.com/nature/journal/v468/n7325/full/nature09634.html>`_.
+
+
+Implementation
+------------------
+
+The aim of relative dating is to establish a gradient of ages among
+sequences. For this, a reference species needs to be fixed, so the
+gradient of ages will be referred to that referent point.
+
+Thus, if our reference species is `Human`, we could establish the
+following gradient of species: 
+
++ \(1) Human -> (2) Other Primates -> (3) Mammals -> (4) Vertebrates
+
+So, nodes in a tree can be assigned to one of the above categories
+depending on the sequences grouped. For instance: 
+
++ A node with only human sequences will be mapped to (1). 
++ A node with human and orangutan sequences will be mapped to (2)
++ A node with human a fish sequences will be mapped to (4)
+
+This simple calculation can be done automatically by encoding the
+gradient of species ages as Python dictionary.
+
+:: 
+
+  relative_dist = {
+      "human": 0, # human
+      "chimp": 1, # Primates non human
+      "rat":   2, # Mammals non primates
+      "mouse": 2, # Mammals non primates
+      "fish":  3  # Vertebrates non mammals
+      }
+
+Once done, ETE can check the relative age of any tree node.  The
+:func:`PhyloNode.get_age` method can be used to that purpose. 
+
+For example, let's consider the following gene tree:
+
+::
+
+    #                         /-humanA
+    #                    /---|
+    #                   |     \-chimpA
+    #               /Dup1
+    #              |    |     /-humanB
+    #          /---|     \---|
+    #         |    |          \-chimpB
+    #     /---|    |
+    #    |    |     \-mouseA
+    #    |    |
+    #    |     \-fish
+    #-Dup3
+    #    |               /-humanC
+    #    |          /---|
+    #    |     /---|     \-chimpC
+    #    |    |    |
+    #     \Dup2     \-humanD
+    #         |
+    #         |     /-ratC
+    #          \---|
+    #               \-mouseC
+
+
+the expected node dating would be:
+
+ * Dup1 will be assigned to primates (most distant species is
+   chimp). ``Dup1.get_age(relative_distances)`` will return 1
+
+ * Dup2 will be assigned to mammals [2] (most distant species are rat
+   and mouse). ``Dup2.get_age(relative_distances)`` will return 2
+
+ * Dup3 will be assigned to mammals [3] (most distant species is
+   fish). ``Dup3.get_age(relative_distances)`` will return 3
+
+.. literalinclude:: ../../examples/phylogenies/dating_evolutionary_events.py
+
+.. warning:: 
+
+   Note that relative distances will vary depending on your reference
+   species.
+
+
+Automatic rooting (outgroup detection)
+=========================================
+
+Two methods are provided to assist in the automatic rooting of
+phylogenetic trees. Since tree nodes contain relative age information
+(based on the species code autodetection), the same relative age
+dictionaries can be used to detect the farthest and oldest node in a
+tree to given sequences. 
+
+:func:`PhyloNode.get_farthest_oldest_node` and
+:func:`PhyloNode.get_farthest_oldest_leaf` can be used for that
+purpose.
+
+
+Working with duplicated gene families 
+=============================================
+
+.. _treeko_trees: 
+
+Treeko (splitting gene trees into species trees)
+-------------------------------------------------------
+
+.. versionadded: 2.2
+
+Comparisons between tree topologies provide important information for
+many evolutionary studies. `Treeko <http://treeko.cgenomics.org>`_
+(`Marcet and Gabaldon, 2011
+<http://www.ncbi.nlm.nih.gov/pubmed/21335609>`_ ) is a novel method
+that allows the comparison of any two tree topologies, even those with
+missing leaves and duplications. This is important in genome-wide
+analysis since many trees do not have exact leaf pairings and
+therefore most tree comparison methods are rendered useless.
+
+Although Treeko is available as a standalone package, it uses ETE to
+generate all possible species tree topologies within a duplicated gene
+family tree.
+
+Thus, the ETE method :func:`PhyloNode.get_speciation_trees` is
+expected to provide the core functionality required to perform a
+Treeko analysis. When used, the method will return a list of all
+possible species trees observed after combining the different
+non-duplicated subparts under a gene family tree node. 
+
+Duplication events will be automatically identified using the species
+overlap algorithm described within this manual. However, duplication
+nodes can be manually labeled and used by disabling the
+:attr:`autodetect_duplication` flag.
+
+Because of the combinatorial background of the Treeko method, the
+number of speciation trees generated by this function may vary
+enormously (ranging from few hundreds to tens of thousands topologies). 
+
+Here is a basic example on how to use it: 
+
+:: 
+  
+   from ete3 import PhyloTree
+   t = PhyloTree("((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);")
+   t.set_species_naming_function(lambda node: node.name.split("_")[0] )   
+
+   print t.get_ascii(attributes=["name", "species"], show_internal=False )
+
+   #            /-Human_1, Human
+   #          /-|
+   #         |   \-Chimp_1, Chimp
+   #       /-|
+   #      |  |   /-Human_2, Human
+   #      |   \-|
+   #      |     |   /-Chimp_2, Chimp
+   #      |      \-|
+   #    /-|         \-Chimp_3, Chimp
+   #   |  |
+   #   |  |      /-Fish_1, Fish
+   #   |  |   /-|
+   #   |  |  |  |   /-Human_3, Human
+   # --|   \-|   \-|
+   #   |     |      \-Fish_3, Fish
+   #   |     |
+   #   |      \-Yeast_2, Yeast
+   #   |
+   #    \-Yeast_1, Yeast
+
+   # We obtain a list of species trees inferred from the duplication
+   # events. Note that species specific duplications are ignored.
+
+   ntrees, ndups, sptrees =  t.get_speciation_trees()
+   print "Found %d species trees and %d duplication nodes" %(ntrees, ndups)
+   for spt in sptrees:
+      print spt
+   
+   # Found 5 species trees and 4 duplication nodes
+   #  
+   #    /-Human_1
+   # --|
+   #    \-Chimp_1
+   #  
+   #    /-Human_2
+   # --|
+   #   |   /-Chimp_2
+   #    \-|
+   #       \-Chimp_3
+   #  
+   #    /-Fish_1
+   # --|
+   #    \-Yeast_2
+   #  
+   #       /-Human_3
+   #    /-|
+   # --|   \-Fish_3
+   #   |
+   #    \-Yeast_2
+   #  
+   # --Yeast_1
+   
+.. note:: 
+  
+   For performance reasons, species trees are created without any link
+   to the original gene family tree, rather than the species name of
+   each node. However, the :attr:`map_features` attribute can be used
+   to keep certain attributes of the original tree into the generated
+   species trees.
+
+.. note:: 
+  
+   Although the efficiency of the method to generate all possible
+   trees has been significantly improved from ETE version 2.2,
+   creating thousands of new PhyloTree objects could affect
+   performance. The flag :attr:`newick_only` is now available to limit
+   the output to a newick string per generated tree, thus improving
+   the speed they can be processed or dumped into a file.
+
+
+.. _split_by_dup:
+
+Splitting gene trees by duplication events
+--------------------------------------------
+
+.. versionadded: 2.2
+
+A much simpler approach to separate duplicates within the same gene
+family tree is to split the topology by their duplication nodes. For
+this, the method :func:`PhyloNode.split_by_dups` is provided. 
+
+
+::
+
+   from ete3 import PhyloTree
+   t = PhyloTree("((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);")
+   t.set_species_naming_function(lambda node: node.name.split("_")[0] )   
+
+   print t.get_ascii(attributes=["name", "species"], show_internal=False )
+
+   #            /-Human_1, Human
+   #          /-|
+   #         |   \-Chimp_1, Chimp
+   #       /-|
+   #      |  |   /-Human_2, Human
+   #      |   \-|
+   #      |     |   /-Chimp_2, Chimp
+   #      |      \-|
+   #    /-|         \-Chimp_3, Chimp
+   #   |  |
+   #   |  |      /-Fish_1, Fish
+   #   |  |   /-|
+   #   |  |  |  |   /-Human_3, Human
+   # --|   \-|   \-|
+   #   |     |      \-Fish_3, Fish
+   #   |     |
+   #   |      \-Yeast_2, Yeast
+   #   |
+   #    \-Yeast_1, Yeast
+
+   # Again, species specific duplications are ignored
+   for node in t.split_by_dups():
+       print node
+
+   #    /-Human_1
+   # --|
+   #    \-Chimp_1
+   #  
+   #    /-Human_2
+   # --|
+   #   |   /-Chimp_2
+   #    \-|
+   #       \-Chimp_3
+   #  
+   # --Yeast_2
+   #  
+   # --Fish_1
+   #  
+   #    /-Human_3
+   # --|
+   #    \-Fish_3
+   #  
+   # --Yeast_1
+ 
+.. _collapse_expansions:
+
+Collapse species specific duplications
+--------------------------------------------
+
+.. versionadded: 2.2
+
+The method :func:`PhyloNode.collapse_lineage_specific_expansions`
+method, which returns a pruned version of a tree, where nodes
+representing lineage specific expansions are converted into a single
+leaf node is also available. 
+
+From the previous examples, the lineage specific duplication of
+Chimp_1 and Chimp_2 could be easily collapsed into a single node. 
+
+:: 
+
+   from ete3 import PhyloTree
+   t = PhyloTree("((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);")
+   t.set_species_naming_function(lambda node: node.name.split("_")[0] )   
+
+   print t.get_ascii(attributes=["name", "species"], show_internal=False )
+
+   #            /-Human_1, Human
+   #          /-|
+   #         |   \-Chimp_1, Chimp
+   #       /-|
+   #      |  |   /-Human_2, Human
+   #      |   \-|
+   #      |     |   /-Chimp_2, Chimp
+   #      |      \-|
+   #    /-|         \-Chimp_3, Chimp
+   #   |  |
+   #   |  |      /-Fish_1, Fish
+   #   |  |   /-|
+   #   |  |  |  |   /-Human_3, Human
+   # --|   \-|   \-|
+   #   |     |      \-Fish_3, Fish
+   #   |     |
+   #   |      \-Yeast_2, Yeast
+   #   |
+   #    \-Yeast_1, Yeast
+
+   t2 = t.collapse_lineage_specific_expansions()
+   print t2.get_ascii(attributes=["name", "species"], show_internal=False )
+
+   #             /-Human_1, Human
+   #          /-|
+   #         |   \-Chimp_1, Chimp
+   #       /-|
+   #      |  |   /-Human_2, Human
+   #      |   \-|
+   #      |      \-Chimp_2, Chimp   ***
+   #    /-|
+   #   |  |      /-Fish_1, Fish
+   #   |  |   /-|
+   #   |  |  |  |   /-Human_3, Human
+   # --|   \-|   \-|
+   #   |     |      \-Fish_3, Fish
+   #   |     |
+   #   |      \-Yeast_2, Yeast
+   #   |
+   #    \-Yeast_1, Yeast
+
+
diff --git a/doc/_sources/tutorial/tutorial_phylomedb.txt b/doc/_sources/tutorial/tutorial_phylomedb.txt
new file mode 100644
index 0000000..2aa9cb5
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_phylomedb.txt
@@ -0,0 +1,74 @@
+*****************
+The PhylomeDB API
+*****************
+
+PhylomeDB is a public database for complete collections of gene phylogenies
+(phylomes). It allows users to interactively explore the evolutionary history of
+genes through the visualization of phylogenetic trees and multiple sequence
+alignments. Moreover, phylomeDB provides genome-wide orthology and paralogy
+predictions which are based on the analysis of the phylogenetic trees. The
+automated pipeline used to reconstruct trees aims at providing a high-quality
+phylogenetic analysis of different genomes , including Maximum Likelihood or
+Bayesian tree inference, alignment trimming and evolutionary model testing.
+PhylomeDB includes also a public download section with the complete set of
+trees, alignments and orthology predictions.
+
+ETE's phylomeDB extension provides an access API to the main PhylomeDB database,
+thus allowing to search for and fetch precomputed gene phylogenies.
+
+
+Basis of the phylomeDB API usage
+================================
+
+In order to explore the database resources, you have to create a connector to
+the database, which will be used to query it. To do so, you must use the
+**PhylomeDBConnector** class and specify the parameters of the DB connection.
+
+The PhylomeDBConnector constructor will return a pointer to the DB that you can
+use to perform queries. All methods starting by **get_** can be used to retrieve
+information from the database. A complete list of available methods can be found
+in the ETE's programming guide (available at
+http://etetoolkit.org) or explored by executing
+**dir(PhylomeDBConnector)** in a python console.
+
+
+PhylomeDB structure
+===================
+
+A phylome includes thousands of gene trees associated to the different
+genes/proteins of a given species. Thus, for example, the human phylome includes
+more than 20.000 phylogenetic trees; on per human gene. Moreover, the same gene
+may be associated to different trees within the same phylome differing only in
+the evolutionary model that assumed to reconstruct the phylogeny.
+
+Given that each phylogenetic tree was reconstructed using a a single gene as the
+seed sequence to find homologous in other species, the tree takes the name from
+the seed sequence.
+
+You can obtain a full list of phylomes through the **get_phylomes()** and a full
+list of seed sequence in a phylome using the **get_seed_ids()** method.
+Phylogenetic trees within a given phylome were reconstructed in a context of a
+fixed set of species. In order to obtain the list of proteomes included in a
+phylome, use the** get_proteomes_in_phylome()** method. PhylomeDB uses its own
+sequence identifiers, but you can use the **search_id()** to find a match from
+an external sequence ID.
+
+Each phylome is the collection of all trees associated to a given species. Thus,
+the human phylome will contain thousands of phylogenetic trees. Each
+gene/protein in a phylome may be associated to different trees, testing, for
+example, different evolutionary models. Thus when you query the database for a
+gene phylogeny you have to specify from which phylome and which specific tree.
+Alternatively, you can query for the best tree in a given phylomes, which will
+basically return the best likelihood tree for the queried gene/protein. The
+get_tree and get_best_tree methods carry out such operations. When trees are
+fetched from the phylomeDB database, the are automatically converted to the
+PhyloTree class, thus allowing to operate with them as phylogenetic trees.
+
+
+Going phylogenomic scale
+========================
+
+Just to show you how to explore a complete phylome:
+
+
+
diff --git a/doc/_sources/tutorial/tutorial_phyloxml.txt b/doc/_sources/tutorial/tutorial_phyloxml.txt
new file mode 100644
index 0000000..699c3d5
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_phyloxml.txt
@@ -0,0 +1,56 @@
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. versionadded:: 2.1
+
+.. currentmodule:: ete3
+
+PhyloXML
+************************************
+
+PhyloXML (http://www.phyloxml.org/) is a novel standard used to encode
+phylogenetic information. In particular, phyloXML is designed to
+describe phylogenetic trees (or networks) and associated data, such as
+taxonomic information, gene names and identifiers, branch lengths,
+support values, and gene duplication and speciation events.
+
+----------------------------------------
+Loading PhyloXML projects from files 
+----------------------------------------
+
+ETE provides full support for phyloXML projects through the
+:class:`Phyloxml` object. Phylogenies are integrated as ETE's tree
+data structures as :class:`PhyloxmlTree` instances, while the rest of
+features are represented as simple classes (:mod:`ete3.phyloxml`)
+providing basic reading and writing operations.
+
+
+.. literalinclude:: ../../examples/phyloxml/phyloxml_parser.py
+
+:download:`[Download script]  <../../examples/phyloxml/phyloxml_parser.py>`
+:download:`[Download example]  <../../examples/phyloxml/apaf.xml>`
+
+
+Each tree node contains two phyloxml elements, :attr:`phyloxml_clade`
+and :attr:`phyloxml_phylogeny`. The first attribute contains clade
+information referred to the node, while ``phyloxml_phylogeny``
+contains general data about the subtree defined by each node. This
+way, you can split, or copy any part of a tree and it will be exported
+as a separate phyloxml phylogeny instance.
+
+Note that :attr:`node.dist`, :attr:`node.support` and
+:attr:`node.name` features are linked to
+:attr:`node.phyloxml_clade.branch_length`,
+:attr:`node.phyloxml_clade.confidence` and
+:attr:`node.phyloxml_clade.name`, respectively.
+
+----------------------------------------
+Creating PhyloXML projects from scratch
+----------------------------------------
+
+In order to create new PhyloXML projects, a set of classes is
+available in the :mod:`ete3.phyloxml` module.
+
+.. literalinclude:: ../../examples/phyloxml/phyloxml_from_scratch.py
+
+:download:`[Download script]  <../../examples/phyloxml/phyloxml_from_scratch.py>`
+  
diff --git a/doc/_sources/tutorial/tutorial_trees.txt b/doc/_sources/tutorial/tutorial_trees.txt
new file mode 100644
index 0000000..cf67a0b
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_trees.txt
@@ -0,0 +1,1920 @@
+.. module:: ete3
+  :synopsis: provides main objects and modules
+
+.. moduleauthor:: Jaime Huerta-Cepas
+.. currentmodule:: ete3
+
+Working With Tree Data Structures
+************************************
+
+.. contents::
+
+Trees
+==========
+
+Trees are a widely-used type of data structure that emulates a tree
+design with a set of linked nodes.  Formally, a tree is considered an
+acyclic and connected graph. Each node in a tree has zero or more
+child nodes, which are below it in the tree (by convention, trees grow
+down, not up as they do in nature). A node that has a child is called
+the child's parent node (or ancestor node, or superior). A node has at
+most one parent.
+
+The height of a node is the length of the longest downward path to a
+leaf from that node. The height of the root is the height of the
+tree. The depth of a node is the length of the path to its root (i.e.,
+its root path).
+
+* The topmost node in a tree is called the root node. Being the
+  topmost node, the root node will not have parents. It is the node at
+  which operations on the tree commonly begin (although some
+  algorithms begin with the leaf nodes and work up ending at the
+  root). All other nodes can be reached from it by following edges or
+  links. Every node in a tree can be seen as the root node of the
+  subtree rooted at that node.
+
+* Nodes at the bottommost level of the tree are called leaf
+  nodes. Since they are at the bottommost level, they do not have any
+  children.
+
+* An internal node or inner node is any node of a tree that has child
+  nodes and is thus not a leaf node.
+
+* A subtree is a portion of a tree data structure that can be viewed
+  as a complete tree in itself. Any node in a tree T, together with
+  all the nodes below it, comprise a subtree of T. The subtree
+  corresponding to the root node is the entire tree; the subtree
+  corresponding to any other node is called a proper subtree (in
+  analogy to the term proper subset).
+
+In bioinformatics, trees are the result of many analyses, such as
+phylogenetics or clustering. Although each case entails specific
+considerations, many properties remains constant among them. In this
+respect, ETE is a python toolkit that assists in the automated
+manipulation, analysis and visualization of any type of hierarchical
+trees. It provides general methods to handle and visualize tree
+topologies, as well as specific modules to deal with phylogenetic and
+clustering trees.
+
+
+.. _sec:newick-formats:
+
+Reading and Writing Newick Trees
+================================
+
+The Newick format is one of the most widely used standard
+representation of trees in bioinformatics. It uses nested parentheses
+to represent hierarchical data structures as text strings. The
+original newick standard is able to encode information about the tree
+topology, branch distances and node names. Nevertheless, it is not
+uncommon to find slightly different formats using the newick standard.
+
+ETE can read and write many of them: 
+
+.. table::
+
+  ======  ============================================== =========================================================================================
+  FORMAT  DESCRIPTION                                         SAMPLE
+  ======  ============================================== =========================================================================================
+  0        flexible with support values                    ((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);
+  1        flexible with internal node names               ((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);
+  2        all branches + leaf names + internal supports   ((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);
+  3        all branches + all names                        ((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);
+  4        leaf branches + leaf names                      ((D:0.723274,F:0.567784),(B:0.279326,H:0.756049));
+  5        internal and leaf branches + leaf names         ((D:0.723274,F:0.567784):0.067192,(B:0.279326,H:0.756049):0.807788);
+  6        internal branches + leaf names                  ((D,F):0.067192,(B,H):0.807788);
+  7        leaf branches + all names                       ((D:0.723274,F:0.567784)E,(B:0.279326,H:0.756049)B);
+  8        all names                                       ((D,F)E,(B,H)B);
+  9        leaf names                                      ((D,F),(B,H));
+  100      topology only                                   ((,),(,)); 
+  ======  ============================================== =========================================================================================
+
+Formats labeled as *flexible* allow for missing information. For
+instance, format 0 will be able to load a newick tree even if it does
+not contain branch support information (it will be initialized with
+the default value). However, format 2 would raise an exception.  In
+other words, if you want to control that your newick files strictly
+follow a given pattern you should use **strict** format definitions.
+
+
+Reading newick trees
+-----------------------
+
+In order to load a tree from a newick text string you can use the
+constructor :class:`TreeNode` or its :class:`Tree` alias, provided by the main module
+:mod:`ete3`. You will only need to pass a text string containing
+the newick structure and the format that should be used to parse it (0
+by default). Alternatively, you can pass the path to a text file
+containing the newick string.
+
+::
+ 
+  from ete3 import Tree
+   
+  # Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree.
+  t = Tree("(A:1,(B:1,(E:1,D:1):0.5):0.5);" )
+   
+  # Load a tree structure from a newick file.
+  t = Tree("genes_tree.nh")
+   
+  # You can also specify the newick format. For instance, for named internal nodes we will use format 1.
+  t = Tree("(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;", format=1)
+
+
+Writing newick trees
+-----------------------
+
+Any ETE tree instance can be exported using newick notation using the
+:func:`Tree.write` method, which is available in any tree node
+instance. It also allows for format selection
+(:ref:`sec:newick-formats`), so you can use the same function to
+convert between newick formats.
+
+::
+   
+  from ete3 import Tree
+   
+  # Loads a tree with internal node names
+  t = Tree("(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;", format=1)
+   
+  # And prints its newick using the default format
+   
+  print t.write() # (A:1.000000,(B:1.000000,(E:1.000000,D:1.000000)1.000000:0.500000)1.000000:0.500000);
+   
+  # To print the internal node names you need to change the format:
+   
+  print t.write(format=1) # (A:1.000000,(B:1.000000,(E:1.000000,D:1.000000)Internal_1:0.500000)Internal_2:0.500000);
+   
+  # We can also write into a file
+  t.write(format=1, outfile="new_tree.nw")
+
+
+Understanding ETE Trees
+===========================
+
+Any tree topology can be represented as a succession of **nodes**
+connected in a hierarchical way. Thus, for practical reasons, ETE
+makes no distinction between tree and node concepts, as any tree can
+be represented by its root node. This allows to use any internal node
+within a tree as another sub-tree instance.
+
+Once trees are loaded, they can be manipulated as normal python
+objects. Given that a tree is actually a collection of nodes connected
+in a hierarchical way, what you usually see as a tree will be the root
+node instance from which the tree structure is hanging. However, every
+node within a ETE's tree structure can be also considered a
+subtree. This means, for example, that all the operational methods
+that we will review in the following sections are available at any
+possible level within a tree. Moreover, this feature will allow you to
+separate large trees into smaller partitions, or concatenate several
+trees into a single structure. For this reason, you will find that the
+:class:`TreeNode` and :class:`Tree` classes are synonymous.
+
+
+Basic tree attributes
+=========================
+
+Each tree node has two basic attributes used to establish its position
+in the tree: :attr:`TreeNode.up` and :attr:`TreeNode.children`.  The first is
+a pointer to parent's node, while the later is a list of children
+nodes.  Although it is possible to modify the structure of a tree by
+changing these attributes, it is strongly recommend not to do
+it. Several methods are provided to manipulate each node's connections
+in a safe way (see :ref:`sec:modifying-tree-topology`).
+
+In addition, three other basic attributes are always present in any
+tree node instance:
+
+
+.. table::
+ 
+   ==========================     =============================================================================================  ================
+   Method                         Description                                                                                    Default value       
+   ==========================     =============================================================================================  ================ 
+     :attr:`TreeNode.dist`          stores the distance from the node to its parent (branch length). Default value = 1.0             1.0      
+     :attr:`TreeNode.support`       informs about the reliability of the partition defined by the node (i.e. bootstrap support)      1.0    
+     :attr:`TreeNode.name`          Custom node's name.                                                                              NoName      
+   ==========================     =============================================================================================  ================ 
+
+In addition, several methods are provided to perform basic operations
+on tree node instances:
+
+.. table:: 
+
+  =================================  =============================================================================================
+  Method                              Description
+  =================================  =============================================================================================
+    :func:`TreeNode.is_leaf`           returns True if *node* has no children 
+    :func:`TreeNode.is_root`           returns True if *node* has no parent
+    :func:`TreeNode.get_tree_root`     returns the top-most node within the same tree structure as *node*
+    :attr:`len(TreeNode)`              returns the number of leaves under *node*
+    :attr:`print node`                 prints a text-based representation of the tree topology under *node*
+    :attr:`if node in tree`            returns true if *node* is a leaf under *tree*
+    :attr:`for leaf in node`           iterates over all leaves under *node*
+    :func:`TreeNode.show`              Explore node graphically using a GUI.
+  =================================  =============================================================================================
+
+This is an example on how to access such attributes:
+
+:: 
+
+  from ete3 import Tree
+  t = Tree()
+  # We create a random tree topology
+  t.populate(15) 
+  print t
+  print t.children
+  print t.get_children()
+  print t.up
+  print t.name
+  print t.dist
+  print t.is_leaf()
+  print t.get_tree_root()
+  print t.children[0].get_tree_root()
+  print t.children[0].children[0].get_tree_root()
+  # You can also iterate over tree leaves using a simple syntax
+  for leaf in t:
+    print leaf.name
+
+
+Root node on unrooted trees?
+------------------------------
+
+When a tree is loaded from external sources, a pointer to the top-most
+node is returned. This is called the tree root, and **it will exist
+even if the tree is conceptually considered as unrooted**. This is,
+the root node can be considered as the master node, since it
+represents the whole tree structure. Unrooted trees can be identified
+as trees in which master root node has more than two children.
+
+::
+
+  from ete3 import Tree
+  unrooted_tree = Tree( "(A,B,(C,D));" )
+  print unrooted_tree
+  #
+  #     /-A      
+  #    |         
+  #----|--B      
+  #    |           
+  #    |     /-C   
+  #     \---|      
+  #          \-D 
+
+  rooted_tree = Tree( "((A,B),(C,D));" )
+  print rooted_tree                     
+  #
+  #          /-A
+  #     /---|
+  #    |     \-B
+  #----|
+  #    |     /-C
+  #     \---|
+  #          \-D
+
+
+
+
+Browsing trees (traversing)
+=================================
+
+One of the most basic operations for tree analysis is *tree
+browsing*. This is, essentially, visiting nodes within a tree. ETE
+provides a number of methods to search for specific nodes or to
+navigate over the hierarchical structure of a tree.
+
+
+
+
+Getting Leaves, Descendants and Node's Relatives
+------------------------------------------------
+
+TreeNode instances contain several functions to access their
+descendants. Available methods are self explanatory:
+
+.. autosummary::  
+
+   :signatures:
+   TreeNode.get_descendants
+   TreeNode.get_leaves    
+   TreeNode.get_leaf_names
+   TreeNode.get_children
+   TreeNode.get_sisters
+
+
+Traversing (browsing) trees
+---------------------------
+
+
+Often, when processing trees, all nodes need to be visited. This is
+called tree traversing. There are different ways to traverse a tree
+structure depending on the order in which children nodes are
+visited. ETE implements the three most common strategies:
+**preorder**, **levelorder** and **postorder**. The following scheme
+shows the differences in the strategy for visiting nodes (note that in
+both cases the whole tree is browsed):
+
+* preorder: 1)Visit the root, 2) Traverse the left subtree , 3) Traverse the right subtree.
+* postorder: 1) Traverse the left subtree , 2) Traverse the right subtree, 3) Visit the root 
+* levelorder (default): every node on a level before is visited going to a lower level 
+
+.. note::
+
+    * Preorder traversal sequence: F, B, A, D, C, E, G, I, H (root, left, right)
+    * Inorder traversal sequence: A, B, C, D, E, F, G, H, I (left, root, right); note how this produces a sorted sequence
+    * Postorder traversal sequence: A, C, E, D, B, H, I, G, F (left, right, root)
+    * Level-order traversal sequence: F, B, G, A, D, I, C, E, H
+
+Every node in a tree includes a :func:`TreeNode.traverse` method, which can be
+used to visit, one by one, every node node under the current
+partition. In addition, the :func:`TreeNode.iter_descendants` method can be set
+to use either a post- or a preorder strategy.  The only different
+between :func:`TreeNode.traverse` and :func:`TreeNode.iter_descendants` is that the
+first will include the root node in the iteration.
+
+
+.. autosummary::
+
+   :signature:
+   TreeNode.traverse
+   TreeNode.iter_descendants
+   TreeNode.iter_leaves
+
+**strategy** can take one of the following values: ``"postorder"``, ``"preorder"`` or  ``"levelorder"``
+
+::
+
+   # we load a tree
+   t = Tree('((((H,K)D,(F,I)G)B,E)A,((L,(N,Q)O)J,(P,S)M)C);', format=1)
+    
+   for node in t.traverse("postorder"):
+     # Do some analysis on node
+     print node.name
+     
+   # If we want to iterate over a tree excluding the root node, we can
+   # use the iter_descendant method
+   for node in t.iter_descendants("postorder"):
+     # Do some analysis on node
+     print node.name
+
+
+Additionally, you can implement your own traversing function using the
+structural attributes of nodes. In the following example, only nodes
+between a given leaf and the tree root are visited.
+
+::
+
+   from ete3 import Tree
+   t = Tree( "(A:1,(B:1,(C:1,D:1):0.5):0.5);" )
+    
+   # Browse the tree from a specific leaf to the root
+   node = t.search_nodes(name="C")[0]
+   while node:
+      print node
+      node = node.up   
+
+
+Advanced traversing (stopping criteria)
+-----------------------------------------
+
+.. _is_leaf_fn:
+
+Collapsing nodes while traversing (custom is_leaf definition)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+From version 2.2, ETE supports the use of the :attr:`is_leaf_fn`
+argument in most of its traversing functions. The value of
+:attr:`is_leaf_fn` is expected to be a pointer to any python function
+that accepts a node instance as its first argument and returns a
+boolean value (True if node should be considered a leaf node).
+
+By doing so, all traversing methods will use such a custom function to
+decide if a node is a leaf. This becomes specially useful when dynamic
+collapsing of nodes is needed, thus avoiding to prune the same tree in
+many different ways.
+
+For instance, given a large tree structure, the following code will
+export the newick of the pruned version of the topology, where nodes
+grouping the same tip labels are collapsed.
+
+:: 
+
+  from ete3 import Tree
+  def collapsed_leaf(node):
+      if len(node2labels[node]) == 1:
+         return True
+      else:
+         return False
+
+  t = Tree("((((a,a,a)a,a)aa, (b,b)b)ab, (c, (d,d)d)cd);", format=1)
+  print t
+  # We create a cache with every node content 
+  node2labels = t.get_cached_content(store_attr="name")
+  print t.write(is_leaf_fn=collapsed_leaf)
+  #             /-a
+  #            |
+  #          /-|--a
+  #         |  |
+  #       /-|   \-a
+  #      |  |
+  #    /-|   \-a
+  #   |  |
+  #   |  |   /-b
+  # --|   \-|
+  #   |      \-b
+  #   |
+  #   |   /-c
+  #    \-|
+  #      |   /-d
+  #       \-|
+  #          \-d
+
+  # We can even load the collapsed version as a new tree
+  t2 = Tree( t.write(is_leaf_fn=collapsed_leaf) )
+  print t2
+  #       /-aa
+  #    /-|
+  #   |   \-b
+  # --|
+  #   |   /-c
+  #    \-|
+  #       \-d
+
+
+Another interesting use of this approach is to find the first matching
+nodes in a given tree that match a custom set of criteria, without
+browsing the whole tree structure.
+
+Let's say we want get all deepest nodes in a tree whose branch length
+is larger than one:
+:: 
+
+  from ete3 import Tree
+  t = Tree("(((a,b)ab:2, (c, d)cd:2)abcd:2, ((e, f):2, g)efg:2);", format=1)
+  def processable_node(node):
+      if node.dist > 1: 
+         return True
+      else:
+         return False
+
+  for leaf in t.iter_leaves(is_leaf_fn=processable_node):
+      print leaf
+
+  #       /-a
+  #    /-|
+  #   |   \-b
+  # --|
+  #   |   /-c
+  #    \-|
+  #       \-d
+  #  
+  #       /-e
+  #    /-|
+  # --|   \-f
+  #   |
+  #    \-g
+
+
+Iterating instead of Getting
+------------------------------
+
+As commented previously, methods starting with **get_** are all
+prepared to return results as a closed list of items. This means, for
+instance, that if you want to process all tree leaves and you ask for
+them using the :func:`TreeNode.get_leaves` method, the whole tree
+structure will be browsed before returning the final list of terminal
+nodes.  This is not a problem in most of the cases, but in large
+trees, you can speed up the browsing process by using iterators.
+
+Most **get_** methods have their homologous iterator functions. Thus,
+:func:`TreeNode.get_leaves` could be substituted by :func:`TreeNode.iter_leaves`. The same
+occurs with :func:`TreeNode.iter_descendants` and :func:`TreeNode.iter_search_nodes`.
+
+When iterators are used (note that is only applicable for looping),
+only one step is processed at a time. For instance,
+:func:`TreeNode.iter_search_nodes` will return one match in each
+iteration. In practice, this makes no differences in the final result,
+but it may increase the performance of loop functions (i.e. in case of
+finding a match which interrupts the loop).
+
+
+Finding nodes by their attributes
+------------------------------------
+
+Both terminal and internal nodes can be located by searching along the
+tree structure. Several methods are available:
+
+.. table:: 
+
+  ==============================================       ==============================================================================================================
+  method                                                Description
+  ==============================================       ==============================================================================================================
+  t.search_nodes(attr=value)                            Returns a list of nodes in which attr is equal to value, i.e. name=A
+  t.iter_search_nodes(attr=value)                       Iterates over all matching nodes matching attr=value. Faster when you only need to get the first occurrence
+  t.get_leaves_by_name(name)                            Returns a list of leaf nodes matching a given name. Only leaves are browsed.
+  t.get_common_ancestor([node1, node2, node3])          Return the first internal node grouping node1, node2 and node3
+  t&"A"                                                 Shortcut for t.search_nodes(name="A")[0]
+  ==============================================       ==============================================================================================================
+
+
+Search_all nodes matching a given criteria
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A custom list of nodes matching a given name can be easily obtain
+through the :func:`TreeNode.search_node` function.
+
+::
+ 
+   from ete3 import Tree
+   t = Tree( '((H:1,I:1):0.5, A:1, (B:1,(C:1,D:1):0.5):0.5);' )
+   print t
+   #                    /-H
+   #          /--------|
+   #         |          \-I
+   #         |
+   #---------|--A
+   #         |
+   #         |          /-B
+   #          \--------|
+   #                   |          /-C
+   #                    \--------|
+   #                              \-D
+
+   # I get D
+   D = t.search_nodes(name="D")[0]
+
+   # I get all nodes with distance=0.5
+   nodes = t.search_nodes(dist=0.5)
+   print len(nodes), "nodes have distance=0.5"
+
+   # We can limit the search to leaves and node names (faster method).
+   D = t.get_leaves_by_name(name="D")
+   print D
+
+
+
+Search nodes matching a given criteria (iteration)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A limitation of the :func:`TreeNode.search_nodes` method is that you cannot use
+complex conditional statements to find specific nodes.  When search
+criteria is too complex, you may need to create your own search
+function.
+
+::
+
+  from ete3 import Tree
+
+  def search_by_size(node, size):
+      "Finds nodes with a given number of leaves"
+      matches = []
+      for n in node.traverse(): 
+         if len(n) == size: 
+            matches.append(n)
+      return matches
+
+  t = Tree()
+  t.populate(40)
+  # returns nodes containing 6 leaves
+  search_by_size(t, size=6) 
+
+Find the first common ancestor
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Searching for the first common ancestor of a given set of nodes it is
+a handy way of finding internal nodes.
+
+::
+
+  from ete3 import Tree
+  t = Tree( "((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:0.5,(J:1.3, (F:1.2, D:0.1):0.5):0.5):0.5):0.5);" )
+  print t
+  ancestor = t.get_common_ancestor("C", "J", "B")
+  
+
+
+Custom searching functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A limitation of the previous methods is that you cannot use complex
+conditional statements to find specific nodes. However you can user
+traversing methods to meet your custom filters. A possible general
+strategy would look like this:
+
+::
+
+  from ete3 import Tree
+  t = Tree("((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,D:1):0.5):0.5);")
+  # Create a small function to filter your nodes
+  def conditional_function(node):
+      if node.dist > 0.3:
+          return True
+      else:
+          return False
+   
+  # Use previous function to find matches. Note that we use the traverse
+  # method in the filter function. This will iterate over all nodes to
+  # assess if they meet our custom conditions and will return a list of
+  # matches.
+  matches = filter(conditional_function, t.traverse())
+  print len(matches), "nodes have distance >0.3"
+   
+  # depending on the complexity of your conditions you can do the same
+  # in just one line with the help of lambda functions:
+  matches = filter(lambda n: n.dist>0.3 and n.is_leaf(), t.traverse() )
+  print len(matches), "nodes have distance >0.3 and are leaves"
+
+
+Shortcuts 
+^^^^^^^^^^^^
+
+Finally, ETE implements a built-in method to find the first node
+matching a given name, which is one of the most common tasks needed
+for tree analysis. This can be done through the operator &
+(AND). Thus, TreeNode&”A” will always return the first node whose name
+is “A” and that is under the tree “MyTree”. The syntaxis may seem
+confusing, but it can be very useful in some situations.
+
+::
+
+  from ete3 import Tree
+  t = Tree("((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,(J:1, (F:1, D:1):0.5):0.5):0.5):0.5);")
+  # Get the node D in a very simple way
+  D = t&"D"
+  # Get the path from B to the root
+  node = D
+  path = []
+  while node.up:
+    path.append(node)
+    node = node.up
+  print t
+  # I substract D node from the total number of visited nodes
+  print "There are", len(path)-1, "nodes between D and the root"
+  # Using parentheses you can use by-operand search syntax as a node
+  # instance itself
+  Dsparent= (t&"C").up
+  Bsparent= (t&"B").up
+  Jsparent= (t&"J").up
+  # I check if nodes belong to certain partitions
+  print "It is", Dsparent in Bsparent, "that C's parent is under B's ancestor"
+  print "It is", Dsparent in Jsparent, "that C's parent is under J's ancestor"
+
+.. _check_monophyly:
+
+Checking the monophyly of attributes within a tree
+========================================================
+
+Although monophyly is actually a phylogenetic concept used to refer to
+a set of species that group exclusively together within a tree
+partition, the idea can be easily exported to any type of trees. 
+
+Therefore, we could consider that a set of values for a given node
+attribute present in our tree is monophyletic, if such values group
+exclusively together as a single tree partition. If not, the
+corresponding relationship connecting such values (para or
+poly-phyletic) could be also be inferred.
+
+
+The :func:`TreeNode.check_monophyly` method will do so when a given
+tree is queried for any custom attribute. 
+
+:: 
+
+  from ete3 import Tree
+  t =  Tree("((((((a, e), i), o),h), u), ((f, g), j));")
+  print t
+
+  #                   /-a
+  #                /-|
+  #             /-|   \-e
+  #            |  |
+  #          /-|   \-i
+  #         |  |
+  #       /-|   \-o
+  #      |  |
+  #    /-|   \-h
+  #   |  |
+  #   |   \-u
+  # --|
+  #   |      /-f
+  #   |   /-|
+  #    \-|   \-g
+  #      |
+  #       \-j
+
+
+  # We can check how, indeed, all vowels are not monophyletic in the
+  # previous tree, but polyphyletic (a foreign label breaks its monophyly)
+  print t.check_monophyly(values=["a", "e", "i", "o", "u"], target_attr="name")
+
+  # however, the following set of vowels are monophyletic
+  print t.check_monophyly(values=["a", "e", "i", "o"], target_attr="name")  
+
+  # A special case of polyphyly, called paraphyly, is also used to
+  # define certain type of grouping. See this wikipedia article for
+  # disambiguation: http://en.wikipedia.org/wiki/Paraphyly
+  print t.check_monophyly(values=["i", "o"], target_attr="name")    
+
+Finally, the :func:`TreeNode.get_monophyletic` method is also
+provided, which allows to return a list of nodes within a tree where a
+given set of attribute values are monophyletic. Note that, although a
+set of values are not monophyletic regarding the whole tree, several
+independent monophyletic partitions could be found within the same
+topology.
+
+For instance, in the following example, all clusters within the same
+tree exclusively grouping a custom set of annotations are obtained. 
+
+:: 
+
+   from ete3 import Tree
+   t =  Tree("((((((4, e), i), o),h), u), ((3, 4), (i, june)));")
+   # we annotate the tree using external data
+   colors = {"a":"red", "e":"green", "i":"yellow", 
+             "o":"black", "u":"purple", "4":"green",
+             "3":"yellow", "1":"white", "5":"red", 
+             "june":"yellow"}
+   for leaf in t:
+       leaf.add_features(color=colors.get(leaf.name, "none"))
+   print t.get_ascii(attributes=["name", "color"], show_internal=False)
+
+   #                   /-4, green
+   #                /-|
+   #             /-|   \-e, green
+   #            |  |
+   #          /-|   \-i, yellow
+   #         |  |
+   #       /-|   \-o, black
+   #      |  |
+   #    /-|   \-h, none
+   #   |  |
+   #   |   \-u, purple
+   # --|
+   #   |      /-3, yellow
+   #   |   /-|
+   #   |  |   \-4, green
+   #    \-|
+   #      |   /-i, yellow
+   #       \-|
+   #          \-june, yellow
+
+   print "Green-yellow clusters:" 
+   # And obtain clusters exclusively green and yellow
+   for node in t.get_monophyletic(values=["green", "yellow"], target_attr="color"):
+      print node.get_ascii(attributes=["color", "name"], show_internal=False)
+
+   # Green-yellow clusters:
+   #  
+   #       /-green, 4
+   #    /-|
+   # --|   \-green, e
+   #   |
+   #    \-yellow, i
+   #  
+   #       /-yellow, 3
+   #    /-|
+   #   |   \-green, 4
+   # --|
+   #   |   /-yellow, i
+   #    \-|
+   #       \-yellow, june
+
+.. note::
+
+   When the target attribute is set to the "species" feature name,
+   associated to any :class:`PhyloTree` node, this method will
+   accomplish with the standard phylogenetic definition of monophyly,
+   polyphyly and paraphyly.
+
+
+.. _cache_node_content:
+
+Caching tree content for faster lookup operations 
+======================================================
+
+If your program needs to access to the content of different nodes very
+frequently, traversing the tree to get the leaves of each node over
+and over will produce significant slowdowns in your algorithm.  From
+version 2.2 ETE provides a convenient methods to cache frequent data. 
+
+The method :func:`TreeNode.get_cached_content` returns a dictionary in
+which keys are node instances and values represent the content of such
+nodes. By default, content is understood as a list of leave nodes, so
+looking up size or tip names under a given node will be
+instant. However, specific attributes can be cached by setting a
+custom :attr:`store_attr` value. 
+
+::
+
+   from ete3 import Tree
+   t = Tree()
+   t.populate(50)
+
+   node2leaves = t.get_cached_content()
+
+   # lets now print the size of each node without the need of
+   # recursively traverse 
+   for n in t.traverse():
+       print "node %s contains %s tips" %(n.name, len(node2leaves[n]))
+  
+
+Node annotation
+=========================
+
+Every node contains three basic attributes: name
+(:attr:`TreeNode.name`), branch length (:attr:`TreeNode.dist`) and
+branch support (:attr:`TreeNode.support`). These three values are
+encoded in the newick format.  However, any extra data could be linked
+to trees. This is called tree annotation.
+
+The :func:`TreeNode.add_feature` and :func:`TreeNode.add_features`
+methods allow to add extra attributes (features) to any node.  The
+first allows to add one one feature at a time, while the second can be
+used to add many features with the same call.
+
+Once extra features are added, you can access their values at any time
+during the analysis of a tree. To do so, you only need to access to
+the :attr:`TreeNode.feature_name` attributes.
+
+Similarly, :func:`TreeNode.del_feature` can be used to delete an
+attribute.
+
+::
+ 
+   import random
+   from ete3 import Tree
+   # Creates a tree
+   t = Tree( '((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:0.5,(J:1.3, (F:1.2, D:0.1):0.5):0.5):0.5):0.5);' )
+
+   # Let's locate some nodes using the get common ancestor method
+   ancestor=t.get_common_ancestor("J", "F", "C")
+   # the search_nodes method (I take only the first match )
+   A = t.search_nodes(name="A")[0]
+   # and using the shorcut to finding nodes by name
+   C= t&"C"
+   H= t&"H"
+   I= t&"I"
+
+   # Let's now add some custom features to our nodes. add_features can be
+   # used to add many features at the same time.
+   C.add_features(vowel=False, confidence=1.0)
+   A.add_features(vowel=True, confidence=0.5)
+   ancestor.add_features(nodetype="internal")
+
+   # Or, using the oneliner notation
+   (t&"H").add_features(vowel=False, confidence=0.2)
+
+   # But we can automatize this. (note that i will overwrite the previous
+   # values)
+   for leaf in t.traverse():
+      if leaf.name in "AEIOU":
+         leaf.add_features(vowel=True, confidence=random.random())
+      else:
+         leaf.add_features(vowel=False, confidence=random.random())
+
+   # Now we use these information to analyze the tree.
+   print "This tree has", len(t.search_nodes(vowel=True)), "vowel nodes"
+   print "Which are", [leaf.name for leaf in t.iter_leaves() if leaf.vowel==True]
+
+   # But features may refer to any kind of data, not only simple
+   # values. For example, we can calculate some values and store them
+   # within nodes.
+   #
+   # Let's detect leaf nodes under "ancestor" with distance higher thatn
+   # 1. Note that I'm traversing a subtree which starts from "ancestor"
+   matches = [leaf for leaf in ancestor.traverse() if leaf.dist>1.0]
+
+   # And save this pre-computed information into the ancestor node
+   ancestor.add_feature("long_branch_nodes", matches)
+
+   # Prints the precomputed nodes
+   print "These are nodes under ancestor with long branches", \
+      [n.name for n in ancestor.long_branch_nodes]
+
+   # We can also use the add_feature() method to dynamically add new features.
+   label = raw_input("custom label:")
+   value = raw_input("custom label value:")
+   ancestor.add_feature(label, value)
+   print "Ancestor has now the [", label, "] attribute with value [", value, "]"  
+
+
+Unfortunately, newick format does not support adding extra features to
+a tree.  Because of this drawback, several improved formats haven been
+(or are being) developed to read and write tree based
+information. Some of these new formats are based in a completely new
+standard (:doc:`tutorial_xml`), while others are extensions of the
+original newick format (NHX
+http://phylosoft.org/NHX/http://phylosoft.org/NHX/).
+
+Currently, ETE
+includes support for the New Hampshire eXtended format (NHX), which
+uses the original newick standard and adds the possibility of saving
+additional date related to each tree node. Here is an example of a
+extended newick representation in which extra information is added to
+an internal node:
+
+::
+
+ (A:0.35,(B:0.72,(D:0.60,G:0.12):0.64[&&NHX:conf=0.01:name=INTERNAL]):0.56);
+
+As you can notice, extra node features in the NHX format are enclosed
+between brackets. ETE is able to read and write features using such
+format, however, the encoded information is expected to be exportable
+as plain text.
+
+The NHX format is automatically detected when reading a newick file,
+and the detected node features are added using the
+:func:`TreeNode.add_feature` method.  Consequently, you can access the
+information by using the normal ETE's feature notation:
+``node.feature_name``. Similarly, features added to a tree can
+be included within the normal newick representation using the NHX
+notation. For this, you can call the :func:`TreeNode.write` method
+using the :attr:`features` argument, which is expected to be a list
+with the features names that you want to include in the newick
+string. Note that all nodes containing the suplied features will be
+exposed into the newick string. Use an empty features list
+(:attr:`features=[]`) to include all node's data into the newick
+string.
+
+::
+   
+  import random
+  from ete3 import Tree
+  # Creates a normal tree
+  t = Tree('((H:0.3,I:0.1):0.5, A:1,(B:0.4,(C:0.5,(J:1.3,(F:1.2, D:0.1):0.5):0.5):0.5):0.5);')
+  print t
+  # Let's locate some nodes using the get common ancestor method
+  ancestor=t.get_common_ancestor("J", "F", "C")
+  # Let's label leaf nodes
+  for leaf in t.traverse():
+      if leaf.name in "AEIOU":
+        leaf.add_features(vowel=True, confidence=random.random())
+      else:
+        leaf.add_features(vowel=False, confidence=random.random())
+   
+  # Let's detect leaf nodes under "ancestor" with distance higher thatn
+  # 1. Note that I'm traversing a subtree which starts from "ancestor"
+  matches = [leaf for leaf in ancestor.traverse() if leaf.dist>1.0]
+   
+  # And save this pre-computed information into the ancestor node
+  ancestor.add_feature("long_branch_nodes", matches)
+  print
+  print "NHX notation including vowel and confidence attributes"
+  print
+  print t.write(features=["vowel", "confidence"])
+  print
+  print "NHX notation including all node's data"
+  print
+   
+  # Note that when all features are requested, only those with values
+  # equal to text-strings or numbers are considered. "long_branch_nodes"
+  # is not included into the newick string.
+  print t.write(features=[])
+  print
+  print "basic newick formats are still available"
+  print
+  print t.write(format=9, features=["vowel"])
+  # You don't need to do anything speciall to read NHX notation. Just
+  # specify the newick format and the NHX tags will be automatically
+  # detected.
+  nw = """
+  (((ADH2:0.1[&&NHX:S=human:E=1.1.1.1], ADH1:0.11[&&NHX:S=human:E=1.1.1.1])
+  :0.05[&&NHX:S=Primates:E=1.1.1.1:D=Y:B=100], ADHY:0.1[&&NHX:S=nematode:
+  E=1.1.1.1],ADHX:0.12[&&NHX:S=insect:E=1.1.1.1]):0.1[&&NHX:S=Metazoa:
+  E=1.1.1.1:D=N], (ADH4:0.09[&&NHX:S=yeast:E=1.1.1.1],ADH3:0.13[&&NHX:S=yeast:
+  E=1.1.1.1], ADH2:0.12[&&NHX:S=yeast:E=1.1.1.1],ADH1:0.11[&&NHX:S=yeast:E=1.1.1.1]):0.1
+  [&&NHX:S=Fungi])[&&NHX:E=1.1.1.1:D=N];
+  """
+  # Loads the NHX example found at http://www.phylosoft.org/NHX/
+  t = Tree(nw)
+  # And access node's attributes.
+  for n in t.traverse():
+      if hasattr(n,"S"):
+         print n.name, n.S
+
+
+.. _sec:modifying-tree-topology:
+
+
+.. _robinson_foulds:
+
+Comparing Trees
+=====================
+
+
+Calculate distances between trees
+-----------------------------------
+.. versionadded 2.3
+
+
+The :Tree:`compare` function allows to calculate distances between two trees
+based on any node feature (i.e. name, species, other tags) using robinson-foulds
+and edge compatibility distances. It automatically handles differences in tree
+sizes, shared nodes and duplicated feature names.
+
+
+- result["rf"] = robinson-foulds distance between the two trees. (average of
+  robinson-foulds distances if target tree contained duplication and was split
+  in several subtrees)
+- result["max_rf"] = Maximum robinson-foulds distance expected for this comparison
+- result["norm_rf"] = normalized robinson-foulds distance (from 0 to 1)
+- result["effective_tree_size"] = the size of the compared trees, which are pruned to the common shared nodes. 
+- result["ref_edges_in_source"] = compatibility score of the target tree with
+  respect to the source tree (how many edges in reference are found in the
+  source)
+- result["source_edges_in_ref"] = compatibility score of the source tree with
+  respect to the reference tree (how many edges in source are found in the
+  reference)
+- result["source_subtrees"] = number of subtrees in the source tree (1 if do not contain duplications)
+- result["common_edges"] = a set of common edges between source tree and reference
+- result["source_edges"] = the set of edges found in the source tree
+- result["ref_edges"] = the set of edges found in the reference tree
+- result["treeko_dist"] = TreeKO speciation distance for comparisons including duplication nodes. 
+
+
+
+
+Robinson-foulds distance 
+-------------------------------- 
+.. versionadded 2.2
+
+
+Two tree topologies can be compared using ETE and the Robinson-Foulds
+(RF) metric. The method :func:`TreeNode.robinson_foulds` available for
+any ETE tree node allows to:
+
+ - compare two tree topologies by their name labels (default) or any
+   other annotated feature in the tree. 
+
+ - compare topologies of different size and content. When two trees
+   contain a different set of labels, only shared leaves will be used.
+
+ - examine size and content of matching and missing partitions. Since
+   the method return the list of partitions found in both trees,
+   details about matching partitions can be obtained easily. 
+
+.. versionchanged 2.3 
+
+  - allows to discard edges from the comparison based on their support value.
+ 
+  - allows to automatically expand polytomies (multifurcations) in source and target trees.  
+
+  - a command line tool providing most used features is available: `ete compare`
+
+
+In the following example, several of above mentioned features are
+shown:
+
+::
+ 
+  from ete3 import Tree
+  t1 = Tree('(((a,b),c), ((e, f), g));')
+  t2 = Tree('(((a,c),b), ((e, f), g));')
+  rf, max_rf, common_leaves, parts_t1, parts_t2 = t1.robinson_foulds(t2)
+  print t1, t2
+  print "RF distance is %s over a total of %s" %(rf, max_rf)
+  print "Partitions in tree2 that were not found in tree1:", parts_t1 - parts_t2
+  print "Partitions in tree1 that were not found in tree2:", parts_t2 - parts_t1
+
+  # We can also compare trees sharing only part of their labels
+
+  t1 = Tree('(((a,b),c), ((e, f), g));')
+  t2 = Tree('(((a,c),b), (g, H));')
+  rf, max_rf, common_leaves, parts_t1, parts_t2 = t1.robinson_foulds(t2)
+
+  print t1, t2
+  print "Same distance holds even for partially overlapping trees"
+  print "RF distance is %s over a total of %s" %(rf, max_rf)
+  print "Partitions in tree2 that were not found in tree1:", parts_t1 - parts_t2
+  print "Partitions in tree1 that were not found in tree2:", parts_t2 - parts_t1
+
+
+
+
+
+Modifying Tree Topology
+=======================
+
+Creating Trees from Scratch
+---------------------------
+
+If no arguments are passed to the :class:`TreeNode` class constructor,
+an empty tree node will be returned. Such an orphan node can be used
+to populate a tree from scratch. For this, the :attr:`TreeNode.up`,
+and :attr:`TreeNode.children` attributes should never be used (unless
+it is strictly necessary). Instead, several methods exist to
+manipulate the topology of a tree:
+
+
+.. autosummary:: 
+
+   :signature:
+   TreeNode.populate
+   TreeNode.add_child
+   TreeNode.add_child
+   TreeNode.delete 
+   TreeNode.detach
+
+
+::
+
+  from ete3 import Tree
+  t = Tree() # Creates an empty tree
+  A = t.add_child(name="A") # Adds a new child to the current tree root
+                             # and returns it
+  B = t.add_child(name="B") # Adds a second child to the current tree
+                             # root and returns it
+  C = A.add_child(name="C") # Adds a new child to one of the branches
+  D = C.add_sister(name="D") # Adds a second child to same branch as
+                               # before, but using a sister as the starting
+                               # point
+  R = A.add_child(name="R") # Adds a third child to the
+                             # branch. Multifurcations are supported
+  # Next, I add 6 random leaves to the R branch names_library is an
+  # optional argument. If no names are provided, they will be generated
+  # randomly.
+  R.populate(6, names_library=["r1","r2","r3","r4","r5","r6"])
+  # Prints the tree topology
+  print t
+  #                     /-C
+  #                    |
+  #                    |--D
+  #                    |
+  #           /--------|                              /-r4
+  #          |         |                    /--------|
+  #          |         |          /--------|          \-r3
+  #          |         |         |         |
+  #          |         |         |          \-r5
+  #          |          \--------|
+  # ---------|                   |                    /-r6
+  #          |                   |          /--------|
+  #          |                    \--------|          \-r2
+  #          |                             |
+  #          |                              \-r1
+  #          |
+  #           \-B
+  # a common use of the populate method is to quickly create example
+  # trees from scratch. Here we create a random tree with 100 leaves.
+  t = Tree()
+  t.populate(100)
+
+
+
+Deleting (eliminating) and Removing (detaching) nodes
+-----------------------------------------------------
+
+As currently implemented, there is a difference between detaching and
+deleting a node. The former disconnects a complete partition from the
+tree structure, so all its descendants are also disconnected from the
+tree. There are two methods to perform this action:
+:func:`TreeNode.remove_child` and :func:`TreeNode.detach`. In
+contrast, deleting a node means eliminating such node without
+affecting its descendants. Children from the deleted node are
+automatically connected to the next possible parent. This is better
+understood with the following example:
+
+:: 
+
+  from ete3 import Tree
+  # Loads a tree. Note that we use format 1 to read internal node names
+  t = Tree('((((H,K)D,(F,I)G)B,E)A,((L,(N,Q)O)J,(P,S)M)C);', format=1)
+  print "original tree looks like this:"
+  # This is an alternative way of using "print t". Thus we have a bit
+  # more of control on how tree is printed. Here i print the tree
+  # showing internal node names
+  print t.get_ascii(show_internal=True)
+  #
+  #                                        /-H
+  #                              /D-------|
+  #                             |          \-K
+  #                    /B-------|
+  #                   |         |          /-F
+  #          /A-------|          \G-------|
+  #         |         |                    \-I
+  #         |         |
+  #         |          \-E
+  #-NoName--|
+  #         |                    /-L
+  #         |          /J-------|
+  #         |         |         |          /-N
+  #         |         |          \O-------|
+  #          \C-------|                    \-Q
+  #                   |
+  #                   |          /-P
+  #                    \M-------|
+  #                              \-S
+  # Get pointers to specific nodes
+  G = t.search_nodes(name="G")[0]
+  J = t.search_nodes(name="J")[0]
+  C = t.search_nodes(name="C")[0]
+  # If we remove J from the tree, the whole partition under J node will
+  # be detached from the tree and it will be considered an independent
+  # tree. We can do the same thing using two approaches: J.detach() or
+  # C.remove_child(J)
+  removed_node = J.detach() # = C.remove_child(J)
+  # if we know print the original tree, we will see how J partition is
+  # no longer there.
+  print "Tree after REMOVING the node J"
+  print t.get_ascii(show_internal=True)
+  #                                        /-H
+  #                              /D-------|
+  #                             |          \-K
+  #                    /B-------|
+  #                   |         |          /-F
+  #          /A-------|          \G-------|
+  #         |         |                    \-I
+  #         |         |
+  #-NoName--|          \-E
+  #         |
+  #         |                    /-P
+  #          \C------- /M-------|
+  #                              \-S
+  # however, if we DELETE the node G, only G will be eliminated from the
+  # tree, and all its descendants will then hang from the next upper
+  # node.
+  G.delete()
+  print "Tree after DELETING the node G"
+  print t.get_ascii(show_internal=True)
+  #                                        /-H
+  #                              /D-------|
+  #                             |          \-K
+  #                    /B-------|
+  #                   |         |--F
+  #          /A-------|         |
+  #         |         |          \-I
+  #         |         |
+  #-NoName--|          \-E
+  #         |
+  #         |                    /-P
+  #          \C------- /M-------|
+  #                              \-S
+
+
+
+Pruning trees
+=============
+
+Pruning a tree means to obtain the topology that connects a certain
+group of items by removing the unnecessary edges. To facilitate this
+task, ETE implements the :func:`TreeNode.prune` method, which can be
+used by providing the list of terminal and/or internal nodes that must
+be kept in the tree. 
+
+From version 2.2, this function includes also the
+`preserve_branch_length` flag, which allows to remove nodes from a
+tree while keeping original distances among remaining nodes.
+
+::
+
+  from ete3 import Tree
+  # Let's create simple tree
+  t = Tree('((((H,K),(F,I)G),E),((L,(N,Q)O),(P,S)));', format=1)
+  print "Original tree looks like this:"
+  print t
+  #
+  #                                        /-H
+  #                              /--------|
+  #                             |          \-K
+  #                    /--------|
+  #                   |         |          /-F
+  #          /--------|          \--------|
+  #         |         |                    \-I
+  #         |         |
+  #         |          \-E
+  #---------|
+  #         |                    /-L
+  #         |          /--------|
+  #         |         |         |          /-N
+  #         |         |          \--------|
+  #          \--------|                    \-Q
+  #                   |
+  #                   |          /-P
+  #                    \--------|
+  #                              \-S
+  # Prune the tree in order to keep only some leaf nodes.
+  t.prune(["H","F","E","Q", "P"])
+  print "Pruned tree"
+  print t
+  #
+  #                              /-F
+  #                    /--------|
+  #          /--------|          \-H
+  #         |         |
+  #---------|          \-E
+  #         |
+  #         |          /-Q
+  #          \--------|
+  #                    \-P
+  # Let's re-create the same tree again
+
+
+Concatenating trees
+===================
+
+Given that all tree nodes share the same basic properties, they can be
+connected freely. In fact, any node can add a whole subtree as a
+child, so we can actually *cut & paste* partitions. To do so, you only
+need to call the :func:`TreeNode.add_child` method using another tree
+node as a first argument. If such a node is the root node of a
+different tree, you will concatenate two structures. But caution!!,
+this kind of operations may result into circular tree structures if
+add an node's ancestor as a new node's child. Some basic checks are
+internally performed by the ETE topology related methods, however, a
+fully qualified check of this issue would affect seriously the
+performance of the method. For this reason, users themselves should
+take care about not creating circular structures by mistake.
+
+::
+
+  from ete3 import Tree
+  # Loads 3 independent trees
+  t1 = Tree('(A,(B,C));')
+  t2 = Tree('((D,E), (F,G));')
+  t3 = Tree('(H, ((I,J), (K,L)));')
+  print "Tree1:", t1
+  #            /-A
+  #  ---------|
+  #           |          /-B
+  #            \--------|
+  #                      \-C
+  print "Tree2:", t2
+  #                      /-D
+  #            /--------|
+  #           |          \-E
+  #  ---------|
+  #           |          /-F
+  #            \--------|
+  #                      \-G
+  print "Tree3:", t3
+  #            /-H
+  #           |
+  #  ---------|                    /-I
+  #           |          /--------|
+  #           |         |          \-J
+  #            \--------|
+  #                     |          /-K
+  #                      \--------|
+  #                                \-L
+  # Locates a terminal node in the first tree
+  A = t1.search_nodes(name='A')[0]
+  # and adds the two other trees as children.
+  A.add_child(t2)
+  A.add_child(t3)
+  print "Resulting concatenated tree:", t1
+  #                                          /-D
+  #                                /--------|
+  #                               |          \-E
+  #                      /--------|
+  #                     |         |          /-F
+  #                     |          \--------|
+  #            /--------|                    \-G
+  #           |         |
+  #           |         |          /-H
+  #           |         |         |
+  #           |          \--------|                    /-I
+  #           |                   |          /--------|
+  #  ---------|                   |         |          \-J
+  #           |                    \--------|
+  #           |                             |          /-K
+  #           |                              \--------|
+  #           |                                        \-L
+  #           |
+  #           |          /-B
+  #            \--------|
+  #                      \-C
+
+
+.. _sec:tree-rooting:
+
+.. _copying_trees:
+
+Copying (duplicating) trees
+=============================
+
+ETE provides several strategies to clone tree structures. The method
+:func:`TreeNode.copy()` can be used to produce a new independent tree
+object with the exact topology and features as the original. However,
+as trees may involve many intricate levels of branches and nested
+features, 4 different methods are available to create a tree copy:
+
+ - "newick": Tree topology, node names, branch lengths and branch
+   support values will be copied as represented in the newick string
+   This method is based on newick format serialization works very fast
+   even for large trees.
+
+ - "newick-extended": Tree topology and all node features will be
+   copied based on the extended newick format representation. Only
+   node features will be copied, thus excluding other node
+   attributes. As this method is also based on newick serialisation,
+   features will be converted into text strings when making the
+   copy. Performance will depend on the tree size and the number and
+   type of features being copied.
+
+ - "cpickle": This is the default method. The whole node structure and
+   its content will be cloned based on the cPickle object
+   serialization python approach.  This method is slower, but
+   recommended for full tree copying.
+
+ - "deepcopy": The whole node structure and its content is copied
+   based on the standard "copy" Python functionality. This is the
+   slowest method, but it allows to copy very complex objects even
+   when attributes point to lambda functions.
+
+::
+
+
+   from ete3 import Tree
+   t = Tree("((A, B)Internal_1:0.7, (C, D)Internal_2:0.5)root:1.3;", format=1)
+   # we add a custom annotation to the node named A
+   (t & "A").add_features(label="custom Value")
+   # we add a complex feature to the A node, consisting of a list of lists
+   (t & "A").add_features(complex=[[0,1], [2,3], [1,11], [1,0]])
+   print t.get_ascii(attributes=["name", "dist", "label", "complex"])
+
+   #                         /-A, 0.0, custom Value, [[0, 1], [2, 3], [1, 11], [1, 0]]
+   #          /Internal_1, 0.7
+   #         |               \-B, 0.0
+   # -root, 1.3
+   #         |               /-C, 0.0
+   #          \Internal_2, 0.5
+   #                         \-D, 0.0
+
+   # Newick copy will loose custom node annotations, complex features,
+   # but not names and branch values
+
+   print t.copy("newick").get_ascii(attributes=["name", "dist", "label", "complex"])
+
+   #                           /-A, 0.0
+   #            /Internal_1, 0.7
+   #           |               \-B, 0.0
+   # -NoName, 0.0
+   #           |               /-C, 0.0
+   #            \Internal_2, 0.5
+   #                           \-D, 0.0
+   
+   # Extended newick copy will transfer custom annotations as text
+   # strings, so complex features are lost.
+
+   print t.copy("newick-extended").get_ascii(attributes=["name", "dist", "label", "complex"])
+
+   #                              /-A, 0.0, custom Value, __0_ 1__ _2_ 3__ _1_ 11__ _1_ 0__
+   #            /Internal_1, 0.7
+   #           |               \-B, 0.0
+   # -NoName, 0.0
+   #           |               /-C, 0.0
+   #            \Internal_2, 0.5
+   #                           \-D, 0.0
+
+   # The default pickle method will produce a exact clone of the
+   # original tree, where features are duplicated keeping their
+   # python data type.
+
+   print t.copy().get_ascii(attributes=["name", "dist", "label", "complex"])
+   print "first element in complex feature:", (t & "A").complex[0]
+
+   #                         /-A, 0.0, custom Value, [[0, 1], [2, 3], [1, 11], [1, 0]]
+   #          /Internal_1, 0.7
+   #         |               \-B, 0.0
+   # -root, 1.3
+   #         |               /-C, 0.0
+   #          \Internal_2, 0.5
+   #                         \-D, 0.0
+   # first element in complex feature: [0, 1]
+
+
+
+.. _resolve_polytomy:
+
+Solving multifurcations
+=============================
+
+When a tree contains a polytomy (a node with more than 2 children),
+the method :func:`resolve_polytomy` can be used to convert the node
+into a randomly bifurcated structure in which branch lengths are set
+to 0. This is really not a solution for the polytomy but it allows to
+export the tree as a strictly bifurcated newick structure, which is a
+requirement for some external software.
+
+The method can be used on a very specific node while keeping the rest
+of the tree intact by disabling the :attr:`recursive` flag.
+
+:: 
+
+  from ete3 import Tree
+  t = Tree("(( (a, b, c), (d, e, f, g)), (f, i, h));")
+  print t
+
+  #             /-a
+  #            |
+  #         /--|--b
+  #        |   |
+  #        |    \-c
+  #     /--|
+  #    |   |    /-d
+  #    |   |   | y
+  #    |   |   |--e
+  #    |    \--|
+  # ---|       |--f
+  #    |       |
+  #    |        \-g
+  #    |
+  #    |    /-f
+  #    |   |
+  #     \--|--i
+  #        |
+  #         \-h
+
+
+  polynode = t.get_common_ancestor("a", "b")
+  polynode.resolve_polytomy(recursive=False)
+  print t
+
+  #                 /-b
+  #             /--|
+  #         /--|    \-c
+  #        |   |
+  #        |    \-a
+  #     /--|
+  #    |   |    /-d
+  #    |   |   |
+  #    |   |   |--e
+  #    |    \--|
+  # ---|       |--f
+  #    |       |
+  #    |        \-g
+  #    |
+  #    |    /-f
+  #    |   |
+  #     \--|--i
+  #        |
+  #         \-h
+
+
+  t.resolve_polytomy(recursive=True)
+  print t
+
+  #  
+  #                 /-b
+  #             /--|
+  #         /--|    \-c
+  #        |   |
+  #        |    \-a
+  #        |
+  #     /--|            /-f
+  #    |   |        /--|
+  #    |   |    /--|    \-g
+  #    |   |   |   |
+  #    |    \--|    \-e
+  # ---|       |
+  #    |        \-d
+  #    |
+  #    |        /-i
+  #    |    /--|
+  #     \--|    \-h
+  #        |
+  #         \-f
+
+
+
+
+Tree Rooting
+============
+
+Tree rooting is understood as the technique by with a given tree is
+conceptually polarized from more basal to more terminal nodes. In
+phylogenetics, for instance, this a crucial step prior to the
+interpretation of trees, since it will determine the evolutionary
+relationships among the species involved. The concept of rooted trees
+is different than just having a root node, which is always necessary
+to handle a tree data structure. Usually, the way in which a tree is
+differentiated between rooted and unrooted, is by counting the number
+of branches of the current root node. Thus, if the root node has more
+than two child branches, the tree is considered unrooted. By contrast,
+when only two main branches exist under the root node, the tree is
+considered rooted. 
+
+Having an unrooted tree means that any internal branch within the tree
+could be regarded as the root node, and there is no conceptual reason
+to place the root node where it is placed at the moment. Therefore, in
+an unrooted tree, there is no information about which internal nodes
+are more basal than others. By setting the root node between a given
+edge/branch of the tree structure the tree is polarized, meaning that
+the two branches under the root node are the most basal nodes. In
+practice, this is usually done by setting an **outgroup** **node**,
+which would represent one of these main root branches. The second one
+will be, obviously, the brother node. When you set an outgroup on
+unrooted trees, the multifurcations at the current root node are
+solved.
+
+In order to root an unrooted tree or re-root a tree structure, ETE
+implements the :func:`TreeNode.set_outgroup` method, which is present
+in any tree node instance.  Similarly, the :func:`TreeNode.unroot`
+method can be used to perform the opposite action.
+
+::
+
+  from ete3 import Tree
+  # Load an unrooted tree. Note that three branches hang from the root
+  # node. This usually means that no information is available about
+  # which of nodes is more basal.
+  t = Tree('(A,(H,F),(B,(E,D)));')
+  print "Unrooted tree"
+  print t
+  #          /-A
+  #         |
+  #         |          /-H
+  #---------|---------|
+  #         |          \-F
+  #         |
+  #         |          /-B
+  #          \--------|
+  #                   |          /-E
+  #                    \--------|
+  #                              \-D
+  #
+  # Let's define that the ancestor of E and D as the tree outgroup.  Of
+  # course, the definition of an outgroup will depend on user criteria.
+  ancestor = t.get_common_ancestor("E","D")
+  t.set_outgroup(ancestor)
+  print "Tree rooteda at E and D's ancestor is more basal that the others."
+  print t
+  #
+  #                    /-B
+  #          /--------|
+  #         |         |          /-A
+  #         |          \--------|
+  #         |                   |          /-H
+  #---------|                    \--------|
+  #         |                              \-F
+  #         |
+  #         |          /-E
+  #          \--------|
+  #                    \-D
+  #
+  # Note that setting a different outgroup, a different interpretation
+  # of the tree is possible
+  t.set_outgroup( t&"A" )
+  print "Tree rooted at a terminal node"
+  print t
+  #                              /-H
+  #                    /--------|
+  #                   |          \-F
+  #          /--------|
+  #         |         |          /-B
+  #         |          \--------|
+  #---------|                   |          /-E
+  #         |                    \--------|
+  #         |                              \-D
+  #         |
+  #          \-A
+
+
+Note that although **rooting** is usually regarded as a whole-tree
+operation, ETE allows to root subparts of the tree without affecting
+to its parent tree structure.
+
+::
+
+  from ete3 import Tree
+  t = Tree('(((A,C),((H,F),(L,M))),((B,(J,K)),(E,D)));')
+  print "Original tree:"
+  print t
+  #                              /-A
+  #                    /--------|
+  #                   |          \-C
+  #                   |
+  #          /--------|                    /-H
+  #         |         |          /--------|
+  #         |         |         |          \-F
+  #         |          \--------|
+  #         |                   |          /-L
+  #         |                    \--------|
+  #---------|                              \-M
+  #         |
+  #         |                    /-B
+  #         |          /--------|
+  #         |         |         |          /-J
+  #         |         |          \--------|
+  #          \--------|                    \-K
+  #                   |
+  #                   |          /-E
+  #                    \--------|
+  #                              \-D
+  #
+  # Each main branch of the tree is independently rooted.
+  node1 = t.get_common_ancestor("A","H")
+  node2 = t.get_common_ancestor("B","D")
+  node1.set_outgroup("H")
+  node2.set_outgroup("E")
+  print "Tree after rooting each node independently:"
+  print t
+  #
+  #                              /-F
+  #                             |
+  #                    /--------|                    /-L
+  #                   |         |          /--------|
+  #                   |         |         |          \-M
+  #                   |          \--------|
+  #          /--------|                   |          /-A
+  #         |         |                    \--------|
+  #         |         |                              \-C
+  #         |         |
+  #         |          \-H
+  #---------|
+  #         |                    /-D
+  #         |          /--------|
+  #         |         |         |          /-B
+  #         |         |          \--------|
+  #          \--------|                   |          /-J
+  #                   |                    \--------|
+  #                   |                              \-K
+  #                   |
+  #                    \-E
+
+
+Working with branch distances
+=============================
+
+The branch length between one node an its parent is encoded as the
+:attr:`TreeNode.dist` attribute. Together with tree topology, branch
+lengths define the relationships among nodes.
+
+
+Getting distances between nodes
+-------------------------------
+
+The :func:`TreeNode.get_distance` method can be used to calculate the
+distance between two connected nodes. There are two ways of using this
+method: a) by querying the distance between two descendant nodes (two
+nodes are passed as arguments) b) by querying the distance between the
+current node and any other relative node (parental or descendant).
+
+
+::
+
+  from ete3 import Tree
+   
+  # Loads a tree with branch lenght information. Note that if no
+  # distance info is provided in the newick, it will be initialized with
+  # the default dist value = 1.0
+  nw = """(((A:0.1, B:0.01):0.001, C:0.0001):1.0,
+  (((((D:0.00001,I:0):0,F:0):0,G:0):0,H:0):0,
+  E:0.000001):0.0000001):2.0;"""
+  t = Tree(nw)
+  print t
+  #                              /-A
+  #                    /--------|
+  #          /--------|          \-B
+  #         |         |
+  #         |          \-C
+  #         |
+  #         |                                                  /-D
+  #         |                                        /--------|
+  #---------|                              /--------|          \-I
+  #         |                             |         |
+  #         |                    /--------|          \-F
+  #         |                   |         |
+  #         |          /--------|          \-G
+  #         |         |         |
+  #          \--------|          \-H
+  #                   |
+  #                    \-E
+  #
+  # Locate some nodes
+  A = t&"A"
+  C = t&"C"
+  # Calculate distance from current node
+  print "The distance between A and C is",  A.get_distance("C")
+  # Calculate distance between two descendants of current node
+  print "The distance between A and C is",  t.get_distance("A","C")
+  # Calculate the toplogical distance (number of nodes in between)
+  print "The number of nodes between A and D is ",  \
+      t.get_distance("A","D", topology_only=True)
+
+
+
+Additionally to this, ETE incorporates two more methods to calculate
+the most distant node from a given point in a tree. You can use the
+:func:`TreeNode.get_farthest_node` method to retrieve the most distant
+point from a node within the whole tree structure. Alternatively,
+:func:`TreeNode.get_farthest_leaf` will return the most distant
+descendant (always a leaf). If more than one node matches the farthest
+distance, the first occurrence is returned.
+
+Distance between nodes can also be computed as the number of nodes
+between them (considering all branch lengths equal to 1.0). To do so,
+the **topology_only** argument must be set to **True** for all the
+above mentioned methods.
+
+
+::
+
+  # Calculate the farthest node from E within the whole structure
+  farthest, dist = (t&"E").get_farthest_node()
+  print "The farthest node from E is", farthest.name, "with dist=", dist
+  # Calculate the farthest node from E within the whole structure,
+  # regarding the number of nodes in between as distance value
+  # Note that the result is differnt.
+  farthest, dist = (t&"E").get_farthest_node(topology_only=True)
+  print "The farthest (topologically) node from E is", \
+      farthest.name, "with", dist, "nodes in between"
+  # Calculate farthest node from an internal node
+  farthest, dist = t.get_farthest_node()
+  print "The farthest node from root is", farthest.name, "with dist=", dist
+  #
+  # The program results in the following information:
+  #
+  # The distance between A and C is 0.1011
+  # The distance between A and C is 0.1011
+  # The number of nodes between A and D is  8.0
+  # The farthest node from E is A with dist= 1.1010011
+  # The farthest (topologically) node from E is I with 5.0 nodes in between
+  # The farthest node from root is A with dist= 1.101
+
+
+.. _sub:getting-midpoint-outgroup:
+
+getting midpoint outgroup
+-------------------------
+
+In order to obtain a balanced rooting of the tree, you can set as the tree
+outgroup that partition which splits the tree in two equally distant clusters
+(using branch lengths). This is called the midpoint outgroup.
+
+The :func:`TreeNode.get_midpoint_outgroup` method will return the
+outgroup partition that splits current node into two balanced branches
+in terms of node distances.
+
+::
+
+  from ete3 import Tree
+  # generates a random tree
+  t = Tree();
+  t.populate(15);
+  print t
+  #
+  #
+  #                    /-qogjl
+  #          /--------|
+  #         |          \-vxbgp
+  #         |
+  #         |          /-xyewk
+  #---------|         |
+  #         |         |                    /-opben
+  #         |         |                   |
+  #         |         |          /--------|                    /-xoryn
+  #          \--------|         |         |          /--------|
+  #                   |         |         |         |         |          /-wdima
+  #                   |         |          \--------|          \--------|
+  #                   |         |                   |                    \-qxovz
+  #                   |         |                   |
+  #                   |         |                    \-isngq
+  #                    \--------|
+  #                             |                    /-neqsc
+  #                             |                   |
+  #                             |                   |                              /-waxkv
+  #                             |          /--------|                    /--------|
+  #                             |         |         |          /--------|          \-djeoh
+  #                             |         |         |         |         |
+  #                             |         |          \--------|          \-exmsn
+  #                              \--------|                   |
+  #                                       |                   |          /-udspq
+  #                                       |                    \--------|
+  #                                       |                              \-buxpw
+  #                                       |
+  #                                        \-rkzwd
+  # Calculate the midpoint node
+  R = t.get_midpoint_outgroup()
+  # and set it as tree outgroup
+  t.set_outgroup(R)
+  print t
+  #                              /-opben
+  #                             |
+  #                    /--------|                    /-xoryn
+  #                   |         |          /--------|
+  #                   |         |         |         |          /-wdima
+  #                   |          \--------|          \--------|
+  #          /--------|                   |                    \-qxovz
+  #         |         |                   |
+  #         |         |                    \-isngq
+  #         |         |
+  #         |         |          /-xyewk
+  #         |          \--------|
+  #         |                   |          /-qogjl
+  #         |                    \--------|
+  #---------|                              \-vxbgp
+  #         |
+  #         |                    /-neqsc
+  #         |                   |
+  #         |                   |                              /-waxkv
+  #         |          /--------|                    /--------|
+  #         |         |         |          /--------|          \-djeoh
+  #         |         |         |         |         |
+  #         |         |          \--------|          \-exmsn
+  #          \--------|                   |
+  #                   |                   |          /-udspq
+  #                   |                    \--------|
+  #                   |                              \-buxpw
+  #                   |
+  #                    \-rkzwd
+
+
diff --git a/doc/_sources/tutorial/tutorial_webplugin.txt b/doc/_sources/tutorial/tutorial_webplugin.txt
new file mode 100644
index 0000000..9b21cef
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_webplugin.txt
@@ -0,0 +1,165 @@
+.. module:: ete3.webplugin
+
+.. currentmodule:: ete3
+
+.. moduleauthor:: Jaime Huerta-Cepas
+
+.. versionadded:: 2.1
+
+Interactive web tree visualization
+************************************
+
+Starting at version 2.1, ETE provides a module to interactively
+display trees within web pages. This task is not straightforward, but
+ETE tries to simplify it by providing a basic
+:class:`WebTreeApplication` class that can be imported in your python
+web applications.
+
+:class:`WebTreeApplication` implements a transparent connector between
+ETE's functionality and web application. For this, a pre-built
+`WSGI <http://wsgi.org>`_ application is provided.
+
+Through this application, you will be able to create custom web
+implementations to visualize and manipulate trees interactively. Some
+examples can be found at the `PhylomeDB tree browser
+<http://phylomedb.org/?q=search_tree&seqid=Phy00085K5_HUMAN>`_ or in
+the `ETE's online treeviewer <http://etetoolkit.org/treeview>`_.
+
+
+NO X system available? 
+============================
+
+Alternatively, a virtual X system such as XVFB `has been reported
+<https://github.com/jhcepas/ete/issues/101>`_ to work in servers without a
+proper X backend. Just install XVFB and preface your ETE commands with xvfb-run.
+
+``xvfb-run python MyETEscript.py``  
+
+Installing a X server
+=========================
+
+All modern linux desktop installations include a graphical interface
+(called X server). However web servers (in which the ETE plugin is
+expected to run) may not count with a X server. 
+
+Servers
+========
+
+In order to render tree images with ETE, you will need to install, at
+least, a basic X server. Note that the X server does not require a
+desktop interface, such as Gnome or KDE. 
+
+In Ubuntu, for instance, a basic X server called xdm can be installed
+as follows:
+
+``apt-get install  xserver-xorg xdm  xfonts-base xfonts-100dpi xfonts-75dpi``
+
+Once the X server is installed, you will need to configure it to
+accept connections from the web-server. 
+
+In our example, edit the ``/etc/X11/xdm/xdm-config`` file and set
+following values: ::
+  
+  DisplayManager*authorize:       false
+  !
+  DisplayManager*authComplain:    false
+
+Do not forget to restart your xdm server. 
+
+``/etc/init.d/xdm restart``
+
+
+Desktops
+==========
+
+If you plan to use web tree application in a linux desktop computer,
+then the X server is already installed. You will only need to give
+permissions to the web-server (i.e. apache) to connect your
+display. Usually, as simple as running the following command in a
+terminal:
+
+``xhost +``
+
+
+Configuring the web sever
+======================================
+
+You will need to add support for WSGI application to your web
+server. In the following steps, an Apache2 web server will be assumed.
+
+* Install and activate the ``modwsgi`` module in Apache.
+
+* Configure your site to support WSGI. 
+
+Configuration will depend a lot on your specific system, but this is
+an example configuration file for the default site of your Apache
+server (usually at ``/ete/apache2/sites-available/default``):
+
+::
+
+  <VirtualHost *:80>                                                                                                                                                                                           
+   ServerAdmin webmaster at localhost                                                                                                                                                                             
+   
+   DocumentRoot /var/www                                                                                                                                                                                       
+   <Directory />                                                                                                                                                                                               
+          Options +FollowSymLinks                                                                                                                                                                              
+          AllowOverride None                                                                                                                                                                                   
+   </Directory>                                                                                                                                                                                                
+                                                                                                                                                                                                              
+   ErrorLog /var/log/apache2/error.log                                                                                                                                                                         
+                                                                                                                                                                                                               
+   # Possible values include: debug, info, notice, warn, error, crit,                                                                                                                                          
+   # alert, emerg.                                                                                                                                                                                             
+   LogLevel warn                                                                                                                                                                                               
+                                                                                                                                                                                                              
+   CustomLog /var/log/apache2/access.log combined                                                                                                                                                              
+   
+   # ########################### #
+   # WSGI SPECIFIC CONFIG        #
+                                                                                                                                                                                                               
+   WSGIDaemonProcess eteApp user=www-data group=www-data processes=1 threads=1                                                                                                                                 
+   WSGIProcessGroup eteApp                                                                                                                                                                                     
+   WSGIApplicationGroup %{GLOBAL}
+                                                                                                                                                                                                        
+   <Directory /var/www/webplugin/>                                                                                                                                                                                  
+          Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch                                                                                                                                                   
+          SetHandler wsgi-script                                                                                                                                                                               
+          Order allow,deny                                                                                                                                                                                     
+          Allow from all                                                                                                                                                                                       
+          AddHandler wsgi-script .py                                                                                                                                                                          
+   </Directory>                                                                                                                                                                                                
+   
+   # END OF WSGI SPECIFIC CONFIG # 
+   # ########################### #
+   
+  </VirtualHost>                             
+
+.. note::
+
+   `/var/www/webplugin/wsgi/` is the folder in which python web
+   application will be located. Make sure that the apache WSGI config
+   enables this folder to run wsgi-scripts.
+
+.. warning::
+   
+   Important notes: 
+
+   `/var/www/webplugin/` is assumed to be the directory in which your
+   application will run. 
+
+   `/var/www/webplugin/tmp/` should be writable by the web-server
+   (i.e. chmod 777)
+
+
+
+Implementation of WebTreeApplications
+========================================
+
+ETE's :class:`WebTreeApplication` uses WSGI in the backend, and a
+several javascript files in the frontend. Basic files are included as
+an example in the `ETE installation package
+<http://pypi.python.org/pypi/ete3>`_ ``examples/webplugin``. The
+whole example folder is necessary, and it contains a commented copy of
+a web-tree implementation
+``examples/webplugin/wsgi/webplugin_example.py``.
+
diff --git a/doc/_sources/tutorial/tutorial_xml.txt b/doc/_sources/tutorial/tutorial_xml.txt
new file mode 100644
index 0000000..7466e38
--- /dev/null
+++ b/doc/_sources/tutorial/tutorial_xml.txt
@@ -0,0 +1,42 @@
+************************************  
+Phylogenetic XML standards
+************************************
+.. versionadded:: 2.1
+
+From version 2.1, ETE provides support for `NeXML
+<http://nexml.org/>`_ and `PhyloXML <http://phyloxml.org/>`_
+phylogenetic XML standards, both reading and writing. These standards
+allow to encode complex phylogenetic data, and therefore they are not
+limited to trees. Although ETE is mainly focused on allowing
+transparent interaction with trees, it also provides basic I/O methods
+to data of different type.
+
+Essentially, NexML and PhyloXML files are intended to encode
+collections of phylogenetic data. Such information can be converted to
+a collection Python objects sorted in a hierarchical way. A specific
+Python class exists for every element encoded documented by the NeXML
+and PhyloXML formats. This is possible thanks to the the general
+purpose Python drivers available for both formats
+(http://etetoolkit.org/phyloxml-and-nexml-python-parsers). ETE will
+use such drivers to access XML data, and it will also convert tree
+data into PhyloTree objects. In practice, conversions will occur
+transparently.  NeXML and PhyloXML files are loaded using their
+specific root classes, provided by the main ETE module, and all the
+information will become available as a collection of Python objects
+internally sorted according to the original XML hierarchy.
+
+.. toctree::
+   :maxdepth: 2
+
+   tutorial_nexml
+   tutorial_phyloxml
+
+.. note:: 
+
+   NeXML and PhyloXML python parsers are possible thanks to Dave
+   Kulhman and his work on the `generateDS.py
+   <http://www.rexx.com/~dkuhlman/generateDS.html>`_
+   application. Thanks Dave! ;-)
+
+
+
diff --git a/doc/about.html b/doc/about.html
new file mode 100644
index 0000000..028f6cc
--- /dev/null
+++ b/doc/about.html
@@ -0,0 +1,243 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>About ETE — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="#"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="index.html">Docs</a> »</li>
+      
+    <li>About ETE</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="_sources/about.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="about-ete">
+<h1>About ETE<a class="headerlink" href="#about-ete" title="Permalink to this headline">¶</a></h1>
+<p>ETE is currently developed by the <a class="reference external" href="http://gabaldonlab.crg.es/">Comparative genomics group</a> at the <a class="reference external" href="http://www.crg.es/">Centre for Genomic Regulation</a></p>
+<p>You can cite ETE as:</p>
+<p>Jaime Huerta-Cepas, Joaquín Dopazo and Toni Gabaldón. <strong>ETE: a python
+Environment for Tree Exploration.</strong> <em>BMC Bioinformatics 2010, 11:24.</em></p>
+<div class="section" id="people-using-ete">
+<h2>People using ETE<a class="headerlink" href="#people-using-ete" title="Permalink to this headline">¶</a></h2>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">UNDER CONSTRUCTION</p>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/changelog/changelog2.1.html b/doc/changelog/changelog2.1.html
new file mode 100644
index 0000000..383f059
--- /dev/null
+++ b/doc/changelog/changelog2.1.html
@@ -0,0 +1,374 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>What’s new in ETE 2.1 — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="Changelog history" href="index.html"/>
+        <link rel="next" title="The ETE tutorial" href="../tutorial/index.html"/>
+        <link rel="prev" title="What’s new in ETE 2.2" href="changelog2.2.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Changelog history</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html">What’s new in ETE 2.3</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html">What’s new in ETE 2.2</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">What’s new in ETE 2.1</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">Changelog history</a> »</li>
+      
+    <li>What’s new in ETE 2.1</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/changelog/changelog2.1.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="what-s-new-in-ete-2-1">
+<h1>What’s new in ETE 2.1<a class="headerlink" href="#what-s-new-in-ete-2-1" title="Permalink to this headline">¶</a></h1>
+<ul>
+<li><p class="first">A basic standalone tree visualization program called “ete3” is now
+installed along with the package.</p>
+</li>
+<li><p class="first">The drawing engine has been completely rewritten to provide the
+following new features:</p>
+<ul>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a> class allowing to set the following</p>
+<ul class="simple">
+<li>Added <strong>circular tree drawing</strong> mode</li>
+<li>Added tree <em>title face block</em> (Text or images that rendered on top of the tree)</li>
+<li>Added tree <em>legend face block</em> (Text or images that rendered as image legend)</li>
+<li>Added support for <em>tree rotation and orientation</em></li>
+<li>Possibility of drawing <em>aligned faces as a table</em></li>
+<li>Added header and footer regions for aligned faces.</li>
+<li>And more! Check <a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a> documentation</li>
+</ul>
+</li>
+<li><p class="first">Added new face positions <strong>float</strong>, <strong>branch-top</strong> and
+<strong>branch-bottom</strong>. See tutorial (<a class="reference internal" href="../tutorial/tutorial_drawing.html#sec-node-faces"><span>Node faces</span></a>) for more details.</p>
+</li>
+<li><p class="first">Added several <a class="reference internal" href="../reference/reference_treeview.html#ete3.Face" title="ete3.Face"><code class="xref py py-class docutils literal"><span class="pre">Face</span></code></a> attributes:</p>
+<ul class="simple">
+<li>face border</li>
+<li>face background color</li>
+<li>left, right, top and bottom margins</li>
+<li>face opacity</li>
+<li>horizontal and vertical alignment (useful when faces are rendered as table)</li>
+</ul>
+</li>
+<li><p class="first">Added support for predefined <a class="reference internal" href="../reference/reference_treeview.html#ete3.NodeStyle" title="ete3.NodeStyle"><code class="xref py py-class docutils literal"><span class="pre">NodeStyle</span></code></a>, which can be set
+outside the layout function (allows to save and export image rendering info)</p>
+</li>
+<li><dl class="first docutils">
+<dt>Added new face types:</dt>
+<dd><ul class="first last simple">
+<li><a class="reference internal" href="../reference/reference_treeview.html#ete3.CircleFace" title="ete3.CircleFace"><code class="xref py py-class docutils literal"><span class="pre">CircleFace</span></code></a> (basic circle/sphere forms)</li>
+<li><a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeFace" title="ete3.TreeFace"><code class="xref py py-class docutils literal"><span class="pre">TreeFace</span></code></a> (trees within trees)</li>
+<li><a class="reference internal" href="../reference/reference_treeview.html#ete3.StaticItemFace" title="ete3.StaticItemFace"><code class="xref py py-class docutils literal"><span class="pre">StaticItemFace</span></code></a> and <a class="reference internal" href="../reference/reference_treeview.html#ete3.DynamicItemFace" title="ete3.DynamicItemFace"><code class="xref py py-class docutils literal"><span class="pre">DynamicItemFace</span></code></a> (create custom and interactive QtGraphi [...]
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Improved faces:</dt>
+<dd><ul class="first last simple">
+<li><a class="reference internal" href="../reference/reference_treeview.html#ete3.AttrFace" title="ete3.AttrFace"><code class="xref py py-class docutils literal"><span class="pre">AttrFace</span></code></a> accepts prefix and suffix text, as well as a
+text formatter function. <code class="xref py py-attr docutils literal"><span class="pre">fstyle</span></code> argument can be set to
+<code class="docutils literal"><span class="pre">italic</span></code></li>
+<li><a class="reference internal" href="../reference/reference_treeview.html#ete3.TextFace" title="ete3.TextFace"><code class="xref py py-class docutils literal"><span class="pre">TextFace</span></code></a>: <code class="xref py py-attr docutils literal"><span class="pre">fstyle</span></code> argument  can be set to <code class="docutils literal"><span class="pre">italic</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Save and export images</dt>
+<dd><ul class="first last simple">
+<li>Added full support for SVG image rendering</li>
+<li>Added more options to the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.render" title="ete3.TreeNode.render"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.render()</span></code></a> function to
+control image size and resolution</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><p class="first">Added support for <a class="reference internal" href="../reference/reference_treeview.html#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a> names in faces and node styles</p>
+</li>
+</ul>
+</li>
+<li><dl class="first docutils">
+<dt>Core methods:</dt>
+<dd><ul class="first last simple">
+<li>Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.copy" title="ete3.TreeNode.copy"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.copy()</span></code></a>:  returns an exact and independent copy of node and all its attributes</li>
+<li>Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.convert_to_ultrametric" title="ete3.TreeNode.convert_to_ultrametric"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.convert_to_ultrametric()</span></code></a>: converts all branch lengths to allow leaves to be equidistant to root</li>
+<li>Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.sort_descendants" title="ete3.TreeNode.sort_descendants"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.sort_descendants()</span></code></a>: sort tree branches according to node names.</li>
+<li>Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.ladderize" title="ete3.TreeNode.ladderize"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.ladderize()</span></code></a>: sort tree branches according to partition size</li>
+<li>Added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_partitions()</span></code>: return the set of all possible partitions grouping leaf nodes</li>
+<li>Tree nodes can now be fully exported using cPickle</li>
+<li>Newick parser can read and export branch distances and support values using scientific notation</li>
+<li><code class="xref py py-func docutils literal"><span class="pre">TreeNode.swap_childs()</span></code> method has changed to <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.swap_children" title="ete3.TreeNode.swap_children"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.swap_children()</span></code></a></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_nexml.html#module-ete3.nexml" title="ete3.nexml"><code class="xref py py-mod docutils literal"><span class="pre">ete3.nexml</span></code></a> module (read and write nexml format)</p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_phyloxml.html#module-ete3.phyloxml" title="ete3.phyloxml"><code class="xref py py-mod docutils literal"><span class="pre">ete3.phyloxml</span></code></a> module (read and write phyloxml format)</p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../tutorial/tutorial_webplugin.html#module-ete3.webplugin" title="ete3.webplugin"><code class="xref py py-mod docutils literal"><span class="pre">ete3.webplugin</span></code></a> module: Allows to create interactive web tree applications</p>
+</li>
+<li><p class="first">Tree visualization GUI checks now for newer version of the ETE package.</p>
+</li>
+<li><p class="first">Added <code class="xref py py-class docutils literal"><span class="pre">PhylomeDB3Connector</span></code></p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_farthest_oldest_node" title="ete3.PhyloNode.get_farthest_oldest_node"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_farthest_oldest_node()</span></code></a> function, which allows to find the best outgroup node in a tree, even if it is an internal node.</p>
+</li>
+<li><dl class="first docutils">
+<dt>Bug Fixes and improvements:</dt>
+<dd><ul class="first last simple">
+<li>Fix: <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_common_ancestor" title="ete3.TreeNode.get_common_ancestor"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_common_ancestor()</span></code></a> accepts a single argument (node or list of nodes) instead of a succession or nodes. It can also return the path of each node to the parent.</li>
+<li>Fix: Fast scroll based zoom-in was producing tree image inversions</li>
+<li>Fix: Phylip parser does not truncate long names by default</li>
+<li>Fix: “if not node” syntax was using a len(node) test, which made
+it totally inefficient. Now, the same expression returns always <em>True</em></li>
+<li>Improvement: Traversing methods are now much faster (specially preorder and levelorder)</li>
+<li>Improvement: Faster populate function (added possibility of random and non-random branch lengths)</li>
+<li>Improvement: Faster prune function</li>
+<li>Improvement: unicode support for tree files</li>
+<li>Improvement: Added newick support for scientific notation in branch lengths</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Improved documentation and examples:</dt>
+<dd><ul class="first last simple">
+<li>Online and PDF tutorial</li>
+<li>Better library reference</li>
+<li>A set of examples is now provided with the installation package and <a class="reference external" href="http://etetoolkit.org/releases/ete3/examples-ete3.tar.gz">here</a></li>
+</ul>
+</dd>
+</dl>
+</li>
+</ul>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="../tutorial/index.html" class="btn btn-neutral float-right" title="The ETE tutorial" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="changelog2.2.html" class="btn btn-neutral" title="What’s new in ETE 2.2" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/changelog/changelog2.2.html b/doc/changelog/changelog2.2.html
new file mode 100644
index 0000000..ffd9f21
--- /dev/null
+++ b/doc/changelog/changelog2.2.html
@@ -0,0 +1,506 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>What’s new in ETE 2.2 — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="Changelog history" href="index.html"/>
+        <link rel="next" title="What’s new in ETE 2.1" href="changelog2.1.html"/>
+        <link rel="prev" title="What’s new in ETE 2.3" href="changelog2.3.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Changelog history</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html">What’s new in ETE 2.3</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">What’s new in ETE 2.2</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#bugfixes">BUGFIXES</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#scripts">SCRIPTS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#new-modules">NEW MODULES</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#new-features">NEW FEATURES</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.1.html">What’s new in ETE 2.1</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">Changelog history</a> »</li>
+      
+    <li>What’s new in ETE 2.2</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/changelog/changelog2.2.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="what-s-new-in-ete-2-2">
+<h1>What’s new in ETE 2.2<a class="headerlink" href="#what-s-new-in-ete-2-2" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="bugfixes">
+<h2>BUGFIXES<a class="headerlink" href="#bugfixes" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Fixes in NeXML parser and exporting functions</li>
+<li>Fixed ‘paste newick’ functionality on the GUI</li>
+<li>Fixed <code class="xref py py-func docutils literal"><span class="pre">PhyloNode.is_monophyletic()</span></code> and moved to
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.check_monophyly" title="ete3.TreeNode.check_monophyly"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.check_monophyly()</span></code></a>.</li>
+<li>Fixed consistency issued in <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.sort_descendants" title="ete3.TreeNode.sort_descendants"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.sort_descendants()</span></code></a> function.</li>
+</ul>
+</div>
+<div class="section" id="scripts">
+<h2>SCRIPTS<a class="headerlink" href="#scripts" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Improvements in the standalone visualization script (a.k.a. ete3)</li>
+<li>Added the <a class="reference internal" href="../tutorial/tutorial_etree2orthoxml.html#etree2orthoxml"><span>etree2orthoxml script</span></a>, which
+provides conversion between phylogenetic tree and the orthoXML
+format</li>
+</ul>
+</div>
+<div class="section" id="new-modules">
+<h2>NEW MODULES<a class="headerlink" href="#new-modules" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">New <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode" title="ete3.EvolNode"><code class="xref py py-class docutils literal"><span class="pre">EvolNode</span></code></a> tree object type is available as a part of
+adaptation-test extension recently developed by François Serra (see
+<a class="reference internal" href="../tutorial/tutorial_adaptation.html"><em>Testing Evolutionary Hypothesis</em></a> in the tutorial).</p>
+<div class="figure">
+<a class="reference internal image-reference" href="../_images/M2_super_profesional.png"><img alt="../_images/M2_super_profesional.png" src="../_images/M2_super_profesional.png" style="width: 812.0px; height: 135.0px;" /></a>
+</div>
+</li>
+</ul>
+</div>
+<div class="section" id="new-features">
+<h2>NEW FEATURES<a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first"><strong>News in core Tree instances:</strong></p>
+<ul>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.robinson_foulds" title="ete3.TreeNode.robinson_foulds"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.robinson_foulds()</span></code></a> distance to compare the
+topology of two trees (i.e. tree.robinson_foulds(tree2)). It
+includes automatic pruning to compare trees of different
+sizes. <a class="reference internal" href="../tutorial/tutorial_trees.html#robinson-foulds"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Added new options to <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.copy" title="ete3.TreeNode.copy"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.copy()</span></code></a> function, allowing
+faster methods to duplicate tree node instances.
+<a class="reference internal" href="../tutorial/tutorial_trees.html#copying-trees"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Added <code class="xref py py-attr docutils literal"><span class="pre">preserve_branch_length</span></code> argument to
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.prune" title="ete3.TreeNode.prune"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.prune()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.delete" title="ete3.TreeNode.delete"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.delete()</span></code></a>, which allows
+to remove nodes from a tree while keeping original branch length
+distances among the remaining nodes.</p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.resolve_polytomy" title="ete3.TreeNode.resolve_polytomy"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.resolve_polytomy()</span></code></a> function to convert
+multifurcated nodes into an arbitrary structure of binary split
+nodes with distance. <a class="reference internal" href="../tutorial/tutorial_trees.html#resolve-polytomy"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_cached_content" title="ete3.TreeNode.get_cached_content"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_cached_content()</span></code></a> function, which returns
+a dictionary linking each node instance with its leaf
+content. Such a dictionary might be used as a cache to speed up
+functions that require intensive use of node
+traversing. <a class="reference internal" href="../tutorial/tutorial_trees.html#cache-node-content"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Improved <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_ascii" title="ete3.TreeNode.get_ascii"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_ascii()</span></code></a> function for text-based
+visualization of trees. A new <cite>attributes</cite> argument can be passed
+to display node attributes within the ASCII tree representation.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((A, B)Internal_1:0.7, (C, D)Internal_2:0.5)root:1.3;"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">,</span> <span class="s">"size"</span><span class="p">])</span>
+<span class="c">#</span>
+<span class="c">#                            /-A, 0.0</span>
+<span class="c">#             /Internal_1, 0.7</span>
+<span class="c">#            |               \-B, 0.0</span>
+<span class="c"># -root, 1.3, 4</span>
+<span class="c">#            |               /-C, 0.0</span>
+<span class="c">#             \Internal_2, 0.5</span>
+<span class="c">#                            \-D, 0.0</span>
+<span class="c">#</span>
+</pre></div>
+</div>
+</li>
+<li><p class="first">Random branch length and support values generation is now available
+for the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.populate" title="ete3.TreeNode.populate"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.populate()</span></code></a> function.</p>
+</li>
+<li><p class="first">a new argument <code class="xref py py-attr docutils literal"><span class="pre">is_leaf_fn</span></code> is available for a number of
+traversing functions, thus allowing to provide custom stopping
+criteria when browsing a tree. This is, any node matching the
+function provided through the <code class="xref py py-attr docutils literal"><span class="pre">is_leaf_fn</span></code> argument will be
+temporarily considered as a terminal/leaf node by the traversing
+function (tree will look as a pruned version of itself).
+<a class="reference internal" href="../tutorial/tutorial_trees.html#is-leaf-fn"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_ancestors" title="ete3.TreeNode.iter_ancestors"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_ancestors()</span></code></a> and
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_ancestors" title="ete3.TreeNode.get_ancestors"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_ancestors()</span></code></a> functions.</p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_prepostorder" title="ete3.TreeNode.iter_prepostorder"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_prepostorder()</span></code></a> tree node iterator.</p>
+</li>
+<li><p class="first">Newick parser accepts now the creation of single node trees. For
+example, a text string such as <code class="xref py py-attr docutils literal"><span class="pre">"node1;"</span></code> will be parsed as
+a single tree node whose name is <code class="xref py py-attr docutils literal"><span class="pre">node1</span></code>. By contrast, the
+newick string <code class="xref py py-attr docutils literal"><span class="pre">(node1);</span></code> will be interpreted as an unnamed
+root node plus a single child named <code class="xref py py-attr docutils literal"><span class="pre">name1</span></code>.</p>
+</li>
+<li><p class="first"><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.write" title="ete3.TreeNode.write"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.write()</span></code></a> accepts now a <code class="xref py py-attr docutils literal"><span class="pre">format_root_node</span></code>
+argument to export root node features as a part of the newick
+string.</p>
+</li>
+<li><p class="first">The new <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.check_monophyly" title="ete3.TreeNode.check_monophyly"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.check_monophyly()</span></code></a> method allows to check
+if a node is mono, poly or paraphyletic for a given attribute and
+values (i.e. grouped species). Although monophyly is actually a
+phylogenetic concept, the idea can be applied to any tree, so any
+topology could be queried for the monophyly of certain attribute
+values. If not monophyletic, the method will return also the type
+of relationship connecting the provided values (para- or
+poly-phyletic). <a class="reference internal" href="../tutorial/tutorial_trees.html#check-monophyly"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">New <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_monophyletic" title="ete3.TreeNode.get_monophyletic"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_monophyletic()</span></code></a> method that returns a list
+of nodes in a tree matching a custom monophyly criteria.</p>
+</li>
+</ul>
+</li>
+<li><p class="first"><strong>News PhyloTree instances:</strong></p>
+<ul>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_speciation_trees" title="ete3.PhyloNode.get_speciation_trees"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_speciation_trees()</span></code></a> method, which returns
+all possible species topologies present in a gene family tree as
+described in <a class="reference external" href="http://treeko.cgenomics.org">Treeko</a>. <a class="reference internal" href="../tutorial/tutorial_phylogeny.html#treeko-trees"><span>See tutorial and examples</span></a></p>
+<div class="admonition seealso">
+<p class="first admonition-title">See also</p>
+<div class="figure">
+<a class="reference internal image-reference" href="../_images/treeko_logo.png"><img alt="../_images/treeko_logo.png" src="../_images/treeko_logo.png" style="width: 55.3px; height: 58.1px;" /></a>
+</div>
+<p><a class="reference external" href="http://www.ncbi.nlm.nih.gov/pubmed/21335609">TreeKO: a duplication-aware algorithm for the comparison of phylogenetic trees.</a></p>
+<p>Marcet-Houben M, Gabaldón T.</p>
+<p class="last">Nucleic Acids Res. 2011 May;39(10):e66. doi: 10.1093/nar/gkr087.</p>
+</div>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.split_by_dups" title="ete3.PhyloNode.split_by_dups"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.split_by_dups()</span></code></a> method, which returns a list
+of partial subtrees resulting from splitting a tree at duplication
+nodes. <a class="reference internal" href="../tutorial/tutorial_phylogeny.html#split-by-dup"><span>See tutorial and examples</span></a></p>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.collapse_lineage_specific_expansions" title="ete3.PhyloNode.collapse_lineage_specific_expansions"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.collapse_lineage_specific_expansions()</span></code></a> method,
+which returns a pruned version of a tree, where nodes representing
+lineage specific expansions are converted into a single leaf node.
+<a class="reference internal" href="../tutorial/tutorial_phylogeny.html#collapse-expansions"><span>See tutorial and examples</span></a></p>
+</li>
+</ul>
+</li>
+<li><p class="first"><strong>News on sequence and multiple sequence alignment parsing:</strong></p>
+<ul class="simple">
+<li>added the option to disable the automatic correction of duplicated
+names when loading <a class="reference internal" href="../reference/reference_seqgroup.html#ete3.SeqGroup" title="ete3.SeqGroup"><code class="xref py py-class docutils literal"><span class="pre">SeqGroup</span></code></a> data from phylip and fasta
+files.</li>
+</ul>
+</li>
+<li><p class="first"><strong>News on tree visualization and image rendering:</strong></p>
+<ul>
+<li><p class="first">node style attributes can now be modified without the need of
+initialization by directly accessing the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.img_style" title="ete3.TreeNode.img_style"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.img_style</span></code></a> attribute.</p>
+</li>
+<li><p class="first">Multiple layout functions can now be provided to combine their
+functionality. This way, you can keep separate styling templates
+and combine them as necessary.</p>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">TreeStyle</span>
+
+<span class="k">def</span> <span class="nf">color_leaves</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+       <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"red"</span>
+
+<span class="k">def</span> <span class="nf">size_internal</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+       <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span>
+
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="c"># provide a list of layout functions, instead of a single one</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="p">[</span><span class="n">color_leaves</span><span class="p">,</span> <span class="n">size_internal</span><span class="p">]</span>
+</pre></div>
+</div>
+</div></blockquote>
+</li>
+<li><p class="first"><a class="reference internal" href="../reference/reference_treeview.html#ete3.COLOR_SCHEMES" title="ete3.COLOR_SCHEMES"><code class="xref py py-attr docutils literal"><span class="pre">COLOR_SCHEMES</span></code></a> and <a class="reference internal" href="../reference/reference_treeview.html#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-attr docutils literal"><span class="pre">SVG_COLORS</span></code></a> dictionaries are
+provided for easy access to color codes and several predefined
+color schemes. In addition, a <a class="reference internal" href="../reference/reference_treeview.html#ete3.random_color" title="ete3.random_color"><code class="xref py py-func docutils literal"><span class="pre">random_color()</span></code></a> function is
+also available as a generator of RGB colors (where saturation and
+lightness can be fixed).</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">random_color</span><span class="p">,</span> <span class="n">COLOR_SCHEMES</span><span class="p">,</span> <span class="n">SVG_COLORS</span>
+
+<span class="c"># generate 20 random colors</span>
+<span class="n">node_colors</span> <span class="o">=</span> <span class="p">[</span><span class="n">random_color</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="mf">0.4</span><span class="p">,</span> <span class="n">l</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">xrange</span><span class="p">(</span><span class="mi">2 [...]
+</pre></div>
+</div>
+</li>
+</ul>
+</li>
+<li><p class="first"><strong>News on node faces:</strong></p>
+<ul>
+<li><p class="first">New <code class="xref py py-attr docutils literal"><span class="pre">face.rotation</span></code> attribute, that allows to rotate
+individual faces even when a global <code class="xref py py-attr docutils literal"><span class="pre">treestyle.rotation</span></code> is
+used.</p>
+<blockquote>
+<div><div class="figure">
+<a class="reference internal image-reference" href="../_images/rotated_faces.png"><img alt="../_images/rotated_faces.png" src="../_images/rotated_faces.png" style="width: 345.75px; height: 335.25px;" /></a>
+</div>
+</div></blockquote>
+</li>
+<li><p class="first">Improved <a class="reference internal" href="../reference/reference_treeview.html#ete3.SequenceFace" title="ete3.SequenceFace"><code class="xref py py-class docutils literal"><span class="pre">SequenceFace</span></code></a>: Sequence sites are now rendered
+one by one, allowing interaction with each of them and getting rid
+of the previous pixmap size limitation. Site image dimensions and
+colours are now configurable.</p>
+</li>
+<li><p class="first">Added new <a class="reference internal" href="../reference/reference_treeview.html#ete3.SeqMotifFace" title="ete3.SeqMotifFace"><code class="xref py py-class docutils literal"><span class="pre">SeqMotifFace</span></code></a> class, which represent an enriched
+version of the former <a class="reference internal" href="../reference/reference_treeview.html#ete3.SequenceFace" title="ete3.SequenceFace"><code class="xref py py-class docutils literal"><span class="pre">SequenceFace</span></code></a> instance. This new
+face type allows to represent sequences as a succession of
+domain/motif elements or to represent sequence positions as color
+points. Gaps can also be taken into account and therefore shown as
+as a black space or a flat line.</p>
+<blockquote>
+<div><div class="figure">
+<a class="reference internal image-reference" href="../_images/seqmotif.png"><img alt="../_images/seqmotif.png" src="../_images/seqmotif.png" style="width: 856.5px; height: 179.25px;" /></a>
+</div>
+</div></blockquote>
+</li>
+<li><p class="first">Added <a class="reference internal" href="../reference/reference_treeview.html#ete3.PieChartFace" title="ete3.PieChartFace"><code class="xref py py-class docutils literal"><span class="pre">PieChartFace</span></code></a> and <a class="reference internal" href="../reference/reference_treeview.html#ete3.BarChartFace" title="ete3.BarChartFace"><code class="xref py py-class docutils literal"><span class="pre">BarChartFace</span></code></a> face types
+for built-in representation of statistics attached to nodes.</p>
+<blockquote>
+<div><div class="figure">
+<a class="reference internal image-reference" href="../_images/float_piechart.png"><img alt="../_images/float_piechart.png" src="../_images/float_piechart.png" style="width: 656.5px; height: 689.0px;" /></a>
+</div>
+<div class="figure">
+<a class="reference internal image-reference" href="../_images/barcharts.png"><img alt="../_images/barcharts.png" src="../_images/barcharts.png" style="width: 411.4px; height: 287.1px;" /></a>
+</div>
+</div></blockquote>
+</li>
+<li><p class="first">Improved <a class="reference internal" href="../reference/reference_treeview.html#ete3.ImgFace" title="ete3.ImgFace"><code class="xref py py-class docutils literal"><span class="pre">ImgFace</span></code></a> class, now accepting on the fly image
+scaling.</p>
+</li>
+</ul>
+</li>
+<li><p class="first"><strong>News on the GUI</strong></p>
+<ul class="simple">
+<li>Allows image region selection.</li>
+<li>Allows zooming on selected regions or specific nodes (Z - zoomIn, X - zoomOut, R - focus region).</li>
+<li><code class="kbd docutils literal"><span class="pre">C-c</span></code> will now interrupt the GUI application when started
+from a terminal.</li>
+<li>Added keyboard-based node navigation (click on a node and play the
+arrow keys).</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="changelog2.1.html" class="btn btn-neutral float-right" title="What’s new in ETE 2.1" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="changelog2.3.html" class="btn btn-neutral" title="What’s new in ETE 2.3" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/changelog/changelog2.3.html b/doc/changelog/changelog2.3.html
new file mode 100644
index 0000000..9bf3486
--- /dev/null
+++ b/doc/changelog/changelog2.3.html
@@ -0,0 +1,338 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>What’s new in ETE 2.3 — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="Changelog history" href="index.html"/>
+        <link rel="next" title="What’s new in ETE 2.2" href="changelog2.2.html"/>
+        <link rel="prev" title="Changelog history" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Changelog history</a><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" href="">What’s new in ETE 2.3</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#update-2-3-2">Update 2.3.2</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#new-modules">New Modules</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#tools">tools</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#ncbi-taxonomy">ncbi taxonomy</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#new-features">New features</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#highlighted-bug-fixes">Highlighted Bug Fixes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html">What’s new in ETE 2.2</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.1.html">What’s new in ETE 2.1</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">Changelog history</a> »</li>
+      
+    <li>What’s new in ETE 2.3</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/changelog/changelog2.3.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="what-s-new-in-ete-2-3">
+<h1>What’s new in ETE 2.3<a class="headerlink" href="#what-s-new-in-ete-2-3" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="update-2-3-2">
+<h2>Update 2.3.2<a class="headerlink" href="#update-2-3-2" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>added <code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_descendant_taxa()</span></code></li>
+<li>added <code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_common_names()</span></code></li>
+<li><a class="reference external" href="http://etetoolkit.org/documentation/ete-ncbiquery/">ete ncbiquery</a>: dump descendant taxa given a taxid or taxa name. new option <a href="#id2"><span class="problematic" id="id3">`–descendants`_</span></a>; renamed <a href="#id4"><span class="problematic" id="id5">`–taxonomy`_</span></a> by <a href="#id6"><span class="problematic" id="id7">`–tree`_</span></a></li>
+<li>fixes <misaligned branches <<a class="reference external" href="https://github.com/jhcepas/ete/issues/113">https://github.com/jhcepas/ete/issues/113</a>>`_ in ultrametric tree images using vt_line_width > 0</li>
+<li>fixes <windows installation problem <<a class="reference external" href="https://github.com/jhcepas/ete/issues/114">https://github.com/jhcepas/ete/issues/114</a>>`_</li>
+</ul>
+</div>
+<div class="section" id="new-modules">
+<h2>New Modules<a class="headerlink" href="#new-modules" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="tools">
+<h3>tools<a class="headerlink" href="#tools" title="Permalink to this headline">¶</a></h3>
+<p>A collection of <a class="reference external" href="http://etetoolkit.org/documentation/tools/">command line tools</a>, implementing common tree
+operations has been added to the ETE core package. All tools are wrapped by the
+<strong>ete</strong> command, which should become available in your path after installation.</p>
+<ul class="simple">
+<li><a class="reference external" href="http://etetoolkit.org/documentation/ete-build/">ete build</a>: Build phylogenetic trees using a using a number of predefined built-in gene-tree and species-tree workflows. <a class="reference external" href="http://etetoolkit.org/static/img/etebuild.gif">Watch example</a></li>
+<li><a class="reference external" href="http://etetoolkit.org/documentation/ete-view/">ete view</a>: visualize and generate tree images directly form the command line.</li>
+<li><a class="reference external" href="http://etetoolkit.org/documentation/ete-compare/">ete compare</a>: compare tree topologies based on any node feature (i.e. name, species name, etc) using the Robinson-Foulds distance and edge compatibility scores.</li>
+<li><a class="reference external" href="http://etetoolkit.org/documentation/ete-ncbiquery/">ete ncbiquery</a>: query the ncbi taxonomy tree directly from the database.</li>
+<li><strong>ete mod</strong>: modify tree topologies directly from the command line. Allows rooting, sorting leaves, pruning and more</li>
+<li><strong>ete annotate</strong>: add features to the tree nodes by combining newick and text files.</li>
+<li><strong>ete generate</strong>: generate random trees, mostly for teaching and testing</li>
+</ul>
+<div class="figure">
+<a class="reference internal image-reference" href="http://etetoolkit.org/static/img/ete23_demo.gif"><img alt="http://etetoolkit.org/static/img/ete23_demo.gif" src="http://etetoolkit.org/static/img/ete23_demo.gif" /></a>
+</div>
+</div>
+<div class="section" id="ncbi-taxonomy">
+<h3>ncbi taxonomy<a class="headerlink" href="#ncbi-taxonomy" title="Permalink to this headline">¶</a></h3>
+<p>The new <strong>ncbi_taxonomy</strong> module provides the class <code class="xref py py-class docutils literal"><span class="pre">NCBITaxa</span></code>, which allows to query a locally parsed
+NCBI taxonomy database. It provides taxid-name translations, tree annotation tools
+and other handy functions. A brief tutorial and examples on how to use it is
+available <a class="reference external" href="../tutorial/tutorial_ncbitaxonomy.html">here</a></p>
+</div>
+</div>
+<div class="section" id="new-features">
+<h2>New features<a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h2>
+<p><strong>News in Tree instances</strong></p>
+<ul class="simple">
+<li>added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_edges()</span></code> and <code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_edges()</span></code></li>
+<li>added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.compare()</span></code> function</li>
+<li>added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.standardize()</span></code> utility function to quickly get rid of  multifurcations, single-child nodes in a tree.</li>
+<li>added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_topology_id()</span></code> utility function to get an unique identifier of a tree based on their content and topology.</li>
+<li>added <code class="xref py py-func docutils literal"><span class="pre">TreeNode.expand_polytomies()</span></code></li>
+<li>improved <code class="xref py py-func docutils literal"><span class="pre">TreeNode.robinson_foulds()</span></code> function to auto expand polytomies, filter by branch support, and auto prune.</li>
+<li>improved <code class="xref py py-func docutils literal"><span class="pre">TreeNode.check_monophyly()</span></code> function now accepts unrooted trees as input</li>
+<li>Default node is set to blank instead of the “NoName” string, which saves memory in very large trees.</li>
+<li>The branch length distance of root nodes is set to 0.0 by default.</li>
+<li>newick export allows to control the format of branch distance and support values.</li>
+<li>Tree and SeqGroup instances allow now to open gzipped files transparently.</li>
+</ul>
+<p><strong>News in the treeview module</strong></p>
+<ul class="simple">
+<li>improved SVG tree rendering</li>
+<li>improved <code class="xref py py-func docutils literal"><span class="pre">random_color()</span></code> function (a list of colors can be fetch with a single call)</li>
+<li>improved <code class="xref py py-class docutils literal"><span class="pre">SeqMotifFace</span></code></li>
+<li>Added <code class="xref py py-class docutils literal"><span class="pre">RectFace</span></code></li>
+<li>Added <code class="xref py py-class docutils literal"><span class="pre">StackedBarFace</span></code></li>
+</ul>
+</div>
+<div class="section" id="highlighted-bug-fixes">
+<h2>Highlighted Bug Fixes<a class="headerlink" href="#highlighted-bug-fixes" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/jhcepas/ete/issues/97">Newick parser</a> is now more strict  when reading node names and branch distances, avoiding silent errors when  parsing node names containing illegal symbols (i.e. ][)(,: )</li>
+<li>fixes several minor bugs when retrieving extra attributes in  <code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_speciation_trees()</span></code>.</li>
+<li>Tree viewer <a class="reference external" href="https://github.com/jhcepas/ete/issues/94">crashes</a> when redrawing after changing node properties.</li>
+<li>fixed <a class="reference external" href="https://github.com/jhcepas/ete/issues/82">installation problem</a> using pip.</li>
+<li>visualizing internal tree nodes as a circular tree <a class="reference external" href="https://github.com/jhcepas/ete/issues/84">produce crashes</a></li>
+<li><a class="reference external" href="https://github.com/jhcepas/ete/issues/98">math domain error</a> in SequencePlotFace.</li>
+<li>Fix likelihood calculation bug in EvolTree</li>
+<li>Fix <a class="reference external" href="https://github.com/jhcepas/ete/issues/109">BarChartFace problem with negative numbers</a></li>
+<li>Fix problem that produced <a class="reference external" href="https://github.com/jhcepas/ete/issues/75">TreeStyle attributes to be ignored in PhyloTree instances.</a></li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="changelog2.2.html" class="btn btn-neutral float-right" title="What’s new in ETE 2.2" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="index.html" class="btn btn-neutral" title="Changelog history" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/changelog/index.html b/doc/changelog/index.html
new file mode 100644
index 0000000..0d1a18d
--- /dev/null
+++ b/doc/changelog/index.html
@@ -0,0 +1,271 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Changelog history — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="next" title="What’s new in ETE 2.3" href="changelog2.3.html"/>
+        <link rel="prev" title="Contents" href="../index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="">Changelog history</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html">What’s new in ETE 2.3</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html">What’s new in ETE 2.2</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.1.html">What’s new in ETE 2.1</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>Changelog history</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/changelog/index.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="changelog-history">
+<h1>Changelog history<a class="headerlink" href="#changelog-history" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog2.3.html">What’s new in ETE 2.3</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html#update-2-3-2">Update 2.3.2</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html#new-modules">New Modules</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="changelog2.3.html#tools">tools</a></li>
+<li class="toctree-l3"><a class="reference internal" href="changelog2.3.html#ncbi-taxonomy">ncbi taxonomy</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html#new-features">New features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.3.html#highlighted-bug-fixes">Highlighted Bug Fixes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="changelog2.2.html">What’s new in ETE 2.2</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html#bugfixes">BUGFIXES</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html#scripts">SCRIPTS</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html#new-modules">NEW MODULES</a></li>
+<li class="toctree-l2"><a class="reference internal" href="changelog2.2.html#new-features">NEW FEATURES</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="changelog2.1.html">What’s new in ETE 2.1</a></li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="changelog2.3.html" class="btn btn-neutral float-right" title="What’s new in ETE 2.3" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../index.html" class="btn btn-neutral" title="Contents" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/faqs/index.html b/doc/faqs/index.html
new file mode 100644
index 0000000..bd2867a
--- /dev/null
+++ b/doc/faqs/index.html
@@ -0,0 +1,530 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Frequently Asked Questions (FAQs) — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>Frequently Asked Questions (FAQs)</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/faqs/index.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="frequently-asked-questions-faqs">
+<h1><a class="toc-backref" href="#id1">Frequently Asked Questions (FAQs)</a><a class="headerlink" href="#frequently-asked-questions-faqs" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#frequently-asked-questions-faqs" id="id1">Frequently Asked Questions (FAQs)</a><ul>
+<li><a class="reference internal" href="#general" id="id2">General</a><ul>
+<li><a class="reference internal" href="#how-do-i-use-ete" id="id3">How do I use ETE?</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#tree-browsing" id="id4">Tree Browsing</a><ul>
+<li><a class="reference internal" href="#how-do-i-find-a-leaf-by-its-name" id="id5">How do I find a leaf by its name?</a></li>
+<li><a class="reference internal" href="#how-do-i-visit-all-nodes-within-a-tree" id="id6">How do I visit all nodes within a tree?</a></li>
+<li><a class="reference internal" href="#can-i-control-the-order-in-which-nodes-are-visited" id="id7">Can I control the order in which nodes are visited?</a></li>
+<li><a class="reference internal" href="#what-s-the-difference-between-tree-get-leaves-and-tree-iter-leaves" id="id8">What’s the difference between <code class="xref py py-func docutils literal"><span class="pre">Tree.get_leaves()</span></code> and <code class="xref py py-func docutils literal"><span class="pre">Tree.iter_leaves()</span></code>?</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#reading-and-writing-tree" id="id9">Reading and writing tree</a><ul>
+<li><a class="reference internal" href="#how-do-i-load-a-tree-with-internal-node-names" id="id10">How do I load a tree with internal node names?</a></li>
+<li><a class="reference internal" href="#how-do-i-export-tree-node-annotations-using-the-newick-format" id="id11">How do I export tree node annotations using the Newick format?</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#tree-visualization" id="id12">Tree visualization</a><ul>
+<li><a class="reference internal" href="#can-ete-draw-circular-trees" id="id13">Can ETE draw circular trees?</a></li>
+<li><a class="reference internal" href="#what-are-all-these-dotted-lines-that-appear-in-my-circular-trees" id="id14">What are all these dotted lines that appear in my circular trees?</a></li>
+<li><a class="reference internal" href="#why-some-circular-trees-are-too-large" id="id15">Why some circular trees are too large?</a></li>
+<li><a class="reference internal" href="#how-do-i-export-tree-images-as-svg" id="id16">How do I export tree images as SVG</a></li>
+<li><a class="reference internal" href="#how-do-i-visualize-internal-node-names" id="id17">How do I visualize internal node names?</a></li>
+<li><a class="reference internal" href="#can-the-visualization-of-trees-with-very-unbalanced-tree-branches-be-improved" id="id18">Can the visualization of trees with very unbalanced tree branches be improved?</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="general">
+<h2><a class="toc-backref" href="#id2">General</a><a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="how-do-i-use-ete">
+<h3><a class="toc-backref" href="#id3">How do I use ETE?</a><a class="headerlink" href="#how-do-i-use-ete" title="Permalink to this headline">¶</a></h3>
+<p>From 2.1 version, ETE includes a basic standalone program that can be
+used to quickly visualize your trees. Type <code class="docutils literal"><span class="pre">ete3</span></code> in a terminal to
+access the program. For instance:</p>
+<blockquote>
+<div><code class="docutils literal"><span class="pre">#</span> <span class="pre">ete3</span> <span class="pre">"((A,B),C);"</span></code></div></blockquote>
+<p>or</p>
+<blockquote>
+<div><code class="docutils literal"><span class="pre">#</span> <span class="pre">ete3</span> <span class="pre">mytreefile.nw</span></code></div></blockquote>
+<p>However, ETE is not a standalone program. The <code class="docutils literal"><span class="pre">ete3</span></code> script is a
+very simple implementation and does not allow for fancy
+customization. The main goal of ETE is to provide a Python programming
+library, so you can create your own scripts to manipulate and
+visualize phylogenetic trees. Many examples are available <a class="reference external" href="http:://etetoolkit.org/releases/ete3/examples-ete3.tar.gz">here</a> and
+along with the ETE tutorial.</p>
+</div>
+</div>
+<div class="section" id="tree-browsing">
+<h2><a class="toc-backref" href="#id4">Tree Browsing</a><a class="headerlink" href="#tree-browsing" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="how-do-i-find-a-leaf-by-its-name">
+<h3><a class="toc-backref" href="#id5">How do I find a leaf by its name?</a><a class="headerlink" href="#how-do-i-find-a-leaf-by-its-name" title="Permalink to this headline">¶</a></h3>
+<p>You can use the <code class="xref py py-func docutils literal"><span class="pre">TreeNode.search_nodes()</span></code> function:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">matching_nodes</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"Tip1"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Or use the following shortcut (not that it assumes no duplicated
+names)</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">node</span> <span class="o">=</span> <span class="n">tree</span><span class="o">&</span><span class="s">"Tip1"</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="how-do-i-visit-all-nodes-within-a-tree">
+<h3><a class="toc-backref" href="#id6">How do I visit all nodes within a tree?</a><a class="headerlink" href="#how-do-i-visit-all-nodes-within-a-tree" title="Permalink to this headline">¶</a></h3>
+<p>There are many ways, but this is the easiest one:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+    <span class="k">print</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="can-i-control-the-order-in-which-nodes-are-visited">
+<h3><a class="toc-backref" href="#id7">Can I control the order in which nodes are visited?</a><a class="headerlink" href="#can-i-control-the-order-in-which-nodes-are-visited" title="Permalink to this headline">¶</a></h3>
+<p>Yes, currently 3 strategies are implemented: pre-order, post-order and
+level-over. You can check the differences at
+<a class="reference external" href="http://packages.python.org/ete3/tutorial/tutorial_trees.html#traversing-browsing-trees">http://packages.python.org/ete3/tutorial/tutorial_trees.html#traversing-browsing-trees</a></p>
+</div>
+<div class="section" id="what-s-the-difference-between-tree-get-leaves-and-tree-iter-leaves">
+<h3><a class="toc-backref" href="#id8">What’s the difference between <code class="xref py py-func docutils literal"><span class="pre">Tree.get_leaves()</span></code> and <code class="xref py py-func docutils literal"><span class="pre">Tree.iter_leaves()</span></code>?</a><a class="headerlink" href="#what-s-the-difference-between-tree-get-leaves-and-tree-iter-leaves" title="Permalink to this headline">¶</a></h3>
+<p>All methods starting with <code class="xref py py-attr docutils literal"><span class="pre">get_</span></code> (i.e. get_leaves,
+get_descendants, etc.) return an independent list of items. This means
+that tree traversing is fully performed before returning the result.
+In contrast, iter_ methods return one item at a time, saving memory
+and, increasing the performance of some operations.</p>
+<p>Note also that tree topology cannot be modified while iterating
+methods are being executed. This limitation does not apply for get_
+methods.</p>
+<p>In addition, get_ methods can be used to cache tree browsing paths
+(the order in which nodes must be visited), so the same tree
+traversing operations don’t need to be repeated:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">nodes_in_preorder</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_descendants</span><span class="p">(</span><span class="s">"preorder"</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nodes_in_preorder</span><span class="p">:</span>
+    <span class="k">pass</span> <span class="c"># Do something</span>
+<span class="c">#</span>
+<span class="c"># (...)</span>
+<span class="c">#</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nodes_in_preorder</span><span class="p">:</span>
+    <span class="k">pass</span> <span class="c"># Do something else</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="reading-and-writing-tree">
+<h2><a class="toc-backref" href="#id9">Reading and writing tree</a><a class="headerlink" href="#reading-and-writing-tree" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="how-do-i-load-a-tree-with-internal-node-names">
+<h3><a class="toc-backref" href="#id10">How do I load a tree with internal node names?</a><a class="headerlink" href="#how-do-i-load-a-tree-with-internal-node-names" title="Permalink to this headline">¶</a></h3>
+<p>Newick format can be slightly different across programs. ETE allows to
+read and write several newick subformats, including support for
+internal node labeling:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="4%" />
+<col width="33%" />
+<col width="63%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">FORMAT</th>
+<th class="head">DESCRIPTION</th>
+<th class="head">SAMPLE</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>0</td>
+<td>flexible with support values</td>
+<td>((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);</td>
+</tr>
+<tr class="row-odd"><td>1</td>
+<td>flexible with internal node names</td>
+<td>((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);</td>
+</tr>
+<tr class="row-even"><td>2</td>
+<td>all branches + leaf names + internal supports</td>
+<td>((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);</td>
+</tr>
+<tr class="row-odd"><td>3</td>
+<td>all branches + all names</td>
+<td>((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);</td>
+</tr>
+<tr class="row-even"><td>4</td>
+<td>leaf branches + leaf names</td>
+<td>((D:0.723274,F:0.567784),(B:0.279326,H:0.756049));</td>
+</tr>
+<tr class="row-odd"><td>5</td>
+<td>internal and leaf branches + leaf names</td>
+<td>((D:0.723274,F:0.567784):0.067192,(B:0.279326,H:0.756049):0.807788);</td>
+</tr>
+<tr class="row-even"><td>6</td>
+<td>internal branches + leaf names</td>
+<td>((D,F):0.067192,(B,H):0.807788);</td>
+</tr>
+<tr class="row-odd"><td>7</td>
+<td>leaf branches + all names</td>
+<td>((D:0.723274,F:0.567784)E,(B:0.279326,H:0.756049)B);</td>
+</tr>
+<tr class="row-even"><td>8</td>
+<td>all names</td>
+<td>((D,F)E,(B,H)B);</td>
+</tr>
+<tr class="row-odd"><td>9</td>
+<td>leaf names</td>
+<td>((D,F),(B,H));</td>
+</tr>
+<tr class="row-even"><td>100</td>
+<td>topology only</td>
+<td>((,),(,));</td>
+</tr>
+</tbody>
+</table>
+<p>In order to load (or write) a tree with internal node names, you can
+specify format 1:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"myTree.nw"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="how-do-i-export-tree-node-annotations-using-the-newick-format">
+<h3><a class="toc-backref" href="#id11">How do I export tree node annotations using the Newick format?</a><a class="headerlink" href="#how-do-i-export-tree-node-annotations-using-the-newick-format" title="Permalink to this headline">¶</a></h3>
+<p>You will need to use the extended newick format. To do so, you only
+need to specify the name of the node attributes that must be exported
+when calling tree.write() function. For instance:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">])</span>
+</pre></div>
+</div>
+<p>If you want all node features to be exported in the newick string, use
+“features=[]”:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[])</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="tree-visualization">
+<h2><a class="toc-backref" href="#id12">Tree visualization</a><a class="headerlink" href="#tree-visualization" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="can-ete-draw-circular-trees">
+<h3><a class="toc-backref" href="#id13">Can ETE draw circular trees?</a><a class="headerlink" href="#can-ete-draw-circular-trees" title="Permalink to this headline">¶</a></h3>
+<p>Yes, starting from version 2.1, ete can render trees in circular
+mode. Install the latest version from
+<a class="reference external" href="http://pypi.python.org/pypi/ete3">http://pypi.python.org/pypi/ete3</a> or by executing <code class="docutils literal"><span class="pre">easy_install</span> <span class="pre">-U</span>
+<span class="pre">ete3</span></code>.</p>
+</div>
+<div class="section" id="what-are-all-these-dotted-lines-that-appear-in-my-circular-trees">
+<h3><a class="toc-backref" href="#id14">What are all these dotted lines that appear in my circular trees?</a><a class="headerlink" href="#what-are-all-these-dotted-lines-that-appear-in-my-circular-trees" title="Permalink to this headline">¶</a></h3>
+<p>Opposite to other popular visualization software, ETE’s drawing engine
+will try by all means to avoid overlaps among lines and all other
+graphical elements. When faces are added to nodes (specially to
+internal nodes), the required space to allocate such elements requires
+to expand the branches of the tree. Instead of breaking the relative
+length of all branches, it will add dotted lines until reaching the
+its minimal position. This effect could only be avoided by increasing
+the branch scale. Alternatively, you can modify the aspect of the
+dotted lines using <code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code> options, such as
+<code class="xref py py-attr docutils literal"><span class="pre">extra_branch_line_type</span></code>.</p>
+<p>As by Jun 2012, ETE 2.1 includes a patch that allows to automatically
+detect the optimal scale value that would avoid dotted lines. Two
+levels of optimization are available, see <code class="xref py py-attr docutils literal"><span class="pre">optimal_scale_level</span></code>
+option in <code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code> class. This feature is now
+user-transparent and enabled by default, so, if no scale is provided,
+the optimal one will be used.</p>
+</div>
+<div class="section" id="why-some-circular-trees-are-too-large">
+<h3><a class="toc-backref" href="#id15">Why some circular trees are too large?</a><a class="headerlink" href="#why-some-circular-trees-are-too-large" title="Permalink to this headline">¶</a></h3>
+<p>In order to avoid overlaps among elements of the tree (i.e. node
+faces), ETE will expand branch lengths until the desired layout is
+fully satisfied.</p>
+</div>
+<div class="section" id="how-do-i-export-tree-images-as-svg">
+<h3><a class="toc-backref" href="#id16">How do I export tree images as SVG</a><a class="headerlink" href="#how-do-i-export-tree-images-as-svg" title="Permalink to this headline">¶</a></h3>
+<p>Image format is automatically detected from the filename extension.
+The following code will automatically render the tree as a vector
+image.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s">"mytree.svg"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="how-do-i-visualize-internal-node-names">
+<h3><a class="toc-backref" href="#id17">How do I visualize internal node names?</a><a class="headerlink" href="#how-do-i-visualize-internal-node-names" title="Permalink to this headline">¶</a></h3>
+<p>You will need to change the default tree layout. By creating your
+custom layout functions, you will be able to add, remove or modify
+almost any element of the tree image.</p>
+<p>A basic example would read as follow:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="k">def</span> <span class="nf">my_layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+         <span class="c"># If terminal node, draws its name</span>
+         <span class="n">name_face</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+         <span class="c"># If internal node, draws label with smaller font size</span>
+         <span class="n">name_face</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
+    <span class="c"># Adds the name face to the image at the preferred position</span>
+    <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">name_face</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="s">"branch-right"</span><span class="p">)</span>
+
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="c"># Do not add leaf names automatically</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">False</span>
+<span class="c"># Use my custom layout</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">my_layout</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((B,(E,(A,G)M1_t1)M_1_t2)M2_t3,(C,D)M2_t1)M2_t2;"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">8</span><span class="p">)</span>
+<span class="c"># Tell ETE to use your custom Tree Style</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="can-the-visualization-of-trees-with-very-unbalanced-tree-branches-be-improved">
+<h3><a class="toc-backref" href="#id18">Can the visualization of trees with very unbalanced tree branches be improved?</a><a class="headerlink" href="#can-the-visualization-of-trees-with-very-unbalanced-tree-branches-be-improved" title="Permalink to this headline">¶</a></h3>
+<p>Yes, the experience of visualizing trees with extreme differences in
+branch lengths can be improved in several ways.</p>
+<p>1) Convert your tree to ultrametric topology. This will modify all
+branches in your tree to make all nodes to end at the same length.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">convert_to_ultrametric</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>2) You can enable the <code class="xref py py-attr docutils literal"><span class="pre">force_topology</span></code> option in
+<code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code>, so all branches will be seen as the same length by
+the tree drawing engine (Note that in this case, actual tree branches
+are not modified)</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">force_topology</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/genindex.html b/doc/genindex.html
new file mode 100644
index 0000000..3c17619
--- /dev/null
+++ b/doc/genindex.html
@@ -0,0 +1,1079 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Index — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="index.html">Docs</a> »</li>
+      
+    <li></li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#A"><strong>A</strong></a>
+ | <a href="#B"><strong>B</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#E"><strong>E</strong></a>
+ | <a href="#F"><strong>F</strong></a>
+ | <a href="#G"><strong>G</strong></a>
+ | <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#L"><strong>L</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ | <a href="#U"><strong>U</strong></a>
+ | <a href="#W"><strong>W</strong></a>
+ | <a href="#X"><strong>X</strong></a>
+ 
+</div>
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.add_child">add_child() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.FaceContainer.add_face">add_face() (FaceContainer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.add_face">(TreeNode method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.add_face_to_node">add_face_to_node() (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.add_feature">add_feature() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.add_features">add_features() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.add_sister">add_sister() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.annotate_ncbi_taxa">annotate_ncbi_taxa() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.AttrFace">AttrFace (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.BarChartFace">BarChartFace (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_nexml.html#ete3.Nexml.build_from_file">build_from_file() (Nexml method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.change_dist_to_evol">change_dist_to_evol() (EvolNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.check_monophyly">check_monophyly() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.children">children (TreeNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.CircleFace">CircleFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode">ClusterNode (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterTree">ClusterTree (in module ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.collapse_lineage_specific_expansions">collapse_lineage_specific_expansions() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.COLOR_SCHEMES">COLOR_SCHEMES (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.compare">compare() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.convert_to_ultrametric">convert_to_ultrametric() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.copy">copy() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.del_feature">del_feature() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.delete">delete() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.describe">describe() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.detach">detach() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.dist">dist (TreeNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.DynamicItemFace">DynamicItemFace (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_ncbi.html#module-ete2.ncbi_taxonomy">ete2.ncbi_taxonomy (module)</a>
+  </dt>
+
+      
+  <dt><a href="tutorial/tutorial_etree2orthoxml.html#module-ete3">ete3 (module)</a>, <a href="tutorial/tutorial_trees.html#module-ete3">[1]</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#module-ete3.clustering">ete3.clustering (module)</a>, <a href="tutorial/tutorial_clustering.html#module-ete3.clustering">[1]</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#module-ete3.evol">ete3.evol (module)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_nexml.html#module-ete3.nexml">ete3.nexml (module)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_seqgroup.html#module-ete3.parser.seqgroup">ete3.parser.seqgroup (module)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#module-ete3.phylo">ete3.phylo (module)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phyloxml.html#module-ete3.phyloxml">ete3.phyloxml (module)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#module-ete3.treeview">ete3.treeview (module)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#module-ete3.webplugin">ete3.webplugin (module)</a>, <a href="tutorial/tutorial_webplugin.html#module-ete3.webplugin">[1]</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.phylo.EvolEvent">EvolEvent (class in ete3.phylo)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode">EvolNode (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolTree">EvolTree (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.expand_polytomies">expand_polytomies() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.Face">Face (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.FaceContainer">FaceContainer (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.from_parent_child_table">from_parent_child_table() (TreeNode static method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.from_skbio">from_skbio() (TreeNode static method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_age">get_age() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_age_balanced_outgroup">get_age_balanced_outgroup() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_ancestors">get_ancestors() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_ascii">get_ascii() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_cached_content">get_cached_content() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_children">get_children() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_closest_leaf">get_closest_leaf() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_common_ancestor">get_common_ancestor() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.get_descendant_by_node_id">get_descendant_by_node_id() (EvolNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_descendant_evol_events">get_descendant_evol_events() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_descendants">get_descendants() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_distance">get_distance() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.get_dunn">get_dunn() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_edges">get_edges() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup.get_entries">get_entries() (SeqGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.get_evol_model">get_evol_model() (EvolNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_farthest_leaf">get_farthest_leaf() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_farthest_node">get_farthest_node() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_farthest_oldest_leaf">get_farthest_oldest_leaf() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_farthest_oldest_node">get_farthest_oldest_node() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_leaf_names">get_leaf_names() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.get_leaf_profiles">get_leaf_profiles() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_leaves">get_leaves() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_leaves_by_name">get_leaves_by_name() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_midpoint_outgroup">get_midpoint_outgroup() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_monophyletic">get_monophyletic() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.get_most_likely">get_most_likely() (EvolNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_my_evol_events">get_my_evol_events() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup.get_seq">get_seq() (SeqGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.get_silhouette">get_silhouette() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_sisters">get_sisters() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_speciation_trees">get_speciation_trees() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.get_species">get_species() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_topology_id">get_topology_id() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.get_tree_root">get_tree_root() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="H">H</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SequenceFace.InteractiveLetterItem.hoverEnterEvent">hoverEnterEvent() (SequenceFace.InteractiveLetterItem method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SequenceFace.InteractiveLetterItem.hoverLeaveEvent">hoverLeaveEvent() (SequenceFace.InteractiveLetterItem method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.img_style">img_style (TreeNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.ImgFace">ImgFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.is_leaf">is_leaf() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.is_root">is_root() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_ancestors">iter_ancestors() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_descendants">iter_descendants() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_edges">iter_edges() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup.iter_entries">iter_entries() (SeqGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_leaf_names">iter_leaf_names() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.iter_leaf_profiles">iter_leaf_profiles() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_leaves">iter_leaves() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_prepostorder">iter_prepostorder() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.iter_search_nodes">iter_search_nodes() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.iter_species">iter_species() (PhyloNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.ladderize">ladderize() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.link_to_alignment">link_to_alignment() (EvolNode method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.link_to_alignment">(PhyloNode method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.link_to_arraytable">link_to_arraytable() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.link_to_evol_model">link_to_evol_model() (EvolNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.mark_tree">mark_tree() (EvolNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.ncbi_compare">ncbi_compare() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_nexml.html#ete3.Nexml">Nexml (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_nexml.html#ete3.NexmlTree">NexmlTree (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.NodeStyle">NodeStyle (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode">PhyloNode (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloTree">PhyloTree (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phyloxml.html#ete3.Phyloxml">Phyloxml (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phyloxml.html#ete3.PhyloxmlTree">PhyloxmlTree (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.PieChartFace">PieChartFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.populate">populate() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.ProfileFace">ProfileFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.prune">prune() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.random_color">random_color() (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.reconcile">reconcile() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.RectFace">RectFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.register_action">register_action() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.remove_child">remove_child() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.remove_sister">remove_sister() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.render">render() (EvolNode method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.render">(TreeNode method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.resolve_polytomy">resolve_polytomy() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.robinson_foulds">robinson_foulds() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.run_model">run_model() (EvolNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.search_nodes">search_nodes() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.sep">sep (EvolNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup">SeqGroup (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SeqMotifFace">SeqMotifFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SequenceFace">SequenceFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SequenceFace.InteractiveLetterItem">SequenceFace.InteractiveLetterItem (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_default_layout_fn">set_default_layout_fn() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_clustering.html#ete3.ClusterNode.set_distance_function">set_distance_function() (ClusterNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_external_app_handler">set_external_app_handler() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_external_tree_renderer">set_external_tree_renderer() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.set_outgroup">set_outgroup() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup.set_seq">set_seq() (SeqGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.set_species_naming_function">set_species_naming_function() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.set_style">set_style() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_tree_loader">set_tree_loader() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_tree_size">set_tree_size() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication.set_tree_style">set_tree_style() (WebTreeApplication method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.show">show() (EvolNode method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.show">(TreeNode method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.sort_descendants">sort_descendants() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.species">species (PhyloNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_phylo.html#ete3.PhyloNode.split_by_dups">split_by_dups() (PhyloNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.StackedBarFace">StackedBarFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.standardize">standardize() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.StaticItemFace">StaticItemFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.support">support (TreeNode attribute)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.SVG_COLORS">SVG_COLORS (in module ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.swap_children">swap_children() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.TextFace">TextFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.traverse">traverse() (TreeNode method)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.Tree">Tree (in module ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_treeview.html#ete3.TreeFace">TreeFace (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode">TreeNode (class in ete3)</a>
+  </dt>
+
+      
+  <dt><a href="reference/reference_treeview.html#ete3.TreeStyle">TreeStyle (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="U">U</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.unroot">unroot() (TreeNode method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.up">up (TreeNode attribute)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="W">W</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_webplugin.html#ete3.WebTreeApplication">WebTreeApplication (class in ete3)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.write">write() (EvolNode method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference/reference_seqgroup.html#ete3.SeqGroup.write">(SeqGroup method)</a>
+  </dt>
+
+        
+  <dt><a href="reference/reference_tree.html#ete3.TreeNode.write">(TreeNode method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="X">X</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference/reference_evoltree.html#ete3.EvolNode.x">x (EvolNode attribute)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..c84fb76
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,316 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Overview — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="#"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="#" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="#">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="#">Docs</a> »</li>
+      
+    <li></li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <h1>ETE Toolkit - analysis and visualization of trees</h1>
+  <p>
+    Welcome! This is
+    the documentation for ETE Toolkit
+    3.0.0b35, last updated Mar 18, 2016.
+  </p>
+   
+
+<div style='padding-right:30px;
+            padding-left:30px;
+            font-size:100%;
+            max-width:800px;'>
+
+<div >
+<p style='text-align:left;
+            line-height:160%;
+            color:#555;'>
+ETE is a Python programming toolkit that assists in the <i>automated
+manipulation, analysis and visualization of phylogenetic trees</i>.
+
+It provides a wide range of tree handling options, node annotation features and
+specialized features to deal with <i>phylogenetic trees</i> (i.e automatic
+orthology and paralogy detection, phylostratigraphy, tree reconciliation,
+etc). ETE implements also an interactive <i>tree visualization</i> system based on a a
+highly customizable tree drawing engine (PDF and SVG tree images).
+
+Although ETE is developed as a tool for phylogenetic analysis,
+it is also used to handle other types of hierarchical trees (i.e. clustering results). 
+</p>
+</div>
+
+<table class="contentstable" align='center'><tr>
+    
+    <td width="50%">
+        <p class="biglink"><a class="biglink" href="tutorial/index.html">Python API Tutorial</a><br/><br/>
+            <!-- <span class="linkdescr">How to use the different modules of the library</span> -->
+        </p>
+
+        <p class="biglink"><a class="biglink" href="reference/index.html">Python API Reference</a><br/><br/>
+            <!-- <span class="linkdescr">An index of all ETE functions</span> -->
+        </p>
+
+        
+        <p class="biglink"><a class="biglink" href="http://etetoolkit.org/documentation/tools/">Phylogenomic tools</a><br/><br/>
+            <!-- <span class="linkdescr">Tools to visualize, compare, and handle trees</span> -->
+        </p>        
+        
+    </td><td width="50%">
+        <!-- <p class="biglink"><a class="biglink" href="changelog/changelog2.3.html">What's new in ETE 3.0?</a><br/>
+        <a href="changelog/index.html">Previous versions</a>
+        </p> -->
+        
+        <p class="biglink"><a class="biglink" href="http://etetoolkit.org/download/">Setup and Install</a><br/><br/>
+            <!-- <span class="linkdescr">ETE install and requirements</span> -->
+        </p>
+        
+        <p class="biglink"><a class="biglink" href="http://github.org/jhcepas/ete/issues/">Contributing</a><br/><br/>
+            <!-- <span class="linkdescr">Feature requests, bug reports, etc.</span> -->
+        </p>
+        
+    </td></tr>
+</table>
+
+<div style='font-size:100%;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:110%;color:#666;'>
+    <div style='margin:auto;border-top:1px solid blue; border-bottom:1px solid blue; padding-top:10px; padding-bottom:10px; width:85%;font-size:88%;'>
+        If you use ETE to analyze, process or visuallize results in a published
+        work, please do not forget to support the project by citing:
+        <br><br>
+        <span style="font-size:80%;">
+            <i>Jaime Huerta-Cepas, Joaquín Dopazo and Toni Gabaldón.</i> ETE: a python Environment for Tree Exploration. BMC Bioinformatics 2010, 11:24. 
+                <a alt="link to citation reference" title='link to citation reference' target='_black' href='http://www.biomedcentral.com/1471-2105/11/24'>doi:10.1186/1471-2105-11-24</a>
+            
+        </span>
+    </div>
+</div>
+
+  
+  <div class="note" style="border:0px;text-align:center;background-color:#ffffff">
+      <!-- <a href="https://github.com/jhcepas/ete/tree/2.3/examples"> Check more examples </a>
+      <br> -->
+    <a href="_downloads/ETE.pdf"> Download this documentation as PDF. </a>
+
+  </div>
+
+  <div class="note" style="text-align:center;background-color:#D0ECa2">
+    More info and examples are available at <a href="http://etetoolkit.org" target="_blank">http://etetoolkit.org </a>
+  </div>
+</div>
+
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/objects.inv b/doc/objects.inv
new file mode 100644
index 0000000..0320180
Binary files /dev/null and b/doc/objects.inv differ
diff --git a/doc/py-modindex.html b/doc/py-modindex.html
new file mode 100644
index 0000000..e0d7de1
--- /dev/null
+++ b/doc/py-modindex.html
@@ -0,0 +1,299 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Python Module Index — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="index.html"/>
+
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="index.html">Docs</a> »</li>
+      
+    <li></li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+
+   <h1>Python Module Index</h1>
+
+   <div class="modindex-jumpbox">
+   <a href="#cap-e"><strong>e</strong></a>
+   </div>
+
+   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
+     <tr class="pcap"><td></td><td> </td><td></td></tr>
+     <tr class="cap" id="cap-e"><td></td><td>
+       <strong>e</strong></td><td></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-1" style="display: none" alt="-" /></td>
+       <td>
+       <code class="xref">ete2</code></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="reference/reference_ncbi.html#module-ete2.ncbi_taxonomy"><code class="xref">ete2.ncbi_taxonomy</code></a></td><td>
+       <em></em></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-2" style="display: none" alt="-" /></td>
+       <td>
+       <a href="tutorial/tutorial_trees.html#module-ete3"><code class="xref">ete3</code></a></td><td>
+       <em>provides main objects and modules</em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="tutorial/tutorial_clustering.html#module-ete3.clustering"><code class="xref">ete3.clustering</code></a></td><td>
+       <em>Extends Tree object: link trees to numeric matrices, perform cluster validation analysis, visualize node profiles</em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_evoltree.html#module-ete3.evol"><code class="xref">ete3.evol</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_nexml.html#module-ete3.nexml"><code class="xref">ete3.nexml</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_seqgroup.html#module-ete3.parser.seqgroup"><code class="xref">ete3.parser.seqgroup</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_phylo.html#module-ete3.phylo"><code class="xref">ete3.phylo</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_phyloxml.html#module-ete3.phyloxml"><code class="xref">ete3.phyloxml</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="reference/reference_treeview.html#module-ete3.treeview"><code class="xref">ete3.treeview</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-2">
+       <td></td>
+       <td>   
+       <a href="tutorial/tutorial_webplugin.html#module-ete3.webplugin"><code class="xref">ete3.webplugin</code></a></td><td>
+       <em></em></td></tr>
+   </table>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/index.html b/doc/reference/index.html
new file mode 100644
index 0000000..769ceab
--- /dev/null
+++ b/doc/reference/index.html
@@ -0,0 +1,284 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>ETE’s Reference Guide — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="next" title="Master Tree class" href="reference_tree.html"/>
+        <link rel="prev" title="SCRIPTS: orthoXML" href="../tutorial/tutorial_etree2orthoxml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="">ETE’s Reference Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>ETE’s Reference Guide</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/index.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="ete-s-reference-guide">
+<h1>ETE’s Reference Guide<a class="headerlink" href="#ete-s-reference-guide" title="Permalink to this headline">¶</a></h1>
+<p>Current modules:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_treeview.html">Treeview module</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html#treestyle">TreeStyle</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html#nodestyle">NodeStyle</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html#faces">Faces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html#color-names">Color names</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_nexml.html">Nexml module</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html#nexml-classes-linked-to-ete">Nexml classes linked to ETE</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html#generic-nexml-classes">Generic Nexml classes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html#phyloxml-classes-linked-to-ete">Phyloxml classes linked to ETE</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html#generic-phyloxml-classes">Generic Phyloxml classes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_tree.html" class="btn btn-neutral float-right" title="Master Tree class" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../tutorial/tutorial_etree2orthoxml.html" class="btn btn-neutral" title="SCRIPTS: orthoXML" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_clustering.html b/doc/reference/reference_clustering.html
new file mode 100644
index 0000000..c44665b
--- /dev/null
+++ b/doc/reference/reference_clustering.html
@@ -0,0 +1,358 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Clustering module — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="Nexml module" href="reference_nexml.html"/>
+        <link rel="prev" title="PhyloTree class" href="reference_phylo.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Clustering module</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_clustering.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.clustering"></span><div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#clustering-module" id="id1">Clustering module</a></li>
+</ul>
+</div>
+<div class="section" id="clustering-module">
+<h1><a class="toc-backref" href="#id1">Clustering module</a><a class="headerlink" href="#clustering-module" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.ClusterNode">
+<em class="property">class </em><code class="descname">ClusterNode</code><span class="sig-paren">(</span><em>newick=None</em>, <em>text_array=None</em>, <em>fdist=<function spearman_dist></em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">ete3.coretype.tree.TreeNode</span></code></p>
+<p>Creates a new Cluster Tree object, which is a collection
+of ClusterNode instances connected in a hierarchical way, and
+representing a clustering result.</p>
+<p>a newick file or string can be passed as the first argument. An
+ArrayTable file or instance can be passed as a second argument.</p>
+<dl class="docutils">
+<dt>Examples:</dt>
+<dd>t1 = Tree() # creates an empty tree
+t2 = Tree( ‘(A:1,(B:1,(C:1,D:1):0.5):0.5);’ )
+t3 = Tree( ‘/home/user/myNewickFile.txt’ )</dd>
+</dl>
+<dl class="method">
+<dt id="ete3.ClusterNode.get_dunn">
+<code class="descname">get_dunn</code><span class="sig-paren">(</span><em>clusters</em>, <em>fdist=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.get_dunn" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the Dunn index for the given set of descendant
+nodes.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.ClusterNode.get_leaf_profiles">
+<code class="descname">get_leaf_profiles</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.get_leaf_profiles" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of all the profiles associated to the
+leaves under this node.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.ClusterNode.get_silhouette">
+<code class="descname">get_silhouette</code><span class="sig-paren">(</span><em>fdist=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.get_silhouette" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the node’s silhouette value by using a given
+distance function. By default, euclidean distance is used. It
+also calculates the deviation profile, mean profile, and
+inter/intra-cluster distances.</p>
+<dl class="docutils">
+<dt>It sets the following features into the analyzed node:</dt>
+<dd><ul class="first last simple">
+<li>node.intracluster</li>
+<li>node.intercluster</li>
+<li>node.silhouete</li>
+</ul>
+</dd>
+</dl>
+<p>intracluster distances a(i) are calculated as the Centroid
+Diameter</p>
+<p>intercluster distances b(i) are calculated as the Centroid linkage distance</p>
+<p>** Rousseeuw, P.J. (1987) Silhouettes: A graphical aid to the
+interpretation and validation of cluster analysis.
+J. Comput. Appl. Math., 20, 53-65.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.ClusterNode.iter_leaf_profiles">
+<code class="descname">iter_leaf_profiles</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.iter_leaf_profiles" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over all the profiles associated to
+the leaves under this node.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.ClusterNode.link_to_arraytable">
+<code class="descname">link_to_arraytable</code><span class="sig-paren">(</span><em>arraytbl</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.link_to_arraytable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Allows to link a given arraytable object to the tree
+structure under this node. Row names in the arraytable object
+are expected to match leaf names.</p>
+<p>Returns a list of nodes for with profiles could not been found
+in arraytable.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.ClusterNode.set_distance_function">
+<code class="descname">set_distance_function</code><span class="sig-paren">(</span><em>fn</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ClusterNode.set_distance_function" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the distance function used to calculate cluster
+distances and silouette index.</p>
+<p>ARGUMENTS:</p>
+<blockquote>
+<div>fn: a pointer to python function acepting two arrays (numpy) as
+arguments.</div></blockquote>
+<p>EXAMPLE:</p>
+<blockquote>
+<div># A simple euclidean distance
+my_dist_fn = lambda x,y: abs(x-y)
+tree.set_distance_function(my_dist_fn)</div></blockquote>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.ClusterTree">
+<code class="descname">ClusterTree</code><a class="headerlink" href="#ete3.ClusterTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">ClusterNode</span></code></p>
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_nexml.html" class="btn btn-neutral float-right" title="Nexml module" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_phylo.html" class="btn btn-neutral" title="PhyloTree class" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_evoltree.html b/doc/reference/reference_evoltree.html
new file mode 100644
index 0000000..d4a6a30
--- /dev/null
+++ b/doc/reference/reference_evoltree.html
@@ -0,0 +1,721 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>EvolTree class — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="NCBITaxa class" href="reference_ncbi.html"/>
+        <link rel="prev" title="WebTreeApplication object" href="reference_webplugin.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>EvolTree class</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_evoltree.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.evol"></span><div class="section" id="evoltree-class">
+<h1>EvolTree class<a class="headerlink" href="#evoltree-class" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.EvolNode">
+<em class="property">class </em><code class="descname">EvolNode</code><span class="sig-paren">(</span><em>newick=None</em>, <em>alignment=None</em>, <em>alg_format='fasta'</em>, <em>sp_naming_function=<function _parse_species></em>, <em>format=0</em>, <em>binpath=''</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">ete3.phylo.phylotree.PhyloNode</span></code></p>
+<p>Re-implementation of the standart TreeNode instance. It adds
+attributes and methods to work with phylogentic trees.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>newick</strong> – path to tree in newick format, can also be a string</li>
+<li><strong>alignment</strong> – path to alignment, can also be a string.</li>
+<li><strong>alg_format</strong> (<em>fasta</em>) – alignment format.</li>
+<li><strong>sp_naming_function</strong> – function to infer species name.</li>
+<li><strong>format</strong> – type of newick format</li>
+<li><strong>binpath</strong> – path to binaries, in case codeml or SLR are not in global path.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="ete3.EvolNode.change_dist_to_evol">
+<code class="descname">change_dist_to_evol</code><span class="sig-paren">(</span><em>evol</em>, <em>model</em>, <em>fill=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.change_dist_to_evol" title="Permalink to this definition">¶</a></dt>
+<dd><p>change dist/branch length of the tree to a given evolutionary
+variable (dN, dS, w or bL), default is bL.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>evol</strong> – evolutionary variable</li>
+<li><strong>model</strong> – Model object from which to retrieve evolutionary variables</li>
+<li><strong>fill</strong> (<em>False</em>) – do not affects only dist parameter, each node will be annotated with all evolutionary variables (nodel.dN, node.w...).</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.get_descendant_by_node_id">
+<code class="descname">get_descendant_by_node_id</code><span class="sig-paren">(</span><em>idname</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.get_descendant_by_node_id" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns node list corresponding to a given idname</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.get_evol_model">
+<code class="descname">get_evol_model</code><span class="sig-paren">(</span><em>modelname</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.get_evol_model" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns one precomputed model</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>modelname</strong> – string of the name of a model object stored</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Model object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.get_most_likely">
+<code class="descname">get_most_likely</code><span class="sig-paren">(</span><em>altn</em>, <em>null</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.get_most_likely" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns pvalue of LRT between alternative model and null model.</p>
+<p>usual comparison are:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="19%" />
+<col width="11%" />
+<col width="69%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Alternative</th>
+<th class="head">Null</th>
+<th class="head">Test</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>M2</td>
+<td>M1</td>
+<td>PS on sites (M2 prone to miss some sites)
+(Yang 2000)</td>
+</tr>
+<tr class="row-odd"><td>M3</td>
+<td>M0</td>
+<td>test of variability among sites</td>
+</tr>
+<tr class="row-even"><td>M8</td>
+<td>M7</td>
+<td>PS on sites
+(Yang 2000)</td>
+</tr>
+<tr class="row-odd"><td>M8</td>
+<td>M8a</td>
+<td>RX on sites?? think so....</td>
+</tr>
+<tr class="row-even"><td>bsA</td>
+<td>bsA1</td>
+<td>PS on sites on specific branch
+(Zhang 2005)</td>
+</tr>
+<tr class="row-odd"><td>bsA</td>
+<td>M1</td>
+<td>RX on sites on specific branch
+(Zhang 2005)</td>
+</tr>
+<tr class="row-even"><td>bsC</td>
+<td>M1</td>
+<td>different omegas on clades branches sites
+ref: Yang Nielsen 2002</td>
+</tr>
+<tr class="row-odd"><td>bsD</td>
+<td>M3</td>
+<td>different omegas on clades branches sites
+(Yang Nielsen 2002, Bielawski 2004)</td>
+</tr>
+<tr class="row-even"><td>b_free</td>
+<td>b_neut</td>
+<td><dl class="first last docutils">
+<dt>foreground branch not neutral (w != 1)</dt>
+<dd><ul class="first simple">
+<li>RX if P<0.05 (means that w on frg=1)</li>
+<li>PS if P>0.05 and wfrg>1</li>
+<li>CN if P>0.05 and wfrg>1</li>
+</ul>
+<p class="last">(Yang Nielsen 2002)</p>
+</dd>
+</dl>
+</td>
+</tr>
+<tr class="row-odd"><td>b_free</td>
+<td>M0</td>
+<td>different ratio on branches
+(Yang Nielsen 2002)</td>
+</tr>
+</tbody>
+</table>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>altn</strong> – model with higher number of parameters (np)</li>
+<li><strong>null</strong> – model with lower number of parameters (np)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.link_to_alignment">
+<code class="descname">link_to_alignment</code><span class="sig-paren">(</span><em>alignment</em>, <em>alg_format='paml'</em>, <em>nucleotides=True</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.link_to_alignment" title="Permalink to this definition">¶</a></dt>
+<dd><p>same function as for phyloTree, but translate sequences if nucleotides
+nucleotidic sequence is kept under node.nt_sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>alignment</strong> (<em>True</em>) – path to alignment or string</li>
+<li><strong>alg_format</strong> – one of fasta phylip or paml</li>
+<li><strong>alignment</strong> – set to False in case we want to keep it untranslated</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.link_to_evol_model">
+<code class="descname">link_to_evol_model</code><span class="sig-paren">(</span><em>path</em>, <em>model</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.link_to_evol_model" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="docutils">
+<dt>link EvolTree to evolutionary model</dt>
+<dd><ul class="first last simple">
+<li>free-branch model (“fb”) will append evol values to tree</li>
+<li>Site models (M0, M1, M2, M7, M8) will give evol values by site
+and likelihood</li>
+</ul>
+</dd>
+</dl>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>path</strong> – path to outfile containing model computation result</li>
+<li><strong>model</strong> – either the name of a model, or a Model object (usually empty)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.mark_tree">
+<code class="descname">mark_tree</code><span class="sig-paren">(</span><em>node_ids</em>, <em>verbose=False</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.mark_tree" title="Permalink to this definition">¶</a></dt>
+<dd><p>function to mark branches on tree in order that paml could interpret it.
+takes a “marks” argument that should be a list of #1,#1,#2
+e.g.:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span><span class="o">=</span><span class="n">Tree</span><span class="o">.</span><span class="n">mark_tree</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="s">"#1"</span><span class="p">,</span><span class="s">"#2"</span><spa [...]
+</pre></div>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>node_ids</strong> – list of node ids (have a look to node.node_id)</li>
+<li><strong>verbose</strong> (<em>False</em>) – warn if marks do not correspond to codeml standard</li>
+<li><strong>kargs</strong> – mainly for the marks key-word which needs a list of marks (marks=[‘#1’, ‘#2’])</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.render">
+<code class="descname">render</code><span class="sig-paren">(</span><em>file_name</em>, <em>layout=None</em>, <em>w=None</em>, <em>h=None</em>, <em>tree_style=None</em>, <em>header=None</em>, <em>histfaces=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.render" title="Permalink to this definition">¶</a></dt>
+<dd><p>call super show adding up and down faces</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>layout</strong> – a layout function</li>
+<li><strong>tree_style</strong> (<em>None</em>) – tree_style object</li>
+<li><strong>Nonehistface</strong> – an histogram face function. This is only to plot selective pressure among sites</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.run_model">
+<code class="descname">run_model</code><span class="sig-paren">(</span><em>model_name</em>, <em>ctrl_string=''</em>, <em>keep=True</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.run_model" title="Permalink to this definition">¶</a></dt>
+<dd><p>To compute evolutionnary models.     e.g.: b_free_lala.vs.lele, will launch one free branch model, and store
+it in “WORK_DIR/b_free_lala.vs.lele” directory</p>
+<p>WARNING: this functionality needs to create a working directory in “rep”</p>
+<p>WARNING: you need to have codeml and/or SLR in your path</p>
+<p>The models available are:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="19%" />
+<col width="50%" />
+<col width="31%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Model name</th>
+<th class="head">Description</th>
+<th class="head">Model kind</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>M1</td>
+<td>relaxation</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M10</td>
+<td>beta and gamma + 1</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M11</td>
+<td>beta and normal > 1</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M12</td>
+<td>0 and 2 normal > 2</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M13</td>
+<td>3 normal > 0</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M2</td>
+<td>positive-selection</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M3</td>
+<td>discrete</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M4</td>
+<td>frequencies</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M5</td>
+<td>gamma</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M6</td>
+<td>2 gamma</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M7</td>
+<td>relaxation</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M8</td>
+<td>positive-selection</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>M8a</td>
+<td>relaxation</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M9</td>
+<td>beta and gamma</td>
+<td>site</td>
+</tr>
+<tr class="row-even"><td>SLR</td>
+<td>positive/negative selection</td>
+<td>site</td>
+</tr>
+<tr class="row-odd"><td>M0</td>
+<td>negative-selection</td>
+<td>null</td>
+</tr>
+<tr class="row-even"><td>fb_anc</td>
+<td>free-ratios</td>
+<td>branch_ancestor</td>
+</tr>
+<tr class="row-odd"><td>bsA</td>
+<td>positive-selection</td>
+<td>branch-site</td>
+</tr>
+<tr class="row-even"><td>bsA1</td>
+<td>relaxation</td>
+<td>branch-site</td>
+</tr>
+<tr class="row-odd"><td>bsB</td>
+<td>positive-selection</td>
+<td>branch-site</td>
+</tr>
+<tr class="row-even"><td>bsC</td>
+<td>different-ratios</td>
+<td>branch-site</td>
+</tr>
+<tr class="row-odd"><td>bsD</td>
+<td>different-ratios</td>
+<td>branch-site</td>
+</tr>
+<tr class="row-even"><td>b_free</td>
+<td>positive-selection</td>
+<td>branch</td>
+</tr>
+<tr class="row-odd"><td>b_neut</td>
+<td>relaxation</td>
+<td>branch</td>
+</tr>
+<tr class="row-even"><td>fb</td>
+<td>free-ratios</td>
+<td>branch</td>
+</tr>
+<tr class="row-odd"><td>XX</td>
+<td>User defined</td>
+<td>Unknown</td>
+</tr>
+</tbody>
+</table>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>model_name</strong> – a string like “model-name[.some-secondary-name]” (e.g.: “fb.my_first_try”, or just “fb”)
+* model-name is compulsory, is the name of the model (see table above for the full list)
+* the second part is accessory, it is to avoid over-writing models with the same name.</li>
+<li><strong>ctrl_string</strong> – list of parameters that can be used as control file.</li>
+<li><strong>kwargs</strong> – extra parameters should be one of: verbose, CodonFreq, ncatG, cleandata, fix_blength, NSsites, fix_omega, clock, seqfile, runmode, fix_kappa, fix_alpha, Small_Diff, method, Malpha, aaDist, RateAncestor, outfile, icode, alpha, seqtype, omega, getSE, noisy, Mgene, kappa, treefile, model, ndata.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.EvolNode.sep">
+<code class="descname">sep</code><em class="property"> = '\n'</em><a class="headerlink" href="#ete3.EvolNode.sep" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.show">
+<code class="descname">show</code><span class="sig-paren">(</span><em>layout=None</em>, <em>tree_style=None</em>, <em>histfaces=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.show" title="Permalink to this definition">¶</a></dt>
+<dd><p>call super show of PhyloTree
+histface should be a list of models to be displayes as histfaces</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>layout</strong> – a layout function</li>
+<li><strong>tree_style</strong> (<em>None</em>) – tree_style object</li>
+<li><strong>Nonehistface</strong> – an histogram face function. This is only to plot selective pressure among sites</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.EvolNode.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>features=None</em>, <em>outfile=None</em>, <em>format=10</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.EvolNode.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Inherits from Tree but adds the tenth format, that allows to display marks for CodeML.
+TODO: internal writting format need to be something like 0</p>
+<p>Returns the newick representation of current node. Several
+arguments control the way in which extra data is shown for
+every node:</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>features</strong> – a list of feature names to be exported
+using the Extended Newick Format (i.e. features=[“name”,
+“dist”]). Use an empty list to export all available features
+in each node (features=[])</li>
+<li><strong>outfile</strong> – writes the output to a given file</li>
+<li><strong>format</strong> (<em>10</em>) – defines the newick standard used to encode the
+tree. See tutorial for details.</li>
+<li><strong>format_root_node</strong> (<em>False</em>) – If True, it allows features
+and branch information from root node to be exported as a
+part of the newick text string. For newick compatibility
+reasons, this is False by default.</li>
+<li><strong>is_leaf_fn</strong> – See <code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code> for
+documentation.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Example:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span><span class="o">.</span><span class="n">get_newick</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"species"</span><span class="p">,</span><span class="s">"name"</span><span class="p">],</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.EvolNode.x">
+<code class="descname">x</code><em class="property"> = 'XX'</em><a class="headerlink" href="#ete3.EvolNode.x" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.EvolTree">
+<code class="descname">EvolTree</code><a class="headerlink" href="#ete3.EvolTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">EvolNode</span></code></p>
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_ncbi.html" class="btn btn-neutral float-right" title="NCBITaxa class" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_webplugin.html" class="btn btn-neutral" title="WebTreeApplication object" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_ncbi.html b/doc/reference/reference_ncbi.html
new file mode 100644
index 0000000..8c75fb5
--- /dev/null
+++ b/doc/reference/reference_ncbi.html
@@ -0,0 +1,255 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>NCBITaxa class — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="prev" title="EvolTree class" href="reference_evoltree.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>NCBITaxa class</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_ncbi.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete2.ncbi_taxonomy"></span><div class="section" id="ncbitaxa-class">
+<h1>NCBITaxa class<a class="headerlink" href="#ncbitaxa-class" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+      
+        <a href="reference_evoltree.html" class="btn btn-neutral" title="EvolTree class" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_nexml.html b/doc/reference/reference_nexml.html
new file mode 100644
index 0000000..0fe047f
--- /dev/null
+++ b/doc/reference/reference_nexml.html
@@ -0,0 +1,1875 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Nexml module — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="Phyloxml Module" href="reference_phyloxml.html"/>
+        <link rel="prev" title="Clustering module" href="reference_clustering.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Nexml module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#nexml-classes-linked-to-ete">Nexml classes linked to ETE</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#generic-nexml-classes">Generic Nexml classes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Nexml module</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_nexml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<span class="target" id="module-ete3.nexml"></span><div class="section" id="nexml-module">
+<h1>Nexml module<a class="headerlink" href="#nexml-module" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="nexml-classes-linked-to-ete">
+<h2>Nexml classes linked to ETE<a class="headerlink" href="#nexml-classes-linked-to-ete" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="ete3.Nexml">
+<em class="property">class </em><code class="descname">Nexml</code><span class="sig-paren">(</span><em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.Nexml" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a new nexml project.</p>
+<dl class="method">
+<dt id="ete3.Nexml.build_from_file">
+<code class="descname">build_from_file</code><span class="sig-paren">(</span><em>fname</em>, <em>index_otus=True</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.Nexml.build_from_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Populate Nexml project with data in a nexml file.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.NexmlTree">
+<em class="property">class </em><code class="descname">NexmlTree</code><span class="sig-paren">(</span><em>newick=None</em>, <em>alignment=None</em>, <em>alg_format='fasta'</em>, <em>sp_naming_function=<function _parse_species></em>, <em>format=0</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.NexmlTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>Special PhyloTree object with nexml support</p>
+</dd></dl>
+
+</div>
+<div class="section" id="generic-nexml-classes">
+<h2>Generic Nexml classes<a class="headerlink" href="#generic-nexml-classes" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the AbstractChar element.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AAFormat class is the container of amino acid column
+definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAMapping</code><span class="sig-paren">(</span><em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>An IUPAC ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractMapping</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of amino acid data containing granular
+observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of amino acid data containing raw sequence
+data.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing an amino acid
+observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAPolymorphicStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>uncertain_state_set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AAPolymorphicStateSet defines a polymorphic ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractPolymorphicStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AASeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with amino acid data as sequence strings.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a concrete implementation of the state element, which
+requires a symbol element, in this case restricted to AAToken,
+i.e. a single IUPAC amino acid symbol, and optional mapping
+elements to refer to other states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractStates</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AAUncertainStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AAUncertainStateSet defines an uncertain ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractUncertainStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractBlock</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractBlock is the superclass for blocks that contain an
+element structure of type AbstractFormat.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">TaxaLinked</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractSeqBlock type is the superclass for character blocks
+that consist of granular character state observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractBlock</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractChar type is the superclass for a column definition,
+which may have a “states” attribute that refers to an
+AbstractStates element, a codon attribute of type CodonPosition
+and an id attribute that may be an actual id (e.g. for
+categorical matrices where observations explicitly refer to a
+column definition) or an integer for sequence matrices.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>source=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractEdge superclass is what concrete edges inherit from by
+restriction. It represents an edge element much like that of
+GraphML, i.e. an element that connects node elements.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractFormat type is the superclass for the element that
+defines the allowed characters and states in a matrix, and their
+ambiguity mapping. It may enclose AbstractStates elements that
+define states and their mappings, and AbstractChar elements that
+specify which AbstractStates apply to which matrix columns.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Annotated</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractMapping</code><span class="sig-paren">(</span><em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractMapping type is the superclass for an ambiguity mapping.
+In an instance document, a subclass of this type will look like
+<member state=”st1”/>, i.e. an element called “member” with an
+attribute called “state” whose value is an id reference that
+refers to an element that subclasses AbstractState. The purpose
+of AbstractMapping is to specify which other states may be
+implied, e.g. a nucleotide symbol “N” would have mappings to
+“A”, “C”, “G” and “T”.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Base</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractNetwork</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractNetwork superclass is what a concrete network inherits
+from.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractNode</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>root=False</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractNode superclass is what concrete nodes inherit from by
+restriction. It represents a node element much like that of
+GraphML, i.e. an element that is connected into a tree by edge
+elements.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">OptionalTaxonLinked</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractObs type is the superclass for single observations, i.e.
+cells in a matrix. A concrete instance of AbstractObs has a
+“char” attribute that refers to an explicitly defined character
+(e.g. in categorical matrices), and a “state” attribute that
+either holds a reference to an explicitly defined state, or a
+raw state value (a continuous value).</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Labelled</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractObsMatrix super class is the abstract type for a
+<matrix> element that contains rows which hold granular state
+observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Annotated</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractObsRow represents a single row in a matrix. The row must
+refer to a previously declared otu element by its id attribute
+(and must have an id itself, may have a label, and may have meta
+attachments). The row contains multiple cell elements.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">TaxonLinked</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractPolymorphicStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>uncertain_state_set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractPolymorphicStateSet type is the super-class for a
+polymorphic state set definition. The element has a required
+AbstractSymbol attribute that in restricted concrete subclasses
+must be of a sensible type such as a single IUPAC character. It
+may enclose zero or more AbstractMapping elements to resolve
+ambiguities.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractUncertainStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractRootEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractRootEdge complex type is a superclass for the edge that
+leads into a root, i.e. an edge with only a target attribute,
+but no source attribute. This type of edge is used for
+coalescent trees, where the initial lineage has a certain length
+before things start splitting up.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractSeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractSeqMatrix super class is the abstract type for a
+<matrix> element that contains rows which hold raw character
+sequences.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Annotated</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractSeqRow represents a single row in a matrix. The row must
+refer to a previously declared otu element by its id attribute
+(and must have an id itself, may have a label, and may have meta
+attachments). The row contains a single seq element with raw
+character data.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">TaxonLinked</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractSeqBlock type is the superclass for character blocks
+that consist of raw character sequences.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractBlock</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractState type is the super-class for a state definition.
+The element has a required symbol attribute that in restricted
+concrete subclasses must be of a sensible type such as a single
+IUPAC character. It may enclose zero or more AbstractMapping
+elements to resolve ambiguities.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of AbstractState elements.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractTree</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>rootedge=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractTree superclass is what a concrete tree inherits from.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractTrees</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>network=None</em>, <em>tree=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractTrees superclass is what concrete trees inherit from.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">AbstractUncertainStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The AbstractUncertainStateSet type is the super-class for an
+uncertain state set definition. The element has a required
+AbstractSymbol attribute that in restricted concrete subclasses
+must be of a sensible type such as a single IUPAC character. It
+may enclose zero or more AbstractMapping elements to resolve
+ambiguities.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Annotated</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The Annotated complexType is a super class for objects that
+optionally have metadata annotations of type Meta.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Base</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Base</code><span class="sig-paren">(</span><em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The base type for all complexType definitions in the nexml schema.
+This type allows a number of special attributes: xml:lang - for
+languages codes xml:base - see http://www.w3.org/TR/xmlbase/
+xml:id - see http://www.w3.org/TR/xml-id/ xml:space - for
+whitespace handling xlink:href - for links Also see
+http://www.w3.org/2001/xml.xsd for more information on the xml
+and xlink attributes.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A continuous characters block consisting of granular cells preceded
+by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the char element, which requires only
+an id attribute.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The ContinuousFormat class is the container of continuous column
+definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of continuous data as granular
+obervations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of continuous data as character sequences.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing a continuous
+observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousSeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with seq strings of type continuous.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ContinuousSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A continuous characters block consisting of float sequences preceded
+by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the AbstractChar element.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The DNAFormat class is the container of DNA column definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAMapping</code><span class="sig-paren">(</span><em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>An IUPAC ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractMapping</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of DNA data containing granular
+observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of DNA data containing raw sequence data.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing a nucleotide
+observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAPolymorphicStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>uncertain_state_set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The DNAPolymorphicStateSet type defines an IUPAC ambiguity mapping.
+It may enclose zero or more AbstractMapping elements to resolve
+ambiguities.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractPolymorphicStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNASeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with seq strings of type DNA.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a concrete implementation of the state element, which
+requires a symbol element, in this case restricted to DNAToken,
+i.e. a single IUPAC nucleotide symbol, and optional mapping
+elements to refer to other states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractStates</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DNAUncertainStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The DNAUncertainStateSet type defines an IUPAC ambiguity mapping. It
+may enclose zero or more AbstractMapping elements to resolve
+ambiguities.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractUncertainStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DnaCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A DNA characters block consisting of granular cells preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DnaSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A DNA characters block consisting of sequences preceded by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">FloatNetwork</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete network implementation, with floating point edge lengths.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractNetwork</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">FloatTree</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>rootedge=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete tree implementation, with floating point edge lengths.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">subclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">NexmlTree</span></code></p>
+</dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractTree</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">IDTagged</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The IDTagged complexType is a super class for objects that require
+unique id attributes of type xs:ID. The id must be unique within
+the XML document.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Labelled</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">IntNetwork</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete network implementation, with integer edge lengths.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractNetwork</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">IntTree</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>node=None</em>, <em>rootedge=None</em>, <em>edge=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete tree implementation, with integer edge lengths.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">subclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">NexmlTree</span></code></p>
+</dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractTree</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Labelled</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The Labelled complexType is a super class for objects that
+optionally have label attributes to use as a (non-unique) name
+of type xs:string.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">Annotated</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">LiteralMeta</code><span class="sig-paren">(</span><em>datatype=None</em>, <em>content=None</em>, <em>property=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Metadata annotations in which the object is a literal value. If the
+@content attribute is used, then the element should contain no
+children.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">NetworkFloatEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>source=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete network edge implementation, with float edge.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">NetworkIntEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>source=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete network edge implementation, with int edge.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">NetworkNode</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>root=False</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete network node implementation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractNode</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Nexml</code><span class="sig-paren">(</span><em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a new nexml project.</p>
+<dl class="method">
+<dt>
+<code class="descname">build_from_file</code><span class="sig-paren">(</span><em>fname</em>, <em>index_otus=True</em><span class="sig-paren">)</span></dt>
+<dd><p>Populate Nexml project with data in a nexml file.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">OptionalTaxonLinked</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The OptionalOTULinked complexType is a super class for objects that
+that optionally have an otu id reference.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ProteinCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>An amino acid characters block consisting of granular cells preceded
+by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ProteinSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>An amino acid characters block consisting of sequences preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the AbstractChar element, i.e. a single
+column in an alignment.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The RNAFormat class is the container of RNA column definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAMapping</code><span class="sig-paren">(</span><em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>An IUPAC RNA ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractMapping</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of RNA data containing granular
+observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of RNA data containing raw sequence data.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing an RNA nucleotide
+observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAPolymorphicStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>uncertain_state_set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The RNAPolymorphicStateSet describes a single polymorphic IUPAC
+ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractPolymorphicStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNASeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with seq strings of type RNA.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a concrete implementation of the state element, which
+requires a symbol attribute, in this case restricted to
+RNAToken, i.e. a single IUPAC nucleotide symbol, and optional
+mapping elements to refer to other states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractStates</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RNAUncertainStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The RNAUncertainStateSet describes a single uncertain IUPAC
+ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractUncertainStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ResourceMeta</code><span class="sig-paren">(</span><em>href=None</em>, <em>rel=None</em>, <em>meta=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Metadata annotations in which the object is a resource. If this
+element contains meta elements as children, then the object of
+this annotation is a “blank node”.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A standard characters block consisting of granular cells preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the char element, which requires a
+unique identifier and a state set reference.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The RestrictionFormat class is the container of restriction column
+definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of restriction site data as granular
+obervations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of restriction site data as character
+sequences.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing a restriction site
+observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionSeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with seq strings of type restriction.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A restriction site characters block consisting of sequences preceded
+by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a concrete implementation of the state element, which
+requires a symbol element, in this case restricted to 0/1.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RestrictionStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractStates</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RnaCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A RNA characters block consisting of granular cells preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">RnaSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A RNA characters block consisting of sequences preceded by metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardCells</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A standard characters block consisting of granular cells preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractCells</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardChar</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>tokens=None</em>, <em>states=None</em>, <em>codon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete implementation of the char element, which requires a
+states attribute to refer to a set of defined states</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractChar</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardFormat</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>states=None</em>, <em>char=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The StandardFormat class is the container of standard column
+definitions.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractFormat</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardMapping</code><span class="sig-paren">(</span><em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A standard character ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractMapping</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardMatrixObsRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>cell=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of standard data as granular obervations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardMatrixSeqRow</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>seq=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a row in a matrix of standard data as character sequences.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqRow</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardObs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>char=None</em>, <em>state=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a single cell in a matrix containing a standard observation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardObsMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with single character observations.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractObsMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardPolymorphicStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>uncertain_state_set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The StandardPolymorphicStateSet type is a single polymorphic
+ambiguity mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractPolymorphicStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardSeqMatrix</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>row=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A matrix of rows with seq strings of type standard.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqMatrix</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardSeqs</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>format=None</em>, <em>matrix=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A standard characters block consisting of sequences preceded by
+metadata.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractSeqs</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardState</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is a concrete implementation of the state element, which
+requires a symbol element, in this case restricted to integers,
+and optional mapping elements to refer to other states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractState</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardStates</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>state=None</em>, <em>polymorphic_state_set=None</em>, <em>uncertain_state_set=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A container for a set of states.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractStates</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">StandardUncertainStateSet</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>symbol=None</em>, <em>member=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The StandardUncertainStateSet type is a single uncertain ambiguity
+mapping.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractUncertainStateSet</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TaxaLinked</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The TaxaLinked complexType is a super class for objects that that
+require an otus id reference.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TaxonLinked</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The TaxonLinked complexType is a super class for objects that
+require a taxon id reference.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">IDTagged</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TreeFloatEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>source=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete edge implementation, with float length.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TreeFloatRootEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete root edge implementation, with float length.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractRootEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TreeIntEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>source=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete edge implementation, with int length.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TreeIntRootEdge</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>length=None</em>, <em>target=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete root edge implementation, with int length.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractRootEdge</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">TreeNode</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otu=None</em>, <em>root=False</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete node implementation.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AbstractNode</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Trees</code><span class="sig-paren">(</span><em>about=None</em>, <em>meta=None</em>, <em>label=None</em>, <em>id=None</em>, <em>otus=None</em>, <em>network=None</em>, <em>tree=None</em>, <em>set=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A concrete container for tree objects.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">superclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">TaxaLinked</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">attrExtensions</code><span class="sig-paren">(</span><em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This element is for use in WSDL 1.1 only. It does not apply to WSDL
+2.0 documents. Use in WSDL 2.0 documents is invalid.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Nexml</code><span class="sig-paren">(</span><em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a new nexml project.</p>
+<dl class="method">
+<dt>
+<code class="descname">build_from_file</code><span class="sig-paren">(</span><em>fname</em>, <em>index_otus=True</em><span class="sig-paren">)</span></dt>
+<dd><p>Populate Nexml project with data in a nexml file.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">NexmlTree</code><span class="sig-paren">(</span><em>newick=None</em>, <em>alignment=None</em>, <em>alg_format='fasta'</em>, <em>sp_naming_function=<function _parse_species></em>, <em>format=0</em><span class="sig-paren">)</span></dt>
+<dd><p>Special PhyloTree object with nexml support</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_phyloxml.html" class="btn btn-neutral float-right" title="Phyloxml Module" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_clustering.html" class="btn btn-neutral" title="Clustering module" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_phylo.html b/doc/reference/reference_phylo.html
new file mode 100644
index 0000000..3b732b7
--- /dev/null
+++ b/doc/reference/reference_phylo.html
@@ -0,0 +1,646 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>PhyloTree class — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="Clustering module" href="reference_clustering.html"/>
+        <link rel="prev" title="Treeview module" href="reference_treeview.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>PhyloTree class</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_phylo.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.phylo"></span><div class="section" id="phylotree-class">
+<h1>PhyloTree class<a class="headerlink" href="#phylotree-class" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.PhyloNode">
+<em class="property">class </em><code class="descname">PhyloNode</code><span class="sig-paren">(</span><em>newick=None</em>, <em>alignment=None</em>, <em>alg_format='fasta'</em>, <em>sp_naming_function=<function _parse_species></em>, <em>format=0</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">ete3.coretype.tree.TreeNode</span></code></p>
+<p>Extends the standard <a class="reference internal" href="reference_tree.html#ete3.TreeNode" title="ete3.TreeNode"><code class="xref py py-class docutils literal"><span class="pre">TreeNode</span></code></a> instance. It adds
+specific attributes and methods to work with phylogentic trees.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>newick</strong> – Path to the file containing the tree or, alternatively,
+the text string containing the same information.</li>
+<li><strong>alignment</strong> – file containing a multiple sequence alignment.</li>
+<li><strong>alg_format</strong> – “fasta”, “phylip” or “iphylip” (interleaved)</li>
+<li><strong>format</strong> – <p>sub-newick format</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="88%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">FORMAT</th>
+<th class="head">DESCRIPTION</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>0</td>
+<td>flexible with support values</td>
+</tr>
+<tr class="row-odd"><td>1</td>
+<td>flexible with internal node names</td>
+</tr>
+<tr class="row-even"><td>2</td>
+<td>all branches + leaf names + internal supports</td>
+</tr>
+<tr class="row-odd"><td>3</td>
+<td>all branches + all names</td>
+</tr>
+<tr class="row-even"><td>4</td>
+<td>leaf branches + leaf names</td>
+</tr>
+<tr class="row-odd"><td>5</td>
+<td>internal and leaf branches + leaf names</td>
+</tr>
+<tr class="row-even"><td>6</td>
+<td>internal branches + leaf names</td>
+</tr>
+<tr class="row-odd"><td>7</td>
+<td>leaf branches + all names</td>
+</tr>
+<tr class="row-even"><td>8</td>
+<td>all names</td>
+</tr>
+<tr class="row-odd"><td>9</td>
+<td>leaf names</td>
+</tr>
+<tr class="row-even"><td>100</td>
+<td>topology only</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li><strong>sp_naming_function</strong> – Pointer to a parsing python
+function that receives nodename as first argument and returns
+the species name (see
+<a class="reference internal" href="#ete3.PhyloNode.set_species_naming_function" title="ete3.PhyloNode.set_species_naming_function"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.set_species_naming_function()</span></code></a>. By default, the
+3 first letter of nodes will be used as species identifiers.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a tree node object which represents the base of the tree.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="ete3.PhyloNode.annotate_ncbi_taxa">
+<code class="descname">annotate_ncbi_taxa</code><span class="sig-paren">(</span><em>taxid_attr='species'</em>, <em>tax2name=None</em>, <em>tax2track=None</em>, <em>tax2rank=None</em>, <em>dbfile=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.annotate_ncbi_taxa" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add NCBI taxonomy annotation to all descendant nodes. Leaf nodes are
+expected to contain a feature (name, by default) encoding a valid taxid
+number.</p>
+<p>All descendant nodes (including internal nodes) are annotated with the
+following new features:</p>
+<p><cite>Node.spname</cite>: scientific spcies name as encoded in the NCBI taxonomy database</p>
+<p><cite>Node.named_lineage</cite>: the NCBI lineage track using scientific names</p>
+<p><cite>Node.taxid</cite>: NCBI taxid number</p>
+<p><cite>Node.lineage</cite>: same as named_lineage but using taxid codes.</p>
+<p>Note that for internal nodes, NCBI information will refer to the first
+common lineage of the grouped species.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>taxid_attr</strong> (<em>name</em>) – the name of the feature that should be used to access the taxid number associated to each node.</li>
+<li><strong>tax2name</strong> (<em>None</em>) – A dictionary where keys are taxid numbers and</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>values are their translation into NCBI scientific name. Its use is
+optional and allows to avoid database queries when annotating many trees
+containing the same set of taxids.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>tax2track</strong> (<em>None</em>) – A dictionary where keys are taxid numbers and</td>
+</tr>
+</tbody>
+</table>
+<p>values are their translation into NCBI lineage tracks (taxids). Its use is
+optional and allows to avoid database queries when annotating many trees
+containing the same set of taxids.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>tax2rank</strong> (<em>None</em>) – A dictionary where keys are taxid numbers and</td>
+</tr>
+</tbody>
+</table>
+<p>values are their translation into NCBI rank name. Its use is optional
+and allows to avoid database queries when annotating many trees
+containing the same set of taxids.</p>
+<p>:param None dbfile : If provided, the provided file will be used as a
+local copy of the NCBI taxonomy database.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">tax2name (a dictionary translating taxid numbers into</td>
+</tr>
+</tbody>
+</table>
+<p>scientific name), tax2lineage (a dictionary translating taxid numbers
+into their corresponding NCBI lineage track) and tax2rank (a dictionary translating taxid numbers into
+rank names).</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.collapse_lineage_specific_expansions">
+<code class="descname">collapse_lineage_specific_expansions</code><span class="sig-paren">(</span><em>species=None</em>, <em>return_copy=True</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.collapse_lineage_specific_expansions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Converts lineage specific expansion nodes into a single
+tip node (randomly chosen from tips within the expansion).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>species</strong> (<em>None</em>) – If supplied, only expansions matching the
+species criteria will be pruned. When None, all expansions
+within the tree will be processed.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_age">
+<code class="descname">get_age</code><span class="sig-paren">(</span><em>species2age</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_age" title="Permalink to this definition">¶</a></dt>
+<dd><p>Implements the phylostratigrafic method described in:</p>
+<p>Huerta-Cepas, J., & Gabaldon, T. (2011). Assigning duplication events to
+relative temporal scales in genome-wide studies. Bioinformatics, 27(1),
+38-45.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_age_balanced_outgroup">
+<code class="descname">get_age_balanced_outgroup</code><span class="sig-paren">(</span><em>species2age</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_age_balanced_outgroup" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.2.</span></p>
+</div>
+<p>Returns the node better balance current tree structure
+according to the topological age of the different leaves and
+internal node sizes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>species2age</strong> – A dictionary translating from leaf names
+into a topological age.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_descendant_evol_events">
+<code class="descname">get_descendant_evol_events</code><span class="sig-paren">(</span><em>sos_thr=0.0</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_descendant_evol_events" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a list of <strong>all</strong> duplication and speciation
+events detected after this node. Nodes are assumed to be
+duplications when a species overlap is found between its child
+linages. Method is described more detail in:</p>
+<p>“The Human Phylome.” Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+T. Genome Biol. 2007;8(6):R109.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_farthest_oldest_leaf">
+<code class="descname">get_farthest_oldest_leaf</code><span class="sig-paren">(</span><em>species2age</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_farthest_oldest_leaf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the farthest oldest leaf to the current
+one. It requires an species2age dictionary with the age
+estimation for all species.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – A pointer to a function that
+receives a node instance as unique argument and returns True
+or False. It can be used to dynamically collapse nodes, so
+they are seen as leaves.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_farthest_oldest_node">
+<code class="descname">get_farthest_oldest_node</code><span class="sig-paren">(</span><em>species2age</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_farthest_oldest_node" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Returns the farthest oldest node (leaf or internal). The
+difference with get_farthest_oldest_leaf() is that in this
+function internal nodes grouping seqs from the same species
+are collapsed.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_my_evol_events">
+<code class="descname">get_my_evol_events</code><span class="sig-paren">(</span><em>sos_thr=0.0</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_my_evol_events" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a list of duplication and speciation events in
+which the current node has been involved. Scanned nodes are
+also labeled internally as dup=True|False. You can access this
+labels using the ‘node.dup’ sintaxis.</p>
+<p>Method: the algorithm scans all nodes from the given leafName to
+the root. Nodes are assumed to be duplications when a species
+overlap is found between its child linages. Method is described
+more detail in:</p>
+<p>“The Human Phylome.” Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+T. Genome Biol. 2007;8(6):R109.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_speciation_trees">
+<code class="descname">get_speciation_trees</code><span class="sig-paren">(</span><em>map_features=None</em>, <em>autodetect_duplications=True</em>, <em>newick_only=False</em>, <em>target_attr='species'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_speciation_trees" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates all possible species trees contained within a
+duplicated gene family tree as described in <a class="reference external" href="http://treeko.cgenomics.org">Treeko</a> (see <a class="reference external" href="http://www.ncbi.nlm.nih.gov/pubmed/21335609">Marcet and Gabaldon,
+2011</a> ).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>autodetect_duplications</strong> (<em>True</em>) – If True, duplication</td>
+</tr>
+</tbody>
+</table>
+<p>nodes will be automatically detected using the Species Overlap
+algorithm (<code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_descendants_evol_events()</span></code>. If
+False, duplication nodes within the original tree are expected
+to contain the feature “evoltype=D”.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>features</strong> (<em>None</em>) – A list of features that should be</td>
+</tr>
+</tbody>
+</table>
+<p>mapped from the original gene family tree to each species
+tree subtree.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">(number_of_sptrees, number_of_dups, species_tree_iterator)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.get_species">
+<code class="descname">get_species</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.get_species" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the set of species covered by its partition.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.iter_species">
+<code class="descname">iter_species</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.iter_species" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over the species grouped by this node.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.link_to_alignment">
+<code class="descname">link_to_alignment</code><span class="sig-paren">(</span><em>alignment</em>, <em>alg_format='fasta'</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.link_to_alignment" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.ncbi_compare">
+<code class="descname">ncbi_compare</code><span class="sig-paren">(</span><em>autodetect_duplications=True</em>, <em>cached_content=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.ncbi_compare" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.reconcile">
+<code class="descname">reconcile</code><span class="sig-paren">(</span><em>species_tree</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.reconcile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the reconcilied topology with the provided species
+tree, and a list of evolutionary events inferred from such
+reconciliation.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.set_species_naming_function">
+<code class="descname">set_species_naming_function</code><span class="sig-paren">(</span><em>fn</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.set_species_naming_function" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the parsing function used to extract species name from a
+node’s name.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>fn</strong> – Pointer to a parsing python function that
+receives nodename as first argument and returns the species
+name.</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Example of a parsing function to extract species names for</span>
+<span class="c"># all nodes in a given tree.</span>
+<span class="k">def</span> <span class="nf">parse_sp_name</span><span class="p">(</span><span class="n">node_name</span><span class="p">):</span>
+    <span class="k">return</span> <span class="n">node_name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">set_species_naming_function</span><span class="p">(</span><span class="n">parse_sp_name</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.PhyloNode.species">
+<code class="descname">species</code><a class="headerlink" href="#ete3.PhyloNode.species" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="ete3.PhyloNode.split_by_dups">
+<code class="descname">split_by_dups</code><span class="sig-paren">(</span><em>autodetect_duplications=True</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloNode.split_by_dups" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of all subtrees resulting from splitting
+current tree by its duplication nodes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>autodetect_duplications</strong> (<em>True</em>) – If True, duplication</td>
+</tr>
+</tbody>
+</table>
+<p>nodes will be automatically detected using the Species Overlap
+algorithm (<code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_descendants_evol_events()</span></code>. If
+False, duplication nodes within the original tree are expected
+to contain the feature “evoltype=D”.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">species_trees</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.PhyloTree">
+<code class="descname">PhyloTree</code><a class="headerlink" href="#ete3.PhyloTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>alias of <a class="reference internal" href="#ete3.PhyloNode" title="ete3.PhyloNode"><code class="xref py py-class docutils literal"><span class="pre">PhyloNode</span></code></a></p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.phylo.EvolEvent">
+<em class="property">class </em><code class="descname">EvolEvent</code><a class="headerlink" href="#ete3.phylo.EvolEvent" title="Permalink to this definition">¶</a></dt>
+<dd><p>Basic evolutionary event. It stores all the information about an
+event(node) ocurred in a phylogenetic tree.</p>
+<p><code class="xref py py-attr docutils literal"><span class="pre">etype</span></code> : <code class="docutils literal"><span class="pre">D</span></code> (Duplication), <code class="docutils literal"><span class="pre">S</span></code> (Speciation), <code class="docutils literal"><span class="pre">L</span></code> (gene loss),</p>
+<p><code class="xref py py-attr docutils literal"><span class="pre">in_seqs</span></code> : the list of sequences in one side of the event.</p>
+<p><code class="xref py py-attr docutils literal"><span class="pre">out_seqs</span></code> : the list of sequences in the other side of the event</p>
+<p><code class="xref py py-attr docutils literal"><span class="pre">node</span></code> : link to the event node in the tree</p>
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_clustering.html" class="btn btn-neutral float-right" title="Clustering module" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_treeview.html" class="btn btn-neutral" title="Treeview module" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_phylomedb.html b/doc/reference/reference_phylomedb.html
new file mode 100644
index 0000000..7f3af00
--- /dev/null
+++ b/doc/reference/reference_phylomedb.html
@@ -0,0 +1,232 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>PhylomeDB3 Connector — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>PhylomeDB3 Connector</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_phylomedb.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="phylomedb3-connector">
+<h1>PhylomeDB3 Connector<a class="headerlink" href="#phylomedb3-connector" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_phyloxml.html b/doc/reference/reference_phyloxml.html
new file mode 100644
index 0000000..5ab3378
--- /dev/null
+++ b/doc/reference/reference_phyloxml.html
@@ -0,0 +1,539 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Phyloxml Module — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="Seqgroup class" href="reference_seqgroup.html"/>
+        <link rel="prev" title="Nexml module" href="reference_nexml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Phyloxml Module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#phyloxml-classes-linked-to-ete">Phyloxml classes linked to ETE</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#generic-phyloxml-classes">Generic Phyloxml classes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Phyloxml Module</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_phyloxml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<span class="target" id="module-ete3.phyloxml"></span><div class="section" id="phyloxml-module">
+<h1>Phyloxml Module<a class="headerlink" href="#phyloxml-module" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="phyloxml-classes-linked-to-ete">
+<h2>Phyloxml classes linked to ETE<a class="headerlink" href="#phyloxml-classes-linked-to-ete" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="ete3.Phyloxml">
+<em class="property">class </em><code class="descname">Phyloxml</code><span class="sig-paren">(</span><em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.Phyloxml" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="ete3.PhyloxmlTree">
+<em class="property">class </em><code class="descname">PhyloxmlTree</code><span class="sig-paren">(</span><em>phyloxml_clade=None</em>, <em>phyloxml_phylogeny=None</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PhyloxmlTree" title="Permalink to this definition">¶</a></dt>
+<dd><p>PhyloTree object supporting phyloXML format.</p>
+</dd></dl>
+
+</div>
+<div class="section" id="generic-phyloxml-classes">
+<h2>Generic Phyloxml classes<a class="headerlink" href="#generic-phyloxml-classes" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Accession</code><span class="sig-paren">(</span><em>source=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Element Accession is used to capture the local part in a sequence
+identifier (e.g. ‘P17304’ in ‘UniProtKB:P17304’, in which case
+the ‘source’ attribute would be ‘UniProtKB’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Annotation</code><span class="sig-paren">(</span><em>source=None</em>, <em>type_=None</em>, <em>ref=None</em>, <em>evidence=None</em>, <em>desc=None</em>, <em>confidence=None</em>, <em>property=None</em>, <em>uri=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The annotation of a molecular sequence. It is recommended to
+annotate by using the optional ‘ref’ attribute (some examples of
+acceptable values for the ref attribute: ‘<a class="reference external" href="GO:0008270">GO:0008270</a>‘,
+‘KEGG:Tetrachloroethene degradation’, ‘EC:1.1.1.1’). Optional
+element ‘desc’ allows for a free text description. Optional
+element ‘confidence’ is used to state the type and value of
+support for a annotation. Similarly, optional attribute
+‘evidence’ is used to describe the evidence for a annotation as
+free text (e.g. ‘experimental’). Optional element ‘property’
+allows for further, typed and referenced annotations from
+external resources.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">BinaryCharacters</code><span class="sig-paren">(</span><em>lost_count=None</em>, <em>absent_count=None</em>, <em>present_count=None</em>, <em>type_=None</em>, <em>gained_count=None</em>, <em>gained=None</em>, <em>lost=None</em>, <em>present=None</em>, <em>absent=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The names and/or counts of binary characters present, gained, and
+lost at the root of a clade.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">BranchColor</code><span class="sig-paren">(</span><em>red=None</em>, <em>green=None</em>, <em>blue=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This indicates the color of a clade when rendered (the color applies
+to the whole clade unless overwritten by the color(s) of sub
+clades).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Clade</code><span class="sig-paren">(</span><em>id_source=None</em>, <em>branch_length_attr=None</em>, <em>name=None</em>, <em>branch_length=None</em>, <em>confidence=None</em>, <em>width=None</em>, <em>color=None</em>, <em>node_id=None</em>, <em>taxonomy=None</em>, <em>sequence=None</em>, <em>events=None</em>, <em>binary_characters=None</em>, <em>distribution=None</em>, <em>date=None</em>, <em>reference=None</em>, <em>property=None< [...]
+<dd><p>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).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">CladeRelation</code><span class="sig-paren">(</span><em>id_ref_0=None</em>, <em>id_ref_1=None</em>, <em>type_=None</em>, <em>distance=None</em>, <em>confidence=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is used to express a typed relationship between two clades. For
+example it could be used to describe multiple parents of a
+clade.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Confidence</code><span class="sig-paren">(</span><em>type_=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A general purpose confidence element. For example this can be used
+to express the bootstrap support value of a clade (in which case
+the ‘type’ attribute is ‘bootstrap’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Date</code><span class="sig-paren">(</span><em>unit=None</em>, <em>desc=None</em>, <em>value=None</em>, <em>minimum=None</em>, <em>maximum=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A date associated with a clade/node. Its value can be numerical by
+using the ‘value’ element and/or free text with the ‘desc’
+element’ (e.g. ‘Silurian’). If a numerical value is used, it is
+recommended to employ the ‘unit’ attribute to indicate the type
+of the numerical value (e.g. ‘mya’ for ‘million years ago’). The
+elements ‘minimum’ and ‘maximum’ are used the indicate a
+range/confidence interval</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Distribution</code><span class="sig-paren">(</span><em>desc=None</em>, <em>point=None</em>, <em>polygon=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The geographic distribution of the items of a clade (species,
+sequences), intended for phylogeographic applications. The
+location can be described either by free text in the ‘desc’
+element and/or by the coordinates of one or more ‘Points’
+(similar to the ‘Point’ element in Google’s KML format) or by
+‘Polygons’.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">DomainArchitecture</code><span class="sig-paren">(</span><em>length=None</em>, <em>domain=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is used describe the domain architecture of a protein.
+Attribute ‘length’ is the total length of the protein</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Events</code><span class="sig-paren">(</span><em>type_=None</em>, <em>duplications=None</em>, <em>speciations=None</em>, <em>losses=None</em>, <em>confidence=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Events at the root node of a clade (e.g. one gene duplication).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Id</code><span class="sig-paren">(</span><em>provider=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A general purpose identifier element. Allows to indicate the
+provider (or authority) of an identifier.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">MolSeq</code><span class="sig-paren">(</span><em>is_aligned=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Element ‘mol_seq’ is used to store molecular sequences. The
+‘is_aligned’ attribute is used to indicated that this molecular
+sequence is aligned with all other sequences in the same
+phylogeny for which ‘is aligned’ is true as well (which, in most
+cases, means that gaps were introduced, and that all sequences
+for which ‘is aligned’ is true must have the same length).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Phylogeny</code><span class="sig-paren">(</span><em>rerootable=None</em>, <em>branch_length_unit=None</em>, <em>type_=None</em>, <em>rooted=None</em>, <em>name=None</em>, <em>id=None</em>, <em>description=None</em>, <em>date=None</em>, <em>confidence=None</em>, <em>clade=None</em>, <em>clade_relation=None</em>, <em>sequence_relation=None</em>, <em>property=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Element Phylogeny is used to represent a phylogeny. The required
+attribute ‘rooted’ is used to indicate whether the phylogeny is
+rooted or not. The attribute ‘rerootable’ can be used to
+indicate that the phylogeny is not allowed to be rooted
+differently (i.e. because it is associated with root dependent
+data, such as gene duplications). The attribute ‘type’ can be
+used to indicate the type of phylogeny (i.e. ‘gene tree’). It is
+recommended to use the attribute ‘branch_length_unit’ if the
+phylogeny has branch lengths. Element clade is used in a
+recursive manner to describe the topology of a phylogenetic
+tree.</p>
+<dl class="attribute">
+<dt>
+<code class="descname">subclass</code></dt>
+<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">PhyloxmlTree</span></code></p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Point</code><span class="sig-paren">(</span><em>geodetic_datum=None</em>, <em>alt_unit=None</em>, <em>lat=None</em>, <em>long=None</em>, <em>alt=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>The coordinates of a point with an optional altitude (used by
+element ‘Distribution’). Required attributes are the
+‘geodetic_datum’ used to indicate the geodetic datum (also
+called ‘map datum’, for example Google’s KML uses ‘WGS84’).
+Attribute ‘alt_unit’ is the unit for the altitude (e.g.
+‘meter’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Polygon</code><span class="sig-paren">(</span><em>point=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A polygon defined by a list of ‘Points’ (used by element
+‘Distribution’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Property</code><span class="sig-paren">(</span><em>datatype=None</em>, <em>id_ref=None</em>, <em>ref=None</em>, <em>applies_to=None</em>, <em>unit=None</em>, <em>valueOf_=None</em>, <em>mixedclass_=None</em>, <em>content_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Property allows for typed and referenced properties from external
+resources to be attached to ‘Phylogeny’, ‘Clade’, and
+‘Annotation’. The value of a property is its mixed (free text)
+content. Attribute ‘datatype’ indicates the type of a property
+and is limited to xsd-datatypes (e.g. ‘xsd:string’,
+‘xsd:boolean’, ‘xsd:integer’, ‘xsd:decimal’, ‘xsd:float’,
+‘xsd:double’, ‘xsd:date’, ‘xsd:anyURI’). Attribute ‘applies_to’
+indicates the item to which a property applies to (e.g. ‘node’
+for the parent node of a clade, ‘parent_branch’ for the parent
+branch of a clade). Attribute ‘id_ref’ allows to attached a
+property specifically to one element (on the xml-level).
+Optional attribute ‘unit’ is used to indicate the unit of the
+property. An example: <property datatype=”xsd:integer”
+ref=”NOAA:depth” applies_to=”clade” unit=”METRIC:m”> 200
+</property></p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">ProteinDomain</code><span class="sig-paren">(</span><em>to=None</em>, <em>confidence=None</em>, <em>fromxx=None</em>, <em>id=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>To represent an individual domain in a domain architecture. The
+name/unique identifier is described via the ‘id’ attribute.
+‘confidence’ can be used to store (i.e.) E-values.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Reference</code><span class="sig-paren">(</span><em>doi=None</em>, <em>desc=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A literature reference for a clade. It is recommended to use the
+‘doi’ attribute instead of the free text ‘desc’ element whenever
+possible.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Sequence</code><span class="sig-paren">(</span><em>id_source=None</em>, <em>id_ref=None</em>, <em>type_=None</em>, <em>symbol=None</em>, <em>accession=None</em>, <em>name=None</em>, <em>location=None</em>, <em>mol_seq=None</em>, <em>uri=None</em>, <em>annotation=None</em>, <em>domain_architecture=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Element Sequence is used to represent a molecular sequence (Protein,
+DNA, RNA) associated with a node. ‘symbol’ is a short (maximal
+ten characters) symbol of the sequence (e.g. ‘ACTM’) whereas
+‘name’ is used for the full name (e.g. ‘muscle Actin’).
+‘location’ is used for the location of a sequence on a
+genome/chromosome. The actual sequence can be stored with the
+‘mol_seq’ element. Attribute ‘type’ is used to indicate the type
+of sequence (‘dna’, ‘rna’, or ‘protein’). One intended use for
+‘id_ref’ is to link a sequence to a taxonomy (via the taxonomy’s
+‘id_source’) in case of multiple sequences and taxonomies per
+node.</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">SequenceRelation</code><span class="sig-paren">(</span><em>id_ref_0=None</em>, <em>id_ref_1=None</em>, <em>type_=None</em>, <em>distance=None</em>, <em>confidence=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>This is used to express a typed relationship between two sequences.
+For example it could be used to describe an orthology (in which
+case attribute ‘type’ is ‘orthology’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Taxonomy</code><span class="sig-paren">(</span><em>id_source=None</em>, <em>id=None</em>, <em>code=None</em>, <em>scientific_name=None</em>, <em>authority=None</em>, <em>common_name=None</em>, <em>synonym=None</em>, <em>rank=None</em>, <em>uri=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>Element Taxonomy is used to describe taxonomic information for a
+clade. Element ‘code’ is intended to store UniProt/Swiss-Prot
+style organism codes (e.g. ‘APLCA’ for the California sea hare
+‘Aplysia californica’) or other styles of mnemonics (e.g.
+‘Aca’). Element ‘authority’ is used to keep the authority, such
+as ‘J. G. Cooper, 1863’, associated with the ‘scientific_name’.
+Element ‘id’ is used for a unique identifier of a taxon (for
+example ‘6500’ with ‘ncbi_taxonomy’ as ‘provider’ for the
+California sea hare). Attribute ‘id_source’ is used to link
+other elements to a taxonomy (on the xml-level).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">Uri</code><span class="sig-paren">(</span><em>type_=None</em>, <em>desc=None</em>, <em>valueOf_=None</em><span class="sig-paren">)</span></dt>
+<dd><p>A uniform resource identifier. In general, this is expected to be an
+URL (for example, to link to an image on a website, in which
+case the ‘type’ attribute might be ‘image’ and ‘desc’ might be
+‘image of a California sea hare’).</p>
+</dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descname">PhyloxmlTree</code><span class="sig-paren">(</span><em>phyloxml_clade=None</em>, <em>phyloxml_phylogeny=None</em>, <em>**kargs</em><span class="sig-paren">)</span></dt>
+<dd><p>PhyloTree object supporting phyloXML format.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_seqgroup.html" class="btn btn-neutral float-right" title="Seqgroup class" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_nexml.html" class="btn btn-neutral" title="Nexml module" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_seqgroup.html b/doc/reference/reference_seqgroup.html
new file mode 100644
index 0000000..37e41e2
--- /dev/null
+++ b/doc/reference/reference_seqgroup.html
@@ -0,0 +1,324 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Seqgroup class — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="WebTreeApplication object" href="reference_webplugin.html"/>
+        <link rel="prev" title="Phyloxml Module" href="reference_phyloxml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Seqgroup class</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_seqgroup.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.parser.seqgroup"></span><div class="section" id="seqgroup-class">
+<h1>Seqgroup class<a class="headerlink" href="#seqgroup-class" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.SeqGroup">
+<em class="property">class </em><code class="descname">SeqGroup</code><span class="sig-paren">(</span><em>sequences=None</em>, <em>format='fasta'</em>, <em>fix_duplicates=True</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
+<p>SeqGroup class can be used to store a set of sequences (aligned
+or not).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>sequences</strong> – Path to the file containing the sequences or,
+alternatively, the text string containing the same
+information.</li>
+<li><strong>format</strong> (<em>fasta</em>) – the format in which sequences are
+encoded. Current supported formats are: <code class="docutils literal"><span class="pre">fasta</span></code>, <code class="docutils literal"><span class="pre">phylip</span></code>
+(phylip sequencial) and <code class="docutils literal"><span class="pre">iphylip</span></code> (phylip
+interleaved). Phylip format forces sequence names to a maximum
+of 10 chars. To avoid this effect, you can use the relaxed
+phylip format: <code class="docutils literal"><span class="pre">phylip_relaxed</span></code> and <code class="docutils literal"><span class="pre">iphylip_relaxed</span></code>.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">msf</span> <span class="o">=</span> <span class="s">">seq1</span><span class="se">\n</span><span class="s">AAAAAAAAAAA</span><span class="se">\n</span><span class="s">>seq2</span><span class="se">\n</span><span class="s">TTTTTTTTTTTTT</span><span class="se">\n</span><span class="s">"</span>
+<span class="n">seqs</span> <span class="o">=</span> <span class="n">SeqGroup</span><span class="p">(</span><span class="n">msf</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">"fasta"</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">seqs</span><span class="o">.</span><span class="n">get_seq</span><span class="p">(</span><span class="s">"seq1"</span><span class="p">)</span>
+</pre></div>
+</div>
+<dl class="method">
+<dt id="ete3.SeqGroup.get_entries">
+<code class="descname">get_entries</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup.get_entries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of entries currently stored.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.SeqGroup.get_seq">
+<code class="descname">get_seq</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup.get_seq" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the sequence associated to a given entry name.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.SeqGroup.iter_entries">
+<code class="descname">iter_entries</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup.iter_entries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over all sequences in the
+collection. Each item is a tuple with the sequence name,
+sequence, and sequence comments</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.SeqGroup.set_seq">
+<code class="descname">set_seq</code><span class="sig-paren">(</span><em>name</em>, <em>seq</em>, <em>comments=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup.set_seq" title="Permalink to this definition">¶</a></dt>
+<dd><p>Updates or adds a sequence</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.SeqGroup.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>format='fasta'</em>, <em>outfile=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqGroup.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the text representation of the sequences in the
+supplied given format (default=FASTA). If “oufile” argument is
+used, the result is written into the given path.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_webplugin.html" class="btn btn-neutral float-right" title="WebTreeApplication object" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_phyloxml.html" class="btn btn-neutral" title="Phyloxml Module" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_tree.html b/doc/reference/reference_tree.html
new file mode 100644
index 0000000..44871b7
--- /dev/null
+++ b/doc/reference/reference_tree.html
@@ -0,0 +1,1467 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Master Tree class — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="Treeview module" href="reference_treeview.html"/>
+        <link rel="prev" title="ETE’s Reference Guide" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" href="">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Master Tree class</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_tree.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="master-tree-class">
+<h1>Master Tree class<a class="headerlink" href="#master-tree-class" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.TreeNode">
+<em class="property">class </em><code class="descname">TreeNode</code><span class="sig-paren">(</span><em>newick=None</em>, <em>format=0</em>, <em>dist=None</em>, <em>support=None</em>, <em>name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode" title="Permalink to this definition">¶</a></dt>
+<dd><p>TreeNode (Tree) class is used to store a tree structure. A tree
+consists of a collection of TreeNode instances connected in a
+hierarchical way. Trees can be loaded from the New Hampshire Newick
+format (newick).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>newick</strong> – Path to the file containing the tree or, alternatively,
+the text string containing the same information.</li>
+<li><strong>format</strong> (<em>0</em>) – <p>subnewick format</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="88%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">FORMAT</th>
+<th class="head">DESCRIPTION</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>0</td>
+<td>flexible with support values</td>
+</tr>
+<tr class="row-odd"><td>1</td>
+<td>flexible with internal node names</td>
+</tr>
+<tr class="row-even"><td>2</td>
+<td>all branches + leaf names + internal supports</td>
+</tr>
+<tr class="row-odd"><td>3</td>
+<td>all branches + all names</td>
+</tr>
+<tr class="row-even"><td>4</td>
+<td>leaf branches + leaf names</td>
+</tr>
+<tr class="row-odd"><td>5</td>
+<td>internal and leaf branches + leaf names</td>
+</tr>
+<tr class="row-even"><td>6</td>
+<td>internal branches + leaf names</td>
+</tr>
+<tr class="row-odd"><td>7</td>
+<td>leaf branches + all names</td>
+</tr>
+<tr class="row-even"><td>8</td>
+<td>all names</td>
+</tr>
+<tr class="row-odd"><td>9</td>
+<td>leaf names</td>
+</tr>
+<tr class="row-even"><td>100</td>
+<td>topology only</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a tree node object which represents the base of the tree.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<p>** Examples: **</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span> <span class="c"># creates an empty tree</span>
+<span class="n">t2</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(A:1,(B:1,(C:1,D:1):0.5):0.5);'</span><span class="p">)</span>
+<span class="n">t3</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'/home/user/myNewickFile.txt'</span><span class="p">)</span>
+</pre></div>
+</div>
+<dl class="method">
+<dt id="ete3.TreeNode.add_child">
+<code class="descname">add_child</code><span class="sig-paren">(</span><em>child=None</em>, <em>name=None</em>, <em>dist=None</em>, <em>support=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.add_child" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds a new child to this node. If child node is not suplied
+as an argument, a new node instance will be created.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>child</strong> (<em>None</em>) – the node instance to be added as a child.</li>
+<li><strong>name</strong> (<em>None</em>) – the name that will be given to the child.</li>
+<li><strong>dist</strong> (<em>None</em>) – the distance from the node to the child.</li>
+<li><strong>support'</strong> (<em>None</em>) – the support value of child partition.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The child node instance</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.add_face">
+<code class="descname">add_face</code><span class="sig-paren">(</span><em>face</em>, <em>column</em>, <em>position='branch-right'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.add_face" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a fixed face to the node.  This type of faces will be
+always attached to nodes, independently of the layout
+function.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>face</strong> – a Face or inherited instance</li>
+<li><strong>column</strong> – An integer number starting from 0</li>
+<li><strong>position</strong> (<em>“branch-right”</em>) – Posible values are:
+“branch-right”, “branch-top”, “branch-bottom”, “float”,
+“aligned”</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.add_feature">
+<code class="descname">add_feature</code><span class="sig-paren">(</span><em>pr_name</em>, <em>pr_value</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.add_feature" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add or update a node’s feature.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.add_features">
+<code class="descname">add_features</code><span class="sig-paren">(</span><em>**features</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.add_features" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add or update several features.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.add_sister">
+<code class="descname">add_sister</code><span class="sig-paren">(</span><em>sister=None</em>, <em>name=None</em>, <em>dist=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.add_sister" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds a sister to this node. If sister node is not supplied
+as an argument, a new TreeNode instance will be created and
+returned.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.check_monophyly">
+<code class="descname">check_monophyly</code><span class="sig-paren">(</span><em>values</em>, <em>target_attr</em>, <em>ignore_missing=False</em>, <em>unrooted=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.check_monophyly" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if a given target attribute is monophyletic under
+this node for the provided set of values.</p>
+<p>If not all values are represented in the current tree
+structure, a ValueError exception will be raised to warn that
+strict monophyly could never be reached (this behaviour can be
+avoided by enabling the <cite>ignore_missing</cite> flag.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>values</strong> – a set of values for which monophyly is
+expected.</li>
+<li><strong>target_attr</strong> – node attribute being used to check
+monophyly (i.e. species for species trees, names for gene
+family trees, or any custom feature present in the tree).</li>
+<li><strong>ignore_missing</strong> (<em>False</em>) – Avoid raising an Exception when
+missing attributes are found.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>unrooted</strong> (<em>False</em>) – If True, tree will be treated as unrooted, thus
+allowing to find monophyly even when current outgroup is spliting a
+monophyletic group.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the following tuple
+IsMonophyletic (boolean),
+clade type (‘monophyletic’, ‘paraphyletic’ or ‘polyphyletic’),
+leaves breaking the monophyly (set)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.TreeNode.children">
+<code class="descname">children</code><a class="headerlink" href="#ete3.TreeNode.children" title="Permalink to this definition">¶</a></dt>
+<dd><p>A list of children nodes</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.compare">
+<code class="descname">compare</code><span class="sig-paren">(</span><em>ref_tree</em>, <em>use_collateral=False</em>, <em>min_support_source=0.0</em>, <em>min_support_ref=0.0</em>, <em>has_duplications=False</em>, <em>expand_polytomies=False</em>, <em>unrooted=False</em>, <em>max_treeko_splits_to_be_artifact=1000</em>, <em>ref_tree_attr='name'</em>, <em>source_tree_attr='name'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.compare" title="Permalink to thi [...]
+<dd><p>compare this tree with another using robinson foulds symmetric difference
+and number of shared edges. Trees of different sizes and with duplicated
+items allowed.</p>
+<p>returns: a Python dictionary with results</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.convert_to_ultrametric">
+<code class="descname">convert_to_ultrametric</code><span class="sig-paren">(</span><em>tree_length=None</em>, <em>strategy='balanced'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.convert_to_ultrametric" title="Permalink to this definition">¶</a></dt>
+<dd><p>Converts a tree into ultrametric topology (all leaves must have
+the same distance to root). Note that, for visual inspection
+of ultrametric trees, node.img_style[“size”] should be set to
+0.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.copy">
+<code class="descname">copy</code><span class="sig-paren">(</span><em>method='cpickle'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.copy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a copy of the current node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Variables:</th><td class="field-body"><strong>method</strong> (<em>cpickle</em>) – Protocol used to copy the node</td>
+</tr>
+</tbody>
+</table>
+<p>structure. The following values are accepted:</p>
+<blockquote>
+<div><ul class="simple">
+<li>“newick”: Tree topology, node names, branch lengths and
+branch support values will be copied by as represented in
+the newick string (copy by newick string serialisation).</li>
+<li>“newick-extended”: Tree topology and all node features
+will be copied based on the extended newick format
+representation. Only node features will be copied, thus
+excluding other node attributes. As this method is also
+based on newick serialisation, features will be converted
+into text strings when making the copy.</li>
+<li>“cpickle”: The whole node structure and its content is
+cloned based on cPickle object serialisation (slower, but
+recommended for full tree copying)</li>
+<li>“deepcopy”: The whole node structure and its content is
+copied based on the standard “copy” Python functionality
+(this is the slowest method but it allows to copy complex
+objects even if attributes point to lambda functions,
+etc.)</li>
+</ul>
+</div></blockquote>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.del_feature">
+<code class="descname">del_feature</code><span class="sig-paren">(</span><em>pr_name</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.del_feature" title="Permalink to this definition">¶</a></dt>
+<dd><p>Permanently deletes a node’s feature.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.delete">
+<code class="descname">delete</code><span class="sig-paren">(</span><em>prevent_nondicotomic=True</em>, <em>preserve_branch_length=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.delete" title="Permalink to this definition">¶</a></dt>
+<dd><p>Deletes node from the tree structure. Notice that this method
+makes ‘disappear’ the node from the tree structure. This means
+that children from the deleted node are transferred to the
+next available parent.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>prevent_nondicotomic</strong> (<em>True</em>) – When True (default), delete</td>
+</tr>
+</tbody>
+</table>
+<p>function will be execute recursively to prevent single-child
+nodes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>preserve_branch_length</strong> (<em>False</em>) – If True, branch lengths</td>
+</tr>
+</tbody>
+</table>
+<p>of the deleted nodes are transferred (summed up) to its
+parent’s branch, thus keeping original distances among nodes.</p>
+<p><strong>Example:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre>      / C
+root-|
+     |        / B
+      \--- H |
+              \ A
+
+> H.delete() will produce this structure:
+
+      / C
+     |
+root-|--B
+     |
+      \ A
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.describe">
+<code class="descname">describe</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.describe" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prints general information about this node and its
+connections.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.detach">
+<code class="descname">detach</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.detach" title="Permalink to this definition">¶</a></dt>
+<dd><p>Detachs this node (and all its descendants) from its parent
+and returns the referent to itself.</p>
+<p>Detached node conserves all its structure of descendants, and can
+be attached to another node through the ‘add_child’ function. This
+mechanism can be seen as a cut and paste.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.TreeNode.dist">
+<code class="descname">dist</code><a class="headerlink" href="#ete3.TreeNode.dist" title="Permalink to this definition">¶</a></dt>
+<dd><p>Branch length distance to parent node. Default = 0.0</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.expand_polytomies">
+<code class="descname">expand_polytomies</code><span class="sig-paren">(</span><em>map_attr='name'</em>, <em>polytomy_size_limit=5</em>, <em>skip_large_polytomies=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.expand_polytomies" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>Given a tree with one or more polytomies, this functions returns the
+list of all trees (in newick format) resulting from the combination of
+all possible solutions of the multifurcated nodes.</p>
+<p><a class="reference external" href="http://ajmonline.org/2010/darwin.php">http://ajmonline.org/2010/darwin.php</a></p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="ete3.TreeNode.from_parent_child_table">
+<em class="property">static </em><code class="descname">from_parent_child_table</code><span class="sig-paren">(</span><em>parent_child_table</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.from_parent_child_table" title="Permalink to this definition">¶</a></dt>
+<dd><p>Converts a parent-child table into an ETE Tree instance.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>parent_child_table</strong> – a list of tuples containing parent-child
+relationsships. For example: [(“A”, “B”, 0.1), (“A”, “C”, 0.2), (“C”,
+“D”, 1), (“C”, “E”, 1.5)]. Where each tuple represents: [parent, child,
+child-parent-dist]</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A new Tree instance</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Example:</th><td class="field-body"></td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">tree</span> <span class="o">=</span> <span class="n">Tree</span><span class="o">.</span><span class="n">from_parent_child_table</span><span class="p">([(</span><span class="s">"A"</span><span class="p">,</span> <span class="s">"B"</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">),</span> <span class="p">(</span><span class="s">" [...]
+<span class="gp">>>> </span><span class="k">print</span> <span class="n">tree</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="ete3.TreeNode.from_skbio">
+<em class="property">static </em><code class="descname">from_skbio</code><span class="sig-paren">(</span><em>skbio_tree</em>, <em>map_attributes=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.from_skbio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Converts a scikit-bio TreeNode object into ETE Tree object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>skbio_tree</strong> – a scikit bio TreeNode instance</li>
+<li><strong>map_attributes</strong> (<em>None</em>) – A list of attribute nanes in the
+scikit-bio tree that should be mapped into the ETE tree
+instance. (name, id and branch length are always mapped)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A new Tree instance</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Example:</th><td class="field-body"></td>
+</tr>
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">tree</span> <span class="o">=</span> <span class="n">Tree</span><span class="o">.</span><span class="n">from_skibio</span><span class="p">(</span><span class="n">skbioTree</span><span class="p">,</span> <span class="n">map_attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"value"</span><span class="p">])</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_ancestors">
+<code class="descname">get_ancestors</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_ancestors" title="Permalink to this definition">¶</a></dt>
+<dd><p>versionadded: 2.2</p>
+<p>Returns the list of all ancestor nodes from current node to
+the current tree root.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_ascii">
+<code class="descname">get_ascii</code><span class="sig-paren">(</span><em>show_internal=True</em>, <em>compact=False</em>, <em>attributes=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_ascii" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a string containing an ascii drawing of the tree.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>show_internal</strong> – includes internal edge names.</li>
+<li><strong>compact</strong> – use exactly one line per tip.</li>
+<li><strong>attributes</strong> – A list of node attributes to shown in the
+ASCII representation.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_cached_content">
+<code class="descname">get_cached_content</code><span class="sig-paren">(</span><em>store_attr=None</em>, <em>container_type=<type 'set'></em>, <em>_store=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_cached_content" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a dictionary pointing to the preloaded content of each
+internal node under this tree. Such a dictionary is intended
+to work as a cache for operations that require many traversal
+operations.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>store_attr</strong> (<em>None</em>) – Specifies the node attribute that</td>
+</tr>
+</tbody>
+</table>
+<p>should be cached (i.e. name, distance, etc.). When none, the
+whole node instance is cached.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>_store</strong> – (internal use)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_children">
+<code class="descname">get_children</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_children" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an independent list of node’s children.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_closest_leaf">
+<code class="descname">get_closest_leaf</code><span class="sig-paren">(</span><em>topology_only=False</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_closest_leaf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns node’s closest descendant leaf and the distance to
+it.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>topology_only</strong> (<em>False</em>) – If set to True, distance
+between nodes will be referred to the number of nodes
+between them. In other words, topological distance will be
+used instead of branch length distances.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A tuple containing the closest leaf referred to the
+current node and the distance to it.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_common_ancestor">
+<code class="descname">get_common_ancestor</code><span class="sig-paren">(</span><em>*target_nodes</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_common_ancestor" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the first common ancestor between this node and a given
+list of ‘target_nodes’.</p>
+<p><strong>Examples:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">Tree</span><span class="p">(</span><span class="s">"(((A:0.1, B:0.01):0.001, C:0.0001):1.0[&&NHX:name=common], (D:0.00001):0.000001):2.0[&&NHX:name=root];"</span><span class="p">)</span>
+<span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_descendants_by_name</span><span class="p">(</span><span class="s">"A"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="n">C</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_descendants_by_name</span><span class="p">(</span><span class="s">"C"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="n">common</span> <span class="o">=</span>  <span class="n">A</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="n">C</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">common</span><span class="o">.</span><span class="n">name</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_descendants">
+<code class="descname">get_descendants</code><span class="sig-paren">(</span><em>strategy='levelorder'</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_descendants" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a list of all (leaves and internal) descendant nodes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_distance">
+<code class="descname">get_distance</code><span class="sig-paren">(</span><em>target</em>, <em>target2=None</em>, <em>topology_only=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_distance" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the distance between two nodes. If only one target is
+specified, it returns the distance bewtween the target and the
+current node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>target</strong> – a node within the same tree structure.</li>
+<li><strong>target2</strong> – a node within the same tree structure. If
+not specified, current node is used as target2.</li>
+<li><strong>topology_only</strong> (<em>False</em>) – If set to True, distance will
+refer to the number of nodes between target and target2.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">branch length distance between target and
+target2. If topology_only flag is True, returns the number
+of nodes between target and target2.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_edges">
+<code class="descname">get_edges</code><span class="sig-paren">(</span><em>cached_content=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_edges" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>Returns the list of edges of a tree. Each egde is represented as a
+tuple of two elements, each containing the list of nodes separated by
+the edge.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_farthest_leaf">
+<code class="descname">get_farthest_leaf</code><span class="sig-paren">(</span><em>topology_only=False</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_farthest_leaf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns node’s farthest descendant node (which is always a leaf), and the
+distance to it.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>topology_only</strong> (<em>False</em>) – If set to True, distance
+between nodes will be referred to the number of nodes
+between them. In other words, topological distance will be
+used instead of branch length distances.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A tuple containing the farthest leaf referred to the
+current node and the distance to it.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_farthest_node">
+<code class="descname">get_farthest_node</code><span class="sig-paren">(</span><em>topology_only=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_farthest_node" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the node’s farthest descendant or ancestor node, and the
+distance to it.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>topology_only</strong> (<em>False</em>) – If set to True, distance
+between nodes will be referred to the number of nodes
+between them. In other words, topological distance will be
+used instead of branch length distances.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A tuple containing the farthest node referred to the
+current node and the distance to it.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_leaf_names">
+<code class="descname">get_leaf_names</code><span class="sig-paren">(</span><em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_leaf_names" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of terminal node names under the current
+node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_leaves">
+<code class="descname">get_leaves</code><span class="sig-paren">(</span><em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_leaves" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of terminal nodes (leaves) under this node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_leaves_by_name">
+<code class="descname">get_leaves_by_name</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_leaves_by_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a list of leaf nodes matching a given name.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_midpoint_outgroup">
+<code class="descname">get_midpoint_outgroup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_midpoint_outgroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the node that divides the current tree into two distance-balanced
+partitions.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_monophyletic">
+<code class="descname">get_monophyletic</code><span class="sig-paren">(</span><em>values</em>, <em>target_attr</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_monophyletic" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.2.</span></p>
+</div>
+<p>Returns a list of nodes matching the provided monophyly
+criteria. For a node to be considered a match, all
+<cite>target_attr</cite> values within and node, and exclusively them,
+should be grouped.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>values</strong> – a set of values for which monophyly is
+expected.</li>
+<li><strong>target_attr</strong> – node attribute being used to check
+monophyly (i.e. species for species trees, names for gene
+family trees).</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_sisters">
+<code class="descname">get_sisters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_sisters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an indepent list of sister nodes.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_topology_id">
+<code class="descname">get_topology_id</code><span class="sig-paren">(</span><em>attr='name'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_topology_id" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>Returns the unique ID representing the topology of the current tree. Two
+trees with the same topology will produce the same id. If trees are
+unrooted, make sure that the root node is not binary or use the
+tree.unroot() function before generating the topology id.</p>
+<p>This is useful to detect the number of unique topologies over a bunch of
+trees, without requiring full distance methods.</p>
+<p>The id is, by default, calculated based on the terminal node’s names. Any
+other node attribute could be used instead.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.get_tree_root">
+<code class="descname">get_tree_root</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.get_tree_root" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the absolute root node of current tree structure.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.TreeNode.img_style">
+<code class="descname">img_style</code><a class="headerlink" href="#ete3.TreeNode.img_style" title="Permalink to this definition">¶</a></dt>
+<dd><p>Branch length distance to parent node. Default = 0.0</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.is_leaf">
+<code class="descname">is_leaf</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.is_leaf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return True if current node is a leaf.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.is_root">
+<code class="descname">is_root</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.is_root" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if current node has no parent</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_ancestors">
+<code class="descname">iter_ancestors</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_ancestors" title="Permalink to this definition">¶</a></dt>
+<dd><p>versionadded: 2.2</p>
+<p>Iterates over the list of all ancestor nodes from current node
+to the current tree root.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_descendants">
+<code class="descname">iter_descendants</code><span class="sig-paren">(</span><em>strategy='levelorder'</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_descendants" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over all descendant nodes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_edges">
+<code class="descname">iter_edges</code><span class="sig-paren">(</span><em>cached_content=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_edges" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>Iterate over the list of edges of a tree. Each egde is represented as a
+tuple of two elements, each containing the list of nodes separated by
+the edge.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_leaf_names">
+<code class="descname">iter_leaf_names</code><span class="sig-paren">(</span><em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_leaf_names" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over the leaf names under this node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_leaves">
+<code class="descname">iter_leaves</code><span class="sig-paren">(</span><em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_leaves" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator over the leaves under this node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>is_leaf_fn</strong> (<em>None</em>) – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_prepostorder">
+<code class="descname">iter_prepostorder</code><span class="sig-paren">(</span><em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_prepostorder" title="Permalink to this definition">¶</a></dt>
+<dd><p>Iterate over all nodes in a tree yielding every node in both
+pre and post order. Each iteration returns a postorder flag
+(True if node is being visited in postorder) and a node
+instance.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.iter_search_nodes">
+<code class="descname">iter_search_nodes</code><span class="sig-paren">(</span><em>**conditions</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.iter_search_nodes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Search nodes in an interative way. Matches are being yield as
+they are being found. This avoids to scan the full tree
+topology before returning the first matches. Useful when
+dealing with huge trees.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.ladderize">
+<code class="descname">ladderize</code><span class="sig-paren">(</span><em>direction=0</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.ladderize" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sort the branches of a given tree (swapping children nodes)
+according to the size of each partition.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span> <span class="o">=</span>  <span class="n">Tree</span><span class="p">(</span><span class="s">"(f,((d, ((a,b),c)),e));"</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#</span>
+<span class="c">#      /-f</span>
+<span class="c">#     |</span>
+<span class="c">#     |          /-d</span>
+<span class="c"># ----|         |</span>
+<span class="c">#     |     /---|          /-a</span>
+<span class="c">#     |    |    |     /---|</span>
+<span class="c">#     |    |     \---|     \-b</span>
+<span class="c">#      \---|         |</span>
+<span class="c">#          |          \-c</span>
+<span class="c">#          |</span>
+<span class="c">#           \-e</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">ladderize</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#      /-f</span>
+<span class="c"># ----|</span>
+<span class="c">#     |     /-e</span>
+<span class="c">#      \---|</span>
+<span class="c">#          |     /-d</span>
+<span class="c">#           \---|</span>
+<span class="c">#               |     /-c</span>
+<span class="c">#                \---|</span>
+<span class="c">#                    |     /-a</span>
+<span class="c">#                     \---|</span>
+<span class="c">#                          \-b</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.populate">
+<code class="descname">populate</code><span class="sig-paren">(</span><em>size</em>, <em>names_library=None</em>, <em>reuse_names=False</em>, <em>random_branches=False</em>, <em>branch_range=(0</em>, <em>1)</em>, <em>support_range=(0</em>, <em>1)</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.populate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates a random topology by populating current node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>names_library</strong> (<em>None</em>) – If provided, names library
+(list, set, dict, etc.) will be used to name nodes.</li>
+<li><strong>reuse_names</strong> (<em>False</em>) – If True, node names will not be
+necessarily unique, which makes the process a bit more
+efficient.</li>
+<li><strong>random_branches</strong> (<em>False</em>) – If True, branch distances and support
+values will be randomized.</li>
+<li><strong>branch_range</strong> (<em>(0,1)</em>) – If random_branches is True, this</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>range of values will be used to generate random distances.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>support_range</strong> (<em>(0,1)</em>) – If random_branches is True,</td>
+</tr>
+</tbody>
+</table>
+<p>this range of values will be used to generate random branch
+support values.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.prune">
+<code class="descname">prune</code><span class="sig-paren">(</span><em>nodes</em>, <em>preserve_branch_length=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.prune" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prunes the topology of a node to conserve only the selected list of leaf
+internal nodes. The minimum number of nodes that conserve the
+topological relationships among the requested nodes will be
+retained. Root node is always conserved.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Variables:</th><td class="field-body"><strong>nodes</strong> – a list of node names or node objects that should be retained</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><strong>preserve_branch_length</strong> (<em>False</em>) – If True, branch lengths</td>
+</tr>
+</tbody>
+</table>
+<p>of the deleted nodes are transferred (summed up) to its
+parent’s branch, thus keeping original distances among nodes.</p>
+<p><strong>Examples:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((((A,B)C)D,E)F,G)H,(I,J)K)root;'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="n">t1</span><span class="o">.</span><span class="n">prune</span><span class="p">([</span><span class="s">'A'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">])</span>
+
+
+<span class="c">#                /-A</span>
+<span class="c">#          /D /C|</span>
+<span class="c">#       /F|      \-B</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /H|   \-E</span>
+<span class="c">#   |  |                        /-A</span>
+<span class="c">#-root  \-G                 -root</span>
+<span class="c">#   |                           \-B</span>
+<span class="c">#   |   /-I</span>
+<span class="c">#    \K|</span>
+<span class="c">#       \-J</span>
+
+
+
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((((A,B)C)D,E)F,G)H,(I,J)K)root;'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="n">t1</span><span class="o">.</span><span class="n">prune</span><span class="p">([</span><span class="s">'A'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">,</span> <span class="s">'C'</span><span class="p">])</span>
+
+<span class="c">#                /-A</span>
+<span class="c">#          /D /C|</span>
+<span class="c">#       /F|      \-B</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /H|   \-E</span>
+<span class="c">#   |  |                              /-A</span>
+<span class="c">#-root  \-G                  -root- C|</span>
+<span class="c">#   |                                 \-B</span>
+<span class="c">#   |   /-I</span>
+<span class="c">#    \K|</span>
+<span class="c">#       \-J</span>
+
+
+
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((((A,B)C)D,E)F,G)H,(I,J)K)root;'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="n">t1</span><span class="o">.</span><span class="n">prune</span><span class="p">([</span><span class="s">'A'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">,</span> <span class="s">'I'</span><span class="p">])</span>
+
+
+<span class="c">#                /-A</span>
+<span class="c">#          /D /C|</span>
+<span class="c">#       /F|      \-B</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /H|   \-E                    /-I</span>
+<span class="c">#   |  |                      -root</span>
+<span class="c">#-root  \-G                      |   /-A</span>
+<span class="c">#   |                             \C|</span>
+<span class="c">#   |   /-I                          \-B</span>
+<span class="c">#    \K|</span>
+<span class="c">#       \-J</span>
+
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((((A,B)C)D,E)F,G)H,(I,J)K)root;'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="n">t1</span><span class="o">.</span><span class="n">prune</span><span class="p">([</span><span class="s">'A'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">,</span> <span class="s">'F'</span><span class="p">,</span> <span class="s">'H'</span><span class="p">])</span>
+
+<span class="c">#                /-A</span>
+<span class="c">#          /D /C|</span>
+<span class="c">#       /F|      \-B</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /H|   \-E</span>
+<span class="c">#   |  |                              /-A</span>
+<span class="c">#-root  \-G                -root-H /F|</span>
+<span class="c">#   |                                 \-B</span>
+<span class="c">#   |   /-I</span>
+<span class="c">#    \K|</span>
+<span class="c">#       \-J</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.remove_child">
+<code class="descname">remove_child</code><span class="sig-paren">(</span><em>child</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.remove_child" title="Permalink to this definition">¶</a></dt>
+<dd><p>Removes a child from this node (parent and child
+nodes still exit but are no longer connected).</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.remove_sister">
+<code class="descname">remove_sister</code><span class="sig-paren">(</span><em>sister=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.remove_sister" title="Permalink to this definition">¶</a></dt>
+<dd><p>Removes a sister node. It has the same effect as
+<strong>`TreeNode.up.remove_child(sister)`</strong></p>
+<p>If a sister node is not supplied, the first sister will be deleted
+and returned.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sister</strong> – A node instance</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The node removed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.render">
+<code class="descname">render</code><span class="sig-paren">(</span><em>file_name</em>, <em>layout=None</em>, <em>w=None</em>, <em>h=None</em>, <em>tree_style=None</em>, <em>units='px'</em>, <em>dpi=90</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.render" title="Permalink to this definition">¶</a></dt>
+<dd><p>Renders the node structure as an image.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Variables:</th><td class="field-body"><ul class="first last simple">
+<li><strong>file_name</strong> – path to the output image file. valid
+extensions are .SVG, .PDF, .PNG</li>
+<li><strong>layout</strong> – a layout function or a valid layout function name</li>
+<li><strong>tree_style</strong> – a <cite>TreeStyle</cite> instance containing the image
+properties</li>
+<li><strong>units</strong> (<em>px</em>) – “px”: pixels, “mm”: millimeters, “in”: inches</li>
+<li><strong>h</strong> (<em>None</em>) – height of the image in <code class="xref py py-attr docutils literal"><span class="pre">units</span></code></li>
+<li><strong>w</strong> (<em>None</em>) – width of the image in <code class="xref py py-attr docutils literal"><span class="pre">units</span></code></li>
+<li><strong>dpi</strong> (<em>300</em>) – dots per inches.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.resolve_polytomy">
+<code class="descname">resolve_polytomy</code><span class="sig-paren">(</span><em>default_dist=0.0</em>, <em>default_support=0.0</em>, <em>recursive=True</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.resolve_polytomy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Resolve all polytomies under current node by creating an
+arbitrary dicotomic structure among the affected nodes. This
+function randomly modifies current tree topology and should
+only be used for compatibility reasons (i.e. programs
+rejecting multifurcated node in the newick representation).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>default_dist</strong> (<em>0.0</em>) – artificial branch distance of new
+nodes.</li>
+<li><strong>default_support</strong> (<em>0.0</em>) – artificial branch support of new
+nodes.</li>
+<li><strong>recursive</strong> (<em>True</em>) – Resolve any polytomy under this
+node. When False, only current node will be checked and fixed.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.robinson_foulds">
+<code class="descname">robinson_foulds</code><span class="sig-paren">(</span><em>t2</em>, <em>attr_t1='name'</em>, <em>attr_t2='name'</em>, <em>unrooted_trees=False</em>, <em>expand_polytomies=False</em>, <em>polytomy_size_limit=5</em>, <em>skip_large_polytomies=False</em>, <em>correct_by_polytomy_size=False</em>, <em>min_support_t1=0.0</em>, <em>min_support_t2=0.0</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.robinson_foulds" title="Permalink to this def [...]
+<dd><p>Returns the Robinson-Foulds symmetric distance between current
+tree and a different tree instance.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>t2</strong> – reference tree</li>
+<li><strong>attr_t1</strong> (<em>name</em>) – Compare trees using a custom node
+attribute as a node name.</li>
+<li><strong>attr_t2</strong> (<em>False</em>) – Compare trees using a custom node
+attribute as a node name in target tree.</li>
+<li><strong>attr_t2</strong> – If True, consider trees as unrooted.</li>
+<li><strong>expand_polytomies</strong> (<em>False</em>) – If True, all polytomies in the reference
+and target tree will be expanded into all possible binary
+trees. Robinson-foulds distance will be calculated between all
+tree combinations and the minimum value will be returned.
+See also, <code class="xref py py-func docutils literal"><span class="pre">NodeTree.expand_polytomy()</span></code>.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">(rf, rf_max, common_attrs, names, edges_t1, edges_t2,  discarded_edges_t1, discarded_edges_t2)</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.search_nodes">
+<code class="descname">search_nodes</code><span class="sig-paren">(</span><em>**conditions</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.search_nodes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the list of nodes matching a given set of conditions.</p>
+<p><strong>Example:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">dist</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s">"human"</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.set_outgroup">
+<code class="descname">set_outgroup</code><span class="sig-paren">(</span><em>outgroup</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.set_outgroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets a descendant node as the outgroup of a tree.  This function
+can be used to root a tree or even an internal node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>outgroup</strong> – a node instance within the same tree
+structure that will be used as a basal node.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.set_style">
+<code class="descname">set_style</code><span class="sig-paren">(</span><em>node_style</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.set_style" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set ‘node_style’ as the fixed style for the current node.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.show">
+<code class="descname">show</code><span class="sig-paren">(</span><em>layout=None</em>, <em>tree_style=None</em>, <em>name='ETE'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.show" title="Permalink to this definition">¶</a></dt>
+<dd><p>Starts an interative session to visualize current node
+structure using provided layout and TreeStyle.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.sort_descendants">
+<code class="descname">sort_descendants</code><span class="sig-paren">(</span><em>attr='name'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.sort_descendants" title="Permalink to this definition">¶</a></dt>
+<dd><p>This function sort the branches of a given tree by
+considerening node names. After the tree is sorted, nodes are
+labeled using ascendent numbers.  This can be used to ensure
+that nodes in a tree with the same node names are always
+labeled in the same way. Note that if duplicated names are
+present, extra criteria should be added to sort nodes.</p>
+<p>Unique id is stored as a node._nid attribute</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.standardize">
+<code class="descname">standardize</code><span class="sig-paren">(</span><em>delete_orphan=True</em>, <em>preserve_branch_length=True</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.standardize" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>process current tree structure to produce a standardized topology: nodes
+with only one child are removed and multifurcations are automatically resolved.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.TreeNode.support">
+<code class="descname">support</code><a class="headerlink" href="#ete3.TreeNode.support" title="Permalink to this definition">¶</a></dt>
+<dd><p>Branch support for current node</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.swap_children">
+<code class="descname">swap_children</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.swap_children" title="Permalink to this definition">¶</a></dt>
+<dd><p>Swaps current children order.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.traverse">
+<code class="descname">traverse</code><span class="sig-paren">(</span><em>strategy='levelorder'</em>, <em>is_leaf_fn=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.traverse" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns an iterator to traverse the tree structure under this
+node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>strategy</strong> (<em>“levelorder”</em>) – set the way in which tree
+will be traversed. Possible values are: “preorder” (first
+parent and then children) ‘postorder’ (first children and
+the parent) and “levelorder” (nodes are visited in order
+from root to leaves)</li>
+<li><strong>is_leaf_fn</strong> (<em>None</em>) – If supplied, <code class="docutils literal"><span class="pre">is_leaf_fn</span></code>
+function will be used to interrogate nodes about if they
+are terminal or internal. <code class="docutils literal"><span class="pre">is_leaf_fn</span></code> function should
+receive a node instance as first argument and return True
+or False. Use this argument to traverse a tree by
+dynamically collapsing internal nodes matching
+<code class="docutils literal"><span class="pre">is_leaf_fn</span></code>.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.unroot">
+<code class="descname">unroot</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.unroot" title="Permalink to this definition">¶</a></dt>
+<dd><p>Unroots current node. This function is expected to be used on
+the absolute tree root node, but it can be also be applied to
+any other internal node. It will convert a split into a
+multifurcation.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.TreeNode.up">
+<code class="descname">up</code><a class="headerlink" href="#ete3.TreeNode.up" title="Permalink to this definition">¶</a></dt>
+<dd><p>Pointer to parent node</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.TreeNode.write">
+<code class="descname">write</code><span class="sig-paren">(</span><em>features=None</em>, <em>outfile=None</em>, <em>format=0</em>, <em>is_leaf_fn=None</em>, <em>format_root_node=False</em>, <em>dist_formatter=None</em>, <em>support_formatter=None</em>, <em>name_formatter=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeNode.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the newick representation of current node. Several
+arguments control the way in which extra data is shown for
+every node:</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>features</strong> – a list of feature names to be exported
+using the Extended Newick Format (i.e. features=[“name”,
+“dist”]). Use an empty list to export all available features
+in each node (features=[])</li>
+<li><strong>outfile</strong> – writes the output to a given file</li>
+<li><strong>format</strong> – defines the newick standard used to encode the
+tree. See tutorial for details.</li>
+<li><strong>format_root_node</strong> (<em>False</em>) – If True, it allows features
+and branch information from root node to be exported as a
+part of the newick text string. For newick compatibility
+reasons, this is False by default.</li>
+<li><strong>is_leaf_fn</strong> – See <a class="reference internal" href="#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> for
+documentation.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Example:</strong></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span><span class="o">.</span><span class="n">get_newick</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"species"</span><span class="p">,</span><span class="s">"name"</span><span class="p">],</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="attribute">
+<dt id="ete3.Tree">
+<code class="descname">Tree</code><a class="headerlink" href="#ete3.Tree" title="Permalink to this definition">¶</a></dt>
+<dd><p>alias of <a class="reference internal" href="#ete3.TreeNode" title="ete3.TreeNode"><code class="xref py py-class docutils literal"><span class="pre">TreeNode</span></code></a></p>
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_treeview.html" class="btn btn-neutral float-right" title="Treeview module" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="index.html" class="btn btn-neutral" title="ETE’s Reference Guide" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_treeview.html b/doc/reference/reference_treeview.html
new file mode 100644
index 0000000..92ec908
--- /dev/null
+++ b/doc/reference/reference_treeview.html
@@ -0,0 +1,995 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Treeview module — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="PhyloTree class" href="reference_phylo.html"/>
+        <link rel="prev" title="Master Tree class" href="reference_tree.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Treeview module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#treestyle">TreeStyle</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#nodestyle">NodeStyle</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#faces">Faces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#color-names">Color names</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_webplugin.html">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>Treeview module</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_treeview.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.treeview"></span><div class="section" id="treeview-module">
+<h1><a class="toc-backref" href="#id1">Treeview module</a><a class="headerlink" href="#treeview-module" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#treeview-module" id="id1">Treeview module</a><ul>
+<li><a class="reference internal" href="#treestyle" id="id2">TreeStyle</a></li>
+<li><a class="reference internal" href="#nodestyle" id="id3">NodeStyle</a></li>
+<li><a class="reference internal" href="#faces" id="id4">Faces</a></li>
+<li><a class="reference internal" href="#color-names" id="id5">Color names</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="treestyle">
+<h2><a class="toc-backref" href="#id2">TreeStyle</a><a class="headerlink" href="#treestyle" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="ete3.TreeStyle">
+<em class="property">class </em><code class="descname">TreeStyle</code><a class="headerlink" href="#ete3.TreeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Contains all the general image properties used to render a tree</p>
+<p><strong>– About tree design –</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>layout_fn</strong> (<em>None</em>) – Layout function used to dynamically control
+the aspect of nodes. Valid values are: None or a pointer to a method,
+function, etc.</td>
+</tr>
+</tbody>
+</table>
+<p><strong>– About tree shape –</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>mode</strong> (<em>“r”</em>) – Valid modes are ‘c’(ircular)  or ‘r’(ectangular).</li>
+<li><strong>orientation</strong> (<em>0</em>) – If 0, tree is drawn from left-to-right. If
+1, tree is drawn from right-to-left. This property only makes
+sense when “r” mode is used.</li>
+<li><strong>rotation</strong> (<em>0</em>) – Tree figure will be rotate X degrees (clock-wise
+rotation).</li>
+<li><strong>min_leaf_separation</strong> (<em>1</em>) – Min separation, in pixels, between
+two adjacent branches</li>
+<li><strong>branch_vertical_margin</strong> (<em>0</em>) – Leaf branch separation margin, in
+pixels. This will add a separation of X pixels between adjacent
+leaf branches. In practice, increasing this value work as
+increasing Y axis scale.</li>
+<li><strong>arc_start</strong> (<em>0</em>) – When circular trees are drawn, this defines the
+starting angle (in degrees) from which leaves are distributed
+(clock-wise) around the total arc span (0 = 3 o’clock).</li>
+<li><strong>arc_span</strong> (<em>359</em>) – Total arc used to draw circular trees (in
+degrees).</li>
+<li><strong>margin_left</strong> (<em>0</em>) – Left tree image margin, in pixels.</li>
+<li><strong>margin_right</strong> (<em>0</em>) – Right tree image margin, in pixels.</li>
+<li><strong>margin_top</strong> (<em>0</em>) – Top tree image margin, in pixels.</li>
+<li><strong>margin_bottom</strong> (<em>0</em>) – Bottom tree image margin, in pixels.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>– About Tree branches –</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>scale</strong> (<em>None</em>) – Scale used to draw branch lengths. If None, it will
+be automatically calculated.</li>
+<li><strong>optimal_scale_level</strong> (<em>“mid”</em>) – Two levels of automatic branch
+scale detection are available: <code class="xref py py-attr docutils literal"><span class="pre">"mid"</span></code> and
+<code class="xref py py-attr docutils literal"><span class="pre">"full"</span></code>. In <code class="xref py py-attr docutils literal"><span class="pre">full</span></code> mode, branch scale will me
+adjusted to fully avoid dotted lines in the tree image. In other
+words, scale will be increased until the extra space necessary
+to allocated all branch-top/bottom faces and branch-right faces
+(in circular mode) is covered by real branches. Note, however,
+that the optimal scale in trees with very unbalanced branch
+lengths might be huge. If <code class="xref py py-attr docutils literal"><span class="pre">"mid"</span></code> mode is selected (as it is by default),
+optimal scale will only satisfy the space necessary to allocate
+branch-right faces in circular trees. Some dotted lines
+(artificial branch offsets) will still appear when
+branch-top/bottom faces are larger than branch length. Note that
+both options apply only when <code class="xref py py-attr docutils literal"><span class="pre">scale</span></code> is set to None
+(automatic).</li>
+<li><strong>root_opening_factor</strong> (<em>0.25</em>) – (from 0 to 1). It defines how much the center of
+a circular tree could be opened when adjusting optimal scale, referred
+to the total tree length. By default (0.25), a blank space up to 4
+times smaller than the tree width could be used to calculate the
+optimal tree scale. A 0 value would mean that root node should
+always be tightly adjusted to the center of the tree.</li>
+<li><strong>complete_branch_lines_when_necessary</strong> (<em>True</em>) – True or False.
+Draws an extra line (dotted by default) to complete branch lengths when the space to cover is larger than the branch itself.</li>
+<li><strong>extra_branch_line_type</strong> (<em>2</em>) – 0=solid, 1=dashed, 2=dotted</li>
+<li><strong>extra_branch_line_color</strong> (<em>“gray”</em>) – RGB code or name in
+<a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>force_topology</strong> (<em>False</em>) – Convert tree branches to a fixed length, thus allowing to
+observe the topology of tight nodes</li>
+<li><strong>draw_guiding_lines</strong> (<em>False</em>) – Draw guidelines from leaf nodes
+to aligned faces</li>
+<li><strong>guiding_lines_type</strong> (<em>2</em>) – 0=solid, 1=dashed, 2=dotted.</li>
+<li><strong>guiding_lines_color</strong> (<em>“gray”</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>– About node faces –</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>allow_face_overlap</strong> (<em>False</em>) – If True, node faces are not taken
+into account to scale circular tree images, just like many other
+visualization programs. Overlapping among branch elements (such
+as node labels) will be therefore ignored, and tree size
+will be a lot smaller. Note that in most cases, manual setting
+of tree scale will be also necessary.</li>
+<li><strong>draw_aligned_faces_as_table</strong> (<em>True</em>) – Aligned faces will be
+drawn as a table, considering all columns in all node faces.</li>
+<li><strong>children_faces_on_top</strong> (<em>True</em>) – When floating faces from
+different nodes overlap, children faces are drawn on top of
+parent faces. This can be reversed by setting this attribute
+to false.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>– Addons –</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>show_border</strong> (<em>False</em>) – Draw a border around the whole tree</li>
+<li><strong>show_scale</strong> (<em>True</em>) – Include the scale legend in the tree
+image</li>
+<li><strong>show_leaf_name</strong> (<em>False</em>) – Automatically adds a text Face to
+leaf nodes showing their names</li>
+<li><strong>show_branch_length</strong> (<em>False</em>) – Automatically adds branch
+length information on top of branches</li>
+<li><strong>show_branch_support</strong> (<em>False</em>) – Automatically adds branch
+support text in the bottom of tree branches</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>– Tree surroundings –</strong></p>
+<p>The following options are actually Face containers, so graphical
+elements can be added just as it is done with nodes. In example,
+to add tree legend:</p>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre><span class="n">TreeStyle</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">CircleFace</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="s">"red"</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p" [...]
+<span class="n">TreeStyle</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"0.5 support"</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>aligned_header</strong> – a <a class="reference internal" href="#ete3.FaceContainer" title="ete3.FaceContainer"><code class="xref py py-class docutils literal"><span class="pre">FaceContainer</span></code></a> aligned to the end
+of the tree and placed at the top part.</li>
+<li><strong>aligned_foot</strong> – a <a class="reference internal" href="#ete3.FaceContainer" title="ete3.FaceContainer"><code class="xref py py-class docutils literal"><span class="pre">FaceContainer</span></code></a> aligned to the end
+of the tree and placed at the bottom part.</li>
+<li><strong>legend</strong> – a <a class="reference internal" href="#ete3.FaceContainer" title="ete3.FaceContainer"><code class="xref py py-class docutils literal"><span class="pre">FaceContainer</span></code></a> with an arbitrary number of faces
+representing the legend of the figure.</li>
+<li><strong>legend_position=4</strong> (<em>4</em>) – TopLeft corner if 1, TopRight
+if 2, BottomLeft if 3, BottomRight if 4</li>
+<li><strong>title</strong> – A Face container that can be used as tree title</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.FaceContainer">
+<em class="property">class </em><code class="descname">FaceContainer</code><a class="headerlink" href="#ete3.FaceContainer" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Use this object to create a grid of faces. You can add faces to different columns.</p>
+<dl class="method">
+<dt id="ete3.FaceContainer.add_face">
+<code class="descname">add_face</code><span class="sig-paren">(</span><em>face</em>, <em>column</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.FaceContainer.add_face" title="Permalink to this definition">¶</a></dt>
+<dd><p>add the face <strong>face</strong> to the specified <strong>column</strong></p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="nodestyle">
+<h2><a class="toc-backref" href="#id3">NodeStyle</a><a class="headerlink" href="#nodestyle" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="ete3.NodeStyle">
+<em class="property">class </em><code class="descname">NodeStyle</code><span class="sig-paren">(</span><em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.NodeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>A dictionary with all valid node graphical attributes.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>fgcolor</strong> (<em>#0030c1</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>bgcolor</strong> (<em>#FFFFFF</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>node_bgcolor</strong> (<em>#FFFFFF</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>partition_bgcolor</strong> (<em>#FFFFFF</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>faces_bgcolor</strong> (<em>#FFFFFF</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>vt_line_color</strong> (<em>#000000</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>hz_line_color</strong> (<em>#000000</em>) – RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>hz_line_type</strong> (<em>0</em>) – integer number</li>
+<li><strong>vt_line_type</strong> (<em>0</em>) – integer number</li>
+<li><strong>size</strong> (<em>3</em>) – integer number</li>
+<li><strong>shape</strong> (<em>“circle”</em>) – “circle”, “square” or “sphere”</li>
+<li><strong>draw_descendants</strong> (<em>True</em>) – Mark an internal node as a leaf.</li>
+<li><strong>hz_line_width</strong> (<em>0</em>) – integer number representing the width
+of the line in pixels.  A line width of
+zero indicates a cosmetic pen. This
+means that the pen width is always
+drawn one pixel wide, independent of
+the transformation set on the painter.</li>
+<li><strong>vt_line_width</strong> (<em>0</em>) – integer number representing the width
+of the line in pixels.  A line width of
+zero indicates a cosmetic pen. This
+means that the pen width is always
+drawn one pixel wide, independent of
+the transformation set on the painter.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="faces">
+<h2><a class="toc-backref" href="#id4">Faces</a><a class="headerlink" href="#faces" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="ete3.add_face_to_node">
+<code class="descname">add_face_to_node</code><span class="sig-paren">(</span><em>face</em>, <em>node</em>, <em>column</em>, <em>aligned=False</em>, <em>position='branch-right'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.add_face_to_node" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds a Face to a given node.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>face</strong> – A <code class="xref py py-class docutils literal"><span class="pre">Face</span></code> instance</td>
+</tr>
+</tbody>
+</table>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>node</strong> – a tree node instance (<a class="reference internal" href="reference_tree.html#ete3.Tree" title="ete3.Tree"><code class="xref py py-class docutils literal"><span class="pre">Tree</span></code></a>, <a class="reference internal" href="reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a>, etc.)</li>
+<li><strong>column</strong> – An integer number starting from 0</li>
+<li><strong>position</strong> (<em>“branch-right”</em>) – Possible values are
+“branch-right”, “branch-top”, “branch-bottom”, “float”, “float-behind” and “aligned”.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.Face">
+<em class="property">class </em><code class="descname">Face</code><a class="headerlink" href="#ete3.Face" title="Permalink to this definition">¶</a></dt>
+<dd><p>Base Face object. All Face types (i.e. TextFace, SeqMotifFace,
+etc.) inherit the following options:</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>margin_left</strong> (<em>0</em>) – in pixels</li>
+<li><strong>margin_right</strong> (<em>0</em>) – in pixels</li>
+<li><strong>margin_top</strong> (<em>0</em>) – in pixels</li>
+<li><strong>margin_bottom</strong> (<em>0</em>) – in pixels</li>
+<li><strong>opacity</strong> (<em>1.0</em>) – a float number in the (0,1) range</li>
+<li><strong>rotable</strong> (<em>True</em>) – If True, face will be rotated when necessary
+(i.e. when circular mode is enabled and face occupies an inverted position.)</li>
+<li><strong>hz_align</strong> (<em>0</em>) – 0 left, 1 center, 2 right</li>
+<li><strong>vt_align</strong> (<em>1</em>) – 0 top, 1 center, 2 bottom</li>
+<li><strong>background.color</strong> – background color of face plus all its margins.</li>
+<li><strong>inner_background.color</strong> – background color of the face excluding margins</li>
+<li><strong>border</strong> – Border around face margins.</li>
+<li><strong>inner_border</strong> – Border around face excluding margins.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>border and inner_border sub-parameters:</strong></p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>(inner_)border.type</strong> (<em>0</em>) – 0=solid, 1=dashed, 2=dotted</li>
+<li><strong>(inner_)border.width</strong> (<em>None</em>) – a positive integer number. Zero
+indicates a cosmetic pen. This means that
+the pen width is always drawn one pixel
+wide, independent of the transformation
+set on the painter. A “None” value means
+invisible border.</li>
+<li><strong>(inner_)border.color</strong> (<em>black</em>) – RGB or color name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>See also specific options for each face type.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.TextFace">
+<em class="property">class </em><code class="descname">TextFace</code><span class="sig-paren">(</span><em>text</em>, <em>ftype='Verdana'</em>, <em>fsize=10</em>, <em>fgcolor='black'</em>, <em>penwidth=0</em>, <em>fstyle='normal'</em>, <em>tight_text=False</em>, <em>bold=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TextFace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Static text Face object</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>text</strong> – Text to be drawn</li>
+<li><strong>ftype</strong> – Font type, e.g. Arial, Verdana, Courier</li>
+<li><strong>fsize</strong> – Font size, e.g. 10,12,6, (default=10)</li>
+<li><strong>fgcolor</strong> – Foreground font color. RGB code or color name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>penwidth</strong> – Penwdith used to draw the text.</li>
+<li><strong>fstyle</strong> – “normal” or “italic”</li>
+<li><strong>tight_text</strong> (<em>False</em>) – When False, boundaries of the text are</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>approximated according to general font metrics, producing slightly
+worse aligned text faces but improving the performance of tree
+visualization in scenes with a lot of text faces.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.AttrFace">
+<em class="property">class </em><code class="descname">AttrFace</code><span class="sig-paren">(</span><em>attr</em>, <em>ftype='Verdana'</em>, <em>fsize=10</em>, <em>fgcolor='black'</em>, <em>penwidth=0</em>, <em>text_prefix=''</em>, <em>text_suffix=''</em>, <em>formatter=None</em>, <em>fstyle='normal'</em>, <em>tight_text=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.AttrFace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Dynamic text Face. Text rendered is taken from the value of a
+given node attribute.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>attr</strong> – Node’s attribute that will be drawn as text</li>
+<li><strong>ftype</strong> – Font type, e.g. Arial, Verdana, Courier, (default=”Verdana”)</li>
+<li><strong>fsize</strong> – Font size, e.g. 10,12,6, (default=10)</li>
+<li><strong>fgcolor</strong> – Foreground font color. RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>penwidth</strong> – Penwdith used to draw the text. (default is 0)</li>
+<li><strong>text_prefix</strong> – text_rendered before attribute value</li>
+<li><strong>text_suffix</strong> – text_rendered after attribute value</li>
+<li><strong>formatter</strong> – a text string defining a python formater to
+process the attribute value before renderer. e.g. “%0.2f”</li>
+<li><strong>fstyle</strong> – “normal” or “italic”</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.ImgFace">
+<em class="property">class </em><code class="descname">ImgFace</code><span class="sig-paren">(</span><em>img_file</em>, <em>width=None</em>, <em>height=None</em>, <em>is_url=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ImgFace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a node Face using an external image file.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>img_file</strong> – path to the image file.</li>
+<li><strong>width</strong> (<em>None</em>) – if provided, image will be scaled to this width (in pixels)</li>
+<li><strong>height</strong> (<em>None</em>) – if provided, image will be scaled to this height (in pixels)</li>
+<li><strong>is_url</strong> (<em>False</em>) – if True, img_file is considered a URL and the image is automatically downloaded</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If only one dimension value (width or height) is provided, the other
+will be calculated to keep aspect ratio.</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.CircleFace">
+<em class="property">class </em><code class="descname">CircleFace</code><span class="sig-paren">(</span><em>radius</em>, <em>color</em>, <em>style='circle'</em>, <em>label=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.CircleFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Creates a Circle or Sphere Face.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>radius</strong> – integer number defining the radius of the face</li>
+<li><strong>color</strong> – Color used to fill the circle. RGB code or name in <a class="reference internal" href="#ete3.SVG_COLORS" title="ete3.SVG_COLORS"><code class="xref py py-data docutils literal"><span class="pre">SVG_COLORS</span></code></a></li>
+<li><strong>style</strong> (<em>“circle”</em>) – Valid values are “circle” or “sphere”</li>
+<li><strong>label</strong> – optional text string to annotate the face: Default value is None;</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>label can also be a dict with attributes text, font, color, and fontsize
+color defaults to circle color (because it looks nice with “sphere”),
+font to Verdana, fontsize to 12</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.RectFace">
+<em class="property">class </em><code class="descname">RectFace</code><span class="sig-paren">(</span><em>width</em>, <em>height</em>, <em>fgcolor</em>, <em>bgcolor</em>, <em>label=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.RectFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<p>Creates a Rectangular solid face.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>label</strong> – optional text string to annotate the face: Default value is None;</td>
+</tr>
+</tbody>
+</table>
+<p>label can also be a dict with attributes text, font, color, and fontsize
+color defaults to background color, font to Verdana, fontsize to 12</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.StackedBarFace">
+<em class="property">class </em><code class="descname">StackedBarFace</code><span class="sig-paren">(</span><em>percents</em>, <em>width</em>, <em>height</em>, <em>colors=None</em>, <em>line_color=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.StackedBarFace" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt id="ete3.SequenceFace">
+<em class="property">class </em><code class="descname">SequenceFace</code><span class="sig-paren">(</span><em>seq</em>, <em>seqtype='aa'</em>, <em>fsize=10</em>, <em>fg_colors=None</em>, <em>bg_colors=None</em>, <em>codon=None</em>, <em>col_w=None</em>, <em>alt_col_w=3</em>, <em>special_col=None</em>, <em>interactive=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SequenceFace" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a new molecular sequence face object.
+:param seq: Sequence string to be drawn
+:param seqtype: Type of sequence: “nt” or “aa”
+:param fsize: Font size, (default=10)</p>
+<p>You can set custom colors for amino-acids or nucleotides:</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>codon</strong> (<em>None</em>) – a string that corresponds to the reverse
+translation of the amino-acid sequence</li>
+<li><strong>col_w</strong> (<em>None</em>) – width of the column (if col_w is lower than
+font size, letter wont be displayed)</li>
+<li><strong>fg_colors</strong> (<em>None</em>) – dictionary of colors for foreground, with
+as keys each possible character in sequences, and as value the
+colors</li>
+<li><strong>bg_colors</strong> (<em>None</em>) – dictionary of colors for background, with
+as keys each possible character in sequences, and as value the
+colors</li>
+<li><strong>alt_col_w</strong> (<em>3</em>) – works together with special_col option,
+defines the width of given columns</li>
+<li><strong>special_col</strong> (<em>None</em>) – list of lists containing the bounds
+of columns to be displayed with alt_col_w as width</li>
+<li><strong>interactive</strong> (<em>False</em>) – more info can be displayed when
+mouse over sequence</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="class">
+<dt id="ete3.SequenceFace.InteractiveLetterItem">
+<em class="property">class </em><code class="descname">InteractiveLetterItem</code><span class="sig-paren">(</span><em>*arg</em>, <em>**karg</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SequenceFace.InteractiveLetterItem" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is a class</p>
+<dl class="method">
+<dt id="ete3.SequenceFace.InteractiveLetterItem.hoverEnterEvent">
+<code class="descname">hoverEnterEvent</code><span class="sig-paren">(</span><em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SequenceFace.InteractiveLetterItem.hoverEnterEvent" title="Permalink to this definition">¶</a></dt>
+<dd><p>when mouse is over</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.SequenceFace.InteractiveLetterItem.hoverLeaveEvent">
+<code class="descname">hoverLeaveEvent</code><span class="sig-paren">(</span><em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SequenceFace.InteractiveLetterItem.hoverLeaveEvent" title="Permalink to this definition">¶</a></dt>
+<dd><p>when mouse leaves area</p>
+</dd></dl>
+
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.SeqMotifFace">
+<em class="property">class </em><code class="descname">SeqMotifFace</code><span class="sig-paren">(</span><em>seq=None</em>, <em>motifs=None</em>, <em>seqtype='aa'</em>, <em>gap_format='line'</em>, <em>seq_format='()'</em>, <em>scale_factor=1</em>, <em>height=10</em>, <em>width=10</em>, <em>fgcolor='slategrey'</em>, <em>bgcolor='slategrey'</em>, <em>gapcolor='black'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.SeqMotifFace" title="Permalink to this definition">¶< [...]
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.2.</span></p>
+</div>
+<p>Creates a face based on an amino acid or nucleotide sequence and a
+list of motif regions.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>seq</strong> (<em>None</em>) – a text string containing an aa or nt sequence. If
+not provided, <code class="docutils literal"><span class="pre">seq</span></code> and <code class="docutils literal"><span class="pre">compactseq</span></code> motif modes will not be
+available.</li>
+<li><strong>motifs</strong> (<em>None</em>) – <p>a list of motif regions referred to original
+sequence. Each motif is defined as a list containing the
+following information:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">motifs</span> <span class="o">=</span> <span class="p">[[</span><span class="n">seq</span><span class="o">.</span><span class="n">start</span><span class="p">,</span> <span class="n">seq</span><span class="o">.</span><span class="n">end</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p" [...]
+         <span class="p">[</span><span class="n">seq</span><span class="o">.</span><span class="n">start</span><span class="p">,</span> <span class="n">seq</span><span class="o">.</span><span class="n">end</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">fgcolor</span><span class="p">,</span> <span class="n">bgcolor</span><span clas [...]
+         <span class="o">...</span>
+        <span class="p">]</span>
+</pre></div>
+</div>
+<p>Where:</p>
+<blockquote>
+<div><ul>
+<li><strong>seq.start:</strong> Motif start position referred to the full sequence (1-based)</li>
+<li><strong>seq.end:</strong> Motif end position referred to the full sequence (1-based)</li>
+<li><strong>shape:</strong> Shape used to draw the motif. Available values are:<blockquote>
+<div><ul>
+<li><code class="docutils literal"><span class="pre">o</span></code> = circle or ellipse</li>
+<li><code class="docutils literal"><span class="pre">></span></code>  = triangle (base to the left)</li>
+<li><code class="docutils literal"><span class="pre"><</span></code>  = triangle (base to the left)</li>
+<li><code class="docutils literal"><span class="pre">^</span></code>  = triangle (base at bottom)</li>
+<li><code class="docutils literal"><span class="pre">v</span></code>  = triangle (base on top )</li>
+<li><code class="docutils literal"><span class="pre"><></span></code> = diamond</li>
+<li><code class="docutils literal"><span class="pre">[]</span></code> = rectangle</li>
+<li><code class="docutils literal"><span class="pre">()</span></code> = round corner rectangle</li>
+<li><code class="docutils literal"><span class="pre">line</span></code> = horizontal line</li>
+<li><code class="docutils literal"><span class="pre">blank</span></code> = blank space</li>
+<li><code class="docutils literal"><span class="pre">seq</span></code> = Show a color and the corresponding letter of each sequence position</li>
+<li><code class="docutils literal"><span class="pre">compactseq</span></code> = Show a thinh vertical color line for each sequence position</li>
+</ul>
+</div></blockquote>
+</li>
+<li><strong>width:</strong> total width of the motif (or sequence position width if seq motif type)</li>
+<li><strong>height:</strong> total height of the motif (or sequence position height if seq motif type)</li>
+<li><strong>fgcolor:</strong> color for the motif shape border</li>
+<li><strong>bgcolor:</strong> motif background color. Color code or name can be preceded with the “rgradient:” tag to create a radial gradient effect.</li>
+<li><strong>text_label:</strong> a text label in the format ‘FontType|FontSize|FontColor|Text’, for instance, arial|8|white|MotifName”“</li>
+</ul>
+</div></blockquote>
+</li>
+<li><strong>gap_format</strong> (<em>line</em>) – default shape for the gaps between motifs</li>
+<li><strong>seq_format</strong> (<em>blockseq</em>) – default shape for the seq regions not covered in motifs</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.BarChartFace">
+<em class="property">class </em><code class="descname">BarChartFace</code><span class="sig-paren">(</span><em>values</em>, <em>deviations=None</em>, <em>width=200</em>, <em>height=100</em>, <em>colors=None</em>, <em>labels=None</em>, <em>min_value=0</em>, <em>max_value=None</em>, <em>label_fsize=6</em>, <em>scale_fsize=6</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.BarChartFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.2.</span></p>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>values</strong> – a list of values each representing a vertical bar.</li>
+<li><strong>width</strong> (<em>200</em>) – width of the bar chart.</li>
+<li><strong>height</strong> (<em>100</em>) – height of the bar chart</li>
+<li><strong>colors</strong> (<em>None</em>) – a list of colors, one per bar value</li>
+<li><strong>label</strong> (<em>None</em>) – a list of labels, one per bar</li>
+<li><strong>min_value</strong> (<em>0</em>) – min value to set the scale of the chart.</li>
+<li><strong>max_value</strong> (<em>None</em>) – max value to set the scale of the chart.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.PieChartFace">
+<em class="property">class </em><code class="descname">PieChartFace</code><span class="sig-paren">(</span><em>percents</em>, <em>width</em>, <em>height</em>, <em>colors=None</em>, <em>line_color=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.PieChartFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.2.</span></p>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>percents</strong> – a list of values summing up 100.</li>
+<li><strong>width</strong> – width of the piechart</li>
+<li><strong>height</strong> – height of the piechart</li>
+<li><strong>colors</strong> – a list of colors (same length as percents)</li>
+<li><strong>line_color</strong> – color used to render the border of the piechart (None=transparent)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.ProfileFace">
+<em class="property">class </em><code class="descname">ProfileFace</code><span class="sig-paren">(</span><em>max_v</em>, <em>min_v</em>, <em>center_v</em>, <em>width=200</em>, <em>height=40</em>, <em>style='lines'</em>, <em>colorscheme=2</em>, <em>values_vector=None</em>, <em>deviations_vector=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.ProfileFace" title="Permalink to this definition">¶</a></dt>
+<dd><p>A profile Face for ClusterNodes</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>max_v</strong> – maximum value used to build the build the plot scale.</li>
+<li><strong>max_v</strong> – minimum value used to build the build the plot scale.</li>
+<li><strong>center_v</strong> – Center value used to scale plot and heatmap.</li>
+<li><strong>width</strong> (<em>200</em>) – Plot width in pixels.</li>
+<li><strong>height</strong> (<em>40</em>) – Plot width in pixels.</li>
+<li><strong>style</strong> (<em>lines</em>) – Plot style: “lines”, “bars”, “cbars” or “heatmap”.</li>
+<li><strong>colorscheme</strong> (<em>2</em>) – colors used to create the gradient from
+min values to max values. 0=green & blue; 1=green & red; 2=red &
+blue. In all three cases, missing values are rendered in black
+and transition color (values=center) is white.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.TreeFace">
+<em class="property">class </em><code class="descname">TreeFace</code><span class="sig-paren">(</span><em>tree</em>, <em>tree_style</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.TreeFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Creates a Face containing a Tree object. Yes, a tree within a tree :)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>tree</strong> – An ETE Tree instance (Tree, PhyloTree, etc...)</li>
+<li><strong>tree_style</strong> – A TreeStyle instance defining how tree show be drawn</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.StaticItemFace">
+<em class="property">class </em><code class="descname">StaticItemFace</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.StaticItemFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Creates a face based on an external QtGraphicsItem object.
+QGraphicsItem object is expected to be independent from tree node
+properties, so its content is assumed to be static (drawn only
+once, no updates when tree changes).</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>item</strong> – an object based on QGraphicsItem</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="ete3.DynamicItemFace">
+<em class="property">class </em><code class="descname">DynamicItemFace</code><span class="sig-paren">(</span><em>constructor</em>, <em>*args</em>, <em>**kargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.DynamicItemFace" title="Permalink to this definition">¶</a></dt>
+<dd><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>Creates a face based on an external QGraphicsItem object whose
+content depends on the node that is linked to.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>constructor</strong> – A pointer to a method (function or class
+constructor) returning a QGraphicsItem based
+object. “constructor” method is expected to receive a node
+instance as the first argument. The rest of arguments passed to
+ItemFace are optional and will passed also to the constructor
+function.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="color-names">
+<h2><a class="toc-backref" href="#id5">Color names</a><a class="headerlink" href="#color-names" title="Permalink to this headline">¶</a></h2>
+<dl class="data">
+<dt id="ete3.SVG_COLORS">
+<code class="descname">SVG_COLORS</code><a class="headerlink" href="#ete3.SVG_COLORS" title="Permalink to this definition">¶</a></dt>
+<dd><blockquote>
+<div>Apart from RGB color codes, the following SVG color names are supported:</div></blockquote>
+<img alt="../_images/svg_colors.png" src="../_images/svg_colors.png" />
+</dd></dl>
+
+<dl class="data">
+<dt id="ete3.COLOR_SCHEMES">
+<code class="descname">COLOR_SCHEMES</code><a class="headerlink" href="#ete3.COLOR_SCHEMES" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="ete3.random_color">
+<code class="descname">random_color</code><span class="sig-paren">(</span><em>h=None</em>, <em>l=None</em>, <em>s=None</em>, <em>num=None</em>, <em>sep=None</em>, <em>seed=None</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.random_color" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the RGB code of a random color. Hue (h), Lightness (l)
+and Saturation (s) of the generated color could be fixed using the
+pertinent function argument.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_phylo.html" class="btn btn-neutral float-right" title="PhyloTree class" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_tree.html" class="btn btn-neutral" title="Master Tree class" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/reference/reference_webplugin.html b/doc/reference/reference_webplugin.html
new file mode 100644
index 0000000..d9bfa92
--- /dev/null
+++ b/doc/reference/reference_webplugin.html
@@ -0,0 +1,316 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>WebTreeApplication object — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="ETE’s Reference Guide" href="index.html"/>
+        <link rel="next" title="EvolTree class" href="reference_evoltree.html"/>
+        <link rel="prev" title="Seqgroup class" href="reference_seqgroup.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">ETE’s Reference Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="reference_tree.html">Master Tree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_treeview.html">Treeview module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phylo.html">PhyloTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_clustering.html">Clustering module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_nexml.html">Nexml module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_phyloxml.html">Phyloxml Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_seqgroup.html">Seqgroup class</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">WebTreeApplication object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_evoltree.html">EvolTree class</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_ncbi.html">NCBITaxa class</a></li>
+</ul>
+</li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">ETE’s Reference Guide</a> »</li>
+      
+    <li>WebTreeApplication object</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/reference/reference_webplugin.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<span class="target" id="module-ete3.webplugin"></span><div class="section" id="webtreeapplication-object">
+<h1>WebTreeApplication object<a class="headerlink" href="#webtreeapplication-object" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="ete3.WebTreeApplication">
+<em class="property">class </em><code class="descname">WebTreeApplication</code><a class="headerlink" href="#ete3.WebTreeApplication" title="Permalink to this definition">¶</a></dt>
+<dd><p>Provides a basic WSGI application object which can handle ETE
+tree visualization and interactions.  Please, see the
+webplugin example provided with the ETE installation package
+(<a class="reference external" href="http://pypi.python.org/pypi/ete3">http://pypi.python.org/pypi/ete3</a>).</p>
+<dl class="method">
+<dt id="ete3.WebTreeApplication.register_action">
+<code class="descname">register_action</code><span class="sig-paren">(</span><em>name</em>, <em>target</em>, <em>handler</em>, <em>checker</em>, <em>html_generator</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.register_action" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds a new web interactive function associated to tree
+nodes.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_default_layout_fn">
+<code class="descname">set_default_layout_fn</code><span class="sig-paren">(</span><em>layout_fn</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_default_layout_fn" title="Permalink to this definition">¶</a></dt>
+<dd><p>Fix the layout function used to render the tree.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_external_app_handler">
+<code class="descname">set_external_app_handler</code><span class="sig-paren">(</span><em>handler</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_external_app_handler" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets a custom function that will extend current WSGI
+application.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_external_tree_renderer">
+<code class="descname">set_external_tree_renderer</code><span class="sig-paren">(</span><em>handler</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_external_tree_renderer" title="Permalink to this definition">¶</a></dt>
+<dd><p>If the tree needs to be processed every time is going to
+be drawn, the task can be delegated.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_tree_loader">
+<code class="descname">set_tree_loader</code><span class="sig-paren">(</span><em>TreeConstructor</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_tree_loader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Delegate tree constructor. It allows to customize the Tree
+class used to create new tree instances.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_tree_size">
+<code class="descname">set_tree_size</code><span class="sig-paren">(</span><em>w</em>, <em>h</em>, <em>units='px'</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_tree_size" title="Permalink to this definition">¶</a></dt>
+<dd><p>Fix the size of tree image</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="ete3.WebTreeApplication.set_tree_style">
+<code class="descname">set_tree_style</code><span class="sig-paren">(</span><em>handler</em><span class="sig-paren">)</span><a class="headerlink" href="#ete3.WebTreeApplication.set_tree_style" title="Permalink to this definition">¶</a></dt>
+<dd><p>Fix a <code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code> instance to render tree images.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="reference_evoltree.html" class="btn btn-neutral float-right" title="EvolTree class" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="reference_seqgroup.html" class="btn btn-neutral" title="Seqgroup class" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/search.html b/doc/search.html
new file mode 100644
index 0000000..ffcbc11
--- /dev/null
+++ b/doc/search.html
@@ -0,0 +1,245 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Search — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="#" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="index.html">Docs</a> »</li>
+      
+    <li></li>
+      <li class="wy-breadcrumbs-aside">
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <noscript>
+  <div id="fallback" class="admonition warning">
+    <p class="last">
+      Please activate JavaScript to enable the search
+      functionality.
+    </p>
+  </div>
+  </noscript>
+
+  
+  <div id="search-results">
+  
+  </div>
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+      <script type="text/javascript" src="_static/searchtools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("searchindex.js"); });
+  </script>
+  
+  <script type="text/javascript" id="searchindexloader"></script>
+   
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/searchindex.js b/doc/searchindex.js
new file mode 100644
index 0000000..e734dd4
--- /dev/null
+++ b/doc/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({envversion:46,filenames:["about","changelog/changelog2.1","changelog/changelog2.2","changelog/changelog2.3","changelog/index","faqs/index","index","reference/index","reference/reference_clustering","reference/reference_evoltree","reference/reference_ncbi","reference/reference_nexml","reference/reference_phylo","reference/reference_phylomedb","reference/reference_phyloxml","reference/reference_seqgroup","reference/reference_tree","reference/reference_treeview","reference/ [...]
\ No newline at end of file
diff --git a/doc/support.html b/doc/support.html
new file mode 100644
index 0000000..9528af2
--- /dev/null
+++ b/doc/support.html
@@ -0,0 +1,237 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Help and Support — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="index.html">Docs</a> »</li>
+      
+    <li>Help and Support</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="_sources/support.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="help-and-support">
+<h1>Help and Support<a class="headerlink" href="#help-and-support" title="Permalink to this headline">¶</a></h1>
+<p>Could not find an answer? Join the ETE toolkit community and post your
+question!!</p>
+<p>You will also be updated with important news and announcements.</p>
+<p><a class="reference external" href="https://groups.google.com/forum/#!forum/etetoolkit">https://groups.google.com/forum/#!forum/etetoolkit</a></p>
+<p>(<a class="reference external" href="mailto:etetoolkit%40googlegroups.com">etetoolkit<span>@</span>googlegroups<span>.</span>com</a>)</p>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'./',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="_static/jquery.js"></script>
+      <script type="text/javascript" src="_static/underscore.js"></script>
+      <script type="text/javascript" src="_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/index.html b/doc/tutorial/index.html
new file mode 100644
index 0000000..cab9be8
--- /dev/null
+++ b/doc/tutorial/index.html
@@ -0,0 +1,429 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>The ETE tutorial — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="next" title="Working With Tree Data Structures" href="tutorial_trees.html"/>
+        <link rel="prev" title="What’s new in ETE 2.1" href="../changelog/changelog2.1.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="">The ETE tutorial</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>The ETE tutorial</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/index.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="the-ete-tutorial">
+<h1>The ETE tutorial<a class="headerlink" href="#the-ete-tutorial" title="Permalink to this headline">¶</a></h1>
+<p>Contents:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#trees">Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#reading-and-writing-newick-trees">Reading and Writing Newick Trees</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#reading-newick-trees">Reading newick trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#writing-newick-trees">Writing newick trees</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#understanding-ete-trees">Understanding ETE Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#basic-tree-attributes">Basic tree attributes</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#root-node-on-unrooted-trees">Root node on unrooted trees?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#browsing-trees-traversing">Browsing trees (traversing)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#getting-leaves-descendants-and-node-s-relatives">Getting Leaves, Descendants and Node’s Relatives</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#traversing-browsing-trees">Traversing (browsing) trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#advanced-traversing-stopping-criteria">Advanced traversing (stopping criteria)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#iterating-instead-of-getting">Iterating instead of Getting</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#finding-nodes-by-their-attributes">Finding nodes by their attributes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#checking-the-monophyly-of-attributes-within-a-tree">Checking the monophyly of attributes within a tree</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#caching-tree-content-for-faster-lookup-operations">Caching tree content for faster lookup operations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#node-annotation">Node annotation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#comparing-trees">Comparing Trees</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#calculate-distances-between-trees">Calculate distances between trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#robinson-foulds-distance">Robinson-foulds distance</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#modifying-tree-topology">Modifying Tree Topology</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#creating-trees-from-scratch">Creating Trees from Scratch</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#deleting-eliminating-and-removing-detaching-nodes">Deleting (eliminating) and Removing (detaching) nodes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#pruning-trees">Pruning trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#concatenating-trees">Concatenating trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#copying-duplicating-trees">Copying (duplicating) trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#solving-multifurcations">Solving multifurcations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#tree-rooting">Tree Rooting</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html#working-with-branch-distances">Working with branch distances</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#getting-distances-between-nodes">Getting distances between nodes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_trees.html#getting-midpoint-outgroup">getting midpoint outgroup</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html#overview">Overview</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html#interactive-visualization-of-trees">Interactive visualization of trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html#rendering-trees-as-images">Rendering trees as images</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html#customizing-the-aspect-of-trees">Customizing the aspect of trees</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#tree-style">Tree style</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#node-style">Node style</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#node-faces">Node faces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#layout-functions">layout functions</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html#combining-styles-faces-and-layouts">Combining styles, faces and layouts</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#fixed-node-styles">Fixed node styles</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#node-backgrounds">Node backgrounds</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#img-faces">Img Faces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#bubble-tree-maps">Bubble tree maps</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#trees-within-trees">Trees within trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#phylogenetic-trees-and-sequence-domains">Phylogenetic trees and sequence domains</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_drawing.html#creating-your-custom-interactive-item-faces">Creating your custom interactive Item faces</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#overview">Overview</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#linking-phylogenetic-trees-with-multiple-sequence-alignments">Linking Phylogenetic Trees with Multiple Sequence Alignments</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#visualization-of-phylogenetic-trees">Visualization of phylogenetic trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#adding-taxonomic-information">Adding taxonomic information</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#automatic-control-of-species-info">Automatic control of species info</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#automatic-and-custom-control-of-the-species-info">Automatic (and custom) control of the species info</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#manual-control-of-the-species-info">Manual control of the species info</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#detecting-evolutionary-events">Detecting evolutionary events</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#species-overlap-so-algorithm">Species Overlap (SO) algorithm</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#tree-reconciliation-algorithm">Tree reconciliation algorithm</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#a-closer-look-to-the-evolutionary-event-object">A closer look to the evolutionary event object</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#relative-dating-phylogenetic-nodes">Relative dating phylogenetic nodes</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#implementation">Implementation</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#automatic-rooting-outgroup-detection">Automatic rooting (outgroup detection)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html#working-with-duplicated-gene-families">Working with duplicated gene families</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#treeko-splitting-gene-trees-into-species-trees">Treeko (splitting gene trees into species trees)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#splitting-gene-trees-by-duplication-events">Splitting gene trees by duplication events</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phylogeny.html#collapse-species-specific-duplications">Collapse species specific duplications</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html#overview">Overview</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html#loading-clustertrees">Loading ClusterTrees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html#visualization-of-matrix-associated-trees">Visualization of matrix associated Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html#cluster-validation-example">Cluster Validation Example</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_nexml.html">NeXML</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_nexml.html#reading-nexml-projects">Reading NeXML projects</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_nexml.html#nexml-tree-manipulation-and-visualization">NeXML tree manipulation and visualization</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phyloxml.html">PhyloXML</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phyloxml.html#loading-phyloxml-projects-from-files">Loading PhyloXML projects from files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phyloxml.html#creating-phyloxml-projects-from-scratch">Creating PhyloXML projects from scratch</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#no-x-system-available">NO X system available?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#installing-a-x-server">Installing a X server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#servers">Servers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#desktops">Desktops</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#configuring-the-web-sever">Configuring the web sever</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html#implementation-of-webtreeapplications">Implementation of WebTreeApplications</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#extension-requirements">Extension Requirements:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#overview">Overview</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#the-working-directory">The working directory</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#descriptive-analysis">Descriptive analysis</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#branch-model">Branch model</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#site-model">Site model</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#hypothesis-testing">Hypothesis Testing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#test-on-sites">Test on sites</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#test-on-branches">Test on branches</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#test-on-branch-sites">Test on branch-sites</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#utilities">Utilities</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_adaptation.html#load-precomputed-evolutionary-model">Load precomputed evolutionary model</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html#references">References</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#setting-up-a-local-copy-of-the-ncbi-taxonomy-database">Setting up a local copy of the NCBI taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#upgrading-the-local-database">Upgrading the local database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#getting-taxid-information">Getting taxid information</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#getting-descendant-taxa">Getting descendant taxa</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#getting-ncbi-species-tree-topology">Getting NCBI species tree topology</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html#automatic-tree-annotation-using-ncbi-taxonomy">Automatic tree annotation using NCBI taxonomy</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html#orthoxml-parser">OrthoXML parser</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html#the-etree2orthoxml-script">The etree2orthoxml script</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_etree2orthoxml.html#usage">Usage</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_etree2orthoxml.html#example-using-custom-evolutionary-annotation">Example: Using custom evolutionary annotation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_etree2orthoxml.html#example-automatic-detection-of-species-names">Example: Automatic detection of species names</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_etree2orthoxml.html#example-tree-rooting">Example: Tree rooting</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_trees.html" class="btn btn-neutral float-right" title="Working With Tree Data Structures" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../changelog/changelog2.1.html" class="btn btn-neutral" title="What’s new in ETE 2.1" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_adaptation.html b/doc/tutorial/tutorial_adaptation.html
new file mode 100644
index 0000000..c54d19f
--- /dev/null
+++ b/doc/tutorial/tutorial_adaptation.html
@@ -0,0 +1,785 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Testing Evolutionary Hypothesis — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="Dealing with the NCBI Taxonomy database" href="tutorial_ncbitaxonomy.html"/>
+        <link rel="prev" title="Interactive web tree visualization" href="tutorial_webplugin.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Testing Evolutionary Hypothesis</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#extension-requirements">Extension Requirements:</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#the-working-directory">The working directory</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#descriptive-analysis">Descriptive analysis</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#branch-model">Branch model</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#site-model">Site model</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#hypothesis-testing">Hypothesis Testing</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#test-on-sites">Test on sites</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#test-on-branches">Test on branches</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#test-on-branch-sites">Test on branch-sites</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#utilities">Utilities</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#load-precomputed-evolutionary-model">Load precomputed evolutionary model</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#references">References</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Testing Evolutionary Hypothesis</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_adaptation.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="testing-evolutionary-hypothesis">
+<h1><a class="toc-backref" href="#id4">Testing Evolutionary Hypothesis</a><a class="headerlink" href="#testing-evolutionary-hypothesis" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#testing-evolutionary-hypothesis" id="id4">Testing Evolutionary Hypothesis</a><ul>
+<li><a class="reference internal" href="#extension-requirements" id="id5">Extension Requirements:</a></li>
+<li><a class="reference internal" href="#overview" id="id6">Overview</a><ul>
+<li><a class="reference internal" href="#the-working-directory" id="id7">The working directory</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#descriptive-analysis" id="id8">Descriptive analysis</a><ul>
+<li><a class="reference internal" href="#branch-model" id="id9">Branch model</a></li>
+<li><a class="reference internal" href="#site-model" id="id10">Site model</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#hypothesis-testing" id="id11">Hypothesis Testing</a><ul>
+<li><a class="reference internal" href="#test-on-sites" id="id12">Test on sites</a></li>
+<li><a class="reference internal" href="#test-on-branches" id="id13">Test on branches</a></li>
+<li><a class="reference internal" href="#test-on-branch-sites" id="id14">Test on branch-sites</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#utilities" id="id15">Utilities</a><ul>
+<li><a class="reference internal" href="#load-precomputed-evolutionary-model" id="id16">Load precomputed evolutionary model</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#references" id="id17">References</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="extension-requirements">
+<h2><a class="toc-backref" href="#id5">Extension Requirements:</a><a class="headerlink" href="#extension-requirements" title="Permalink to this headline">¶</a></h2>
+<p>You should have codeml and slr in your path:</p>
+<blockquote>
+<div><ul class="simple">
+<li>CodeML, you can download it from
+<a class="reference external" href="http://abacus.gene.ucl.ac.uk/software/paml.html">http://abacus.gene.ucl.ac.uk/software/paml.html</a></li>
+<li>SLR, from here: <a class="reference external" href="http://www.ebi.ac.uk/goldman-srv/SLR/">http://www.ebi.ac.uk/goldman-srv/SLR/</a></li>
+</ul>
+</div></blockquote>
+<p>Download, compile and install both of the programs, in order to be able to run the examples.</p>
+<p>This ETE extension is written on top of these two external programs, so it is strongly recommended to read their corresponding documentation.</p>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id6">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>An other aspect in the study of evolutionary history, is the analysis of selective pressures accounting for the conservation or degeneration of <strong>protein coding genes</strong>.</p>
+<p>The <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolTree" title="ete3.EvolTree"><code class="xref py py-class docutils literal"><span class="pre">EvolTree</span></code></a> class is an extension of the class <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> that implements mainly bindings to the PAML  [...]
+<p>Evolutionary variables that are used to summary selective pressures are, of course the branch-length (<em>bL</em>) already available in <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a>, but also the rate of non-synonymous mutations (<em>dN</em>), the rate of synonymous mutations (<em>dS</em>) and finally the <span class="math">\(\ome [...]
+<div class="math">
+\[\begin{eqnarray}
+  \omega = \frac{dN}{dS}
+\end{eqnarray}\]</div><div class="section" id="the-working-directory">
+<h3><a class="toc-backref" href="#id7">The working directory</a><a class="headerlink" href="#the-working-directory" title="Permalink to this headline">¶</a></h3>
+<p>EvolTree works mainly as PhyloTree, thus it needs a tree and an alignment. However as you are going to run external programs over it, <strong>a working directory needs to be defined</strong>. By default tree.workdiris “/tmp/ete3-codeml/”, but it is recommended to change it to a more useful path.</p>
+<p>Jobs will be stored in the workdir, and you will be able to load precomputed evolutionary models from there.</p>
+</div>
+</div>
+<div class="section" id="descriptive-analysis">
+<h2><a class="toc-backref" href="#id8">Descriptive analysis</a><a class="headerlink" href="#descriptive-analysis" title="Permalink to this headline">¶</a></h2>
+<p>In order to identify the evolutionary trends in a phylogenetic tree, one can either:</p>
+<blockquote>
+<div><ul class="simple">
+<li>conduct an analysis over branches and compute the value of
+<span class="math">\(\omega\)</span> in each of them.</li>
+<li>look at the selective pressures along the alignment.</li>
+</ul>
+</div></blockquote>
+<div class="section" id="branch-model">
+<h3><a class="toc-backref" href="#id9">Branch model</a><a class="headerlink" href="#branch-model" title="Permalink to this headline">¶</a></h3>
+<p>As for <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a>, we first load the tree and alignment (and you working directory, if you want to save a copy of your jobs):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">EvolTree</span>
+
+<span class="n">tree</span> <span class="o">=</span> <span class="n">EvolTree</span><span class="p">(</span><span class="s">"((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);"</span><span class="p">)</span>
+
+<span class="n">tree</span><span class="o">.</span><span class="n">link_to_alignment</span> <span class="p">(</span><span class="s">'''>Hylobates_lar</span>
+<span class="s">ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT</span>
+<span class="s">>Papio_cynocephalus</span>
+<span class="s">ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT</span>
+<span class="s">>Gorilla_gorilla</span>
+<span class="s">ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT</span>
+<span class="s">>Pan_troglodytes</span>
+<span class="s">ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT'''</span><span class="p">)</span>
+
+<span class="n">tree</span><span class="o">.</span><span class="n">workdir</span> <span class="o">=</span> <span class="s">'/path_to/my_working_directory/'</span>
+</pre></div>
+</div>
+<p>Once loaded we are able to compute selective pressure among the tree according to an evolutionary model. In this case, we will use free-ratio model:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'fb.example'</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode.run_model" title="ete3.EvolNode.run_model"><code class="xref py py-func docutils literal"><span class="pre">EvolNode.run_model()</span></code></a> allows to run different evolutionary models (follow this link <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode.run_model" title="ete3.EvolNode.run_model"><code class="xref py py-func docutils literal"><span class="pre [...]
+<p>Once computation is done, we can retrieve the <code class="xref py py-class docutils literal"><span class="pre">evol.Model</span></code> object from the tree, with the <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode.get_evol_model" title="ete3.EvolNode.get_evol_model"><code class="xref py py-func docutils literal"><span class="pre">EvolNode.get_evol_model()</span></code></a> function.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">my_first_fb_model</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'fb.example'</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">my_first_fb_model</span>
+</pre></div>
+</div>
+<p>This last print statement would ouptut:</p>
+<div class="highlight-python"><div class="highlight"><pre>Evolutionary Model fb.example:
+       log likelihood       : -521.421323
+       number of parameters : 13
+       sites inference      : None
+       sites classes        : None
+       branches             :
+       mark: #0  , omega: None      , node_ids: 5   , name: NoName
+       mark: #1  , omega: 0.0001    , node_ids: 6   , name: NoName
+       mark: #2  , omega: 999.0     , node_ids: 4   , name: Papio_cynocephalus
+       mark: #3  , omega: 999.0     , node_ids: 2   , name: Hylobates_lar
+       mark: #4  , omega: 0.0001    , node_ids: 7   , name: NoName
+       mark: #5  , omega: 0.1049    , node_ids: 1   , name: Gorilla_gorilla
+       mark: #6  , omega: 0.5334    , node_ids: 3   , name: Pan_troglodytes
+</pre></div>
+</div>
+<p>By default, the free-branch model is run with this parameters:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">print</span> <span class="n">my_first_fb_model</span><span class="o">.</span><span class="n">get_ctrl_string</span><span class="p">()</span>
+
+<span class="c">#      seqfile = algn</span>
+<span class="c">#     treefile = tree</span>
+<span class="c">#      outfile = out</span>
+<span class="c">#</span>
+<span class="c">#       aaDist = 0</span>
+<span class="c">#    fix_alpha = 1</span>
+<span class="c">#        alpha = 0.0</span>
+<span class="c">#  fix_blength = 0</span>
+<span class="c">#    cleandata = 0</span>
+<span class="c">#        clock = 0</span>
+<span class="c">#    CodonFreq = 2</span>
+<span class="c">#        getSE = 0</span>
+<span class="c">#        icode = 0</span>
+<span class="c">#    fix_kappa = 0</span>
+<span class="c">#        kappa = 2</span>
+<span class="c">#       Malpha = 0</span>
+<span class="c">#       method = 0</span>
+<span class="c">#        Mgene = 0</span>
+<span class="c">#        model = 1</span>
+<span class="c">#        ncatG = 8</span>
+<span class="c">#        noisy = 0</span>
+<span class="c">#      NSsites = 0</span>
+<span class="c">#    fix_omega = 0</span>
+<span class="c">#        omega = 0.7</span>
+<span class="c"># RateAncestor = 0</span>
+<span class="c">#      runmode = 0</span>
+<span class="c">#      seqtype = 1</span>
+<span class="c">#   Small_Diff = 1e-6</span>
+<span class="c">#      verbose = 2</span>
+</pre></div>
+</div>
+<p>However, it is usually recommended to run one model several times with different starting values, and keep only the model with higher likelihood. Here an example, on how to do this.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">best_model</span> <span class="o">=</span> <span class="bp">None</span>
+<span class="n">best_lnl</span>   <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="s">'-inf'</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">starting_omega</span> <span class="ow">in</span> <span class="p">[</span><span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.7</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">]:</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">run_model</span><span class="p">(</span><span class="s">'fb.'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">starting_omega</span><span class="p">))</span>
+    <span class="n">current_model</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'fb.'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">starting_omega</span><span class="p">))</span>
+    <span class="k">print</span> <span class="s">'current model log likelihood:'</span><span class="p">,</span> <span class="n">current_model</span><span class="o">.</span><span class="n">lnL</span>
+    <span class="k">if</span> <span class="n">current_model</span><span class="o">.</span><span class="n">lnL</span> <span class="o">></span> <span class="n">best_lnl</span><span class="p">:</span>
+        <span class="n">best_lnl</span> <span class="o">=</span> <span class="n">current_model</span><span class="o">.</span><span class="n">lnL</span>
+        <span class="n">best_model</span> <span class="o">=</span> <span class="n">current_model</span>
+</pre></div>
+</div>
+<p>Finally in order to have a quick look of the selctive pressures over our phylogeny:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>by default this will the picture obtained:</p>
+<div class="figure" id="fb-default-fig">
+<a class="reference internal image-reference" href="../_images/fb_default.png"><img alt="../_images/fb_default.png" src="../_images/fb_default.png" style="width: 1233.0px; height: 90.5px;" /></a>
+</div>
+<p>Node size, and color dependant of the <span class="math">\(\omega\)</span> value. But other displays are available:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3.treeview.layouts</span> <span class="kn">import</span> <span class="n">evol_clean_layout</span>
+
+<span class="n">tree</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">layout</span><span class="o">=</span><span class="n">evol_clean_layout</span><span class="p">)</span>
+</pre></div>
+</div>
+<div class="figure" id="fb-clean-fig">
+<a class="reference internal image-reference" href="../_images/fb_clean.png"><img alt="../_images/fb_clean.png" src="../_images/fb_clean.png" style="width: 1241.86px; height: 117.18px;" /></a>
+</div>
+<p>With here <span class="math">\(\omega\)</span> ratios in red and also in gray the <em>dN</em> and <em>dS</em> values.</p>
+</div>
+<div class="section" id="site-model">
+<h3><a class="toc-backref" href="#id10">Site model</a><a class="headerlink" href="#site-model" title="Permalink to this headline">¶</a></h3>
+<p>Another way to look at selective pressures, is to compute directly along the alignment, the value of <span class="math">\(\omega\)</span> for a whole column (putting all leaves together). For doing this, we can use for example the model M2 of CodeML or directly use SLR. As before we just have to:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">run_model</span><span class="p">(</span><span class="s">'M2'</span><span class="p">)</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">run_model</span><span class="p">(</span><span class="s">'SLR.lele'</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>and to display the results:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">show</span> <span class="p">(</span><span class="n">histfaces</span><span class="o">=</span><span class="p">[</span><span class="s">'M2'</span><span class="p">])</span>
+</pre></div>
+</div>
+<p>when a site model is computed, an histface is automatically generated. Thus with this call, what we are doing is to draw the default histface corresponding to the model named M2.lala. This is the result:</p>
+<div class="figure" id="m2-default-fig">
+<a class="reference internal image-reference" href="../_images/M2_default.png"><img alt="../_images/M2_default.png" src="../_images/M2_default.png" style="width: 1572.0px; height: 261.0px;" /></a>
+</div>
+<p>However customizing this face is feasible:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">model2</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span> <span class="p">(</span><span class="s">'M2'</span><span class="p">)</span>
+
+<span class="n">col2</span> <span class="o">=</span> <span class="p">{</span><span class="s">'NS'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span> <span class="s">'RX'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span>
+        <span class="s">'RX+'</span><span class="p">:</span> <span class="s">'black'</span><span class="p">,</span> <span class="s">'CN'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span>
+        <span class="s">'CN+'</span><span class="p">:</span> <span class="s">'black'</span><span class="p">,</span> <span class="s">'PS'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span> <span class="s">'PS+'</span><span class="p">:</span> <span class="s">'black'</span><span class="p">}</span>
+
+
+<span class="n">model2</span><span class="o">.</span><span class="n">set_histface</span> <span class="p">(</span><span class="n">up</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s">'curve'</span><span class="p">,</span> <span class="n">colors</span><span class="o">=</span><span class="n">col2</span><span class="p">,</span> <span class="n">ylim</span><span class="o">=</span><span  [...]
+
+<span class="n">tree</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">histfaces</span><span class="o">=</span><span class="p">[</span><span class="s">'M2'</span><span class="p">])</span>
+</pre></div>
+</div>
+<div class="figure" id="m2-error-fig">
+<a class="reference internal image-reference" href="../_images/M2_curve.png"><img alt="../_images/M2_curve.png" src="../_images/M2_curve.png" style="width: 1572.0px; height: 261.0px;" /></a>
+</div>
+<p>or:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">col</span> <span class="o">=</span> <span class="p">{</span><span class="s">'NS'</span> <span class="p">:</span> <span class="s">'grey'</span><span class="p">,</span> <span class="s">'RX'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span>
+       <span class="s">'RX+'</span><span class="p">:</span> <span class="s">'grey'</span><span class="p">,</span> <span class="s">'CN'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span>
+       <span class="s">'CN+'</span><span class="p">:</span> <span class="s">'grey'</span><span class="p">,</span> <span class="s">'PS'</span> <span class="p">:</span> <span class="s">'black'</span><span class="p">,</span> <span class="s">'PS+'</span><span class="p">:</span> <span class="s">'black'</span><span class="p">}</span>
+<span class="n">model2</span><span class="o">.</span><span class="n">set_histface</span> <span class="p">(</span><span class="n">up</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s">'stick'</span><span class="p">,</span> <span class="n">hlines</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.0</span><span class="p">,</span><span class="mf">0.3</span><span [...]
+
+
+<span class="n">tree</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">histfaces</span><span class="o">=</span><span class="p">[</span><span class="s">'M2'</span><span class="p">])</span>
+</pre></div>
+</div>
+<div class="figure" id="m2-super-profesional-fig">
+<a class="reference internal image-reference" href="../_images/M2_sticks.png"><img alt="../_images/M2_sticks.png" src="../_images/M2_sticks.png" style="width: 1572.0px; height: 261.0px;" /></a>
+</div>
+<p>The col dictionary contains the colors for sites detected to be under positive selection (PS), relaxation (RX), or conserved (CN). However, it is not a good idea to use them now as we do not know if there is indeed positive selection.</p>
+<p>To be able to accept M2 results we will have to test this model against a null model.</p>
+</div>
+</div>
+<div class="section" id="hypothesis-testing">
+<h2><a class="toc-backref" href="#id11">Hypothesis Testing</a><a class="headerlink" href="#hypothesis-testing" title="Permalink to this headline">¶</a></h2>
+<p>In order to know if the parameters estimated under a given model a reliable, we have to compare its likelihood to a null model.</p>
+<p>Usually, the alternative model is a model that estimates the proportion of sites with <span class="math">\(\omega > 1\)</span> and we compare its likelihood with a null model, usually a model that do not (letting <span class="math">\(\omega <= 1\)</span>). This comparison is done through a likelihood ratio test. If the alternative model has the best fit than we are able to accept the possibility of <span class="math">\(\omega > 1\)</span>.</p>
+<p>To see a non-exhaustive list of famous comparison see the documentation of the function: <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode.get_most_likely" title="ete3.EvolNode.get_most_likely"><code class="xref py py-func docutils literal"><span class="pre">EvolNode.get_most_likely()</span></code></a></p>
+<div class="section" id="test-on-sites">
+<h3><a class="toc-backref" href="#id12">Test on sites</a><a class="headerlink" href="#test-on-sites" title="Permalink to this headline">¶</a></h3>
+<p>In order to know if some sites are significantly under positive selection, relaxed or conserved we have usually to compare 2 models. However using the model “SLR” we can directly infer positive selection or relaxation through the SLR program <a class="reference internal" href="#massingham2005" id="id3">[massingham2005]</a>.</p>
+<p>The most usual comparison, and perhaps the most robust, is the comparison of models M2 and M1.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'M1'</span><span class="p">)</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'M2'</span><span class="p">)</span>
+
+<span class="n">pval</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_most_likely</span> <span class="p">(</span><span class="s">'M2'</span><span class="p">,</span><span class="s">'M1'</span><span class="p">)</span>
+
+<span class="n">model2</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'M2'</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">model2</span>
+
+<span class="c"># Evolutionary Model M2:</span>
+<span class="c">#        log likelihood       : -517.824749</span>
+<span class="c">#        number of parameters : 11</span>
+<span class="c">#        sites inference      : BEB, NEB</span>
+<span class="c">#        sites classes        :</span>
+<span class="c">#           proportions: p0=0.98794   p1=0.00000   p2=0.01206</span>
+<span class="c">#           w          : w0=0.09887   w1=1.00000   w2=178.86153</span>
+<span class="c">#        branches             :</span>
+<span class="c">#           mark: #0, omega: 2.25526440485   , nodes paml_ids: 6 4 2 7 1 3</span>
+
+<span class="k">if</span> <span class="n">pval</span> <span class="o"><</span> <span class="mf">0.05</span><span class="p">:</span>
+  <span class="k">print</span> <span class="s">'M2 model wins.'</span>
+  <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">model2</span><span class="o">.</span><span class="n">sites</span><span class="p">[</span><span class="s">'BEB'</span><span class="p">][</span><span class="s">'aa'</span><span class="p">])):</span>
+    <span class="k">if</span> <span class="n">model2</span><span class="o">.</span><span class="n">sites</span><span class="p">[</span><span class="s">'BEB'</span><span class="p">][</span><span class="s">'p2'</span><span class="p">][</span><span class="n">s</span><span class="p">]</span> <span class="o">></span> <span class="mf">0.95</span><span class="p">:</span>
+      <span class="k">print</span> <span class="s">'positively selected site </span><span class="si">%s</span><span class="s"> at position: </span><span class="si">%s</span><span class="s">, with probability: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">model2</span><span class="o">.</span><span class="n">sites</span><span class="p">[</span><span class="s">'BEB'</span><span class="p">][</span><s [...]
+<span class="k">else</span><span class="p">:</span>
+  <span class="k">print</span> <span class="s">'M1 model is not rejected'</span>
+
+<span class="c"># M2 model wins.</span>
+<span class="c"># positively selected site P at position: 81, with probability: 0.96293</span>
+</pre></div>
+</div>
+<p>Each sites model, contains a dictionary ‘model.sites’ in which are stored the results of CodeML. These are displayed through the histface, but they are still accessible by digging a bit. ‘site’ dictionary usually contains the result of the NEB and BEB analysis (prefer the BEB when available). For each of BEB and NEB, the probability of belonging from one category of site is summarized by ‘p0’, ‘p1’ and ‘p2’ in the case of M2  [...]
+</div>
+<div class="section" id="test-on-branches">
+<h3><a class="toc-backref" href="#id13">Test on branches</a><a class="headerlink" href="#test-on-branches" title="Permalink to this headline">¶</a></h3>
+<p>CodeML allows to test models that infer different selective pressures on a set of given branches. To do it, some branches of the tree are marked (usually with strings like this: ‘#1’). This is how to do it with ETE:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">marks</span> <span class="o">=</span> <span class="p">[</span><span class="s">'2'</span><span class="p">,</span> <span class="s">'3'</span><span class="p">,</span> <span class="s">'4'</span><span class="p">]</span>
+
+<span class="c"># mark a group of branches</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">mark_tree</span> <span class="p">(</span><span class="n">marks</span><span class="p">,</span> <span class="p">[</span><span class="s">'#1'</span><span class="p">,</span> <span class="s">'#1'</span><span class="p">,</span> <span class="s">'#1'</span><span class="p">])</span>
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">write</span> <span class="p">()</span>
+
+<span class="c"># ((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes #1) #1),Papio_cynocephalus);</span>
+</pre></div>
+</div>
+<p>By doing this a branch model will compute different <span class="math">\(\omega\)</span> values in mark branches (usually called foreground <span class="math">\(\omega_{frg}\)</span>) and in the rest of the tree (usually called background <span class="math">\(\omega_{bkg}\)</span>).</p>
+<dl class="docutils">
+<dt>Two kinds of branch models are usually used:</dt>
+<dd><ul class="first last simple">
+<li>the free-branch model: were <span class="math">\(\omega_{frg}\)</span> and <span class="math">\(\omega_{bkg}\)</span> are free</li>
+<li>the neutral-branch model: were <span class="math">\(\omega_{frg}\)</span> is fixed to one.</li>
+<li>the M0 model: were all branches evolve at the same rate.</li>
+</ul>
+</dd>
+</dl>
+<p>The comparison between free-branch and M0, will tell us if foreground branches have an <span class="math">\(\omega\)</span> significantly different from the rest of the tree.</p>
+<p>And the comparison between free-branch and neutral-branch models will tell us if <span class="math">\(\omega_{frg}\)</span> is significantly higher than 1.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'b_free'</span><span class="p">)</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'b_neut'</span><span class="p">)</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'M0'</span><span class="p">)</span>
+
+<span class="n">b_free</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'b_free'</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">b_free</span>
+
+<span class="c"># Evolutionary Model b_free.234:</span>
+<span class="c">#      log likelihood       : -525.690213</span>
+<span class="c">#      number of parameters : 9</span>
+<span class="c">#      sites inference      : None</span>
+<span class="c">#      sites classes        : None</span>
+<span class="c">#      branches             :</span>
+<span class="c">#        mark: #0, omega: 0.157280451975  , nodes paml_ids: 6 4 2</span>
+<span class="c">#        mark: #1, omega: 0.118462858241  , nodes paml_ids: 7 1 3</span>
+
+
+<span class="k">if</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_most_likely</span> <span class="p">(</span><span class="s">'b_free'</span><span class="p">,</span> <span class="s">'M0'</span><span class="p">)</span> <span class="o"><</span> <span class="mf">0.05</span><span class="p">:</span>
+    <span class="c"># branch models have a branches dictionary were keys corresponds to paml_id of nodes in the tree</span>
+    <span class="c"># select one of the marked branches</span>
+    <span class="n">frg_node</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">_nid</span><span class="o">=</span><span class="mi">2</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="n">frg_pamlid</span> <span class="o">=</span> <span class="n">frg_node</span><span class="o">.</span><span class="n">paml_id</span>
+    <span class="n">w_frg</span> <span class="o">=</span> <span class="n">bfree</span><span class="o">.</span><span class="n">branches</span><span class="p">[</span><span class="n">frg_pamlid</span><span class="p">][</span><span class="s">'w'</span><span class="p">]</span>
+    <span class="c"># select one of the unmarked branches</span>
+    <span class="n">bkg_node</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">_nid</span><span class="o">=</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="n">bkg_pamlid</span> <span class="o">=</span> <span class="n">bkg_node</span><span class="o">.</span><span class="n">paml_id</span>
+    <span class="n">w_bkg</span> <span class="o">=</span> <span class="n">bfree</span><span class="o">.</span><span class="n">branches</span><span class="p">[</span><span class="n">bkg_pamlid</span><span class="p">][</span><span class="s">'w'</span><span class="p">]</span>
+    <span class="k">print</span> <span class="s">'foreground branches evolving at omega value of </span><span class="si">%s</span><span class="s"> significantly diferent from </span><span class="si">%s</span><span class="s">.'</span> <span class="o">%</span> <span class="p">(</span><span class="n">w_frg</span><span class="p">,</span> <span class="n">w_bkg</span><span class="p">)</span>
+
+<span class="k">if</span>  <span class="n">tree</span><span class="o">.</span><span class="n">get_most_likely</span> <span class="p">(</span><span class="s">'b_free'</span><span class="p">,</span> <span class="s">'b_neut'</span><span class="p">)</span> <span class="o"><</span> <span class="mf">0.05</span><span class="p">:</span>
+    <span class="k">print</span> <span class="s">'foreground branches are significantly different from 1.'</span>
+</pre></div>
+</div>
+<p><em>for the given example, background and foreground are not different...</em></p>
+</div>
+<div class="section" id="test-on-branch-sites">
+<h3><a class="toc-backref" href="#id14">Test on branch-sites</a><a class="headerlink" href="#test-on-branch-sites" title="Permalink to this headline">¶</a></h3>
+<p>An other popular test is the branch-site test contrasting model A and A1. This test allows to detect genes with some sites under positive selection.</p>
+<p>this example shows how to run it over all branches in the tree:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># also needs the M0 model as null model</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'M0'</span><span class="p">)</span>
+
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">tree</span><span class="p">:</span>
+    <span class="n">leaf</span><span class="o">.</span><span class="n">node_id</span>
+    <span class="k">print</span> <span class="s">'</span><span class="se">\n</span><span class="s">---------</span><span class="se">\n</span><span class="s">Now working with leaf '</span> <span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">mark_tree</span> <span class="p">([</span><span class="n">leaf</span><span class="o">.</span><span class="n">node_id</span><span class="p">],</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="s">'#1'</span><span class="p">])</span>
+    <span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">write</span><span class="p">()</span>
+    <span class="c"># to organize a bit, we name model with the name of the marked node</span>
+    <span class="c"># any character after the dot, in model name, is not taken into account</span>
+    <span class="c"># for computation. (have a look in /tmp/ete3.../bsA.. directory)</span>
+    <span class="k">print</span> <span class="s">'running model bsA and bsA1'</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'bsA.'</span><span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">run_model</span> <span class="p">(</span><span class="s">'bsA1.'</span> <span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+    <span class="k">print</span> <span class="s">'p-value of positive selection for sites on this branch is: '</span>
+    <span class="n">ps</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_most_likely</span> <span class="p">(</span><span class="s">'bsA.'</span> <span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">'bsA1.'</span><span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p"> [...]
+    <span class="n">rx</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_most_likely</span> <span class="p">(</span><span class="s">'bsA1.'</span><span class="o">+</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">'M0'</span><span class="p">)</span>
+    <span class="k">print</span> <span class="nb">str</span> <span class="p">(</span><span class="n">ps</span><span class="p">)</span>
+    <span class="k">print</span> <span class="s">'p-value of relaxation for sites on this branch is: '</span>
+    <span class="k">print</span> <span class="nb">str</span> <span class="p">(</span><span class="n">rx</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">ps</span><span class="o"><</span><span class="mf">0.05</span> <span class="ow">and</span> <span class="nb">float</span> <span class="p">(</span><span class="n">bsA</span><span class="o">.</span><span class="n">wfrg2a</span><span class="p">)</span><span class="o">></span><span class="mi">1</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'we have positive selection on sites on this branch'</span>
+    <span class="k">elif</span> <span class="n">rx</span><span class="o"><</span><span class="mf">0.05</span> <span class="ow">and</span> <span class="n">ps</span><span class="o">>=</span><span class="mf">0.05</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'we have relaxation on sites on this branch'</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'no signal detected on this branch, best fit for M0'</span>
+    <span class="k">print</span> <span class="s">'</span><span class="se">\n</span><span class="s">clean tree, remove marks'</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">mark_tree</span> <span class="p">(</span><span class="nb">map</span> <span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">node_id</span><span class="p">,</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_descendants</span><span class="p">()),</span>
+                    <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="s">''</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span> <span class="p">(</span><span class="n">tree</span><span class="o">.</span><span class="n">get_descendants</span><span class="p">()),</span> <span class="n">verbose</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'bsA.Hylobates_lar'</span><span class="p">)</span>
+
+<span class="c">#  Evolutionary Model bsA.Hylobates_lar:</span>
+<span class="c">#         log likelihood       : -521.203318</span>
+<span class="c">#         number of parameters : 11</span>
+<span class="c">#         sites inference      : BEB, NEB</span>
+<span class="c">#         sites classes        :</span>
+<span class="c">#         foreground w: f0=0.06452   f1=1.00000   f2=3.15727   f3=3.15727</span>
+<span class="c">#         proportions : p0=0.00415   p1=0.00023   p2=0.94413   p3=0.05150</span>
+<span class="c">#         background w: b0=0.06452   b1=1.00000   b2=0.06452   b3=1.00000</span>
+<span class="c">#         branches             :</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 5   , name: NoName</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 6   , name: NoName</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 4   , name: Papio_cynocephalus</span>
+<span class="c">#         mark: #1  , omega: None      , node_ids: 2   , name: Hylobates_lar</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 7   , name: NoName</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 1   , name: Gorilla_gorilla</span>
+<span class="c">#         mark: #0  , omega: None      , node_ids: 3   , name: Pan_troglodytes</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="utilities">
+<h2><a class="toc-backref" href="#id15">Utilities</a><a class="headerlink" href="#utilities" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="load-precomputed-evolutionary-model">
+<h3><a class="toc-backref" href="#id16">Load precomputed evolutionary model</a><a class="headerlink" href="#load-precomputed-evolutionary-model" title="Permalink to this headline">¶</a></h3>
+<p>When an evolutionary model is computed, the output is stored in <em>tree.workdir</em> and can be load afterwards. Inside <em>tree.workdir</em>, a new directory is created for each model you compute (if each model has a different name), thus to load one model:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">EvolTree</span>
+
+<span class="n">tree</span> <span class="o">=</span> <span class="n">EvolTree</span><span class="p">(</span><span class="s">"((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);"</span><span class="p">)</span>
+
+<span class="n">tree</span><span class="o">.</span><span class="n">link_to_alignment</span> <span class="p">(</span><span class="s">'''>Hylobates_lar</span>
+<span class="s">ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT</span>
+<span class="s">>Papio_cynocephalus</span>
+<span class="s">ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT</span>
+<span class="s">>Gorilla_gorilla</span>
+<span class="s">ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT</span>
+<span class="s">>Pan_troglodytes</span>
+<span class="s">ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT'''</span><span class="p">)</span>
+<span class="n">tree</span><span class="o">.</span><span class="n">link_to_evol_model</span><span class="p">(</span><span class="s">'/path_to/my_working_directory/fb.example/out'</span><span class="p">,</span> <span class="s">'fb'</span><span class="p">)</span>
+</pre></div>
+</div>
+<p><em>Note:</em> <a class="reference internal" href="../reference/reference_evoltree.html#ete3.EvolNode.link_to_evol_model" title="ete3.EvolNode.link_to_evol_model"><code class="xref py py-func docutils literal"><span class="pre">EvolNode.link_to_evol_model()</span></code></a> is also able to load directly <code class="xref py py-class docutils literal"><span class="pre">evol.Model</span></code> objects.</p>
+<p>Indeed all output files generated do not need to be kept, only a <a class="reference external" href="http://docs.python.org/library/pickle.html">pickle or cPickle</a> of the model for example.</p>
+<p>Thus we can save a tree with all Models computed, after having run some models:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># assume we already have run some models:</span>
+<span class="k">for</span> <span class="n">model</span> <span class="ow">in</span>  <span class="n">tree</span><span class="o">.</span><span class="n">_models</span><span class="p">:</span>
+    <span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
+
+<span class="c">#  Evolutionary Model M2.example:</span>
+<span class="c">#         log likelihood       : -517.824749</span>
+<span class="c">#         number of parameters : 11</span>
+<span class="c">#         sites inference      : BEB, NEB</span>
+<span class="c">#         sites classes        :</span>
+<span class="c">#            proportions : p0=0.98794   p1=0.00000   p2=0.01206</span>
+<span class="c">#            w           : w0=0.09887   w1=1.00000   w2=178.86192</span>
+<span class="c">#         branches             :</span>
+<span class="c">#            mark: #0, omega: 2.25526864047   , nodes paml_ids: 6 4 2 7 1 3</span>
+<span class="c">#</span>
+<span class="c">#  Evolutionary Model M1.example:</span>
+<span class="c">#         log likelihood       : -521.541845</span>
+<span class="c">#         number of parameters : 9</span>
+<span class="c">#         sites inference      : NEB</span>
+<span class="c">#         sites classes        :</span>
+<span class="c">#            proportions : p0=0.94075   p1=0.05925</span>
+<span class="c">#            w           : w0=0.07025   w1=1.00000</span>
+<span class="c">#         branches             :</span>
+<span class="c">#            mark: #0, omega: 0.125334579074  , nodes paml_ids: 6 4 2 7 1 3</span>
+
+<span class="c"># we save the whole tree into my_tree.pik</span>
+<span class="kn">from</span> <span class="nn">cPickle</span> <span class="kn">import</span> <span class="n">dump</span>
+
+<span class="n">out</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">'my_tree.pik'</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span>
+<span class="n">dump</span> <span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">out</span><span class="p">)</span>
+<span class="n">out</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>and load them:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">cPickle</span> <span class="kn">import</span> <span class="n">load</span>
+
+
+<span class="n">out</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">'my_tree.pik'</span><span class="p">)</span>
+<span class="n">tree</span> <span class="o">=</span> <span class="n">load</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
+<span class="n">out</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+<span class="c"># and here the same result</span>
+<span class="k">for</span> <span class="n">model</span> <span class="ow">in</span>  <span class="n">tree</span><span class="o">.</span><span class="n">_models</span><span class="p">:</span>
+    <span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
+
+<span class="c">#  Evolutionary Model M2.example:</span>
+<span class="c">#         log likelihood       : -517.824749</span>
+<span class="c">#         number of parameters : 11</span>
+<span class="c">#         sites inference      : BEB, NEB</span>
+<span class="c">#         sites classes        :</span>
+<span class="c">#            proportions : p0=0.98794   p1=0.00000   p2=0.01206</span>
+<span class="c">#            w           : w0=0.09887   w1=1.00000   w2=178.86192</span>
+<span class="c">#         branches             :</span>
+<span class="c">#            mark: #0, omega: 2.25526864047   , nodes paml_ids: 6 4 2 7 1 3</span>
+<span class="c">#</span>
+<span class="c">#  Evolutionary Model M1.example:</span>
+<span class="c">#         log likelihood       : -521.541845</span>
+<span class="c">#         number of parameters : 9</span>
+<span class="c">#         sites inference      : NEB</span>
+<span class="c">#         sites classes        :</span>
+<span class="c">#            proportions : p0=0.94075   p1=0.05925</span>
+<span class="c">#            w           : w0=0.07025   w1=1.00000</span>
+<span class="c">#         branches             :</span>
+<span class="c">#            mark: #0, omega: 0.125334579074  , nodes paml_ids: 6 4 2 7 1 3</span>
+</pre></div>
+</div>
+<p>this also can be done for one model alone:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">cPickle</span> <span class="kn">import</span> <span class="n">dump</span><span class="p">,</span> <span class="n">load</span>
+
+<span class="n">m2_to_save</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_evol_model</span><span class="p">(</span><span class="s">'M2.example'</span><span class="p">)</span>
+
+<span class="n">out</span> <span class="o">=</span> <span class="nb">open</span> <span class="p">(</span><span class="s">'m2.pik'</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span>
+<span class="n">dump</span><span class="p">(</span><span class="n">m2_to_save</span><span class="p">,</span> <span class="n">out</span><span class="p">)</span>
+<span class="n">out</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+<span class="c"># and then load it</span>
+<span class="n">out</span> <span class="o">=</span> <span class="nb">open</span> <span class="p">(</span><span class="s">'m2.pik'</span><span class="p">)</span>
+<span class="n">m2_to_save</span> <span class="o">=</span> <span class="n">dump</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
+<span class="n">out</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+<span class="n">tree</span><span class="o">.</span><span class="n">link_to_evol_model</span><span class="p">(</span><span class="n">m2_to_save</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="references">
+<h2><a class="toc-backref" href="#id17">References</a><a class="headerlink" href="#references" title="Permalink to this headline">¶</a></h2>
+<table class="docutils citation" frame="void" id="yang2007" rules="none">
+<colgroup><col class="label" /><col /></colgroup>
+<tbody valign="top">
+<tr><td class="label"><a class="fn-backref" href="#id1">[yang2007]</a></td><td>Yang, Z., PAML 4: phylogenetic analysis by maximum likelihood. Molecular biology and evolution 24: 1586-91. (2007)</td></tr>
+</tbody>
+</table>
+<table class="docutils citation" frame="void" id="massingham2005" rules="none">
+<colgroup><col class="label" /><col /></colgroup>
+<tbody valign="top">
+<tr><td class="label">[massingham2005]</td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id3">2</a>)</em> Massingham T. and Goldman N. Detecting amino acid sites under positive selection and purifying selection. Genetics 169: 1853-1762. (2005)</td></tr>
+</tbody>
+</table>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_ncbitaxonomy.html" class="btn btn-neutral float-right" title="Dealing with the NCBI Taxonomy database" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_webplugin.html" class="btn btn-neutral" title="Interactive web tree visualization" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_clustering.html b/doc/tutorial/tutorial_clustering.html
new file mode 100644
index 0000000..3d20e2f
--- /dev/null
+++ b/doc/tutorial/tutorial_clustering.html
@@ -0,0 +1,512 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Clustering Trees — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="Phylogenetic XML standards" href="tutorial_xml.html"/>
+        <link rel="prev" title="Phylogenetic Trees" href="tutorial_phylogeny.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Clustering Trees</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#loading-clustertrees">Loading ClusterTrees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#visualization-of-matrix-associated-trees">Visualization of matrix associated Trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#cluster-validation-example">Cluster Validation Example</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Clustering Trees</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_clustering.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.clustering"></span><div class="section" id="clustering-trees">
+<h1><a class="toc-backref" href="#id1">Clustering Trees</a><a class="headerlink" href="#clustering-trees" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#clustering-trees" id="id1">Clustering Trees</a><ul>
+<li><a class="reference internal" href="#overview" id="id2">Overview</a></li>
+<li><a class="reference internal" href="#loading-clustertrees" id="id3">Loading ClusterTrees</a></li>
+<li><a class="reference internal" href="#visualization-of-matrix-associated-trees" id="id4">Visualization of matrix associated Trees</a></li>
+<li><a class="reference internal" href="#cluster-validation-example" id="id5">Cluster Validation Example</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id2">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>Cluster analysis is the assignment of a set of observations into
+subsets (called clusters) so that observations in the same cluster are
+similar in some sense.  Clustering is a method of unsupervised
+learning, and a common technique for statistical data analysis used in
+many fields, including machine learning, data mining, pattern
+recognition, image analysis and bioinformatics. Hierarchical
+clustering creates a hierarchy of clusters which may be represented in
+a tree structure called a dendrogram. The root of the tree consists of
+a single cluster containing all observations, and the leaves
+correspond to individual observations. [The Wikipedia project
+Jun-2009].</p>
+<p>ETE provides special <a class="reference internal" href="../reference/reference_clustering.html#ete3.ClusterNode" title="ete3.ClusterNode"><code class="xref py py-class docutils literal"><span class="pre">ClusterNode</span></code></a> (alias ClusterTree)
+instances to deal with trees associated to a clustering analysis. The
+basic difference between <a class="reference internal" href="../reference/reference_tree.html#ete3.Tree" title="ete3.Tree"><code class="xref py py-class docutils literal"><span class="pre">Tree</span></code></a> and <a class="reference internal" href="../reference/reference_clustering.html#ete3.ClusterTree" title="ete3.ClusterTree"><code class="xref py py-class docutils literal"><span class="pre">ClusterTree</span></code></a> is
+that leaf nodes in a cluster-tree are linked to numerical
+profiles. Such profiles are expected to represent the data used to
+generate the clustering tree.  In other words, trees are bound to
+numerical arrays.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c">#              /-A</span>
+<span class="c">#          ---|</span>
+<span class="c">#              \-B</span>
+<span class="c">#</span>
+<span class="c"># #Names  col1   col2   col3</span>
+<span class="c"># A       1.1    0.1    1.33</span>
+<span class="c"># B       2.0    1.0    2.0</span>
+</pre></div>
+</div>
+<p>Based on this, <a class="reference internal" href="../reference/reference_clustering.html#ete3.ClusterTree" title="ete3.ClusterTree"><code class="xref py py-class docutils literal"><span class="pre">ClusterTree</span></code></a> instances provide several several
+clustering validation techniques that help in the analysis of cluster
+quality. Currently, inter and intra-cluster distances, cluster
+std.deviation, Silhouette analysis and Dunn indexes are supported. In
+addition, ClusterTree nodes can be visualized using the
+<a class="reference internal" href="../reference/reference_treeview.html#ete3.ProfileFace" title="ete3.ProfileFace"><code class="xref py py-class docutils literal"><span class="pre">ProfileFace</span></code></a> face type, which can represent cluster profiles
+in different ways, such as line plots, heatmaps or bar plots.</p>
+<p>Although this type of trees are intended to be used for clustering
+results, any tree that can be linked to a table (i.e. phylogenetic
+profiles) could be loaded using this data type, thus taking advantage
+of the profile visualization modes, etc.</p>
+</div>
+<div class="section" id="loading-clustertrees">
+<h2><a class="toc-backref" href="#id3">Loading ClusterTrees</a><a class="headerlink" href="#loading-clustertrees" title="Permalink to this headline">¶</a></h2>
+<p>A <a class="reference internal" href="../reference/reference_clustering.html#ete3.ClusterTree" title="ete3.ClusterTree"><code class="xref py py-class docutils literal"><span class="pre">ClusterTree</span></code></a> can be linked to a numerical matrix by using
+the <code class="xref py py-attr docutils literal"><span class="pre">text_array</span></code> argument.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">ClusterTree</span>
+
+<span class="c"># Example of a minimalistic numerical matrix. It is encoded as a text</span>
+<span class="c"># string for convenience, but it usally be loaded from a text file.</span>
+<span class="n">matrix</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">#Names</span><span class="se">\t</span><span class="s">col1</span><span class="se">\t</span><span class="s">col2</span><span class="se">\t</span><span class="s">col3</span><span class="se">\t</span><span class="s">col4</span><span class="se">\t</span><span class="s">col5</span><span class="se">\t</span><span class="s">col6</span><span class="se">\t</span><span class="s">col7</span>
+<span class="s">A</span><span class="se">\t</span><span class="s">-1.23</span><span class="se">\t</span><span class="s">-0.81</span><span class="se">\t</span><span class="s">1.79</span><span class="se">\t</span><span class="s">0.78</span><span class="se">\t</span><span class="s">-0.42</span><span class="se">\t</span><span class="s">-0.69</span><span class="se">\t</span><span class="s">0.58</span>
+<span class="s">B</span><span class="se">\t</span><span class="s">-1.76</span><span class="se">\t</span><span class="s">-0.94</span><span class="se">\t</span><span class="s">1.16</span><span class="se">\t</span><span class="s">0.36</span><span class="se">\t</span><span class="s">0.41</span><span class="se">\t</span><span class="s">-0.35</span><span class="se">\t</span><span class="s">1.12</span>
+<span class="s">C</span><span class="se">\t</span><span class="s">-2.19</span><span class="se">\t</span><span class="s">0.13</span><span class="se">\t</span><span class="s">0.65</span><span class="se">\t</span><span class="s">-0.51</span><span class="se">\t</span><span class="s">0.52</span><span class="se">\t</span><span class="s">1.04</span><span class="se">\t</span><span class="s">0.36</span>
+<span class="s">D</span><span class="se">\t</span><span class="s">-1.22</span><span class="se">\t</span><span class="s">-0.98</span><span class="se">\t</span><span class="s">0.79</span><span class="se">\t</span><span class="s">-0.76</span><span class="se">\t</span><span class="s">-0.29</span><span class="se">\t</span><span class="s">1.54</span><span class="se">\t</span><span class="s">0.93</span>
+<span class="s">E</span><span class="se">\t</span><span class="s">-1.47</span><span class="se">\t</span><span class="s">-0.83</span><span class="se">\t</span><span class="s">0.85</span><span class="se">\t</span><span class="s">0.07</span><span class="se">\t</span><span class="s">-0.81</span><span class="se">\t</span><span class="s">1.53</span><span class="se">\t</span><span class="s">0.65</span>
+<span class="s">F</span><span class="se">\t</span><span class="s">-1.04</span><span class="se">\t</span><span class="s">-1.11</span><span class="se">\t</span><span class="s">0.87</span><span class="se">\t</span><span class="s">-0.14</span><span class="se">\t</span><span class="s">-0.80</span><span class="se">\t</span><span class="s">1.74</span><span class="se">\t</span><span class="s">0.48</span>
+<span class="s">G</span><span class="se">\t</span><span class="s">-1.57</span><span class="se">\t</span><span class="s">-1.17</span><span class="se">\t</span><span class="s">1.29</span><span class="se">\t</span><span class="s">0.23</span><span class="se">\t</span><span class="s">-0.20</span><span class="se">\t</span><span class="s">1.17</span><span class="se">\t</span><span class="s">0.26</span>
+<span class="s">H</span><span class="se">\t</span><span class="s">-1.53</span><span class="se">\t</span><span class="s">-1.25</span><span class="se">\t</span><span class="s">0.59</span><span class="se">\t</span><span class="s">-0.30</span><span class="se">\t</span><span class="s">0.32</span><span class="se">\t</span><span class="s">1.41</span><span class="se">\t</span><span class="s">0.77</span>
+<span class="s">"""</span>
+<span class="k">print</span> <span class="s">"Example numerical matrix"</span>
+<span class="k">print</span> <span class="n">matrix</span>
+<span class="c"># #Names  col1    col2    col3    col4    col5    col6    col7</span>
+<span class="c"># A       -1.23   -0.81   1.79    0.78    -0.42   -0.69   0.58</span>
+<span class="c"># B       -1.76   -0.94   1.16    0.36    0.41    -0.35   1.12</span>
+<span class="c"># C       -2.19   0.13    0.65    -0.51   0.52    1.04    0.36</span>
+<span class="c"># D       -1.22   -0.98   0.79    -0.76   -0.29   1.54    0.93</span>
+<span class="c"># E       -1.47   -0.83   0.85    0.07    -0.81   1.53    0.65</span>
+<span class="c"># F       -1.04   -1.11   0.87    -0.14   -0.80   1.74    0.48</span>
+<span class="c"># G       -1.57   -1.17   1.29    0.23    -0.20   1.17    0.26</span>
+<span class="c"># H       -1.53   -1.25   0.59    -0.30   0.32    1.41    0.77</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c"># We load a tree structure whose leaf nodes correspond to rows in the</span>
+<span class="c"># numerical matrix. We use the text_array argument to link the tree</span>
+<span class="c"># with numerical matrix.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">ClusterTree</span><span class="p">(</span><span class="s">"(((A,B),(C,(D,E))),(F,(G,H)));"</span><span class="p">,</span> <span class="n">text_array</span><span class="o">=</span><span class="n">matrix</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Alternatively, you can re-link the tree (or a sub-part of it) to a new
+matrix using the <a class="reference internal" href="../reference/reference_clustering.html#ete3.ClusterNode.link_to_arraytable" title="ete3.ClusterNode.link_to_arraytable"><code class="xref py py-func docutils literal"><span class="pre">ClusterNode.link_to_arraytable()</span></code></a> method.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">t</span> <span class="o">=</span> <span class="n">ClusterTree</span><span class="p">(</span><span class="s">"(((A,B),(C,(D,E))),(F,(G,H)));"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">link_to_arraytable</span><span class="p">(</span><span class="n">matrix1</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">link_to_arraytable</span><span class="p">(</span><span class="n">matrix2</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Once the tree is linked to a table of profiles, the following node
+properties will be available: <code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.profile</span></code>,
+<code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.deviation</span></code>, <code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.silhoutte</span></code>,
+<code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.intercluster_dist</span></code>,
+<code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.intracluster_dist</span></code>, <code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.dunn</span></code>.</p>
+<p>Similarly, the following methods are provide for convenience
+<code class="xref py py-func docutils literal"><span class="pre">PhyloNode.iter_leaf_profiles()</span></code>,
+<code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_leaf_profiles()</span></code>, <code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_silhouette()</span></code>
+and <code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_dunn()</span></code> methods.</p>
+</div>
+<div class="section" id="visualization-of-matrix-associated-trees">
+<h2><a class="toc-backref" href="#id4">Visualization of matrix associated Trees</a><a class="headerlink" href="#visualization-of-matrix-associated-trees" title="Permalink to this headline">¶</a></h2>
+<p>Clustering or not, any ClusterTree instance, associated to a numerical
+matrix, can be visualized together with the graphical representation
+of its node’s numeric profiles. To this end, the <a class="reference internal" href="../reference/reference_treeview.html#ete3.ProfileFace" title="ete3.ProfileFace"><code class="xref py py-class docutils literal"><span class="pre">ProfileFace</span></code></a>
+class is provided by the <code class="xref py py-mod docutils literal"><span class="pre">treeview</span></code> module. This face type can
+represent a node’s numeric profile in four different ways:</p>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/profile_faces.png" src="../_images/profile_faces.png" />
+</div>
+</div></blockquote>
+<p>Additionally, three basic layouts are provided that use different
+styles of ProfileFace instances: <strong>heatmap</strong>, <strong>line_profiles</strong>,
+<strong>bar_profiles</strong>, <strong>cbar_profiles</strong>.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Import Tree instance and faces module</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">ClusterTree</span>
+<span class="c"># Example of a minimalistic numerical matrix. It is encoded as a text</span>
+<span class="c"># string for convenience, but it usally be loaded from a text file.</span>
+<span class="n">matrix</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">#Names</span><span class="se">\t</span><span class="s">col1</span><span class="se">\t</span><span class="s">col2</span><span class="se">\t</span><span class="s">col3</span><span class="se">\t</span><span class="s">col4</span><span class="se">\t</span><span class="s">col5</span><span class="se">\t</span><span class="s">col6</span><span class="se">\t</span><span class="s">col7</span>
+<span class="s">A</span><span class="se">\t</span><span class="s">-1.23</span><span class="se">\t</span><span class="s">-0.81</span><span class="se">\t</span><span class="s">1.79</span><span class="se">\t</span><span class="s">0.78</span><span class="se">\t</span><span class="s">-0.42</span><span class="se">\t</span><span class="s">-0.69</span><span class="se">\t</span><span class="s">0.58</span>
+<span class="s">B</span><span class="se">\t</span><span class="s">-1.76</span><span class="se">\t</span><span class="s">-0.94</span><span class="se">\t</span><span class="s">1.16</span><span class="se">\t</span><span class="s">0.36</span><span class="se">\t</span><span class="s">0.41</span><span class="se">\t</span><span class="s">-0.35</span><span class="se">\t</span><span class="s">1.12</span>
+<span class="s">C</span><span class="se">\t</span><span class="s">-2.19</span><span class="se">\t</span><span class="s">0.13</span><span class="se">\t</span><span class="s">0.65</span><span class="se">\t</span><span class="s">-0.51</span><span class="se">\t</span><span class="s">0.52</span><span class="se">\t</span><span class="s">1.04</span><span class="se">\t</span><span class="s">0.36</span>
+<span class="s">D</span><span class="se">\t</span><span class="s">-1.22</span><span class="se">\t</span><span class="s">-0.98</span><span class="se">\t</span><span class="s">0.79</span><span class="se">\t</span><span class="s">-0.76</span><span class="se">\t</span><span class="s">-0.29</span><span class="se">\t</span><span class="s">1.54</span><span class="se">\t</span><span class="s">0.93</span>
+<span class="s">E</span><span class="se">\t</span><span class="s">-1.47</span><span class="se">\t</span><span class="s">-0.83</span><span class="se">\t</span><span class="s">0.85</span><span class="se">\t</span><span class="s">0.07</span><span class="se">\t</span><span class="s">-0.81</span><span class="se">\t</span><span class="s">1.53</span><span class="se">\t</span><span class="s">0.65</span>
+<span class="s">F</span><span class="se">\t</span><span class="s">-1.04</span><span class="se">\t</span><span class="s">-1.11</span><span class="se">\t</span><span class="s">0.87</span><span class="se">\t</span><span class="s">-0.14</span><span class="se">\t</span><span class="s">-0.80</span><span class="se">\t</span><span class="s">1.74</span><span class="se">\t</span><span class="s">0.48</span>
+<span class="s">G</span><span class="se">\t</span><span class="s">-1.57</span><span class="se">\t</span><span class="s">-1.17</span><span class="se">\t</span><span class="s">1.29</span><span class="se">\t</span><span class="s">0.23</span><span class="se">\t</span><span class="s">-0.20</span><span class="se">\t</span><span class="s">1.17</span><span class="se">\t</span><span class="s">0.26</span>
+<span class="s">H</span><span class="se">\t</span><span class="s">-1.53</span><span class="se">\t</span><span class="s">-1.25</span><span class="se">\t</span><span class="s">0.59</span><span class="se">\t</span><span class="s">-0.30</span><span class="se">\t</span><span class="s">0.32</span><span class="se">\t</span><span class="s">1.41</span><span class="se">\t</span><span class="s">0.77</span>
+<span class="s">"""</span>
+<span class="k">print</span> <span class="s">"Example numerical matrix"</span>
+<span class="k">print</span> <span class="n">matrix</span>
+<span class="c"># #Names  col1    col2    col3    col4    col5    col6    col7</span>
+<span class="c"># A       -1.23   -0.81   1.79    0.78    -0.42   -0.69   0.58</span>
+<span class="c"># B       -1.76   -0.94   1.16    0.36    0.41    -0.35   1.12</span>
+<span class="c"># C       -2.19   0.13    0.65    -0.51   0.52    1.04    0.36</span>
+<span class="c"># D       -1.22   -0.98   0.79    -0.76   -0.29   1.54    0.93</span>
+<span class="c"># E       -1.47   -0.83   0.85    0.07    -0.81   1.53    0.65</span>
+<span class="c"># F       -1.04   -1.11   0.87    -0.14   -0.80   1.74    0.48</span>
+<span class="c"># G       -1.57   -1.17   1.29    0.23    -0.20   1.17    0.26</span>
+<span class="c"># H       -1.53   -1.25   0.59    -0.30   0.32    1.41    0.77</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c"># We load a tree structure whose leaf nodes correspond to rows in the</span>
+<span class="c"># numerical matrix. We use the text_array argument to link the tree</span>
+<span class="c"># with numerical matrix.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">ClusterTree</span><span class="p">(</span><span class="s">"(((A,B),(C,(D,E))),(F,(G,H)));"</span><span class="p">,</span> <span class="n">text_array</span><span class="o">=</span><span class="n">matrix</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="s">"heatmap"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="s">"cluster_cbars"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="s">"cluster_bars"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="s">"cluster_lines"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="cluster-validation-example">
+<h2><a class="toc-backref" href="#id5">Cluster Validation Example</a><a class="headerlink" href="#cluster-validation-example" title="Permalink to this headline">¶</a></h2>
+<p>If associated matrix represents the dataset used to produce a given
+tree, clustering validation values can be used to assess the quality
+of partitions. To do so, you will need to set the distance function
+that was used to calculate distances among items (leaf nodes). ETE
+implements three common distance methods in bioinformatics :
+<strong>euclidean</strong>, <strong>pearson</strong> correlation and <strong>spearman</strong> correlation
+distances.</p>
+<p>In the following example, a microarray clustering result is visualized
+and validated using ETE.</p>
+<div class="figure">
+<img alt="../_images/bubbles_validation.png" src="../_images/bubbles_validation.png" />
+</div>
+<p>Image resulting from a microarray clustering validation analysis. Red
+bubbles represent a bad silhouette index (S<0), while green represents
+good silhouette index (S>0). Size of bubbles is proportional to the
+Silhouette index. Internal nodes are drawn with the average expression
+profile grouped by their partitions. Leaf node profiles are shown as a
+heatmap.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">ClusterTree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">ProfileFace</span><span class="p">,</span> <span class="n">TextFace</span>
+<span class="kn">from</span> <span class="nn">ete3.treeview.faces</span> <span class="kn">import</span> <span class="n">add_face_to_node</span>
+
+<span class="c"># To operate with numbers efficiently</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+
+<span class="n">PATH</span> <span class="o">=</span> <span class="s">"./"</span>
+<span class="c"># Loads tree and array</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">ClusterTree</span><span class="p">(</span><span class="n">PATH</span><span class="o">+</span><span class="s">"diauxic.nw"</span><span class="p">,</span> <span class="n">PATH</span><span class="o">+</span><span class="s">"diauxic.array"</span><span class="p">)</span>
+
+<span class="c"># nodes are linked to the array table</span>
+<span class="n">array</span> <span class="o">=</span>  <span class="n">t</span><span class="o">.</span><span class="n">arraytable</span>
+
+<span class="c"># Calculates some stats on the matrix. Needed to establish the color</span>
+<span class="c"># gradients.</span>
+<span class="n">matrix_dist</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">xrange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">array</span><span class="o">.</span><span class="n">matrix</span><span class="p">))</span>\
+               <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">array</span><span class="o">.</span><span class="n">matrix</span><span class="p">[</span><span class="n">r</span><span class="p">]</span> <span class="k">if</span> <span class="n">numpy</span><span class="o">.</span><span class="n">isfinite</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span>
+<span class="n">matrix_max</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">matrix_dist</span><span class="p">)</span>
+<span class="n">matrix_min</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">matrix_dist</span><span class="p">)</span>
+<span class="n">matrix_avg</span> <span class="o">=</span> <span class="n">matrix_min</span><span class="o">+</span><span class="p">((</span><span class="n">matrix_max</span><span class="o">-</span><span class="n">matrix_min</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
+
+<span class="c"># Creates a profile face that will represent node's profile as a</span>
+<span class="c"># heatmap</span>
+<span class="n">profileFace</span>  <span class="o">=</span> <span class="n">ProfileFace</span><span class="p">(</span><span class="n">matrix_max</span><span class="p">,</span> <span class="n">matrix_min</span><span class="p">,</span> <span class="n">matrix_avg</span><span class="p">,</span> \
+                                         <span class="mi">200</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="s">"heatmap"</span><span class="p">)</span>
+<span class="n">cbarsFace</span> <span class="o">=</span> <span class="n">ProfileFace</span><span class="p">(</span><span class="n">matrix_max</span><span class="p">,</span><span class="n">matrix_min</span><span class="p">,</span><span class="n">matrix_avg</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">70</span><span class="p">,</span><span class="s">"cbars"</span><span class="p">)</span>
+<span class="n">nameFace</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">8</span><span class="p">)</span>
+<span class="c"># Creates my own layout function that uses previous faces</span>
+<span class="k">def</span> <span class="nf">mylayout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="c"># If node is a leaf</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="c"># And a line profile</span>
+        <span class="n">add_face_to_node</span><span class="p">(</span><span class="n">profileFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">aligned</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span><span class="o">=</span><span class="mi">0</span>
+        <span class="n">add_face_to_node</span><span class="p">(</span><span class="n">nameFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">aligned</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+    <span class="c"># If node is internal</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c"># If silhouette is good, creates a green bubble</span>
+        <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="o">></span><span class="mi">0</span><span class="p">:</span>
+            <span class="n">validationFace</span> <span class="o">=</span> <span class="n">TextFace</span><span class="p">(</span><span class="s">"Silh=</span><span class="si">%0.2f</span><span class="s">"</span> <span class="o">%</span><span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="p">,</span>
+                                      <span class="s">"Verdana"</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"#056600"</span><span class="p">)</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span><span class="o">=</span><span class="s">"#056600"</span>
+        <span class="c"># Otherwise, use red bubbles</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">validationFace</span> <span class="o">=</span> <span class="n">TextFace</span><span class="p">(</span><span class="s">"Silh=</span><span class="si">%0.2f</span><span class="s">"</span> <span class="o">%</span><span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="p">,</span>
+                                      <span class="s">"Verdana"</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"#940000"</span><span class="p">)</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span><span class="o">=</span><span class="s">"#940000"</span>
+
+        <span class="c"># Sets node size proportional to the silhouette value.</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span><span class="o">=</span><span class="s">"sphere"</span>
+        <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="o"><=</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="o">>=-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span><span class="o">=</span> <span class="mi">15</span><span class="o">+</span><span class="nb">int</span><span class="p">((</span><span class="nb">abs</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">silhouette</span><span class="p">)</span><span class="o">*</span> [...]
+
+        <span class="c"># If node is very internal, draw also a bar diagram</span>
+        <span class="c"># with the average expression of the partition</span>
+        <span class="n">add_face_to_node</span><span class="p">(</span><span class="n">validationFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">></span><span class="mi">100</span><span class="p">:</span>
+            <span class="n">add_face_to_node</span><span class="p">(</span><span class="n">cbarsFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+
+<span class="c"># Use my layout to visualize the tree</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">mylayout</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_xml.html" class="btn btn-neutral float-right" title="Phylogenetic XML standards" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_phylogeny.html" class="btn btn-neutral" title="Phylogenetic Trees" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_drawing.html b/doc/tutorial/tutorial_drawing.html
new file mode 100644
index 0000000..8baae32
--- /dev/null
+++ b/doc/tutorial/tutorial_drawing.html
@@ -0,0 +1,1372 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>The Programmable Tree Drawing Engine — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="Phylogenetic Trees" href="tutorial_phylogeny.html"/>
+        <link rel="prev" title="Working With Tree Data Structures" href="tutorial_trees.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">The Programmable Tree Drawing Engine</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#interactive-visualization-of-trees">Interactive visualization of trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#rendering-trees-as-images">Rendering trees as images</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#customizing-the-aspect-of-trees">Customizing the aspect of trees</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#tree-style">Tree style</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#node-style">Node style</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#node-faces">Node faces</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#layout-functions">layout functions</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#combining-styles-faces-and-layouts">Combining styles, faces and layouts</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#fixed-node-styles">Fixed node styles</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#node-backgrounds">Node backgrounds</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#img-faces">Img Faces</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#bubble-tree-maps">Bubble tree maps</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#trees-within-trees">Trees within trees</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#phylogenetic-trees-and-sequence-domains">Phylogenetic trees and sequence domains</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#creating-your-custom-interactive-item-faces">Creating your custom interactive Item faces</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>The Programmable Tree Drawing Engine</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_drawing.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="the-programmable-tree-drawing-engine">
+<h1><a class="toc-backref" href="#id10">The Programmable Tree Drawing Engine</a><a class="headerlink" href="#the-programmable-tree-drawing-engine" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<span id="drawing"></span><p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#the-programmable-tree-drawing-engine" id="id10">The Programmable Tree Drawing Engine</a><ul>
+<li><a class="reference internal" href="#overview" id="id11">Overview</a></li>
+<li><a class="reference internal" href="#interactive-visualization-of-trees" id="id12">Interactive visualization of trees</a></li>
+<li><a class="reference internal" href="#rendering-trees-as-images" id="id13">Rendering trees as images</a></li>
+<li><a class="reference internal" href="#customizing-the-aspect-of-trees" id="id14">Customizing the aspect of trees</a><ul>
+<li><a class="reference internal" href="#tree-style" id="id15">Tree style</a><ul>
+<li><a class="reference internal" href="#show-leaf-node-names-branch-length-and-branch-support" id="id16">Show leaf node names, branch length and branch support</a></li>
+<li><a class="reference internal" href="#change-branch-length-scale-zoom-in-x" id="id17">Change branch length scale (zoom in X)</a></li>
+<li><a class="reference internal" href="#change-branch-separation-between-nodes-zoom-in-y" id="id18">Change branch separation between nodes (zoom in Y)</a></li>
+<li><a class="reference internal" href="#rotate-a-tree" id="id19">Rotate a tree</a></li>
+<li><a class="reference internal" href="#circular-tree-in-180-degrees" id="id20">circular tree in 180 degrees</a></li>
+<li><a class="reference internal" href="#add-legend-and-title" id="id21">Add legend and title</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#node-style" id="id22">Node style</a></li>
+<li><a class="reference internal" href="#node-faces" id="id23">Node faces</a><ul>
+<li><a class="reference internal" href="#faces-position" id="id24">Faces position</a></li>
+<li><a class="reference internal" href="#face-properties" id="id25">Face properties</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#layout-functions" id="id26">layout functions</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#combining-styles-faces-and-layouts" id="id27">Combining styles, faces and layouts</a><ul>
+<li><a class="reference internal" href="#fixed-node-styles" id="id28">Fixed node styles</a></li>
+<li><a class="reference internal" href="#node-backgrounds" id="id29">Node backgrounds</a></li>
+<li><a class="reference internal" href="#img-faces" id="id30">Img Faces</a></li>
+<li><a class="reference internal" href="#bubble-tree-maps" id="id31">Bubble tree maps</a></li>
+<li><a class="reference internal" href="#trees-within-trees" id="id32">Trees within trees</a></li>
+<li><a class="reference internal" href="#phylogenetic-trees-and-sequence-domains" id="id33">Phylogenetic trees and sequence domains</a></li>
+<li><a class="reference internal" href="#creating-your-custom-interactive-item-faces" id="id34">Creating your custom interactive Item faces</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id11">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>ETE’s treeview extension provides a highly programmable drawing system
+to render any hierarchical tree structure as PDF, SVG or PNG
+images. Although several predefined visualization layouts are included
+with the default installation, custom styles can be easily created
+from scratch.</p>
+<p>Image customization is performed through four elements: <strong>a)</strong>
+<a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a>, setting general options about the image (shape,
+rotation, etc.), <strong>b)</strong> <a class="reference internal" href="../reference/reference_treeview.html#ete3.NodeStyle" title="ete3.NodeStyle"><code class="xref py py-class docutils literal"><span class="pre">NodeStyle</span></code></a>, which defines the
+specific aspect of each node (size, color, background, line type,
+etc.), <strong>c)</strong> node <code class="xref py py-class docutils literal"><span class="pre">faces.Face</span></code> which are small pieces of extra
+graphical information that can be added to nodes (text labels, images,
+graphs, etc.) <strong>d)</strong> a <code class="xref py py-attr docutils literal"><span class="pre">layout</span></code> function, a normal python
+function that controls how node styles and faces are dynamically added
+to nodes.</p>
+<p>Images can be rendered as <strong>PNG</strong>, <strong>PDF</strong> or <strong>SVG</strong> files using the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.render" title="ete3.TreeNode.render"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.render()</span></code></a> method or interactively visualized using a
+built-in Graphical User Interface (GUI) invoked by the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.show" title="ete3.TreeNode.show"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.show()</span></code></a> method.</p>
+</div>
+<div class="section" id="interactive-visualization-of-trees">
+<h2><a class="toc-backref" href="#id12">Interactive visualization of trees</a><a class="headerlink" href="#interactive-visualization-of-trees" title="Permalink to this headline">¶</a></h2>
+<p>ETE’s tree drawing engine is fully integrated with a built-in
+graphical user interface (GUI). Thus, ETE allows to visualize trees
+using an interactive interface that allows to explore and manipulate
+node’s properties and tree topology.  To start the visualization of a
+node (tree or subtree), you can simply call the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.show" title="ete3.TreeNode.show"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.show()</span></code></a>
+method.</p>
+<p>One of the advantages of this on-line GUI visualization is that you
+can use it to interrupt a given program/analysis, explore the tree,
+manipulate them, and continuing with the execution thread. Note that
+<strong>changes made using the GUI will be kept after quiting the
+GUI</strong>. This feature is specially useful for using during python
+sessions, in which analyses are performed interactively.</p>
+<p>The GUI allows many operations to be performed graphically, however it
+does not implement all the possibilities of the programming toolkit.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="rendering-trees-as-images">
+<h2><a class="toc-backref" href="#id13">Rendering trees as images</a><a class="headerlink" href="#rendering-trees-as-images" title="Permalink to this headline">¶</a></h2>
+<p>Tree images can be directly written as image files. SVG, PDF and PNG
+formats are supported. Note that, while PNG images are raster images,
+PDF and SVG pictures are rendered as <a class="reference external" href="http://en.wikipedia.org/wiki/Vector_graphics">vector graphics</a>, thus allowing its
+later modification and scaling.</p>
+<p>To generate an image, the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.render" title="ete3.TreeNode.render"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.render()</span></code></a> method should be
+used instead of <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.show" title="ete3.TreeNode.show"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.show()</span></code></a>. The only required argument is
+the file name, whose extension will determine the image format (.PDF,
+.SVG or .PNG). Several parameters regarding the image size and
+resolution can be adjusted:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="22%" />
+<col width="78%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="xref py py-attr docutils literal"><span class="pre">units</span></code></td>
+<td>“<strong>px</strong>”: pixels, “<strong>mm</strong>”: millimeters, “<strong>in</strong>”: inches</td>
+</tr>
+<tr class="row-odd"><td><code class="xref py py-attr docutils literal"><span class="pre">h</span></code></td>
+<td>height of the image in <code class="xref py py-attr docutils literal"><span class="pre">units</span></code>.</td>
+</tr>
+<tr class="row-even"><td><code class="xref py py-attr docutils literal"><span class="pre">w</span></code></td>
+<td>width of the image in <code class="xref py py-attr docutils literal"><span class="pre">units</span></code>.</td>
+</tr>
+<tr class="row-odd"><td><code class="xref py py-attr docutils literal"><span class="pre">dpi</span></code></td>
+<td>dots per inches.</td>
+</tr>
+</tbody>
+</table>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">If <code class="xref py py-attr docutils literal"><span class="pre">h</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">w</span></code> values are both provided, image size
+will be adjusted even if it requires to break the original aspect
+ratio of the image. If only one value (<code class="xref py py-attr docutils literal"><span class="pre">h</span></code> or <code class="xref py py-attr docutils literal"><span class="pre">w</span></code>) is
+provided, the other will be estimated to maintain aspect ratio. If
+no sizing values are provided, image will be adjusted to A4
+dimensions.</p>
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s">"mytree.png"</span><span class="p">,</span> <span class="n">w</span><span class="o">=</span><span class="mi">183</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="s">"mm"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="customizing-the-aspect-of-trees">
+<h2><a class="toc-backref" href="#id14">Customizing the aspect of trees</a><a class="headerlink" href="#customizing-the-aspect-of-trees" title="Permalink to this headline">¶</a></h2>
+<p>Image customization is performed through four main elements:</p>
+<div class="section" id="tree-style">
+<h3><a class="toc-backref" href="#id15">Tree style</a><a class="headerlink" href="#tree-style" title="Permalink to this headline">¶</a></h3>
+<p>The <a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a> class can be used to create a custom set of
+options that control the general aspect of the tree image. Tree styles
+can be passed to the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.show" title="ete3.TreeNode.show"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.show()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.render" title="ete3.TreeNode.render"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.render()</span></code></a>
+methods.  For instance, <a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a> allows to modify the scale
+used to render tree branches or choose between circular or rectangular
+tree drawing modes.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+<span class="n">circular_style</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">circular_style</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="s">"c"</span> <span class="c"># draw tree in circular mode</span>
+<span class="n">circular_style</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mi">20</span>
+<span class="n">t</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s">"mytree.png"</span><span class="p">,</span> <span class="n">w</span><span class="o">=</span><span class="mi">183</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="s">"mm"</span><span class="p">,</span> <span class="n">tree_style</span><span class="o">=</span><span class="n">circular_style</span><span class=" [...]
+</pre></div>
+</div>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">A number of parameters can be controlled through custom
+tree style objects, check <a class="reference internal" href="../reference/reference_treeview.html#ete3.TreeStyle" title="ete3.TreeStyle"><code class="xref py py-class docutils literal"><span class="pre">TreeStyle</span></code></a> documentation for a
+complete list of accepted values.</p>
+</div>
+<p>Some common uses include:</p>
+<div class="section" id="show-leaf-node-names-branch-length-and-branch-support">
+<h4><a class="toc-backref" href="#id16">Show leaf node names, branch length and branch support</a><a class="headerlink" href="#show-leaf-node-names-branch-length-and-branch-support" title="Permalink to this headline">¶</a></h4>
+<div class="figure" id="id1">
+<img alt="../_images/show_info.png" src="../_images/show_info.png" />
+<p class="caption"><span class="caption-text">Automatically adds node names and branch information to the tree image:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">random_dist</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_branch_length</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_branch_support</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="change-branch-length-scale-zoom-in-x">
+<h4><a class="toc-backref" href="#id17">Change branch length scale (zoom in X)</a><a class="headerlink" href="#change-branch-length-scale-zoom-in-x" title="Permalink to this headline">¶</a></h4>
+<div class="figure" id="id2">
+<img alt="../_images/scale_x.png" src="../_images/scale_x.png" />
+<p class="caption"><span class="caption-text">Increases the length of the tree by changing the scale:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">random_dist</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span>  <span class="mi">120</span> <span class="c"># 120 pixels per branch length unit</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="change-branch-separation-between-nodes-zoom-in-y">
+<h4><a class="toc-backref" href="#id18">Change branch separation between nodes (zoom in Y)</a><a class="headerlink" href="#change-branch-separation-between-nodes-zoom-in-y" title="Permalink to this headline">¶</a></h4>
+<div class="figure" id="id3">
+<img alt="../_images/scale_y.png" src="../_images/scale_y.png" />
+<p class="caption"><span class="caption-text">Increases the separation between leaf branches:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">random_dist</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">branch_vertical_margin</span> <span class="o">=</span> <span class="mi">10</span> <span class="c"># 10 pixels between adjacent branches</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="rotate-a-tree">
+<h4><a class="toc-backref" href="#id19">Rotate a tree</a><a class="headerlink" href="#rotate-a-tree" title="Permalink to this headline">¶</a></h4>
+<div class="figure" id="id4">
+<img alt="../_images/rotated_tree.png" src="../_images/rotated_tree.png" />
+<p class="caption"><span class="caption-text">Draws a rectangular tree from top to bottom:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">rotation</span> <span class="o">=</span> <span class="mi">90</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="circular-tree-in-180-degrees">
+<h4><a class="toc-backref" href="#id20">circular tree in 180 degrees</a><a class="headerlink" href="#circular-tree-in-180-degrees" title="Permalink to this headline">¶</a></h4>
+<div class="figure" id="id5">
+<img alt="../_images/semi_circular_tree.png" src="../_images/semi_circular_tree.png" />
+<p class="caption"><span class="caption-text">Draws a circular tree using a semi-circumference:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="s">"c"</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">arc_start</span> <span class="o">=</span> <span class="o">-</span><span class="mi">180</span> <span class="c"># 0 degrees = 3 o'clock</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">arc_span</span> <span class="o">=</span> <span class="mi">180</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="add-legend-and-title">
+<h4><a class="toc-backref" href="#id21">Add legend and title</a><a class="headerlink" href="#add-legend-and-title" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">TextFace</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"Hello ETE"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">20</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="node-style">
+<h3><a class="toc-backref" href="#id22">Node style</a><a class="headerlink" href="#node-style" title="Permalink to this headline">¶</a></h3>
+<p>Through the <a class="reference internal" href="../reference/reference_treeview.html#ete3.NodeStyle" title="ete3.NodeStyle"><code class="xref py py-class docutils literal"><span class="pre">NodeStyle</span></code></a> class the aspect of each single node
+can be controlled, including its size, color, background and branch type.</p>
+<p>A node style can be defined statically and attached to several nodes:</p>
+<div class="figure" id="id6">
+<img alt="../_images/node_style_red_nodes.png" src="../_images/node_style_red_nodes.png" />
+<p class="caption"><span class="caption-text">Simple tree in which the same style is applied to all nodes:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">NodeStyle</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+
+<span class="c"># Basic tree style</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+
+<span class="c"># Draws nodes as small red spheres of diameter equal to 10 pixels</span>
+<span class="n">nstyle</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+<span class="n">nstyle</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"sphere"</span>
+<span class="n">nstyle</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">nstyle</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"darkred"</span>
+
+<span class="c"># Gray dashed branch lines</span>
+<span class="n">nstyle</span><span class="p">[</span><span class="s">"hz_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">nstyle</span><span class="p">[</span><span class="s">"hz_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#cccccc"</span>
+
+<span class="c"># Applies the same static style to all nodes in the tree. Note that,</span>
+<span class="c"># if "nstyle" is modified, changes will affect to all nodes</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+   <span class="n">n</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nstyle</span><span class="p">)</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<p>If you want to draw nodes with different styles, an independent
+<a class="reference internal" href="../reference/reference_treeview.html#ete3.NodeStyle" title="ete3.NodeStyle"><code class="xref py py-class docutils literal"><span class="pre">NodeStyle</span></code></a> instance must be created for each node. Note that
+node styles can be modified at any moment by accessing the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.img_style" title="ete3.TreeNode.img_style"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.img_style</span></code></a> attribute.</p>
+<div class="figure" id="id7">
+<img alt="../_images/node_style_red_and_blue_nodes.png" src="../_images/node_style_red_and_blue_nodes.png" />
+<p class="caption"><span class="caption-text">Simple tree in which the different styles are applied to each node:</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">NodeStyle</span><span class="p">,</span> <span class="n">TreeStyle</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+
+<span class="c"># Basic tree style</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+
+<span class="c"># Creates an independent node style for each node, which is</span>
+<span class="c"># initialized with a red foreground color.</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+   <span class="n">nstyle</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+   <span class="n">nstyle</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"red"</span>
+   <span class="n">nstyle</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span>
+   <span class="n">n</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nstyle</span><span class="p">)</span>
+
+<span class="c"># Let's now modify the aspect of the root node</span>
+<span class="n">t</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span>
+<span class="n">t</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"blue"</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<p>Static node styles, set through the <code class="xref py py-func docutils literal"><span class="pre">set_style()</span></code> method, will be
+attached to the nodes and exported as part of their information. For
+instance, <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.copy" title="ete3.TreeNode.copy"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.copy()</span></code></a> will replicate all node styles in the
+replicate tree. Note that node styles can be also modified on the fly
+through a <code class="xref py py-attr docutils literal"><span class="pre">layout</span></code> function (see <a class="reference internal" href="#sec-layout-functions"><span>layout functions</span></a>)</p>
+</div>
+<div class="section" id="node-faces">
+<span id="sec-node-faces"></span><h3><a class="toc-backref" href="#id23">Node faces</a><a class="headerlink" href="#node-faces" title="Permalink to this headline">¶</a></h3>
+<p>Node faces are small pieces of graphical information that can be
+linked to nodes. For instance, text labels or external images could be
+linked to nodes and they will be plotted within the tree image.</p>
+<p>Several types of node faces are provided by the main <a class="reference internal" href="tutorial_trees.html#module-ete3" title="ete3: provides main objects and modules"><code class="xref py py-mod docutils literal"><span class="pre">ete3</span></code></a>
+module, ranging from simple text (<code class="xref py py-class docutils literal"><span class="pre">TextFace</span></code>) and geometric
+shapes (<code class="xref py py-class docutils literal"><span class="pre">CircleFace</span></code>), to molecular sequence representations
+(<code class="xref py py-class docutils literal"><span class="pre">SequenceFace</span></code>), heatmaps and profile plots
+(<code class="xref py py-class docutils literal"><span class="pre">ProfileFace</span></code>). A complete list of available faces can be
+found at the <a class="reference internal" href="../reference/reference_treeview.html#module-ete3.treeview" title="ete3.treeview"><code class="xref py py-mod docutils literal"><span class="pre">ete3.treeview</span></code></a> reference page..</p>
+<div class="section" id="faces-position">
+<h4><a class="toc-backref" href="#id24">Faces position</a><a class="headerlink" href="#faces-position" title="Permalink to this headline">¶</a></h4>
+<p>Faces can be added to different areas around the node, namely
+<strong>branch-right</strong>, <strong>branch-top</strong>, <strong>branch-bottom</strong> or <strong>aligned</strong>.
+Each area represents a table in which faces can be added through the
+<code class="xref py py-func docutils literal"><span class="pre">TreeNode.add_face()</span></code> method. For instance, if two text labels
+want to be drawn bellow the branch line of a given node, a pair of
+<code class="xref py py-class docutils literal"><span class="pre">TextFace</span></code> faces can be created and added to the columns 0
+and 1 of the <strong>branch-bottom</strong> area:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">TextFace</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((a,b),c);"</span> <span class="p">)</span>
+
+<span class="c"># Basic tree style</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+
+<span class="c"># Add two text faces to different columns</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"hola "</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-right"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"mundo!"</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-right"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>If you add more than one face to the same area and column, they will
+be piled up. See the following image as an example of face positions:</p>
+<blockquote>
+<div><div class="figure" id="id8">
+<img alt="possible face positions" src="../_images/face_positions.png" />
+<p class="caption"><span class="caption-text"><a class="reference download internal" href="../_downloads/face_grid.py"><code class="xref download docutils literal"><span class="pre">Source</span> <span class="pre">code</span></code></a> used to generate the
+above image.</span></p>
+</div>
+</div></blockquote>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Once a face object is created, it can be linked to one or more
+nodes. For instance, the same text label can be recycled and added
+to several nodes.</p>
+</div>
+</div>
+<div class="section" id="face-properties">
+<h4><a class="toc-backref" href="#id25">Face properties</a><a class="headerlink" href="#face-properties" title="Permalink to this headline">¶</a></h4>
+<p>Apart from the specific config values of each face type, all face
+instances contain same basic attributes that permit to modify general
+aspects such as margins, background colors, border, etc. A complete
+list of face attributes can be found in the general <code class="xref py py-class docutils literal"><span class="pre">Face</span></code>
+class documentation. Here is a very simple example:</p>
+<div class="figure" id="id9">
+<img alt="../_images/face_borders.png" src="../_images/face_borders.png" />
+<p class="caption"><span class="caption-text">Basic use of face general attributes</span></p>
+<div class="legend">
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">TextFace</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"(a,b);"</span> <span class="p">)</span>
+
+<span class="c"># Basic tree style</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+
+<span class="c"># Creates two faces</span>
+<span class="n">hola</span> <span class="o">=</span> <span class="n">TextFace</span><span class="p">(</span><span class="s">"hola"</span><span class="p">)</span>
+<span class="n">mundo</span> <span class="o">=</span> <span class="n">TextFace</span><span class="p">(</span><span class="s">"mundo"</span><span class="p">)</span>
+
+<span class="c"># Set some attributes</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">margin_top</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">margin_right</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">margin_left</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">margin_bottom</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">opacity</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="c"># from 0 to 1</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">inner_border</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">1</span> <span class="c"># 1 pixel border</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">inner_border</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c"># dashed line</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">border</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">hola</span><span class="o">.</span><span class="n">background</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">"LightGreen"</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">hola</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-top"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">mundo</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-bottom"</span><span class="p">)</span>
+
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="layout-functions">
+<span id="sec-layout-functions"></span><h3><a class="toc-backref" href="#id26">layout functions</a><a class="headerlink" href="#layout-functions" title="Permalink to this headline">¶</a></h3>
+<p>Layout functions act as pre-drawing <a class="reference external" href="http://en.wikipedia.org/wiki/Hooking">hooking functions</a>. This means, when a node is
+about to be drawn, it is first sent to a layout function.  Node
+properties, style and faces can be then modified on the fly and return
+it to the drawer engine. Thus, layout functions can be understood as a
+collection of rules controlling how different nodes should be drawn.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((((a,b),c), d), e);"</span> <span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">abc_layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="n">vowels</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"u"</span><span class="p">])</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">vowels</span><span class="p">:</span>
+
+       <span class="c"># Note that node style are already initialized with the</span>
+       <span class="c"># default values</span>
+
+       <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span>
+       <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"red"</span>
+
+<span class="c"># Basic tree style</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+
+<span class="c"># Add two text faces to different columns</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"hola "</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-right"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"mundo!"</span><span class="p">),</span> <span class="n">column</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="s">"branch-right"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="combining-styles-faces-and-layouts">
+<h2><a class="toc-backref" href="#id27">Combining styles, faces and layouts</a><a class="headerlink" href="#combining-styles-faces-and-layouts" title="Permalink to this headline">¶</a></h2>
+<p>Examples are probably the best way to show how ETE works:</p>
+<div class="section" id="fixed-node-styles">
+<h3><a class="toc-backref" href="#id28">Fixed node styles</a><a class="headerlink" href="#fixed-node-styles" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/node_style.png" src="../_images/node_style.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">NodeStyle</span>
+
+<span class="k">def</span> <span class="nf">layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="c"># If node is a leaf, add the nodes name and a its scientific name</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">),</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+
+    <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
+
+    <span class="c"># Node style handling is no longer limited to layout functions. You</span>
+    <span class="c"># can now create fixed node styles and use them many times, save them</span>
+    <span class="c"># or even add them to nodes before drawing (this allows to save and</span>
+    <span class="c"># reproduce an tree image design)</span>
+
+    <span class="c"># Set bold red branch to the root node</span>
+    <span class="n">style</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#0f0f0f"</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"vt_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#ff0000"</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"hz_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#ff0000"</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"vt_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">8</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"hz_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">8</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"vt_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span> <span class="c"># 0 solid, 1 dashed, 2 dotted</span>
+    <span class="n">style</span><span class="p">[</span><span class="s">"hz_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">style</span><span class="p">)</span>
+
+    <span class="c">#Set dotted red lines to the first two branches</span>
+    <span class="n">style1</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#0f0f0f"</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"vt_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#ff0000"</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"hz_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#ff0000"</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"vt_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"hz_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"vt_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span> <span class="c"># 0 solid, 1 dashed, 2 dotted</span>
+    <span class="n">style1</span><span class="p">[</span><span class="s">"hz_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">img_style</span> <span class="o">=</span> <span class="n">style1</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">img_style</span> <span class="o">=</span> <span class="n">style1</span>
+
+    <span class="c"># Set dashed blue lines in all leaves</span>
+    <span class="n">style2</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#000000"</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"circle"</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"vt_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#0000aa"</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"hz_line_color"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#0000aa"</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"vt_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"hz_line_width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"vt_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> <span class="c"># 0 solid, 1 dashed, 2 dotted</span>
+    <span class="n">style2</span><span class="p">[</span><span class="s">"hz_line_type"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_leaves</span><span class="p">():</span>
+        <span class="n">l</span><span class="o">.</span><span class="n">img_style</span> <span class="o">=</span> <span class="n">style2</span>
+
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">layout</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">False</span>
+
+    <span class="k">return</span> <span class="n">t</span><span class="p">,</span> <span class="n">ts</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+    <span class="c">#t.render("node_style.png", w=400, tree_style=ts)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="node-backgrounds">
+<h3><a class="toc-backref" href="#id29">Node backgrounds</a><a class="headerlink" href="#node-backgrounds" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/node_background.png" src="../_images/node_background.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">NodeStyle</span>
+
+<span class="k">def</span> <span class="nf">layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="n">N</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">30</span><span class="p">)</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="s">"aligned"</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+
+    <span class="c"># Set dashed blue lines in all leaves</span>
+    <span class="n">nst1</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">nst1</span><span class="p">[</span><span class="s">"bgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"LightSteelBlue"</span>
+    <span class="n">nst2</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">nst2</span><span class="p">[</span><span class="s">"bgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"Moccasin"</span>
+    <span class="n">nst3</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">nst3</span><span class="p">[</span><span class="s">"bgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"DarkSeaGreen"</span>
+    <span class="n">nst4</span> <span class="o">=</span> <span class="n">NodeStyle</span><span class="p">()</span>
+    <span class="n">nst4</span><span class="p">[</span><span class="s">"bgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"Khaki"</span>
+
+
+    <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((((a1,a2),a3), ((b1,b2),(b3,b4))), ((c1,c2),c3));"</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+        <span class="n">n</span><span class="o">.</span><span class="n">dist</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="n">n1</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"a1"</span><span class="p">,</span> <span class="s">"a2"</span><span class="p">,</span> <span class="s">"a3"</span><span class="p">)</span>
+    <span class="n">n1</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nst1</span><span class="p">)</span>
+    <span class="n">n2</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"b1"</span><span class="p">,</span> <span class="s">"b2"</span><span class="p">,</span> <span class="s">"b3"</span><span class="p">,</span> <span class="s">"b4"</span><span class="p">)</span>
+    <span class="n">n2</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nst2</span><span class="p">)</span>
+    <span class="n">n3</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"c1"</span><span class="p">,</span> <span class="s">"c2"</span><span class="p">,</span> <span class="s">"c3"</span><span class="p">)</span>
+    <span class="n">n3</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nst3</span><span class="p">)</span>
+    <span class="n">n4</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"b3"</span><span class="p">,</span> <span class="s">"b4"</span><span class="p">)</span>
+    <span class="n">n4</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">nst4</span><span class="p">)</span>
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">layout</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">False</span>
+
+    <span class="n">ts</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="s">"c"</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">root_opening_factor</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">return</span> <span class="n">t</span><span class="p">,</span> <span class="n">ts</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+    <span class="c">#t.render("node_background.png", w=400, tree_style=ts)</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="img-faces">
+<h3><a class="toc-backref" href="#id30">Img Faces</a><a class="headerlink" href="#img-faces" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/img_faces.png" src="../_images/img_faces.png" />
+</div>
+</div></blockquote>
+<p>Note that images are attached to terminal and internal nodes.</p>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre><span class="c"># Import Tree instance and faces module</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="c"># Loads an example tree</span>
+<span class="n">nw</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">(((Dre:0.008339,Dme:0.300613)1.000000:0.596401,</span>
+<span class="s">(Cfa:0.640858,Hsa:0.753230)1.000000:0.182035)1.000000:0.106234,</span>
+<span class="s">((Dre:0.271621,Cfa:0.046042)1.000000:0.953250,</span>
+<span class="s">(Hsa:0.061813,Mms:0.110769)1.000000:0.204419)1.000000:0.973467);</span>
+<span class="s">"""</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="n">nw</span><span class="p">)</span>
+
+<span class="c"># You can create any random tree containing the same leaf names, and</span>
+<span class="c"># layout will work equally</span>
+<span class="c">#</span>
+<span class="c"># t = Tree()</span>
+<span class="c"># Creates a random tree with 8 leaves using a given set of names</span>
+<span class="c"># t.populate(8, ["Dme", "Dre", "Hsa", "Ptr", "Cfa", "Mms"])</span>
+
+<span class="c"># Set the path in which images are located</span>
+<span class="n">img_path</span> <span class="o">=</span> <span class="s">"./"</span>
+<span class="c"># Create faces based on external images</span>
+<span class="n">humanFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"human.png"</span><span class="p">)</span>
+<span class="n">mouseFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"mouse.png"</span><span class="p">)</span>
+<span class="n">dogFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"dog.png"</span><span class="p">)</span>
+<span class="n">chimpFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"chimp.png"</span><span class="p">)</span>
+<span class="n">fishFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"fish.png"</span><span class="p">)</span>
+<span class="n">flyFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">ImgFace</span><span class="p">(</span><span class="n">img_path</span><span class="o">+</span><span class="s">"fly.png"</span><span class="p">)</span>
+
+<span class="c"># Create a faces ready to read the name attribute of nodes</span>
+<span class="c">#nameFace = faces.TextFace(open("text").readline().strip(), fsize=20, fgcolor="#009000")</span>
+<span class="n">nameFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">fgcolor</span><span class="o">=</span><span class="s">"#009000"</span><span class="p">)</span>
+
+<span class="c"># Create a conversion between leaf names and real names</span>
+<span class="n">code2name</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="s">"Dre"</span><span class="p">:</span><span class="s">"Drosophila melanogaster"</span><span class="p">,</span>
+        <span class="s">"Dme"</span><span class="p">:</span><span class="s">"Danio rerio"</span><span class="p">,</span>
+        <span class="s">"Hsa"</span><span class="p">:</span><span class="s">"Homo sapiens"</span><span class="p">,</span>
+        <span class="s">"Ptr"</span><span class="p">:</span><span class="s">"Pan troglodytes"</span><span class="p">,</span>
+        <span class="s">"Mms"</span><span class="p">:</span><span class="s">"Mus musculus"</span><span class="p">,</span>
+        <span class="s">"Cfa"</span><span class="p">:</span><span class="s">"Canis familiaris"</span>
+        <span class="p">}</span>
+
+<span class="c"># Creates a dictionary with the descriptions of each leaf name</span>
+<span class="n">code2desc</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="s">"Dre"</span><span class="p">:</span><span class="s">"""The zebrafish, also known as Danio rerio,</span>
+<span class="s">is a tropical freshwater fish belonging to the</span>
+<span class="s">minnow family (Cyprinidae)."""</span><span class="p">,</span>
+        <span class="s">"Dme"</span><span class="p">:</span><span class="s">"""True flies are insects of the order Diptera,</span>
+<span class="s">possessing a single pair of wings on the</span>
+<span class="s">mesothorax and a pair of halteres, derived from</span>
+<span class="s">the hind wings, on the metathorax"""</span><span class="p">,</span>
+        <span class="s">"Hsa"</span><span class="p">:</span><span class="s">"""A human is a member of a species</span>
+<span class="s">of bipedal primates in the family Hominidae."""</span><span class="p">,</span>
+        <span class="s">"Ptr"</span><span class="p">:</span><span class="s">"""Chimpanzee, sometimes colloquially</span>
+<span class="s">chimp, is the common name for the</span>
+<span class="s">two extant species of ape in the genus Pan."""</span><span class="p">,</span>
+        <span class="s">"Mms"</span><span class="p">:</span><span class="s">"""A mouse is a small mammal belonging to the</span>
+<span class="s">order of rodents."""</span><span class="p">,</span>
+        <span class="s">"Cfa"</span><span class="p">:</span> <span class="s">"""The dog (Canis lupus familiaris) is a</span>
+<span class="s">domesticated subspecies of the Gray Wolf,</span>
+<span class="s">a member of the Canidae family of the</span>
+<span class="s">orderCarnivora."""</span>
+        <span class="p">}</span>
+
+<span class="c"># Creates my own layout function. I will use all previously created</span>
+<span class="c"># faces and will set different node styles depending on the type of</span>
+<span class="c"># node.</span>
+<span class="k">def</span> <span class="nf">mylayout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="c"># If node is a leaf, add the nodes name and a its scientific</span>
+    <span class="c"># name</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="c"># Add an static face that handles the node name</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">nameFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+        <span class="c"># We can also create faces on the fly</span>
+        <span class="n">longNameFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">TextFace</span><span class="p">(</span><span class="n">code2name</span><span class="p">[</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">])</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">longNameFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+
+        <span class="c"># text faces support multiline. We add a text face</span>
+        <span class="c"># with the whole description of each leaf.</span>
+        <span class="n">descFace</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">TextFace</span><span class="p">(</span><span class="n">code2desc</span><span class="p">[</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">],</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
+        <span class="n">descFace</span><span class="o">.</span><span class="n">margin_top</span> <span class="o">=</span> <span class="mi">10</span>
+        <span class="n">descFace</span><span class="o">.</span><span class="n">margin_bottom</span> <span class="o">=</span> <span class="mi">10</span>
+        <span class="n">descFace</span><span class="o">.</span><span class="n">border</span><span class="o">.</span><span class="n">margin</span> <span class="o">=</span> <span class="mi">1</span>
+
+        <span class="c"># Note that this faces is added in "aligned" mode</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">descFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">aligned</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+        <span class="c"># Sets the style of leaf nodes</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">12</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"circle"</span>
+    <span class="c">#If node is an internal node</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="c"># Sets the style of internal nodes</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">6</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"circle"</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#000000"</span>
+
+    <span class="c"># If an internal node contains more than 4 leaves, add the</span>
+    <span class="c"># images of the represented species sorted in columns of 2</span>
+    <span class="c"># images max.</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">>=</span><span class="mi">4</span><span class="p">:</span>
+        <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">get_leaf_names</span><span class="p">())):</span>
+            <span class="k">if</span> <span class="n">i</span><span class="o">></span><span class="mi">0</span> <span class="ow">and</span> <span class="n">i</span><span class="o">%</span><span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">col</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="c"># Add the corresponding face to the node</span>
+            <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Dme"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">flyFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Dre"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">fishFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Mms"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">mouseFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Ptr"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">chimpFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Hsa"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">humanFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Cfa"</span><span class="p">):</span>
+                <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">dogFace</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">column</span><span class="o">=</span><span class="n">col</span><span class="p">)</span>
+
+            <span class="c"># Modifies this node's style</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">16</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"shape"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"sphere"</span>
+            <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"fgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#AA0000"</span>
+
+    <span class="c"># If leaf is "Hsa" (homo sapiens), highlight it using a</span>
+    <span class="c"># different background.</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">()</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Hsa"</span><span class="p">):</span>
+        <span class="n">node</span><span class="o">.</span><span class="n">img_style</span><span class="p">[</span><span class="s">"bgcolor"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"#9db0cf"</span>
+
+<span class="c"># And, finally, Visualize the tree using my own layout function</span>
+<span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">mylayout</span>
+<span class="n">t</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s">"img_faces.png"</span><span class="p">,</span> <span class="n">w</span><span class="o">=</span><span class="mi">600</span><span class="p">,</span> <span class="n">tree_style</span> <span class="o">=</span> <span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="bubble-tree-maps">
+<h3><a class="toc-backref" href="#id31">Bubble tree maps</a><a class="headerlink" href="#bubble-tree-maps" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/bubble_map.png" src="../_images/bubble_map.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">random</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">NodeStyle</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">CircleFace</span>
+
+<span class="k">def</span> <span class="nf">layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="c"># Add node name to laef nodes</span>
+        <span class="n">N</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">fgcolor</span><span class="o">=</span><span class="s">"black"</span><span class="p">)</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+    <span class="k">if</span> <span class="s">"weight"</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">features</span><span class="p">:</span>
+        <span class="c"># Creates a sphere face whose size is proportional to node's</span>
+        <span class="c"># feature "weight"</span>
+        <span class="n">C</span> <span class="o">=</span> <span class="n">CircleFace</span><span class="p">(</span><span class="n">radius</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">"RoyalBlue"</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"sphere"</span><span [...]
+        <span class="c"># Let's make the sphere transparent</span>
+        <span class="n">C</span><span class="o">.</span><span class="n">opacity</span> <span class="o">=</span> <span class="mf">0.3</span>
+        <span class="c"># And place as a float face over the tree</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">C</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="s">"float"</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+    <span class="c"># Random tree</span>
+    <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+    <span class="c"># Some random features in all nodes</span>
+    <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+        <span class="n">n</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">weight</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">50</span><span class="p">))</span>
+
+    <span class="c"># Create an empty TreeStyle</span>
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+
+    <span class="c"># Set our custom layout function</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">layout</span>
+
+    <span class="c"># Draw a tree</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="s">"c"</span>
+
+    <span class="c"># We will add node names manually</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="c"># Show branch data</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_branch_length</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_branch_support</span> <span class="o">=</span> <span class="bp">True</span>
+
+    <span class="k">return</span> <span class="n">t</span><span class="p">,</span> <span class="n">ts</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+
+    <span class="c">#t.render("bubble_map.png", w=600, dpi=300, tree_style=ts)</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="trees-within-trees">
+<h3><a class="toc-backref" href="#id32">Trees within trees</a><a class="headerlink" href="#trees-within-trees" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/tree_faces.png" src="../_images/tree_faces.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">random</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">NodeStyle</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">AttrFace</span><span class="p">,</span> <span class="n">TreeFace</span>
+
+<span class="c"># Tree Style used to render small trees used as leaf faces</span>
+<span class="n">small_ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+<span class="n">small_ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">True</span>
+<span class="n">small_ts</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span>
+
+<span class="k">def</span> <span class="nf">layout</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="c"># Add node name to laef nodes</span>
+        <span class="n">N</span> <span class="o">=</span> <span class="n">AttrFace</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">fgcolor</span><span class="o">=</span><span class="s">"black"</span><span class="p">)</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+
+        <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+        <span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
+
+        <span class="n">T</span> <span class="o">=</span> <span class="n">TreeFace</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">small_ts</span><span class="p">)</span>
+        <span class="c"># Let's make the sphere transparent</span>
+        <span class="n">T</span><span class="o">.</span><span class="n">opacity</span> <span class="o">=</span> <span class="mf">0.8</span>
+        <span class="c"># And place as a float face over the tree</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="s">"aligned"</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+    <span class="c"># Random tree</span>
+    <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+    <span class="c"># Some random features in all nodes</span>
+    <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+        <span class="n">n</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">weight</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">50</span><span class="p">))</span>
+
+    <span class="c"># Create an empty TreeStyle</span>
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+
+    <span class="c"># Set our custom layout function</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">layout</span>
+
+    <span class="c"># Draw a tree</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="s">"c"</span>
+
+    <span class="c"># We will add node names manually</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_leaf_name</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="c"># Show branch data</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_branch_length</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">show_branch_support</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="k">return</span> <span class="n">t</span><span class="p">,</span> <span class="n">ts</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+    <span class="c">#t.render("tree_faces.png", w=600, dpi=300, tree_style=ts)</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="phylogenetic-trees-and-sequence-domains">
+<h3><a class="toc-backref" href="#id33">Phylogenetic trees and sequence domains</a><a class="headerlink" href="#phylogenetic-trees-and-sequence-domains" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/seq_motif_faces.png" src="../_images/seq_motif_faces.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">SeqMotifFace</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">add_face_to_node</span>
+
+<span class="n">seq</span> <span class="o">=</span> <span class="p">(</span><span class="s">"-----------------------------------------------AQAK---IKGSKKAIKVFSSA---"</span>
+      <span class="s">"APERLQEYGSIFTDA---GLQRRPRHRIQSK-------ALQEKLKDFPVCVSTKPEPEDDAEEGLGGLPSN"</span>
+      <span class="s">"ISSVSSLLLFNTTENLYKKYVFLDPLAG----THVMLGAETEEKLFDAPLSISKREQLEQQVPENYFYVPD"</span>
+      <span class="s">"LGQVPEIDVPSYLPDLPGIANDLMYIADLGPGIAPSAPGTIPELPTFHTEVAEPLKVGELGSGMGAGPGTP"</span>
+      <span class="s">"AHTPSSLDTPHFVFQTYKMGAPPLPPSTAAPVGQGARQDDSSSSASPSVQGAPREVVDPSGGWATLLESIR"</span>
+      <span class="s">"QAGGIGKAKLRSMKERKLEKQQQKEQEQVRATSQGGHL--MSDLFNKLVMRRKGISGKGPGAGDGPGGAFA"</span>
+      <span class="s">"RVSDSIPPLPPPQQPQAEDED----"</span><span class="p">)</span>
+
+<span class="n">mixed_motifs</span> <span class="o">=</span> <span class="p">[</span>
+        <span class="c"># seq.start, seq.end, shape, width, height, fgcolor, bgcolor</span>
+        <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:blue"</span><span class="p">,</span> <span class="s">"arial|8|white|long text clippe [...]
+        <span class="p">[</span><span class="mi">101</span><span class="p">,</span> <span class="mi">150</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"blue"</span><span class="p">,</span> <span class="s">"pink"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">155</span><span class="p">,</span> <span class="mi">180</span><span class="p">,</span> <span class="s">"()"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"blue"</span><span class="p">,</span> <span class="s">"rgradient:purple"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">160</span><span class="p">,</span> <span class="mi">190</span><span class="p">,</span> <span class="s">"^"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"yellow"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">191</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="s">"<>"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:orange"</span><span class="p">,</span> <span class="bp">None</span><span class="p" [...]
+        <span class="p">[</span><span class="mi">201</span><span class="p">,</span> <span class="mi">250</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"brown"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">351</span><span class="p">,</span> <span class="mi">370</span><span class="p">,</span> <span class="s">"v"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:gold"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">370</span><span class="p">,</span> <span class="mi">420</span><span class="p">,</span> <span class="s">"compactseq"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+<span class="p">]</span>
+
+<span class="n">simple_motifs</span> <span class="o">=</span> <span class="p">[</span>
+        <span class="c"># seq.start, seq.end, shape, width, height, fgcolor, bgcolor</span>
+        <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">60</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:blue"</span><span class="p">,</span> <span class="s">"arial|8|white|long text clipped [...]
+        <span class="p">[</span><span class="mi">120</span><span class="p">,</span> <span class="mi">150</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"blue"</span><span class="p">,</span> <span class="s">"pink"</span><span class="p">,</span> <span class="bp">None</span><span class="p">],</span>
+        <span class="p">[</span><span class="mi">200</span><span class="p">,</span> <span class="mi">300</span><span class="p">,</span> <span class="s">"()"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"blue"</span><span class="p">,</span> <span class="s">"red"</span><span class="p">,</span> <span class="s">"arial|8|white|hello"</span><span cla [...]
+<span class="p">]</span>
+
+<span class="n">box_motifs</span> <span class="o">=</span> <span class="p">[</span>
+        <span class="c"># seq.start, seq.end, shape, width, height, fgcolor, bgcolor</span>
+        <span class="p">[</span><span class="mi">0</span><span class="p">,</span>  <span class="mi">5</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:blue"</span><span class="p">,</span> <span class="s">"arial|8|white|10"</span><sp [...]
+        <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:ref"</span><span class="p">,</span> <span class="s">"arial|8|white|10"</span><sp [...]
+        <span class="p">[</span><span class="mi">30</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:orange"</span><span class="p">,</span> <span class="s">"arial|8|white|20"</span> [...]
+        <span class="p">[</span><span class="mi">50</span><span class="p">,</span> <span class="mi">65</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:pink"</span><span class="p">,</span> <span class="s">"arial|8|white|20"</span><s [...]
+        <span class="p">[</span><span class="mi">70</span><span class="p">,</span> <span class="mi">85</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:green"</span><span class="p">,</span> <span class="s">"arial|8|white|20"</span>< [...]
+        <span class="p">[</span><span class="mi">90</span><span class="p">,</span> <span class="mi">105</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:brown"</span><span class="p">,</span> <span class="s">"arial|8|white|20"</span> [...]
+        <span class="p">[</span><span class="mi">110</span><span class="p">,</span> <span class="mi">125</span><span class="p">,</span> <span class="s">"[]"</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"black"</span><span class="p">,</span> <span class="s">"rgradient:yellow"</span><span class="p">,</span> <span class="s">"arial|8|white|20"</spa [...]
+<span class="p">]</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+        <span class="c"># Create a random tree and add to each leaf a random set of motifs</span>
+        <span class="c"># from the original set</span>
+        <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"( (A, B, C, D, E, F, G), H, I);"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">gapcolor</span><span class="o">=</span><span class="s">"red"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"A"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"line"</span><span class="p">,</span> <span class="n">gap_format</span><span class="o">=</span><span class="s">"blank"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"B"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"line"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"C"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+        
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"()"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"D"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">motifs</span><span class="o">=</span><span class="n">simple_motifs</span><span class="p">,</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"-"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"E"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">motifs</span><span class="o">=</span><span class="n">simple_motifs</span><span class="p">,</span> <span class="n">gap_format</span><span class="o">=</span><span class="s">"blank"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"F"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">,</span> <span class="n">motifs</span><span class="o">=</span><span class="n">mixed_motifs</span><span class="p">,</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"-"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"G"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+        
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">motifs</span><span class="o">=</span><span class="n">box_motifs</span><span class="p">,</span> <span class="n">gap_format</span><span class="o">=</span><span class="s">"line"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"H"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+
+
+        <span class="n">seqFace</span> <span class="o">=</span> <span class="n">SeqMotifFace</span><span class="p">(</span><span class="n">seq</span><span class="p">[</span><span class="mi">30</span><span class="p">:</span><span class="mi">60</span><span class="p">],</span> <span class="n">seq_format</span><span class="o">=</span><span class="s">"seq"</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"I"</span><span class="p">)</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">seqFace</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"aligned"</span><span class="p">)</span>
+        
+        <span class="k">return</span> <span class="n">t</span>
+        
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="n">t</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">tree_width</span> <span class="o">=</span> <span class="mi">50</span>
+    <span class="c">#t.show(tree_style=ts)</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s">"seq_motif_faces.png"</span><span class="p">,</span> <span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+<div class="section" id="creating-your-custom-interactive-item-faces">
+<h3><a class="toc-backref" href="#id34">Creating your custom interactive Item faces</a><a class="headerlink" href="#creating-your-custom-interactive-item-faces" title="Permalink to this headline">¶</a></h3>
+<blockquote>
+<div><div class="figure">
+<img alt="../_images/item_faces.png" src="../_images/item_faces.png" />
+</div>
+</div></blockquote>
+<p>Note that item faces shown in this image are not static. When the tree
+is view using the tree.show() method, you can interact with items.</p>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre><span class="c"># We will need to create Qt4 items</span>
+<span class="kn">from</span> <span class="nn">PyQt4</span> <span class="kn">import</span> <span class="n">QtCore</span>
+<span class="kn">from</span> <span class="nn">PyQt4.QtGui</span> <span class="kn">import</span> <span class="n">QGraphicsRectItem</span><span class="p">,</span> <span class="n">QGraphicsSimpleTextItem</span><span class="p">,</span> \
+    <span class="n">QGraphicsEllipseItem</span><span class="p">,</span> <span class="n">QColor</span><span class="p">,</span> <span class="n">QPen</span><span class="p">,</span> <span class="n">QBrush</span>
+
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">faces</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">,</span> <span class="n">NodeStyle</span>
+
+<span class="c"># To play with random colors</span>
+<span class="kn">import</span> <span class="nn">colorsys</span>
+<span class="kn">import</span> <span class="nn">random</span>
+
+<span class="k">class</span> <span class="nc">InteractiveItem</span><span class="p">(</span><span class="n">QGraphicsRectItem</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">karg</span><span class="p">):</span>
+        <span class="n">QGraphicsRectItem</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">karg</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">node</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">setCursor</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">PointingHandCursor</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">setAcceptsHoverEvents</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">hoverEnterEvent</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">):</span>
+        <span class="c"># There are many ways of adding interactive elements. With the</span>
+        <span class="c"># following code, I show/hide a text item over my custom</span>
+        <span class="c"># DynamicItemFace</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">QGraphicsRectItem</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setParentItem</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+            <span class="c"># This is to ensure that the label is rendered over the</span>
+            <span class="c"># rest of item children (default ZValue for items is 0)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setZValue</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setBrush</span><span class="p">(</span><span class="n">QBrush</span><span class="p">(</span><span class="n">QColor</span><span class="p">(</span><span class="s">"white"</span><span class="p">)))</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">QGraphicsSimpleTextItem</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">setParentItem</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setRect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">())</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setVisible</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">hoverLeaveEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">setVisible</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">random_color</span><span class="p">(</span><span class="n">h</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""Generates a random color in RGB format."""</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">h</span><span class="p">:</span>
+        <span class="n">h</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">()</span>
+    <span class="n">s</span> <span class="o">=</span> <span class="mf">0.5</span>
+    <span class="n">l</span> <span class="o">=</span> <span class="mf">0.5</span>
+    <span class="k">return</span> <span class="n">_hls2hex</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">_hls2hex</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">s</span><span class="p">):</span>
+    <span class="k">return</span> <span class="s">'#</span><span class="si">%02x%02x%02x</span><span class="s">'</span> <span class="o">%</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="o">*</span><span class="mi">255</span><span class="p">),</span>
+                                      <span class="n">colorsys</span><span class="o">.</span><span class="n">hls_to_rgb</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">s</span><span class="p">)))</span>
+
+<span class="k">def</span> <span class="nf">ugly_name_face</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kargs</span><span class="p">):</span>
+    <span class="sd">""" This is my item generator. It must receive a node object, and</span>
+<span class="sd">    returns a Qt4 graphics item that can be used as a node face.</span>
+<span class="sd">    """</span>
+
+    <span class="c"># receive an arbitrary number of arguments, in this case width and</span>
+    <span class="c"># height of the faces</span>
+    <span class="n">width</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
+    <span class="n">height</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
+
+    <span class="c">## Creates a main master Item that will contain all other elements</span>
+    <span class="c">## Items can be standard QGraphicsItem</span>
+    <span class="c"># masterItem = QGraphicsRectItem(0, 0, width, height)</span>
+
+    <span class="c"># Or your custom Items, in which you can re-implement interactive</span>
+    <span class="c"># functions, etc. Check QGraphicsItem doc for details.</span>
+    <span class="n">masterItem</span> <span class="o">=</span> <span class="n">InteractiveItem</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">)</span>
+
+    <span class="c"># Keep a link within the item to access node info</span>
+    <span class="n">masterItem</span><span class="o">.</span><span class="n">node</span> <span class="o">=</span> <span class="n">node</span>
+
+    <span class="c"># I dont want a border around the masterItem</span>
+    <span class="n">masterItem</span><span class="o">.</span><span class="n">setPen</span><span class="p">(</span><span class="n">QPen</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">NoPen</span><span class="p">))</span>
+
+    <span class="c"># Add ellipse around text</span>
+    <span class="n">ellipse</span> <span class="o">=</span> <span class="n">QGraphicsEllipseItem</span><span class="p">(</span><span class="n">masterItem</span><span class="o">.</span><span class="n">rect</span><span class="p">())</span>
+    <span class="n">ellipse</span><span class="o">.</span><span class="n">setParentItem</span><span class="p">(</span><span class="n">masterItem</span><span class="p">)</span>
+    <span class="c"># Change ellipse color</span>
+    <span class="n">ellipse</span><span class="o">.</span><span class="n">setBrush</span><span class="p">(</span><span class="n">QBrush</span><span class="p">(</span><span class="n">QColor</span><span class="p">(</span> <span class="n">random_color</span><span class="p">())))</span>
+
+    <span class="c"># Add node name within the ellipse</span>
+    <span class="n">text</span> <span class="o">=</span> <span class="n">QGraphicsSimpleTextItem</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+    <span class="n">text</span><span class="o">.</span><span class="n">setParentItem</span><span class="p">(</span><span class="n">ellipse</span><span class="p">)</span>
+    <span class="n">text</span><span class="o">.</span><span class="n">setPen</span><span class="p">(</span><span class="n">QPen</span><span class="p">(</span><span class="n">QPen</span><span class="p">(</span><span class="n">QColor</span><span class="p">(</span><span class="s">"white"</span><span class="p">))))</span>
+
+    <span class="c"># Center text according to masterItem size</span>
+    <span class="n">tw</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">width</span><span class="p">()</span>
+    <span class="n">th</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">height</span><span class="p">()</span>
+    <span class="n">center</span> <span class="o">=</span> <span class="n">masterItem</span><span class="o">.</span><span class="n">boundingRect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
+    <span class="n">text</span><span class="o">.</span><span class="n">setPos</span><span class="p">(</span><span class="n">center</span><span class="o">.</span><span class="n">x</span><span class="p">()</span><span class="o">-</span><span class="n">tw</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">center</span><span class="o">.</span><span class="n">y</span><span class="p">()</span><span class="o">-</span><span class="n">th</span><span cl [...]
+
+    <span class="k">return</span> <span class="n">masterItem</span>
+
+<span class="k">def</span> <span class="nf">master_ly</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+        <span class="c"># Create an ItemFAce. First argument must be the pointer to</span>
+        <span class="c"># the constructor function that returns a QGraphicsItem. It</span>
+        <span class="c"># will be used to draw the Face. Next arguments are arbitrary,</span>
+        <span class="c"># and they will be forwarded to the constructor Face function.</span>
+        <span class="n">F</span> <span class="o">=</span> <span class="n">faces</span><span class="o">.</span><span class="n">DynamicItemFace</span><span class="p">(</span><span class="n">ugly_name_face</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
+        <span class="n">faces</span><span class="o">.</span><span class="n">add_face_to_node</span><span class="p">(</span><span class="n">F</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="s">"aligned"</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+
+    <span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="n">reuse_names</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+
+    <span class="n">ts</span> <span class="o">=</span> <span class="n">TreeStyle</span><span class="p">()</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">layout_fn</span> <span class="o">=</span> <span class="n">master_ly</span>
+    <span class="n">ts</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">add_face</span><span class="p">(</span><span class="n">faces</span><span class="o">.</span><span class="n">TextFace</span><span class="p">(</span><span class="s">"Drawing your own Qt Faces"</span><span class="p">,</span> <span class="n">fsize</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span> <span class="mi">0</span><span class [...]
+    <span class="k">return</span> <span class="n">t</span><span class="p">,</span> <span class="n">ts</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+
+    <span class="c">#t.render("item_faces.png", h=400, tree_style=ts)</span>
+    <span class="c"># The interactive features are only available using the GUI</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_phylogeny.html" class="btn btn-neutral float-right" title="Phylogenetic Trees" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_trees.html" class="btn btn-neutral" title="Working With Tree Data Structures" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_etree2orthoxml.html b/doc/tutorial/tutorial_etree2orthoxml.html
new file mode 100644
index 0000000..bc4310b
--- /dev/null
+++ b/doc/tutorial/tutorial_etree2orthoxml.html
@@ -0,0 +1,573 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>SCRIPTS: orthoXML — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="ETE’s Reference Guide" href="../reference/index.html"/>
+        <link rel="prev" title="Dealing with the NCBI Taxonomy database" href="tutorial_ncbitaxonomy.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">SCRIPTS: orthoXML</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#orthoxml-parser">OrthoXML parser</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#the-etree2orthoxml-script">The etree2orthoxml script</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#example-using-custom-evolutionary-annotation">Example: Using custom evolutionary annotation</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#example-automatic-detection-of-species-names">Example: Automatic detection of species names</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#example-tree-rooting">Example: Tree rooting</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>SCRIPTS: orthoXML</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_etree2orthoxml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3"></span><div class="section" id="scripts-orthoxml">
+<span id="etree2orthoxml"></span><h1><a class="toc-backref" href="#id1">SCRIPTS: orthoXML</a><a class="headerlink" href="#scripts-orthoxml" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#scripts-orthoxml" id="id1">SCRIPTS: orthoXML</a><ul>
+<li><a class="reference internal" href="#orthoxml-parser" id="id2">OrthoXML parser</a></li>
+<li><a class="reference internal" href="#the-etree2orthoxml-script" id="id3">The etree2orthoxml script</a><ul>
+<li><a class="reference internal" href="#usage" id="id4">Usage</a></li>
+<li><a class="reference internal" href="#example-using-custom-evolutionary-annotation" id="id5">Example: Using custom evolutionary annotation</a></li>
+<li><a class="reference internal" href="#example-automatic-detection-of-species-names" id="id6">Example: Automatic detection of species names</a></li>
+<li><a class="reference internal" href="#example-tree-rooting" id="id7">Example: Tree rooting</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="orthoxml-parser">
+<h2><a class="toc-backref" href="#id2">OrthoXML parser</a><a class="headerlink" href="#orthoxml-parser" title="Permalink to this headline">¶</a></h2>
+<p><code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> is a python script distributed as a part of the
+ETE toolkit package. It uses an automatic python parser generated on
+the basis of the OrthoXML schema to convert the evolutionary events in
+phylogenetic tree topologies into the orthoXML format.</p>
+<p>ETE OrthoXML parser is a low level python module that allows to
+operate with the orthoXML structure using python objects. Every
+element defined in the orthoXML schema has its akin in the parser
+module, so a complete orthoXML structure can be generated from scratch
+within a python script. In other words, low level access to the
+orthoXML parser allows to create orthoxml documents in a programmatic
+way.</p>
+<p>The following example will create a basic orthoXML document</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">orthoxml</span>
+<span class="c"># Creates an empty orthoXML object</span>
+<span class="n">oxml</span> <span class="o">=</span> <span class="n">orthoxml</span><span class="o">.</span><span class="n">orthoXML</span><span class="p">()</span>
+
+<span class="c"># Add an ortho group container to the orthoXML document</span>
+<span class="n">ortho_groups</span> <span class="o">=</span> <span class="n">orthoxml</span><span class="o">.</span><span class="n">groups</span><span class="p">()</span>
+<span class="n">oxml</span><span class="o">.</span><span class="n">set_groups</span><span class="p">(</span><span class="n">ortho_groups</span><span class="p">)</span>
+
+<span class="c"># Add an orthology group including two sequences</span>
+<span class="n">orthologs</span> <span class="o">=</span> <span class="n">orthoxml</span><span class="o">.</span><span class="n">group</span><span class="p">()</span>
+<span class="n">orthologs</span><span class="o">.</span><span class="n">add_geneRef</span><span class="p">(</span><span class="n">orthoxml</span><span class="o">.</span><span class="n">geneRef</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span>
+<span class="n">orthologs</span><span class="o">.</span><span class="n">add_geneRef</span><span class="p">(</span><span class="n">orthoxml</span><span class="o">.</span><span class="n">geneRef</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
+<span class="n">ortho_groups</span><span class="o">.</span><span class="n">add_orthologGroup</span><span class="p">(</span><span class="n">orthologs</span><span class="p">)</span>
+
+<span class="n">oxml_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">"test_orthoxml.xml"</span><span class="p">,</span> <span class="s">"w"</span><span class="p">)</span>
+<span class="n">oxml</span><span class="o">.</span><span class="n">export</span><span class="p">(</span><span class="n">oxml_file</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+<span class="n">oxml_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+<span class="c"># producing the following output</span>
+<span class="c">#<ortho:orthoXML></span>
+<span class="c">#   <ortho:groups></span>
+<span class="c">#       <ortho:orthologGroup></span>
+<span class="c">#           <ortho:geneRef id="1"/></span>
+<span class="c">#           <ortho:geneRef id="2"/></span>
+<span class="c">#       </ortho:orthologGroup></span>
+<span class="c">#   </ortho:groups></span>
+<span class="c">#</ortho:orthoXML></span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="the-etree2orthoxml-script">
+<h2><a class="toc-backref" href="#id3">The etree2orthoxml script</a><a class="headerlink" href="#the-etree2orthoxml-script" title="Permalink to this headline">¶</a></h2>
+<p><code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> is a standalone python script that allows to
+read a phylogenetic tree in newick format and export their
+evolutionary events (duplication and speciation events) as an orthoXML
+document. The program is installed along with ETE, so it should be
+found in your path. Alternatively you can found it in the script
+folder of the latest ETE package release
+(<a class="reference external" href="http://etetoolkit.org/releases/ete3/">http://etetoolkit.org/releases/ete3/</a>).</p>
+<p>To work, <code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> requires only one argument containing
+the newick representation of a tree or the name of the file that
+contains it. By default, automatic detection of speciation and
+duplication events will be carried out using the built-in
+<a class="reference internal" href="tutorial_phylogeny.html#spoverlap"><span>species overlap algorithm</span></a>, although this behavior
+can be easily disabled when event information is provided along with
+the newick tree. In the following sections you will find some use case
+examples.</p>
+<p>Also, consider reading the source code of the script. It is documented
+and it can be used as a template for more specific applications. Note
+that <code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> is a work in progress, so feel free to use
+the <a class="reference external" href="https://groups.google.com/forum/#!forum/etetoolkit">etetoolkit mailing list</a> to report any
+feedback or improvement to the code.</p>
+<div class="section" id="usage">
+<h3><a class="toc-backref" href="#id4">Usage</a><a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-python"><div class="highlight"><pre>usage: etree2orthoxml [-h] [--sp_delimiter SPECIES_DELIMITER]
+                      [--sp_field SPECIES_FIELD] [--root [ROOT [ROOT ...]]]
+                      [--skip_ortholog_detection]
+                      [--evoltype_attr EVOLTYPE_ATTR] [--database DATABASE]
+                      [--show] [--ascii] [--newick]
+                      tree_file
+
+etree2orthoxml is a python script that extracts evolutionary events
+(speciation and duplication) from a newick tree and exports them as a
+OrthoXML file.
+
+positional arguments:
+  tree_file             A tree file (or text string) in newick format.
+
+optional arguments:
+  -h, --help            show this help message and exit
+  --sp_delimiter SPECIES_DELIMITER
+                        When species names are guessed from node names, this
+                        argument specifies how to split node name to guess the
+                        species code
+  --sp_field SPECIES_FIELD
+                        When species names are guessed from node names, this
+                        argument specifies the position of the species name
+                        code relative to the name splitting delimiter
+  --root [ROOT [ROOT ...]]
+                        Roots the tree to the node grouping the list of node
+                        names provided (space separated). In example:'--root
+                        human rat mouse'
+  --skip_ortholog_detection
+                        Skip automatic detection of speciation and duplication
+                        events, thus relying in the correct annotation of the
+                        provided tree using the extended newick format (i.e.
+                        '((A, A)[&&NHX:evoltype=D], B)[&&NHX:evoltype=S];')
+  --evoltype_attr EVOLTYPE_ATTR
+                        When orthology detection is disabled, the attribute
+                        name provided here will be expected to exist in all
+                        internal nodes and read from the extended newick
+                        format
+  --database DATABASE   Database name
+  --show                Show the tree and its evolutionary events before
+                        orthoXML export
+  --ascii               Show the tree using ASCII representation and all its
+                        evolutionary events before orthoXML export
+  --newick              print the extended newick format for provided tree
+                        using ASCII representation and all its evolutionary
+                        events before orthoXML export
+</pre></div>
+</div>
+</div>
+<div class="section" id="example-using-custom-evolutionary-annotation">
+<h3><a class="toc-backref" href="#id5">Example: Using custom evolutionary annotation</a><a class="headerlink" href="#example-using-custom-evolutionary-annotation" title="Permalink to this headline">¶</a></h3>
+<p>If all internal nodes in the provided tree are correctly label as
+duplication or speciation nodes, automatic detection of events can be
+disabled using the <code class="xref py py-attr docutils literal"><span class="pre">--skip_ortholog_detection</span></code> flag.</p>
+<p>Node labeling should be provided using the extended newick
+format. Duplication nodes should contain the label <code class="xref py py-attr docutils literal"><span class="pre">evoltype</span></code>
+set to <code class="xref py py-attr docutils literal"><span class="pre">D</span></code>, while speciation nodes should be set to
+<code class="xref py py-attr docutils literal"><span class="pre">evoltype=S</span></code>. If tag names is different, the option
+<code class="xref py py-attr docutils literal"><span class="pre">evoltype_attr</span></code> can be used as convenient.</p>
+<p>In the following example, we force the HUMAN clade to be considered a
+speciation node.</p>
+<div class="highlight-python"><div class="highlight"><pre># etree2orthoxml --skip_ortholog_detection '((HUMAN_A, HUMAN_B)[&&NHX:evoltype=S], MOUSE_B)[&&NHX:evoltype=S];'
+
+ <orthoXML>
+     <species name="A">
+         <database name="">
+            <genes>
+                 <gene protId="HUMAN_A" id="0"/>
+             </genes>
+         </database>
+     </species>
+     <species name="B">
+         <database name="">
+             <genes>
+                 <gene protId="HUMAN_B" id="1"/>
+                 <gene protId="MOUSE_B" id="2"/>
+             </genes>
+         </database>
+     </species>
+     <groups>
+         <orthologGroup>
+             <geneRef id="2"/>
+             <orthologGroup>
+                 <geneRef id="0"/>
+                 <geneRef id="1"/>
+             </orthologGroup>
+         </orthologGroup>
+     </groups>
+ </orthoXML>
+</pre></div>
+</div>
+<p>You can avoid tree reformatting when node labels are slightly
+different by using the <code class="xref py py-attr docutils literal"><span class="pre">evoltype_attr</span></code>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># etree2orthoxml --evoltype_attr E --skip_ortholog_detection '((HUMAN_A, HUMAN_B)[&&NHX:E=S], MOUSE_B)[&&NHX:E=S];'</span>
+</pre></div>
+</div>
+<p>However, more complex modifications on raw trees can be easily
+performed using the core methods of the ETE library, so they match the
+requirements of the <code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> script.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Having the followin tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((HUMAN_A, HUMAN_B)[&&NHX:speciation=N], MOUSE_B)[&&NHX:speciation=Y];'</span><span class="p">)</span>
+
+<span class="c"># We read the speciation tag from nodes and convert it into a vaild evoltree label</span>
+<span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+   <span class="k">if</span> <span class="ow">not</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+      <span class="n">etype</span> <span class="o">=</span> <span class="s">"D"</span> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">speciation</span> <span class="o">==</span> <span class="s">"N"</span> <span class="k">else</span> <span class="s">"S"</span>
+      <span class="n">node</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">evoltype</span><span class="o">=</span><span class="n">etype</span><span class="p">)</span>
+
+<span class="c"># We the export a newick string that is compatible with etree2orthoxml script</span>
+<span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"evoltype"</span><span class="p">],</span> <span class="n">format_root_node</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="c"># converted newick:</span>
+<span class="c"># '((HUMAN_A:1,HUMAN_B:1)1:1[&&NHX:evoltype=D],MOUSE_B:1)1:1[&&NHX:evoltype=S];'</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="example-automatic-detection-of-species-names">
+<h3><a class="toc-backref" href="#id6">Example: Automatic detection of species names</a><a class="headerlink" href="#example-automatic-detection-of-species-names" title="Permalink to this headline">¶</a></h3>
+<p>As different databases and software may produce slightly different
+newick tree formats, the script provides several customization
+options.</p>
+<p>In gene family trees, species names are usually encoded as a part of
+leaf names (i.e. P53_HUMAN). If such codification follows a simple
+rule, <code class="xref py py-attr docutils literal"><span class="pre">etree2orthoxml</span></code> can automatically detect species name and
+used to populate the relevant sections within the orthoXML document.</p>
+<p>For this, the <code class="xref py py-attr docutils literal"><span class="pre">sp_delimiter</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">sp_field</span></code> arguments can
+be used. Note how species are correctly detected in the following example:</p>
+<div class="highlight-python"><div class="highlight"><pre># etree2orthoxml --database TestDB --evoltype_attr E --skip_ortholog_detection --sp_delimiter '_' --sp_field 0  '((HUMAN_A, HUMAN_B)[&&NHX:E=S], MOUSE_B)[&&NHX:E=S];'
+<orthoXML>
+ <species name="HUMAN">
+     <database name="TestDB">
+         <genes>
+             <gene protId="HUMAN_A" id="0"/>
+             <gene protId="HUMAN_B" id="1"/>
+         </genes>
+     </database>
+ </species>
+ <species name="MOUSE">
+     <database name="TestDB">
+         <genes>
+             <gene protId="MOUSE_B" id="2"/>
+         </genes>
+     </database>
+ </species>
+ <groups>
+     <orthologGroup>
+         <geneRef id="2"/>
+         <orthologGroup>
+             <geneRef id="0"/>
+             <geneRef id="1"/>
+         </orthologGroup>
+     </orthologGroup>
+ </groups>
+</orthoXML>
+</pre></div>
+</div>
+</div>
+<div class="section" id="example-tree-rooting">
+<h3><a class="toc-backref" href="#id7">Example: Tree rooting</a><a class="headerlink" href="#example-tree-rooting" title="Permalink to this headline">¶</a></h3>
+<p>When evolutionary events are expected to be automatically inferred
+from tree topology, outgroup information can be passed to the program to
+root the tree before performing the detection.</p>
+<div class="highlight-python"><div class="highlight"><pre># etree2orthoxml --ascii --root FLY_1 FLY_2 --sp_delimiter '_' --sp_field 0  '((HUMAN_A, HUMAN_B), MOUSE_B, (FLY_1, FLY_2));'
+
+
+
+                      /-FLY_1
+             /D, NoName
+            |         \-FLY_2
+    -S, NoName
+            |                  /-HUMAN_A
+            |         /D, NoName
+             \S, NoName        \-HUMAN_B
+                     |
+                      \-MOUSE_B
+
+
+    <orthoXML>
+        <species name="FLY">
+            <database name="">
+                <genes>
+                    <gene protId="FLY_1" id="0"/>
+                    <gene protId="FLY_2" id="1"/>
+                </genes>
+            </database>
+        </species>
+        <species name="HUMAN">
+            <database name="">
+                <genes>
+                    <gene protId="HUMAN_A" id="2"/>
+                    <gene protId="HUMAN_B" id="3"/>
+                </genes>
+            </database>
+        </species>
+        <species name="MOUSE">
+            <database name="">
+                <genes>
+                    <gene protId="MOUSE_B" id="4"/>
+                </genes>
+            </database>
+        </species>
+        <groups>
+            <orthologGroup>
+                <paralogGroup>
+                    <geneRef id="0"/>
+                    <geneRef id="1"/>
+                </paralogGroup>
+                <orthologGroup>
+                    <geneRef id="4"/>
+                    <paralogGroup>
+                        <geneRef id="2"/>
+                        <geneRef id="3"/>
+                    </paralogGroup>
+                </orthologGroup>
+            </orthologGroup>
+        </groups>
+    </orthoXML>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="../reference/index.html" class="btn btn-neutral float-right" title="ETE’s Reference Guide" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_ncbitaxonomy.html" class="btn btn-neutral" title="Dealing with the NCBI Taxonomy database" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_ncbitaxonomy.html b/doc/tutorial/tutorial_ncbitaxonomy.html
new file mode 100644
index 0000000..f839ce1
--- /dev/null
+++ b/doc/tutorial/tutorial_ncbitaxonomy.html
@@ -0,0 +1,488 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Dealing with the NCBI Taxonomy database — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="SCRIPTS: orthoXML" href="tutorial_etree2orthoxml.html"/>
+        <link rel="prev" title="Testing Evolutionary Hypothesis" href="tutorial_adaptation.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Dealing with the NCBI Taxonomy database</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#setting-up-a-local-copy-of-the-ncbi-taxonomy-database">Setting up a local copy of the NCBI taxonomy database</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#upgrading-the-local-database">Upgrading the local database</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#getting-taxid-information">Getting taxid information</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#getting-descendant-taxa">Getting descendant taxa</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#getting-ncbi-species-tree-topology">Getting NCBI species tree topology</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#automatic-tree-annotation-using-ncbi-taxonomy">Automatic tree annotation using NCBI taxonomy</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Dealing with the NCBI Taxonomy database</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_ncbitaxonomy.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.3.</span></p>
+</div>
+<div class="section" id="dealing-with-the-ncbi-taxonomy-database">
+<h1>Dealing with the NCBI Taxonomy database<a class="headerlink" href="#dealing-with-the-ncbi-taxonomy-database" title="Permalink to this headline">¶</a></h1>
+<p>ETE’s <cite>ncbi_taxonomy</cite> module provides utilities to efficiently query a local
+copy of the NCBI Taxonomy database. The class <code class="xref py py-class docutils literal"><span class="pre">NCBITaxonomy</span></code> offers
+methods to convert from taxid to names (and vice versa), to fetch pruned
+topologies connecting a given set of species, or to download rank, names and
+lineage track information.</p>
+<p>It is also fully integrated with <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instances through the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.annotate_ncbi_taxa" title="ete3.PhyloNode.annotate_ncbi_taxa"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.annotate_ncbi_taxa()</span></code></a> method.</p>
+<div class="section" id="setting-up-a-local-copy-of-the-ncbi-taxonomy-database">
+<h2>Setting up a local copy of the NCBI taxonomy database<a class="headerlink" href="#setting-up-a-local-copy-of-the-ncbi-taxonomy-database" title="Permalink to this headline">¶</a></h2>
+<p>The first time you attempt to use <code class="xref py py-class docutils literal"><span class="pre">NCBITaxa</span></code>, ETE will detect that your
+local database is empty and it will attempt to download the latest NCBI taxonomy
+database (~300MB) and will store a parsed version of it in your home directory:
+<cite>~/.etetoolkit/taxa.sqlite</cite>. All future imports of <span class="target" id="ncbitaxa">NCBITaxa</span> will detect the
+local database and will skip this step.</p>
+<dl class="docutils">
+<dt>::</dt>
+<dd>from ete3 import NCBITaxa
+ncbi = NCBITaxa()</dd>
+</dl>
+</div>
+<div class="section" id="upgrading-the-local-database">
+<h2>Upgrading the local database<a class="headerlink" href="#upgrading-the-local-database" title="Permalink to this headline">¶</a></h2>
+<p>Use the method <a href="#id1"><span class="problematic" id="id2">:NCBITaxa:`update_taxonomy_database`</span></a> to download and parse the
+latest database from the NCBI ftp site. Your current local database will be
+overwritten.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+<span class="n">ncbi</span><span class="o">.</span><span class="n">update_taxonomy_database</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="getting-taxid-information">
+<h2>Getting taxid information<a class="headerlink" href="#getting-taxid-information" title="Permalink to this headline">¶</a></h2>
+<p>you can fetch species names, ranks and linage track information for your taxids
+using the following methods:</p>
+<blockquote>
+<div><ul class="simple">
+<li><code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_rank()</span></code></li>
+<li><code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_lineage()</span></code></li>
+<li><code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_taxid_translator()</span></code></li>
+<li><code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_name_translator()</span></code></li>
+<li><code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.translate_to_names()</span></code></li>
+</ul>
+</div></blockquote>
+<p>The so called get-translator-functions will return a dictionary converting
+between taxids and species names. Either species or linage names/taxids are
+accepted as input.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+<span class="n">taxid2name</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_taxid_translator</span><span class="p">([</span><span class="mi">9606</span><span class="p">,</span> <span class="mi">9443</span><span class="p">])</span>
+<span class="k">print</span> <span class="n">taxid2name</span>
+<span class="c"># {9443: u'Primates', 9606: u'Homo sapiens'}</span>
+
+<span class="n">name2taxid</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_name_translator</span><span class="p">([</span><span class="s">'Homo sapiens'</span><span class="p">,</span> <span class="s">'primates'</span><span class="p">])</span>
+<span class="k">print</span> <span class="n">name2taxid</span>
+<span class="c"># {'Homo sapiens': [9606], 'primates': [9443]}</span>
+
+<span class="c"># when the same name points to several taxa, all taxids are returned</span>
+<span class="n">name2taxid</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_name_translator</span><span class="p">([</span><span class="s">'Bacteria'</span><span class="p">])</span>
+<span class="k">print</span> <span class="n">name2taxid</span>
+<span class="c"># {'Bacteria': [2, 629395]}</span>
+</pre></div>
+</div>
+<p>Other functions allow to extract further information using taxid numbers as a query.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+
+<span class="k">print</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_rank</span><span class="p">([</span><span class="mi">9606</span><span class="p">,</span> <span class="mi">9443</span><span class="p">])</span>
+<span class="c"># {9443: u'order', 9606: u'species'}</span>
+
+<span class="k">print</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_lineage</span><span class="p">(</span><span class="mi">9606</span><span class="p">)</span>
+
+<span class="c"># [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742,</span>
+<span class="c"># 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347,</span>
+<span class="c"># 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598, 9605,</span>
+<span class="c"># 9606]</span>
+</pre></div>
+</div>
+<p>And you can combine combine all at once:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+
+<span class="n">lineage</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_lineage</span><span class="p">(</span><span class="mi">9606</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">lineage</span>
+
+<span class="c"># [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742,</span>
+<span class="c"># 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347,</span>
+<span class="c"># 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598, 9605,</span>
+<span class="c"># 9606]</span>
+
+<span class="n">names</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_taxid_translator</span><span class="p">(</span><span class="n">lineage</span><span class="p">)</span>
+<span class="k">print</span> <span class="p">[</span><span class="n">names</span><span class="p">[</span><span class="n">taxid</span><span class="p">]</span> <span class="k">for</span> <span class="n">taxid</span> <span class="ow">in</span> <span class="n">lineage</span><span class="p">]</span>
+
+<span class="c"># [u'root', u'cellular organisms', u'Eukaryota', u'Opisthokonta', u'Metazoa',</span>
+<span class="c"># u'Eumetazoa', u'Bilateria', u'Deuterostomia', u'Chordata', u'Craniata',</span>
+<span class="c"># u'Vertebrata', u'Gnathostomata', u'Teleostomi', u'Euteleostomi',</span>
+<span class="c"># u'Sarcopterygii', u'Dipnotetrapodomorpha', u'Tetrapoda', u'Amniota',</span>
+<span class="c"># u'Mammalia', u'Theria', u'Eutheria', u'Boreoeutheria', u'Euarchontoglires',</span>
+<span class="c"># u'Primates', u'Haplorrhini', u'Simiiformes', u'Catarrhini', u'Hominoidea',</span>
+<span class="c"># u'Hominidae', u'Homininae', u'Homo', u'Homo sapiens']</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="getting-descendant-taxa">
+<h2>Getting descendant taxa<a class="headerlink" href="#getting-descendant-taxa" title="Permalink to this headline">¶</a></h2>
+<p>Given a taxid or a taxa name from an internal node in the NCBI taxonomy tree,
+their descendants can be retrieved as follows:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+
+<span class="n">descendants</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_descendant_taxa</span><span class="p">(</span><span class="s">'Homo'</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">translate_to_names</span><span class="p">(</span><span class="n">descendants</span><span class="p">)</span>
+
+<span class="c"># [u'Homo heidelbergensis', u'Homo sapiens ssp. Denisova', u'Homo sapiens neanderthalensis']</span>
+
+<span class="c"># you can easily ignore subspecies, so only taxa labeled as "species" will be reported:</span>
+<span class="n">descendants</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_descendant_taxa</span><span class="p">(</span><span class="s">'Homo'</span><span class="p">,</span> <span class="n">collapse_subspecies</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">translate_to_names</span><span class="p">(</span><span class="n">descendants</span><span class="p">)</span>
+
+<span class="c"># [u'Homo sapiens', u'Homo heidelbergensis']</span>
+
+<span class="c"># or even returned as an annotated tree</span>
+<span class="n">tree</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_descendant_taxa</span><span class="p">(</span><span class="s">'Homo'</span><span class="p">,</span> <span class="n">collapse_subspecies</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">return_tree</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">'sci_name'</span><span class="p">,</span> <span class="s">'taxid'</span><span class="p">])</span>
+
+<span class="c">#           /-Homo sapiens, 9606</span>
+<span class="c"># -Homo, 9605</span>
+<span class="c">#           \-Homo heidelbergensis, 1425170</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="getting-ncbi-species-tree-topology">
+<h2>Getting NCBI species tree topology<a class="headerlink" href="#getting-ncbi-species-tree-topology" title="Permalink to this headline">¶</a></h2>
+<p>Getting the NCBI taxonomy tree for a given set of species is one of the most
+useful ways to get all information at once. The method
+<code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.get_topology()</span></code> allows to query your local NCBI database and
+extract the smallest tree that connects all your query taxids. It returns a
+normal ETE tree in which all nodes, internal or leaves, are annotated for
+lineage, scientific names, ranks, and so on.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+
+<span class="n">tree</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_topology</span><span class="p">([</span><span class="mi">9606</span><span class="p">,</span> <span class="mi">9598</span><span class="p">,</span> <span class="mi">10090</span><span class="p">,</span> <span class="mi">7707</span><span class="p">,</span> <span class="mi">8782</span><span class="p">])</span>
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"sci_name"</span><span class="p">,</span> <span class="s">"rank"</span><span class="p">])</span>
+
+<span class="c">#                     /-Dendrochirotida, order</span>
+<span class="c">#                    |</span>
+<span class="c">#                    |                                                                /-Pan troglodytes, species</span>
+<span class="c"># -Deuterostomia, no rank                                           /Homininae, subfamily</span>
+<span class="c">#                    |                /Euarchontoglires, superorder                   \-Homo sapiens, species</span>
+<span class="c">#                    |               |                           |</span>
+<span class="c">#                     \Amniota, no rank                           \-Mus musculus, species</span>
+<span class="c">#                                    |</span>
+<span class="c">#                                     \-Aves, class</span>
+</pre></div>
+</div>
+<p>If needed, all intermediate nodes connecting the species can also be kept in the tree:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+
+<span class="n">tree</span> <span class="o">=</span> <span class="n">ncbi</span><span class="o">.</span><span class="n">get_topology</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">33208</span><span class="p">],</span> <span class="n">intermediate_nodes</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"sci_name"</span><span class="p">])</span>
+
+<span class="c">#                  /Eukaryota - Opisthokonta - Metazoa</span>
+<span class="c"># -cellular organisms</span>
+<span class="c">#                  \-Bacteria</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="automatic-tree-annotation-using-ncbi-taxonomy">
+<h2>Automatic tree annotation using NCBI taxonomy<a class="headerlink" href="#automatic-tree-annotation-using-ncbi-taxonomy" title="Permalink to this headline">¶</a></h2>
+<p>NCBI taxonomy annotation consists of adding additional information to any
+internal a leaf node in a give user tree. Only an attribute containing the taxid
+associated to each node is required for the nodes in the query tree. The
+annotation process will add the following features to the nodes:</p>
+<blockquote>
+<div><ul class="simple">
+<li>sci_name</li>
+<li>taxid</li>
+<li>named_lineage</li>
+<li>lineage</li>
+<li>rank</li>
+</ul>
+</div></blockquote>
+<p>Note that, for internal nodes, taxid can be automatically inferred based on
+their sibling nodes. The easiest way to annotate a tree is to use a
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instance where the species name attribute is transparently
+used as the taxid attribute.  Note that the <a href="#id3"><span class="problematic" id="id4">:PhyloNode:`annotate_ncbi_taxa`</span></a>:
+function will also return the used name, lineage and rank translators.</p>
+<p>Remember that species names in <cite>PhyloTree</cite> instances are automatically extracted
+from leaf names. The parsing method can be easily adapted to any formatting:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+
+<span class="c"># load the whole leaf name as species taxid</span>
+<span class="n">tree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">'((9606, 9598), 10090);'</span><span class="p">,</span> <span class="n">sp_naming_function</span><span class="o">=</span><span class="k">lambda</span> <span class="n">name</span><span class="p">:</span> <span class="n">name</span><span class="p">)</span>
+<span class="n">tax2names</span><span class="p">,</span> <span class="n">tax2lineages</span><span class="p">,</span> <span class="n">tax2rank</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">annotate_ncbi_taxa</span><span class="p">()</span>
+
+<span class="c"># split names by '|' and return the first part as the species taxid</span>
+<span class="n">tree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">'((9606|protA, 9598|protA), 10090|protB);'</span><span class="p">,</span> <span class="n">sp_naming_function</span><span class="o">=</span><span class="k">lambda</span> <span class="n">name</span><span class="p">:</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'|'</span>< [...]
+<span class="n">tax2names</span><span class="p">,</span> <span class="n">tax2lineages</span><span class="p">,</span> <span class="n">tax2rank</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">annotate_ncbi_taxa</span><span class="p">()</span>
+
+<span class="k">print</span> <span class="n">tree</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"sci_name"</span><span class="p">,</span> <span class="s">"taxid"</span><span class="p">])</span>
+
+
+<span class="c">#                                             /-9606|protA, Homo sapiens, 9606</span>
+<span class="c">#                          /, Homininae, 207598</span>
+<span class="c">#-, Euarchontoglires, 314146                  \-9598|protA, Pan troglodytes, 9598</span>
+<span class="c">#                         |</span>
+<span class="c">#                          \-10090|protB, Mus musculus, 10090</span>
+</pre></div>
+</div>
+<p>Alternatively, you can also use the <code class="xref py py-func docutils literal"><span class="pre">NCBITaxa.annotate_tree()</span></code> function to
+annotate a custom tree instance.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span><span class="p">,</span> <span class="n">NCBITaxa</span>
+<span class="n">ncbi</span> <span class="o">=</span> <span class="n">NCBITaxa</span><span class="p">()</span>
+<span class="n">tree</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
+<span class="n">ncbi</span><span class="o">.</span><span class="n">annotate_tree</span><span class="p">(</span><span class="n">tree</span><span class="p">,</span> <span class="n">taxid_attr</span><span class="o">=</span><span class="s">"name"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_etree2orthoxml.html" class="btn btn-neutral float-right" title="SCRIPTS: orthoXML" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_adaptation.html" class="btn btn-neutral" title="Testing Evolutionary Hypothesis" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_nexml.html b/doc/tutorial/tutorial_nexml.html
new file mode 100644
index 0000000..f0279dc
--- /dev/null
+++ b/doc/tutorial/tutorial_nexml.html
@@ -0,0 +1,530 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>NeXML — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="Phylogenetic XML standards" href="tutorial_xml.html"/>
+        <link rel="next" title="PhyloXML" href="tutorial_phyloxml.html"/>
+        <link rel="prev" title="Phylogenetic XML standards" href="tutorial_xml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal" href="">NeXML</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#reading-nexml-projects">Reading NeXML projects</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#nexml-tree-manipulation-and-visualization">NeXML tree manipulation and visualization</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phyloxml.html">PhyloXML</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+          <li><a href="tutorial_xml.html">Phylogenetic XML standards</a> »</li>
+      
+    <li>NeXML</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_nexml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<div class="section" id="nexml">
+<h1>NeXML<a class="headerlink" href="#nexml" title="Permalink to this headline">¶</a></h1>
+<p>NeXML(<a class="reference external" href="http://nexml.org">http://nexml.org</a>) is an exchange standard for representing
+phyloinformatic data inspired by the commonly used NEXUS format, but
+more robust and easier to process.</p>
+<div class="section" id="reading-nexml-projects">
+<h2>Reading NeXML projects<a class="headerlink" href="#reading-nexml-projects" title="Permalink to this headline">¶</a></h2>
+<p>Nexml projects are handled through the <a class="reference internal" href="../reference/reference_nexml.html#ete3.Nexml" title="ete3.Nexml"><code class="xref py py-class docutils literal"><span class="pre">Nexml</span></code></a> base class.  To
+load a NexML file, the <a class="reference internal" href="../reference/reference_nexml.html#ete3.Nexml.build_from_file" title="ete3.Nexml.build_from_file"><code class="xref py py-func docutils literal"><span class="pre">Nexml.build_from_file()</span></code></a> method can be
+used.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Nexml</span>
+
+<span class="n">nexml_prj</span> <span class="o">=</span> <span class="n">Nexml</span><span class="p">()</span>
+<span class="n">nexml_prj</span><span class="o">.</span><span class="n">build_from_file</span><span class="p">(</span><span class="s">"/path/to/nexml_example.xml"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Note that the ETE parser will read the provided XML file and convert
+all elements into python instances, which will be hierarchically
+connected to the Nexml root instance.</p>
+<p>Every NeXML XML element has its own python class. Content and
+attributes can be handled through the “<a href="#id1"><span class="problematic" id="id2">set_</span></a>” and “<a href="#id3"><span class="problematic" id="id4">get_</span></a>” methods
+existing in all objects. Nexml classes can be imported from the
+<a class="reference internal" href="../reference/reference_nexml.html#module-ete3.nexml" title="ete3.nexml"><code class="xref py py-mod docutils literal"><span class="pre">ete3.nexml</span></code></a> module.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Nexml</span><span class="p">,</span> <span class="n">nexml</span>
+<span class="n">nexml_prj</span> <span class="o">=</span> <span class="n">Nexml</span><span class="p">()</span>
+<span class="n">nexml_meta</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">LiteralMeta</span><span class="p">(</span><span class="n">datatype</span><span class="o">=</span><span class="s">"double"</span><span class="p">,</span> <span class="nb">property</span><span class="o">=</span><span class="s">"branch_support"</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="mf">1 [...]
+<span class="n">nexml_prj</span><span class="o">.</span><span class="n">add_meta</span><span class="p">(</span><span class="n">nexml_meta</span><span class="p">)</span>
+<span class="n">nexml_prj</span><span class="o">.</span><span class="n">export</span><span class="p">()</span>
+
+<span class="c"># Will produce:</span>
+<span class="c">#</span>
+<span class="c"># <Nexml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Nexml"></span>
+<span class="c">#    <meta datatype="double" content="1.0" property="branch_support" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LiteralMeta"/></span>
+<span class="c"># </Nexml></span>
+</pre></div>
+</div>
+<div class="section" id="nexml-trees">
+<h3>NeXML trees<a class="headerlink" href="#nexml-trees" title="Permalink to this headline">¶</a></h3>
+<p>NeXML tree elements are automatically converted into
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instances, containing all ETE functionality
+(traversing, drawing, etc) plus normal NeXML attributes.</p>
+<p>In the Nexml standard, trees are represented as plain lists of nodes
+and edges. ETE will convert such lists into tree topologies, in which
+every node will contain a <code class="xref py py-attr docutils literal"><span class="pre">nexml_node</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">nexml_edge</span></code>
+attribute. In addition, each tree node will have a <code class="xref py py-attr docutils literal"><span class="pre">nexml_tree</span></code>
+attribute (i.e. <code class="docutils literal"><span class="pre">NEXML->FloatTree</span></code>) , which can be used to set the
+nexml properties of the subtree represented by each node. Note also
+that <code class="xref py py-attr docutils literal"><span class="pre">node.dist</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">node.name</span></code> features will be linked
+to <code class="xref py py-attr docutils literal"><span class="pre">node.nexml_edge.length</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">node.nexml_node.label</span></code>,
+respectively.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Nexml</span>
+<span class="c"># Create an empty Nexml project</span>
+<span class="n">nexml_project</span> <span class="o">=</span> <span class="n">Nexml</span><span class="p">()</span>
+
+<span class="c"># Load content from NeXML file</span>
+<span class="n">nexml_project</span><span class="o">.</span><span class="n">build_from_file</span><span class="p">(</span><span class="s">"trees.xml"</span><span class="p">)</span>
+
+<span class="c"># All XML elements are within the project instance.</span>
+<span class="c"># exist in each element to access their attributes.</span>
+<span class="k">print</span> <span class="s">"Loaded Taxa:"</span>
+<span class="k">for</span> <span class="n">taxa</span> <span class="ow">in</span>  <span class="n">nexml_project</span><span class="o">.</span><span class="n">get_otus</span><span class="p">():</span>
+    <span class="k">for</span> <span class="n">otu</span> <span class="ow">in</span> <span class="n">taxa</span><span class="o">.</span><span class="n">get_otu</span><span class="p">():</span>
+        <span class="k">print</span> <span class="s">"OTU:"</span><span class="p">,</span> <span class="n">otu</span><span class="o">.</span><span class="n">id</span>
+
+<span class="c"># Extracts all the collection of trees in the project</span>
+<span class="n">tree_collections</span> <span class="o">=</span> <span class="n">nexml_project</span><span class="o">.</span><span class="n">get_trees</span><span class="p">()</span>
+<span class="c"># Select the first collection</span>
+<span class="n">collection_1</span> <span class="o">=</span> <span class="n">tree_collections</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="c"># print the topology of every tree</span>
+<span class="k">for</span> <span class="n">tree</span> <span class="ow">in</span>  <span class="n">collection_1</span><span class="o">.</span><span class="n">get_tree</span><span class="p">():</span>
+    <span class="c"># trees contain all the nexml information in their "nexml_node",</span>
+    <span class="c"># "nexml_tree", and "nexml_edge" attributes.</span>
+    <span class="k">print</span> <span class="s">"Tree id"</span><span class="p">,</span> <span class="n">tree</span><span class="o">.</span><span class="n">nexml_tree</span><span class="o">.</span><span class="n">id</span>
+    <span class="k">print</span> <span class="n">tree</span>
+    <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">tree</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+        <span class="k">print</span> <span class="s">"node"</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">nexml_node</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s">"is associated with"</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">nexml_node</span><span class="o">.</span><span class="n">otu</span><span class="p">,</sp [...]
+
+
+<span class="c"># Output:</span>
+<span class="c"># ==========</span>
+<span class="c"># Loaded Taxa:</span>
+<span class="c"># OTU: t1</span>
+<span class="c"># OTU: t2</span>
+<span class="c"># OTU: t3</span>
+<span class="c"># OTU: t4</span>
+<span class="c"># OTU: t5</span>
+<span class="c"># Tree id tree1</span>
+<span class="c">#</span>
+<span class="c">#                /-n5(n5)</span>
+<span class="c">#           /---|</span>
+<span class="c">#          |     \-n6(n6)</span>
+<span class="c">#      /---|</span>
+<span class="c">#     |    |     /-n8(n8)</span>
+<span class="c"># ----|     \---|</span>
+<span class="c">#     |          \-n9(n9)</span>
+<span class="c">#     |</span>
+<span class="c">#      \-n2(n2)</span>
+<span class="c"># node n1 is associated with None OTU</span>
+<span class="c"># node n3 is associated with None OTU</span>
+<span class="c"># node n2 is associated with t1 OTU</span>
+<span class="c"># node n4 is associated with None OTU</span>
+<span class="c"># node n7 is associated with None OTU</span>
+<span class="c"># node n5 is associated with t3 OTU</span>
+<span class="c"># node n6 is associated with t2 OTU</span>
+<span class="c"># node n8 is associated with t5 OTU</span>
+<span class="c"># node n9 is associated with t4 OTU</span>
+<span class="c"># Tree id tree2</span>
+<span class="c">#</span>
+<span class="c">#                /-tree2n5(n5)</span>
+<span class="c">#           /---|</span>
+<span class="c">#          |     \-tree2n6(n6)</span>
+<span class="c">#      /---|</span>
+<span class="c">#     |    |     /-tree2n8(n8)</span>
+<span class="c"># ----|     \---|</span>
+<span class="c">#     |          \-tree2n9(n9)</span>
+<span class="c">#     |</span>
+<span class="c">#      \-tree2n2(n2)</span>
+<span class="c"># node tree2n1 is associated with None OTU</span>
+<span class="c"># node tree2n3 is associated with None OTU</span>
+<span class="c"># node tree2n2 is associated with t1 OTU</span>
+<span class="c"># node tree2n4 is associated with None OTU</span>
+<span class="c"># node tree2n7 is associated with None OTU</span>
+<span class="c"># node tree2n5 is associated with t3 OTU</span>
+<span class="c"># node tree2n6 is associated with t2 OTU</span>
+<span class="c"># node tree2n8 is associated with t5 OTU</span>
+<span class="c"># node tree2n9 is associated with t4 OTU</span>
+</pre></div>
+</div>
+<p><a class="reference download internal" href="../_downloads/trees.xml"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">tolweb.xml</span> <span class="pre">example]</span></code></a> ||
+<a class="reference download internal" href="../_downloads/nexml_parser.py"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">script]</span></code></a></p>
+<p>Node meta information is also available:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Nexml</span>
+
+<span class="c"># Creates and empty NeXML project</span>
+<span class="n">p</span> <span class="o">=</span> <span class="n">Nexml</span><span class="p">()</span>
+<span class="c"># Fill it with the tolweb example</span>
+<span class="n">p</span><span class="o">.</span><span class="n">build_from_file</span><span class="p">(</span><span class="s">"tolweb.xml"</span><span class="p">)</span>
+
+<span class="c"># extract the first collection of trees</span>
+<span class="n">tree_collection</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">trees</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+<span class="c"># and all the tree instances in it</span>
+<span class="n">trees</span> <span class="o">=</span> <span class="n">tree_collection</span><span class="o">.</span><span class="n">tree</span>
+
+<span class="c"># For each loaded tree, prints its structure and some of its</span>
+<span class="c"># meta-properties</span>
+<span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">trees</span><span class="p">:</span>
+    <span class="k">print</span> <span class="n">t</span>
+    <span class="k">print</span>
+    <span class="k">print</span> <span class="s">"Leaf node meta information:</span><span class="se">\n</span><span class="s">"</span>
+    <span class="k">print</span>
+    <span class="k">for</span> <span class="n">meta</span> <span class="ow">in</span>  <span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">nexml_node</span><span class="o">.</span><span class="n">meta</span><span class="p">:</span>
+        <span class="k">print</span>  <span class="n">meta</span><span class="o">.</span><span class="n">property</span><span class="p">,</span> <span class="s">":"</span><span class="p">,</span> <span class="p">(</span><span class="n">meta</span><span class="o">.</span><span class="n">content</span><span class="p">)</span>
+
+
+<span class="c"># Output</span>
+<span class="c"># ==========</span>
+<span class="c">#</span>
+<span class="c"># ---- /-node3(Eurysphindus)</span>
+<span class="c">#</span>
+<span class="c"># Leaf node meta information:</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c"># dc:description :</span>
+<span class="c"># tbe:AUTHORITY : Leconte</span>
+<span class="c"># tbe:AUTHDATE : 1878</span>
+<span class="c"># tba:ANCESTORWITHPAGE : 117851</span>
+<span class="c"># tba:CHILDCOUNT : 0</span>
+<span class="c"># tba:COMBINATION_DATE : null</span>
+<span class="c"># tba:CONFIDENCE : 0</span>
+<span class="c"># tba:EXTINCT : 0</span>
+<span class="c"># tba:HASPAGE : 1</span>
+<span class="c"># tba:ID : 117855</span>
+<span class="c"># tba:INCOMPLETESUBGROUPS : 0</span>
+<span class="c"># tba:IS_NEW_COMBINATION : 0</span>
+<span class="c"># tba:ITALICIZENAME : 1</span>
+<span class="c"># tba:LEAF : 0</span>
+<span class="c"># tba:PHYLESIS : 0</span>
+<span class="c"># tba:SHOWAUTHORITY : 0</span>
+<span class="c"># tba:SHOWAUTHORITYCONTAINING : 1</span>
+</pre></div>
+</div>
+<p><a class="reference download internal" href="../_downloads/tolweb.xml"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">tolweb.xml</span> <span class="pre">example]</span></code></a> ||
+<a class="reference download internal" href="../_downloads/nexml_annotated_trees.py"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">script]</span></code></a></p>
+<div class="section" id="creating-nexml-project-from-scratch">
+<h4>Creating Nexml project from scratch<a class="headerlink" href="#creating-nexml-project-from-scratch" title="Permalink to this headline">¶</a></h4>
+<p><a class="reference internal" href="../reference/reference_nexml.html#ete3.Nexml" title="ete3.Nexml"><code class="xref py py-class docutils literal"><span class="pre">Nexml</span></code></a> base class can also be used to create projects from
+scratch in a programmatic way. Using the collection of NeXML classes
+provided by the:mod:<cite>ete3.nexml</cite> module, you can populate an empty
+project and export it as XML.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">sys</span>
+<span class="c"># Note that we import the nexml module rather than the root Nexml</span>
+<span class="c">#  class.  This module contains a python object for each of the</span>
+<span class="c">#  nexml elements declared in its XML schema.</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">nexml</span>
+
+<span class="c"># Create an empty Nexml project</span>
+<span class="n">nexml_project</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">Nexml</span><span class="p">()</span>
+<span class="n">tree_collection</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">Trees</span><span class="p">()</span>
+
+<span class="c"># NexmlTree is a special PhyloTree instance that is prepared to be</span>
+<span class="c"># added to NeXML projects. So lets populate a random tree</span>
+<span class="n">nexml_tree</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">NexmlTree</span><span class="p">()</span>
+<span class="c"># Random tree with 10 leaves</span>
+<span class="n">nexml_tree</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="c"># We add the tree to the collection</span>
+<span class="n">tree_collection</span><span class="o">.</span><span class="n">add_tree</span><span class="p">(</span><span class="n">nexml_tree</span><span class="p">)</span>
+
+<span class="c"># Create another tree from a newick string</span>
+<span class="n">nexml_tree2</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">NexmlTree</span><span class="p">(</span><span class="s">"((hello, nexml):1.51, project):0.6;"</span><span class="p">)</span>
+<span class="n">tree_collection</span><span class="o">.</span><span class="n">add_tree</span><span class="p">(</span><span class="n">nexml_tree2</span><span class="p">)</span>
+
+<span class="c"># Tree can be handled as normal ETE objects</span>
+<span class="n">nexml_tree2</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+<span class="c"># Add the collection of trees to the NexML project object</span>
+<span class="n">nexml_project</span><span class="o">.</span><span class="n">add_trees</span><span class="p">(</span><span class="n">tree_collection</span><span class="p">)</span>
+
+<span class="c"># Now we can export the project containing our two trees</span>
+<span class="n">nexml_project</span><span class="o">.</span><span class="n">export</span><span class="p">()</span>
+</pre></div>
+</div>
+<p><a class="reference download internal" href="../_downloads/nexml_from_scratch.py"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">script]</span></code></a></p>
+</div>
+<div class="section" id="writing-nexml-objects">
+<h4>Writing NeXML objects<a class="headerlink" href="#writing-nexml-objects" title="Permalink to this headline">¶</a></h4>
+<p>Every NexML object has its own <code class="xref py py-func docutils literal"><span class="pre">export()</span></code> method. By calling it,
+you can obtain the XML representation of any instance contained in the
+Nexml project structure. Usually, all you will need is to export the
+whole project, but individual elements can be exported.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Nexml</span>
+<span class="c"># Create an empty Nexml project</span>
+<span class="n">nexml_project</span> <span class="o">=</span> <span class="n">Nexml</span><span class="p">()</span>
+
+<span class="c"># Upload content from file</span>
+<span class="n">nexml_project</span><span class="o">.</span><span class="n">build_from_file</span><span class="p">(</span><span class="s">"nexml_example.xml"</span><span class="p">)</span>
+
+<span class="c"># Extract first collection of trees</span>
+<span class="n">tree_collection</span> <span class="o">=</span>  <span class="n">nexml</span><span class="o">.</span><span class="n">get_trees</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="c"># And export it</span>
+<span class="n">tree_collection</span><span class="o">.</span><span class="n">export</span><span class="p">(</span><span class="n">output</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="nexml-tree-manipulation-and-visualization">
+<h2>NeXML tree manipulation and visualization<a class="headerlink" href="#nexml-tree-manipulation-and-visualization" title="Permalink to this headline">¶</a></h2>
+<p>NeXML trees contain all ETE PhyloTree functionality: orthology
+prediction, topology manipulation and traversing methods,
+visualization, etc.</p>
+<p>For instance, tree changes performed through the visualization GUI are
+kept in the NeXML format.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">nexml</span>
+<span class="n">nexml_tree</span> <span class="o">=</span> <span class="n">nexml</span><span class="o">.</span><span class="n">NexMLTree</span><span class="p">(</span><span class="s">"((hello, nexml):1.51, project):0.6;"</span><span class="p">)</span>
+<span class="n">tree_collection</span><span class="o">.</span><span class="n">add_tree</span><span class="p">(</span><span class="n">nexml_tree</span><span class="p">)</span>
+<span class="n">nexml_tree</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_phyloxml.html" class="btn btn-neutral float-right" title="PhyloXML" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_xml.html" class="btn btn-neutral" title="Phylogenetic XML standards" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_phylogeny.html b/doc/tutorial/tutorial_phylogeny.html
new file mode 100644
index 0000000..6c6e324
--- /dev/null
+++ b/doc/tutorial/tutorial_phylogeny.html
@@ -0,0 +1,1249 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Phylogenetic Trees — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="Clustering Trees" href="tutorial_clustering.html"/>
+        <link rel="prev" title="The Programmable Tree Drawing Engine" href="tutorial_drawing.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Phylogenetic Trees</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#linking-phylogenetic-trees-with-multiple-sequence-alignments">Linking Phylogenetic Trees with Multiple Sequence Alignments</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#visualization-of-phylogenetic-trees">Visualization of phylogenetic trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#adding-taxonomic-information">Adding taxonomic information</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#automatic-control-of-species-info">Automatic control of species info</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#automatic-and-custom-control-of-the-species-info">Automatic (and custom) control of the species info</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#manual-control-of-the-species-info">Manual control of the species info</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#detecting-evolutionary-events">Detecting evolutionary events</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#species-overlap-so-algorithm">Species Overlap (SO) algorithm</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#tree-reconciliation-algorithm">Tree reconciliation algorithm</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#a-closer-look-to-the-evolutionary-event-object">A closer look to the evolutionary event object</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#relative-dating-phylogenetic-nodes">Relative dating phylogenetic nodes</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#implementation">Implementation</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#automatic-rooting-outgroup-detection">Automatic rooting (outgroup detection)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#working-with-duplicated-gene-families">Working with duplicated gene families</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#treeko-splitting-gene-trees-into-species-trees">Treeko (splitting gene trees into species trees)</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#splitting-gene-trees-by-duplication-events">Splitting gene trees by duplication events</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#collapse-species-specific-duplications">Collapse species specific duplications</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Phylogenetic Trees</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_phylogeny.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="phylogenetic-trees">
+<h1><a class="toc-backref" href="#id1">Phylogenetic Trees</a><a class="headerlink" href="#phylogenetic-trees" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#phylogenetic-trees" id="id1">Phylogenetic Trees</a><ul>
+<li><a class="reference internal" href="#overview" id="id2">Overview</a></li>
+<li><a class="reference internal" href="#linking-phylogenetic-trees-with-multiple-sequence-alignments" id="id3">Linking Phylogenetic Trees with Multiple Sequence Alignments</a></li>
+<li><a class="reference internal" href="#visualization-of-phylogenetic-trees" id="id4">Visualization of phylogenetic trees</a></li>
+<li><a class="reference internal" href="#adding-taxonomic-information" id="id5">Adding taxonomic information</a><ul>
+<li><a class="reference internal" href="#automatic-control-of-species-info" id="id6">Automatic control of species info</a></li>
+<li><a class="reference internal" href="#automatic-and-custom-control-of-the-species-info" id="id7">Automatic (and custom) control of the species info</a></li>
+<li><a class="reference internal" href="#manual-control-of-the-species-info" id="id8">Manual control of the species info</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#detecting-evolutionary-events" id="id9">Detecting evolutionary events</a><ul>
+<li><a class="reference internal" href="#species-overlap-so-algorithm" id="id10">Species Overlap (SO) algorithm</a></li>
+<li><a class="reference internal" href="#tree-reconciliation-algorithm" id="id11">Tree reconciliation algorithm</a></li>
+<li><a class="reference internal" href="#a-closer-look-to-the-evolutionary-event-object" id="id12">A closer look to the evolutionary event object</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#relative-dating-phylogenetic-nodes" id="id13">Relative dating phylogenetic nodes</a><ul>
+<li><a class="reference internal" href="#implementation" id="id14">Implementation</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#automatic-rooting-outgroup-detection" id="id15">Automatic rooting (outgroup detection)</a></li>
+<li><a class="reference internal" href="#working-with-duplicated-gene-families" id="id16">Working with duplicated gene families</a><ul>
+<li><a class="reference internal" href="#treeko-splitting-gene-trees-into-species-trees" id="id17">Treeko (splitting gene trees into species trees)</a></li>
+<li><a class="reference internal" href="#splitting-gene-trees-by-duplication-events" id="id18">Splitting gene trees by duplication events</a></li>
+<li><a class="reference internal" href="#collapse-species-specific-duplications" id="id19">Collapse species specific duplications</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id2">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>Phylogenetic trees are the result of most evolutionary analyses. They
+represent the evolutionary relationships among a set of species or, in
+molecular biology, a set of homologous sequences.</p>
+<p>The <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> class is an extension of the base <a class="reference internal" href="../reference/reference_tree.html#ete3.Tree" title="ete3.Tree"><code class="xref py py-class docutils literal"><span class="pre">Tree</span></code></a>
+object, providing a appropriate way to deal with phylogenetic trees.
+Thus, while leaves are considered to represent species (or sequences
+from a given species genome), internal nodes are considered ancestral
+nodes. A direct consequence of this is, for instance, that every split
+in the tree will represent a speciation or duplication event.</p>
+</div>
+<div class="section" id="linking-phylogenetic-trees-with-multiple-sequence-alignments">
+<h2><a class="toc-backref" href="#id3">Linking Phylogenetic Trees with Multiple Sequence Alignments</a><a class="headerlink" href="#linking-phylogenetic-trees-with-multiple-sequence-alignments" title="Permalink to this headline">¶</a></h2>
+<p><a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instances allow molecular phylogenies to be linked
+to the Multiple Sequence Alignments (MSA). To associate a MSA with a
+phylogenetic tree you can use the <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.link_to_alignment" title="ete3.PhyloNode.link_to_alignment"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.link_to_alignment()</span></code></a>
+method. You can use the <code class="xref py py-attr docutils literal"><span class="pre">alg_format</span></code> argument to specify its
+format (See <a class="reference internal" href="../reference/reference_seqgroup.html#ete3.SeqGroup" title="ete3.SeqGroup"><code class="xref py py-class docutils literal"><span class="pre">SeqGroup</span></code></a> documentation for available formats)</p>
+<p>Given that Fasta format are not only applicable for MSA but also for
+<strong>Unaligned Sequences</strong>, you may also associate sequences of different
+lengths with tree nodes.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="n">fasta_txt</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">>seqA</span>
+<span class="s">MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH</span>
+<span class="s">>seqB</span>
+<span class="s">MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH</span>
+<span class="s">>seqC</span>
+<span class="s">MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="s">>seqD</span>
+<span class="s">MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH</span>
+<span class="s">"""</span>
+
+<span class="c"># Load a tree and link it to an alignment.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((seqA,seqB),seqC),seqD);"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">link_to_alignment</span><span class="p">(</span><span class="n">alignment</span><span class="o">=</span><span class="n">fasta_txt</span><span class="p">,</span> <span class="n">alg_format</span><span class="o">=</span><span class="s">"fasta"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>The same could be done at the same time the tree is being loaded, by
+using the <code class="xref py py-attr docutils literal"><span class="pre">alignment</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">alg_format</span></code> arguments of
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a>.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Load a tree and link it to an alignment.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((seqA,seqB),seqC),seqD);"</span><span class="p">,</span> <span class="n">alignment</span><span class="o">=</span><span class="n">fasta_txt</span><span class="p">,</span> <span class="n">alg_format</span><span class="o">=</span><span class="s">"fasta"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>As currently implemented, sequence linking process is not strict,
+which means that a perfect match between all node names and sequences
+names <strong>is not required</strong>. Thus, if only one match is found between
+sequences names within the MSA file and tree node names, only one tree
+node will contain an associated sequence. Also, it is important to
+note that sequence linking is not limited to terminal nodes. If
+internal nodes are named, and such names find a match within the
+provided MSA file, their corresponding sequences will be also loaded
+into the tree structure. Once a MSA is linked, sequences will be
+available for every tree node through its <code class="xref py py-attr docutils literal"><span class="pre">node.sequence</span></code>
+attribute.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="n">fasta_txt</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s"> >seqA</span>
+<span class="s"> MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH</span>
+<span class="s"> >seqB</span>
+<span class="s"> MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH</span>
+<span class="s"> >seqC</span>
+<span class="s"> MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="s"> >seqD</span>
+<span class="s"> MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH</span>
+<span class="s">"""</span>
+<span class="n">iphylip_txt</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s"> 4 76</span>
+<span class="s">      seqA   MAEIPDETIQ QFMALT---H NIAVQYLSEF GDLNEALNSY YASQTDDIKD RREEAHQFMA</span>
+<span class="s">      seqB   MAEIPDATIQ QFMALTNVSH NIAVQY--EF GDLNEALNSY YAYQTDDQKD RREEAHQFMA</span>
+<span class="s">      seqC   MAEIPDATIQ ---ALTNVSH NIAVQYLSEF GDLNEALNSY YASQTDDQPD RREEAHQFMA</span>
+<span class="s">      seqD   MAEAPDETIQ QFMALTNVSH NIAVQYLSEF GDLNEAL--- ---------- -REEAHQ---</span>
+<span class="s">             LTNVSHQFMA LTNVSH</span>
+<span class="s">             LTNVSH---- ------</span>
+<span class="s">             LTNVSH---- ------</span>
+<span class="s">             -------FMA LTNVSH</span>
+<span class="s">"""</span>
+<span class="c"># Load a tree and link it to an alignment. As usual, 'alignment' can</span>
+<span class="c"># be the path to a file or data in text format.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((seqA,seqB),seqC),seqD);"</span><span class="p">,</span> <span class="n">alignment</span><span class="o">=</span><span class="n">fasta_txt</span><span class="p">,</span> <span class="n">alg_format</span><span class="o">=</span><span class="s">"fasta"</span><span class="p">)</span>
+
+<span class="c">#We can now access the sequence of every leaf node</span>
+<span class="k">print</span> <span class="s">"These are the nodes and its sequences:"</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_leaves</span><span class="p">():</span>
+    <span class="k">print</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">leaf</span><span class="o">.</span><span class="n">sequence</span>
+<span class="c">#seqD MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH</span>
+<span class="c">#seqC MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="c">#seqA MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH</span>
+<span class="c">#seqB MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH</span>
+<span class="c">#</span>
+<span class="c"># The associated alignment can be changed at any time</span>
+<span class="n">t</span><span class="o">.</span><span class="n">link_to_alignment</span><span class="p">(</span><span class="n">alignment</span><span class="o">=</span><span class="n">iphylip_txt</span><span class="p">,</span> <span class="n">alg_format</span><span class="o">=</span><span class="s">"iphylip"</span><span class="p">)</span>
+<span class="c"># Let's check that sequences have changed</span>
+<span class="k">print</span> <span class="s">"These are the nodes and its re-linked sequences:"</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_leaves</span><span class="p">():</span>
+    <span class="k">print</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">leaf</span><span class="o">.</span><span class="n">sequence</span>
+<span class="c">#seqD MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAHQ----------FMALTNVSH</span>
+<span class="c">#seqC MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAHQFMALTNVSH----------</span>
+<span class="c">#seqA MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQFMALTNVSHQFMALTNVSH</span>
+<span class="c">#seqB MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAHQFMALTNVSH----------</span>
+<span class="c">#</span>
+<span class="c"># The sequence attribute is considered as node feature, so you can</span>
+<span class="c"># even include sequences in your extended newick format!</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"sequence"</span><span class="p">],</span> <span class="n">format</span><span class="o">=</span><span class="mi">9</span><span class="p">)</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c"># (((seqA[&&NHX:sequence=MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQF</span>
+<span class="c"># MALTNVSHQFMALTNVSH],seqB[&&NHX:sequence=MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSY</span>
+<span class="c"># YAYQTDDQKDRREEAHQFMALTNVSH----------]),seqC[&&NHX:sequence=MAEIPDATIQ---ALTNVSHNIA</span>
+<span class="c"># VQYLSEFGDLNEALNSYYASQTDDQPDRREEAHQFMALTNVSH----------]),seqD[&&NHX:sequence=MAEAPD</span>
+<span class="c"># ETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAHQ----------FMALTNVSH]);</span>
+<span class="c">#</span>
+<span class="c"># And yes, you can save this newick text and reload it into a PhyloTree instance.</span>
+<span class="n">sametree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"sequence"</span><span class="p">]))</span>
+<span class="k">print</span> <span class="s">"Recovered tree with sequence features:"</span>
+<span class="k">print</span> <span class="n">sametree</span>
+<span class="c">#</span>
+<span class="c">#                              /-seqA</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#          /--------|          \-seqB</span>
+<span class="c">#         |         |</span>
+<span class="c">#---------|          \-seqC</span>
+<span class="c">#         |</span>
+<span class="c">#          \-seqD</span>
+<span class="c">#</span>
+<span class="k">print</span> <span class="s">"seqA sequence:"</span><span class="p">,</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"seqA"</span><span class="p">)</span><span class="o">.</span><span class="n">sequence</span>
+<span class="c"># MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQFMALTNVSHQFMALTNVSH</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="visualization-of-phylogenetic-trees">
+<h2><a class="toc-backref" href="#id4">Visualization of phylogenetic trees</a><a class="headerlink" href="#visualization-of-phylogenetic-trees" title="Permalink to this headline">¶</a></h2>
+<p>PhyloTree instances can benefit from all the features of the
+programmable drawing engine. However, a built-in phylogenetic layout
+is provided for convenience.</p>
+<p>All PhyloTree instances are, by default, attached to such layout for
+tree visualization, thus allowing for in-place alignment visualization
+and evolutionary events labeling.</p>
+<div class="figure">
+<img alt="../_images/phylotree.png" src="../_images/phylotree.png" />
+</div>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span><span class="p">,</span> <span class="n">TreeStyle</span>
+
+<span class="n">alg</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s"> >Dme_001</span>
+<span class="s"> MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEAL--YYASQTDDIKDRREEAH</span>
+<span class="s"> >Dme_002</span>
+<span class="s"> MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH</span>
+<span class="s"> >Cfa_001</span>
+<span class="s"> MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="s"> >Mms_001</span>
+<span class="s"> MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH</span>
+<span class="s"> >Hsa_001</span>
+<span class="s"> MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH</span>
+<span class="s"> >Ptr_002</span>
+<span class="s"> MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH</span>
+<span class="s"> >Mmu_002</span>
+<span class="s"> MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="s"> >Hsa_002</span>
+<span class="s"> MAEAPDETIQQFM-LTNVSHNIAVQYLSEFGDLNEAL--------------REEAH</span>
+<span class="s"> >Mmu_001</span>
+<span class="s"> MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH</span>
+<span class="s"> >Ptr_001</span>
+<span class="s"> MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH</span>
+<span class="s"> >Mmu_001</span>
+<span class="s"> MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH</span>
+<span class="s">"""</span>
+
+<span class="k">def</span> <span class="nf">get_example_tree</span><span class="p">():</span>
+
+    <span class="c"># Performs a tree reconciliation analysis</span>
+    <span class="n">gene_tree_nw</span> <span class="o">=</span> <span class="s">'((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'</span>
+    <span class="n">species_tree_nw</span> <span class="o">=</span> <span class="s">"((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"</span>
+    <span class="n">genetree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">gene_tree_nw</span><span class="p">)</span>
+    <span class="n">sptree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">species_tree_nw</span><span class="p">)</span>
+    <span class="n">recon_tree</span><span class="p">,</span> <span class="n">events</span> <span class="o">=</span> <span class="n">genetree</span><span class="o">.</span><span class="n">reconcile</span><span class="p">(</span><span class="n">sptree</span><span class="p">)</span>
+    <span class="n">recon_tree</span><span class="o">.</span><span class="n">link_to_alignment</span><span class="p">(</span><span class="n">alg</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">recon_tree</span><span class="p">,</span> <span class="n">TreeStyle</span><span class="p">()</span>
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="c"># Visualize the reconciled tree</span>
+    <span class="n">t</span><span class="p">,</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">get_example_tree</span><span class="p">()</span>
+    <span class="n">t</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">tree_style</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span>
+    <span class="c">#recon_tree.render("phylotree.png", w=750)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="adding-taxonomic-information">
+<h2><a class="toc-backref" href="#id5">Adding taxonomic information</a><a class="headerlink" href="#adding-taxonomic-information" title="Permalink to this headline">¶</a></h2>
+<p id="taxonomic-info"><a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instances allow to deal with leaf names and species
+names separately.  This is useful when working with molecular
+phylogenies, in which node names usually represent sequence
+identifiers.  Species names will be stored in the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.species" title="ete3.PhyloNode.species"><code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.species</span></code></a> attribute of each leaf node. The method
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_species" title="ete3.PhyloNode.get_species"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_species()</span></code></a> can be used obtain the set of species
+names found under a given internal node (speciation or duplication
+event).  Often, sequence names do contain species information as a
+part of the name, and ETE can parse this information automatically.</p>
+<p>There are three ways to establish the species of the different tree
+nodes:</p>
+<ul class="simple">
+<li>Default: The three first letters of node’s name represent the species</li>
+<li>The species code of each node is dynamically created based on node’s name</li>
+<li>The species code of each node is manually set.</li>
+</ul>
+<div class="section" id="automatic-control-of-species-info">
+<h3><a class="toc-backref" href="#id6">Automatic control of species info</a><a class="headerlink" href="#automatic-control-of-species-info" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="c"># Reads a phylogenetic tree (using default species name encoding)</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));"</span><span class="p">)</span>
+<span class="c">#                              /-Hsa_001</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#                   |          \-Ptr_001</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |         |          /-Cfa_001</span>
+<span class="c">#         |          \--------|</span>
+<span class="c">#---------|                    \-Mms_001</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-Dme_001</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                    \-Dme_002</span>
+<span class="c">#</span>
+<span class="c"># Prints current leaf names and species codes</span>
+<span class="k">print</span> <span class="s">"Deafult mode:"</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">get_leaves</span><span class="p">():</span>
+    <span class="k">print</span> <span class="s">"node:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"Species name:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">species</span>
+<span class="c"># node: Dme_001 Species name: Dme</span>
+<span class="c"># node: Dme_002 Species name: Dme</span>
+<span class="c"># node: Hsa_001 Species name: Hsa</span>
+<span class="c"># node: Ptr_001 Species name: Ptr</span>
+<span class="c"># node: Cfa_001 Species name: Cfa</span>
+<span class="c"># node: Mms_001 Species name: Mms</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="automatic-and-custom-control-of-the-species-info">
+<h3><a class="toc-backref" href="#id7">Automatic (and custom) control of the species info</a><a class="headerlink" href="#automatic-and-custom-control-of-the-species-info" title="Permalink to this headline">¶</a></h3>
+<p>The default behavior can be changed by using the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.set_species_naming_function" title="ete3.PhyloNode.set_species_naming_function"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.set_species_naming_function()</span></code></a> method or by using the
+<code class="xref py py-attr docutils literal"><span class="pre">sp_naming_function</span></code> argument of the <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> class.
+Note that, using the <code class="xref py py-attr docutils literal"><span class="pre">sp_naming_function</span></code> argument, the whole
+tree structure will be initialized to use the provided parsing
+function to obtain species name
+information. <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.set_species_naming_function" title="ete3.PhyloNode.set_species_naming_function"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.set_species_naming_function()</span></code></a> (present in
+all tree nodes) can be used to change the behavior in a previously
+loaded tree, or to set different parsing function to different parts
+of the tree.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="c"># Reads a phylogenetic tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));"</span><span class="p">)</span>
+
+<span class="c"># Let's use our own leaf name parsing function to obtain species</span>
+<span class="c"># names. All we need to do is create a python function that takes</span>
+<span class="c"># node's name as argument and return its corresponding species name.</span>
+<span class="k">def</span> <span class="nf">get_species_name</span><span class="p">(</span><span class="n">node_name_string</span><span class="p">):</span>
+    <span class="c"># Species code is the first part of leaf name (separated by an</span>
+    <span class="c">#  underscore character)</span>
+    <span class="n">spcode</span> <span class="o">=</span> <span class="n">node_name_string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="c"># We could even translate the code to complete names</span>
+    <span class="n">code2name</span> <span class="o">=</span> <span class="p">{</span>
+      <span class="s">"Dme"</span><span class="p">:</span><span class="s">"Drosophila melanogaster"</span><span class="p">,</span>
+      <span class="s">"Hsa"</span><span class="p">:</span><span class="s">"Homo sapiens"</span><span class="p">,</span>
+      <span class="s">"Ptr"</span><span class="p">:</span><span class="s">"Pan troglodytes"</span><span class="p">,</span>
+      <span class="s">"Mms"</span><span class="p">:</span><span class="s">"Mus musculus"</span><span class="p">,</span>
+      <span class="s">"Cfa"</span><span class="p">:</span><span class="s">"Canis familiaris"</span>
+      <span class="p">}</span>
+    <span class="k">return</span> <span class="n">code2name</span><span class="p">[</span><span class="n">spcode</span><span class="p">]</span>
+
+<span class="c"># Now, let's ask the tree to use our custom species naming function</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_species_naming_function</span><span class="p">(</span><span class="n">get_species_name</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Custom mode:"</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">get_leaves</span><span class="p">():</span>
+    <span class="k">print</span> <span class="s">"node:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"Species name:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">species</span>
+
+<span class="c"># node: Dme_001 Species name: Drosophila melanogaster</span>
+<span class="c"># node: Dme_002 Species name: Drosophila melanogaster</span>
+<span class="c"># node: Hsa_001 Species name: Homo sapiens</span>
+<span class="c"># node: Ptr_001 Species name: Pan troglodytes</span>
+<span class="c"># node: Cfa_001 Species name: Canis familiaris</span>
+<span class="c"># node: Mms_001 Species name: Mus musculus</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="manual-control-of-the-species-info">
+<h3><a class="toc-backref" href="#id8">Manual control of the species info</a><a class="headerlink" href="#manual-control-of-the-species-info" title="Permalink to this headline">¶</a></h3>
+<p>To disable the automatic generation of species names based on node
+names, a <code class="docutils literal"><span class="pre">None</span></code> value can be passed to the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.set_species_naming_function" title="ete3.PhyloNode.set_species_naming_function"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.set_species_naming_function()</span></code></a> function. From then on,
+species attribute will not be automatically updated based on the name
+of nodes and it could be controlled manually.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="c"># Reads a phylogenetic tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));"</span><span class="p">)</span>
+
+<span class="c"># Of course, you can disable the automatic generation of species</span>
+<span class="c"># names. To do so, you can set the species naming function to</span>
+<span class="c"># None. This is useful to set the species names manually or for</span>
+<span class="c"># reading them from a newick file. Other wise, species attribute would</span>
+<span class="c"># be overwriten</span>
+<span class="n">mynewick</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">(((Hsa_001[&&NHX:species=Human],Ptr_001[&&NHX:species=Chimp]),</span>
+<span class="s">(Cfa_001[&&NHX:species=Dog],Mms_001[&&NHX:species=Mouse])),</span>
+<span class="s">(Dme_001[&&NHX:species=Fly],Dme_002[&&NHX:species=Fly]));</span>
+<span class="s">"""</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">mynewick</span><span class="p">,</span> <span class="n">sp_naming_function</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Disabled mode (manual set)"</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">get_leaves</span><span class="p">():</span>
+    <span class="k">print</span> <span class="s">"node:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"Species name:"</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">species</span>
+
+<span class="c"># node: Dme_001 Species name: Fly</span>
+<span class="c"># node: Dme_002 Species name: Fly</span>
+<span class="c"># node: Hsa_001 Species name: Human</span>
+<span class="c"># node: Ptr_001 Species name: Chimp</span>
+<span class="c"># node: Cfa_001 Species name: Dog</span>
+<span class="c"># node: Mms_001 Species name: Mouse</span>
+</pre></div>
+</div>
+<p><strong>Full Example:</strong> <a class="reference download internal" href="../_downloads/species_aware_phylogenies.py"><code class="xref download docutils literal"><span class="pre">Species</span> <span class="pre">aware</span> <span class="pre">trees</span></code></a>.</p>
+</div>
+</div>
+<div class="section" id="detecting-evolutionary-events">
+<h2><a class="toc-backref" href="#id9">Detecting evolutionary events</a><a class="headerlink" href="#detecting-evolutionary-events" title="Permalink to this headline">¶</a></h2>
+<p>There are several ways to automatically detect duplication and
+speciation nodes. ETE provides two methodologies: One implements the
+algorithm described in <a class="reference external" href="http://genomebiology.com/2007/8/6/R109">Huerta-Cepas (2007)</a> and is based on the species
+overlap (SO) between partitions and thus does not depend on the
+availability of a species tree. The second, which requires the
+comparison between the gene tree and a previously defined species
+tree, implements a strict tree reconciliation algorithm (Page and
+Charleston, 1997). By detecting evolutionary events, orthology and
+paralogy relationships among sequences can also be inferred.  Find a
+comparison of both methods in <a class="reference external" href="http://www.plosone.org/article/info:doi%2F10.1371%2Fjournal.pone.0004357">Marcet-Houben and Gabaldon (2009)</a>.</p>
+<div class="section" id="species-overlap-so-algorithm">
+<span id="spoverlap"></span><h3><a class="toc-backref" href="#id10">Species Overlap (SO) algorithm</a><a class="headerlink" href="#species-overlap-so-algorithm" title="Permalink to this headline">¶</a></h3>
+<p>In order to apply the SO algorithm, you can use the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_descendant_evol_events" title="ete3.PhyloNode.get_descendant_evol_events"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_descendant_evol_events()</span></code></a> method (it will detect
+all evolutionary events under the current node) or the
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_my_evol_events" title="ete3.PhyloNode.get_my_evol_events"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_my_evol_events()</span></code></a> method (it will detect only the
+evolutionary events in which current node, a leaf, is involved).</p>
+<p>By default the <strong>species overlap score (SOS) threshold</strong> is set to
+0.0, which means that a single species in common between two node
+branches will rise a duplication event. This has been shown to perform
+the best with real data, however you can adjust the threshold using
+the <code class="docutils literal"><span class="pre">sos_thr</span></code> argument present in both methods.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="c"># Loads an example tree</span>
+<span class="n">nw</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),</span>
+<span class="s">(Ptr_002,(Hsa_002,Mmu_002))));</span>
+<span class="s">"""</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">nw</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                    /-Dme_001</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |          \-Dme_002</span>
+<span class="c">#         |</span>
+<span class="c">#         |                              /-Cfa_001</span>
+<span class="c">#         |                    /--------|</span>
+<span class="c">#---------|                   |          \-Mms_001</span>
+<span class="c">#         |          /--------|</span>
+<span class="c">#         |         |         |                    /-Hsa_001</span>
+<span class="c">#         |         |         |          /--------|</span>
+<span class="c">#         |         |          \--------|          \-Ptr_001</span>
+<span class="c">#          \--------|                   |</span>
+<span class="c">#                   |                    \-Mmu_001</span>
+<span class="c">#                   |</span>
+<span class="c">#                   |          /-Ptr_002</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                             |          /-Hsa_002</span>
+<span class="c">#                              \--------|</span>
+<span class="c">#                                        \-Mmu_002</span>
+<span class="c">#</span>
+<span class="c"># To obtain all the evolutionary events involving a given leaf node we</span>
+<span class="c"># use get_my_evol_events method</span>
+<span class="n">matches</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"Hsa_001"</span><span class="p">)</span>
+<span class="n">human_seq</span> <span class="o">=</span> <span class="n">matches</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+<span class="c"># Obtains its evolutionary events</span>
+<span class="n">events</span> <span class="o">=</span> <span class="n">human_seq</span><span class="o">.</span><span class="n">get_my_evol_events</span><span class="p">()</span>
+<span class="c"># Print its orthology and paralogy relationships</span>
+<span class="k">print</span> <span class="s">"Events detected that involve Hsa_001:"</span>
+<span class="k">for</span> <span class="n">ev</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
+    <span class="k">if</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"S"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'   ORTHOLOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">in_seqs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span> [...]
+    <span class="k">elif</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"D"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'   PARALOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">in_seqs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span>< [...]
+
+<span class="c"># Alternatively, you can scan the whole tree topology</span>
+<span class="n">events</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_descendant_evol_events</span><span class="p">()</span>
+<span class="c"># Print its orthology and paralogy relationships</span>
+<span class="k">print</span> <span class="s">"Events detected from the root of the tree"</span>
+<span class="k">for</span> <span class="n">ev</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
+    <span class="k">if</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"S"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'   ORTHOLOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">in_seqs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span> [...]
+    <span class="k">elif</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"D"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'   PARALOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">in_seqs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span>< [...]
+
+<span class="c"># If we are only interested in the orthology and paralogy relationship</span>
+<span class="c"># among a given set of species, we can filter the list of sequences</span>
+<span class="c">#</span>
+<span class="c"># fseqs is a function that, given a list of sequences, returns only</span>
+<span class="c"># those from human and mouse</span>
+<span class="n">fseqs</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">slist</span><span class="p">:</span> <span class="p">[</span><span class="n">s</span> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">slist</span> <span class="k">if</span> <span class="n">s</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Hsa"</span><span class="p">)</span> <spa [...]
+<span class="k">print</span> <span class="s">"Paralogy relationships among human and mouse"</span>
+<span class="k">for</span> <span class="n">ev</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
+    <span class="k">if</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"D"</span><span class="p">:</span>
+        <span class="c"># Prints paralogy relationships considering only human and</span>
+        <span class="c"># mouse. Some duplication event may not involve such species,</span>
+        <span class="c"># so they will be empty</span>
+        <span class="k">print</span> <span class="s">'   PARALOGY RELATIONSHIP:'</span><span class="p">,</span> \
+            <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">fseqs</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">in_seqs</span><span class="p">)),</span> \
+            <span class="s">"<====>"</span><span class="p">,</span>\
+            <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">fseqs</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">out_seqs</span><span class="p">))</span>
+
+<span class="c"># Note that besides the list of events returned, the detection</span>
+<span class="c"># algorithm has labeled the tree nodes according with the</span>
+<span class="c"># predictions. We can use such lables as normal node features.</span>
+<span class="n">dups</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">evoltype</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span> <span class="c"># Return all duplication nodes</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="tree-reconciliation-algorithm">
+<h3><a class="toc-backref" href="#id11">Tree reconciliation algorithm</a><a class="headerlink" href="#tree-reconciliation-algorithm" title="Permalink to this headline">¶</a></h3>
+<p>Tree reconciliation algorithm uses a predefined species tree to infer
+all the necessary genes losses that explain a given gene tree
+topology. Consequently, duplication and separation nodes will strictly
+follow the species tree topology.</p>
+<p>To perform a tree reconciliation analysis over a given node in a
+molecular phylogeny you can use the <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.reconcile" title="ete3.PhyloNode.reconcile"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.reconcile()</span></code></a>
+method, which requires a species <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> as its first
+argument. Leaf node names in the the species are expected to be the
+same species codes in the gene tree (see
+<a class="reference internal" href="#taxonomic-info">taxonomic_info</a>). All species codes present in the
+gene tree should appear in the species tree.</p>
+<p>As a result, the <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.reconcile" title="ete3.PhyloNode.reconcile"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.reconcile()</span></code></a> method will label the
+original gene tree nodes as duplication or speciation, will return the
+list of inferred events, and will return a new <strong>reconcilied tree</strong>
+(<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> instance), in which inferred gene losses are
+present and labeled.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+
+<span class="c"># Loads a gene tree and its corresponding species tree. Note that</span>
+<span class="c"># species names in sptree are the 3 firs letters of leaf nodes in</span>
+<span class="c"># genetree.</span>
+<span class="n">gene_tree_nw</span> <span class="o">=</span> <span class="s">'((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'</span>
+<span class="n">species_tree_nw</span> <span class="o">=</span> <span class="s">"((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"</span>
+<span class="n">genetree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">gene_tree_nw</span><span class="p">)</span>
+<span class="n">sptree</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">species_tree_nw</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">genetree</span>
+<span class="c">#                    /-Dme_001</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |          \-Dme_002</span>
+<span class="c">#         |</span>
+<span class="c">#         |                              /-Cfa_001</span>
+<span class="c">#         |                    /--------|</span>
+<span class="c">#---------|                   |          \-Mms_001</span>
+<span class="c">#         |          /--------|</span>
+<span class="c">#         |         |         |                    /-Hsa_001</span>
+<span class="c">#         |         |         |          /--------|</span>
+<span class="c">#         |         |          \--------|          \-Ptr_001</span>
+<span class="c">#          \--------|                   |</span>
+<span class="c">#                   |                    \-Mmu_001</span>
+<span class="c">#                   |</span>
+<span class="c">#                   |          /-Ptr_002</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                             |          /-Hsa_002</span>
+<span class="c">#                              \--------|</span>
+<span class="c">#                                        \-Mmu_002</span>
+<span class="c">#</span>
+<span class="c"># Let's reconcile our genetree with the species tree</span>
+<span class="n">recon_tree</span><span class="p">,</span> <span class="n">events</span> <span class="o">=</span> <span class="n">genetree</span><span class="o">.</span><span class="n">reconcile</span><span class="p">(</span><span class="n">sptree</span><span class="p">)</span>
+<span class="c"># a new "reconcilied tree" is returned. As well as the list of</span>
+<span class="c"># inferred events.</span>
+<span class="k">print</span> <span class="s">"Orthology and Paralogy relationships:"</span>
+<span class="k">for</span> <span class="n">ev</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
+    <span class="k">if</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"S"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'ORTHOLOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">inparalogs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span> [...]
+    <span class="k">elif</span> <span class="n">ev</span><span class="o">.</span><span class="n">etype</span> <span class="o">==</span> <span class="s">"D"</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">'PARALOGY RELATIONSHIP:'</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ev</span><span class="o">.</span><span class="n">inparalogs</span><span class="p">),</span> <span class="s">"<====>"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span>< [...]
+<span class="c"># And we can explore the resulting reconciled tree</span>
+<span class="k">print</span> <span class="n">recon_tree</span>
+<span class="c"># You will notice how the reconcilied tree is the same as the gene</span>
+<span class="c"># tree with some added branches. They are inferred gene losses.</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c">#                    /-Dme_001</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |          \-Dme_002</span>
+<span class="c">#         |</span>
+<span class="c">#         |                              /-Cfa_001</span>
+<span class="c">#         |                    /--------|</span>
+<span class="c">#         |                   |          \-Mms_001</span>
+<span class="c">#---------|          /--------|</span>
+<span class="c">#         |         |         |                    /-Hsa_001</span>
+<span class="c">#         |         |         |          /--------|</span>
+<span class="c">#         |         |          \--------|          \-Ptr_001</span>
+<span class="c">#         |         |                   |</span>
+<span class="c">#         |         |                    \-Mmu_001</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                   |                    /-Mms</span>
+<span class="c">#                   |          /--------|</span>
+<span class="c">#                   |         |          \-Cfa</span>
+<span class="c">#                   |         |</span>
+<span class="c">#                   |         |                              /-Hsa</span>
+<span class="c">#                    \--------|                    /--------|</span>
+<span class="c">#                             |          /--------|          \-Ptr_002</span>
+<span class="c">#                             |         |         |</span>
+<span class="c">#                             |         |          \-Mmu</span>
+<span class="c">#                              \--------|</span>
+<span class="c">#                                       |                    /-Ptr</span>
+<span class="c">#                                       |          /--------|</span>
+<span class="c">#                                        \--------|          \-Hsa_002</span>
+<span class="c">#                                                 |</span>
+<span class="c">#                                                  \-Mmu_002</span>
+<span class="c">#</span>
+<span class="c"># And we can visualize the trees using the default phylogeny</span>
+<span class="c"># visualization layout</span>
+<span class="n">genetree</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+<span class="n">recon_tree</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="a-closer-look-to-the-evolutionary-event-object">
+<h3><a class="toc-backref" href="#id12">A closer look to the evolutionary event object</a><a class="headerlink" href="#a-closer-look-to-the-evolutionary-event-object" title="Permalink to this headline">¶</a></h3>
+<p>Both methods, species overlap and tree reconciliation, can be used to
+label each tree node as a duplication or speciation event. Thus, the
+<code class="xref py py-attr docutils literal"><span class="pre">PhyloNode.evoltype</span></code> attribute of every node will be set to one
+of the following states: <code class="docutils literal"><span class="pre">D</span></code> (Duplication), <code class="docutils literal"><span class="pre">S</span></code> (Speciation) or
+<code class="docutils literal"><span class="pre">L</span></code> gene loss.</p>
+<p>Additionally, a list of all the detected events is returned. Each
+event is a python object of type <a class="reference internal" href="../reference/reference_phylo.html#ete3.phylo.EvolEvent" title="ete3.phylo.EvolEvent"><code class="xref py py-class docutils literal"><span class="pre">phylo.EvolEvent</span></code></a>, containing
+some basic information about each event ( <code class="xref py py-attr docutils literal"><span class="pre">etype</span></code>,
+<code class="xref py py-attr docutils literal"><span class="pre">in_seqs</span></code>, <code class="xref py py-attr docutils literal"><span class="pre">out_seqs</span></code>, <code class="xref py py-attr docutils literal"><span class="pre">node</span></code>):</p>
+<p>If an event represents a duplication, <code class="docutils literal"><span class="pre">in_seqs</span></code> <strong>are all
+paralogous</strong> to <code class="docutils literal"><span class="pre">out_seqs</span></code>. Similarly, if an event represents a
+speciation, <code class="docutils literal"><span class="pre">in_seqs</span></code> <strong>are all orthologous</strong> to <code class="docutils literal"><span class="pre">out_seqs</span></code>.</p>
+</div>
+</div>
+<div class="section" id="relative-dating-phylogenetic-nodes">
+<h2><a class="toc-backref" href="#id13">Relative dating phylogenetic nodes</a><a class="headerlink" href="#relative-dating-phylogenetic-nodes" title="Permalink to this headline">¶</a></h2>
+<p>In molecular phylogeny, nodes can be interpreted as evolutionary
+events. Therefore, they represent duplication or speciation events. In
+the case of gene duplication events, nodes can also be assigned to a
+certain point in a relative temporal scale. In other words, you can
+obtain a relative dating of all the duplication events detected.</p>
+<p>Although <strong>absolute dating is always preferred and more precise</strong>,
+topological dating provides a faster approach to compare the relative
+age of paralogous sequences (<a class="reference external" href="http://bioinformatics.oxfordjournals.org/content/27/1/38.long">read this</a> for
+a comparison with other methods, such as the use of synonymous
+substitution rates as a proxy to the divergence time).</p>
+<p>Some applications of topological dating can be found in <a class="reference external" href="http://genomebiology.com/2007/8/6/r109">Huerta-Cepas
+et al, 2007</a> or, more
+recently, in <a class="reference external" href="http://bib.oxfordjournals.org/content/12/5/442.abstract">Huerta-Cepas et al, 2011</a> or
+<a class="reference external" href="http://www.nature.com/nature/journal/v468/n7325/full/nature09634.html">Kalinka et al, 2001</a>.</p>
+<div class="section" id="implementation">
+<h3><a class="toc-backref" href="#id14">Implementation</a><a class="headerlink" href="#implementation" title="Permalink to this headline">¶</a></h3>
+<p>The aim of relative dating is to establish a gradient of ages among
+sequences. For this, a reference species needs to be fixed, so the
+gradient of ages will be referred to that referent point.</p>
+<p>Thus, if our reference species is <cite>Human</cite>, we could establish the
+following gradient of species:</p>
+<ul class="simple">
+<li>(1) Human -> (2) Other Primates -> (3) Mammals -> (4) Vertebrates</li>
+</ul>
+<p>So, nodes in a tree can be assigned to one of the above categories
+depending on the sequences grouped. For instance:</p>
+<ul class="simple">
+<li>A node with only human sequences will be mapped to (1).</li>
+<li>A node with human and orangutan sequences will be mapped to (2)</li>
+<li>A node with human a fish sequences will be mapped to (4)</li>
+</ul>
+<p>This simple calculation can be done automatically by encoding the
+gradient of species ages as Python dictionary.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">relative_dist</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="s">"human"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c"># human</span>
+    <span class="s">"chimp"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="c"># Primates non human</span>
+    <span class="s">"rat"</span><span class="p">:</span>   <span class="mi">2</span><span class="p">,</span> <span class="c"># Mammals non primates</span>
+    <span class="s">"mouse"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="c"># Mammals non primates</span>
+    <span class="s">"fish"</span><span class="p">:</span>  <span class="mi">3</span>  <span class="c"># Vertebrates non mammals</span>
+    <span class="p">}</span>
+</pre></div>
+</div>
+<p>Once done, ETE can check the relative age of any tree node.  The
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_age" title="ete3.PhyloNode.get_age"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_age()</span></code></a> method can be used to that purpose.</p>
+<p>For example, let’s consider the following gene tree:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c">#                         /-humanA</span>
+<span class="c">#                    /---|</span>
+<span class="c">#                   |     \-chimpA</span>
+<span class="c">#               /Dup1</span>
+<span class="c">#              |    |     /-humanB</span>
+<span class="c">#          /---|     \---|</span>
+<span class="c">#         |    |          \-chimpB</span>
+<span class="c">#     /---|    |</span>
+<span class="c">#    |    |     \-mouseA</span>
+<span class="c">#    |    |</span>
+<span class="c">#    |     \-fish</span>
+<span class="c">#-Dup3</span>
+<span class="c">#    |               /-humanC</span>
+<span class="c">#    |          /---|</span>
+<span class="c">#    |     /---|     \-chimpC</span>
+<span class="c">#    |    |    |</span>
+<span class="c">#     \Dup2     \-humanD</span>
+<span class="c">#         |</span>
+<span class="c">#         |     /-ratC</span>
+<span class="c">#          \---|</span>
+<span class="c">#               \-mouseC</span>
+</pre></div>
+</div>
+<p>the expected node dating would be:</p>
+<blockquote>
+<div><ul class="simple">
+<li>Dup1 will be assigned to primates (most distant species is
+chimp). <code class="docutils literal"><span class="pre">Dup1.get_age(relative_distances)</span></code> will return 1</li>
+<li>Dup2 will be assigned to mammals [2] (most distant species are rat
+and mouse). <code class="docutils literal"><span class="pre">Dup2.get_age(relative_distances)</span></code> will return 2</li>
+<li>Dup3 will be assigned to mammals [3] (most distant species is
+fish). <code class="docutils literal"><span class="pre">Dup3.get_age(relative_distances)</span></code> will return 3</li>
+</ul>
+</div></blockquote>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="c"># Creates a gene phylogeny with several duplication events at</span>
+<span class="c"># different levels. Note that we are using the default method for</span>
+<span class="c"># detecting the species code of leaves (three first lettes in the node</span>
+<span class="c"># name are considered the species code).</span>
+<span class="n">nw</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">((Dme_001,Dme_002),(((Cfa_001,Mms_001),((((Hsa_001,Hsa_003),Ptr_001)</span>
+<span class="s">,Mmu_001),((Hsa_004,Ptr_004),Mmu_004))),(Ptr_002,(Hsa_002,Mmu_002))));</span>
+<span class="s">"""</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="n">nw</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Original tree:"</span><span class="p">,</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#             /-Dme_001</span>
+<span class="c">#   /--------|</span>
+<span class="c">#  |          \-Dme_002</span>
+<span class="c">#  |</span>
+<span class="c">#  |                              /-Cfa_001</span>
+<span class="c">#  |                    /--------|</span>
+<span class="c">#  |                   |          \-Mms_001</span>
+<span class="c">#  |                   |</span>
+<span class="c">#--|                   |                                        /-Hsa_001</span>
+<span class="c">#  |                   |                              /--------|</span>
+<span class="c">#  |          /--------|                    /--------|          \-Hsa_003</span>
+<span class="c">#  |         |         |                   |         |</span>
+<span class="c">#  |         |         |          /--------|          \-Ptr_001</span>
+<span class="c">#  |         |         |         |         |</span>
+<span class="c">#  |         |         |         |          \-Mmu_001</span>
+<span class="c">#  |         |          \--------|</span>
+<span class="c">#   \--------|                   |                    /-Hsa_004</span>
+<span class="c">#            |                   |          /--------|</span>
+<span class="c">#            |                    \--------|          \-Ptr_004</span>
+<span class="c">#            |                             |</span>
+<span class="c">#            |                              \-Mmu_004</span>
+<span class="c">#            |</span>
+<span class="c">#            |          /-Ptr_002</span>
+<span class="c">#             \--------|</span>
+<span class="c">#                      |          /-Hsa_002</span>
+<span class="c">#                       \--------|</span>
+<span class="c">#                                 \-Mmu_002</span>
+<span class="c"># Create a dictionary with relative ages for the species present in</span>
+<span class="c"># the phylogenetic tree.  Note that ages are only relative numbers to</span>
+<span class="c"># define which species are older, and that different species can</span>
+<span class="c"># belong to the same age.</span>
+<span class="n">species2age</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="s">'Hsa'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="c"># Homo sapiens (Hominids)</span>
+  <span class="s">'Ptr'</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="c"># P. troglodytes (primates)</span>
+  <span class="s">'Mmu'</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="c"># Macaca mulata (primates)</span>
+  <span class="s">'Mms'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="c"># Mus musculus (mammals)</span>
+  <span class="s">'Cfa'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="c"># Canis familiaris (mammals)</span>
+  <span class="s">'Dme'</span><span class="p">:</span> <span class="mi">4</span>  <span class="c"># Drosophila melanogaster (metazoa)</span>
+<span class="p">}</span>
+<span class="c"># We can translate each number to its correspondig taxonomic number</span>
+<span class="n">age2name</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="mi">1</span><span class="p">:</span><span class="s">"hominids"</span><span class="p">,</span>
+  <span class="mi">2</span><span class="p">:</span><span class="s">"primates"</span><span class="p">,</span>
+  <span class="mi">3</span><span class="p">:</span><span class="s">"mammals"</span><span class="p">,</span>
+  <span class="mi">4</span><span class="p">:</span><span class="s">"metazoa"</span>
+<span class="p">}</span>
+<span class="n">event1</span><span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"Hsa_001"</span><span class="p">,</span> <span class="s">"Hsa_004"</span><span class="p">)</span>
+<span class="n">event2</span><span class="o">=</span><span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"Hsa_001"</span><span class="p">,</span> <span class="s">"Hsa_002"</span><span class="p">)</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="s">"The duplication event leading to the human sequences Hsa_001 and "</span><span class="o">+</span>\
+    <span class="s">"Hsa_004 is dated at: "</span><span class="p">,</span> <span class="n">age2name</span><span class="p">[</span><span class="n">event1</span><span class="o">.</span><span class="n">get_age</span><span class="p">(</span><span class="n">species2age</span><span class="p">)]</span>
+<span class="k">print</span> <span class="s">"The duplication event leading to the human sequences Hsa_001 and "</span><span class="o">+</span>\
+    <span class="s">"Hsa_002 is dated at: "</span><span class="p">,</span> <span class="n">age2name</span><span class="p">[</span><span class="n">event2</span><span class="o">.</span><span class="n">get_age</span><span class="p">(</span><span class="n">species2age</span><span class="p">)]</span>
+<span class="c"># The duplication event leading to the human sequences Hsa_001 and Hsa_004</span>
+<span class="c"># is dated at:  primates</span>
+<span class="c">#</span>
+<span class="c"># The duplication event leading to the human sequences Hsa_001 and Hsa_002</span>
+<span class="c"># is dated at:  mammals</span>
+</pre></div>
+</div>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">Note that relative distances will vary depending on your reference
+species.</p>
+</div>
+</div>
+</div>
+<div class="section" id="automatic-rooting-outgroup-detection">
+<h2><a class="toc-backref" href="#id15">Automatic rooting (outgroup detection)</a><a class="headerlink" href="#automatic-rooting-outgroup-detection" title="Permalink to this headline">¶</a></h2>
+<p>Two methods are provided to assist in the automatic rooting of
+phylogenetic trees. Since tree nodes contain relative age information
+(based on the species code autodetection), the same relative age
+dictionaries can be used to detect the farthest and oldest node in a
+tree to given sequences.</p>
+<p><a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_farthest_oldest_node" title="ete3.PhyloNode.get_farthest_oldest_node"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_farthest_oldest_node()</span></code></a> and
+<a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_farthest_oldest_leaf" title="ete3.PhyloNode.get_farthest_oldest_leaf"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_farthest_oldest_leaf()</span></code></a> can be used for that
+purpose.</p>
+</div>
+<div class="section" id="working-with-duplicated-gene-families">
+<h2><a class="toc-backref" href="#id16">Working with duplicated gene families</a><a class="headerlink" href="#working-with-duplicated-gene-families" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="treeko-splitting-gene-trees-into-species-trees">
+<span id="treeko-trees"></span><h3><a class="toc-backref" href="#id17">Treeko (splitting gene trees into species trees)</a><a class="headerlink" href="#treeko-splitting-gene-trees-into-species-trees" title="Permalink to this headline">¶</a></h3>
+<p>Comparisons between tree topologies provide important information for
+many evolutionary studies. <a class="reference external" href="http://treeko.cgenomics.org">Treeko</a>
+(<a class="reference external" href="http://www.ncbi.nlm.nih.gov/pubmed/21335609">Marcet and Gabaldon, 2011</a> ) is a novel method
+that allows the comparison of any two tree topologies, even those with
+missing leaves and duplications. This is important in genome-wide
+analysis since many trees do not have exact leaf pairings and
+therefore most tree comparison methods are rendered useless.</p>
+<p>Although Treeko is available as a standalone package, it uses ETE to
+generate all possible species tree topologies within a duplicated gene
+family tree.</p>
+<p>Thus, the ETE method <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.get_speciation_trees" title="ete3.PhyloNode.get_speciation_trees"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.get_speciation_trees()</span></code></a> is
+expected to provide the core functionality required to perform a
+Treeko analysis. When used, the method will return a list of all
+possible species trees observed after combining the different
+non-duplicated subparts under a gene family tree node.</p>
+<p>Duplication events will be automatically identified using the species
+overlap algorithm described within this manual. However, duplication
+nodes can be manually labeled and used by disabling the
+<code class="xref py py-attr docutils literal"><span class="pre">autodetect_duplication</span></code> flag.</p>
+<p>Because of the combinatorial background of the Treeko method, the
+number of speciation trees generated by this function may vary
+enormously (ranging from few hundreds to tens of thousands topologies).</p>
+<p>Here is a basic example on how to use it:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_species_naming_function</span><span class="p">(</span><span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"species"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span> <span class="p">)</span>
+
+<span class="c">#            /-Human_1, Human</span>
+<span class="c">#          /-|</span>
+<span class="c">#         |   \-Chimp_1, Chimp</span>
+<span class="c">#       /-|</span>
+<span class="c">#      |  |   /-Human_2, Human</span>
+<span class="c">#      |   \-|</span>
+<span class="c">#      |     |   /-Chimp_2, Chimp</span>
+<span class="c">#      |      \-|</span>
+<span class="c">#    /-|         \-Chimp_3, Chimp</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |  |      /-Fish_1, Fish</span>
+<span class="c">#   |  |   /-|</span>
+<span class="c">#   |  |  |  |   /-Human_3, Human</span>
+<span class="c"># --|   \-|   \-|</span>
+<span class="c">#   |     |      \-Fish_3, Fish</span>
+<span class="c">#   |     |</span>
+<span class="c">#   |      \-Yeast_2, Yeast</span>
+<span class="c">#   |</span>
+<span class="c">#    \-Yeast_1, Yeast</span>
+
+<span class="c"># We obtain a list of species trees inferred from the duplication</span>
+<span class="c"># events. Note that species specific duplications are ignored.</span>
+
+<span class="n">ntrees</span><span class="p">,</span> <span class="n">ndups</span><span class="p">,</span> <span class="n">sptrees</span> <span class="o">=</span>  <span class="n">t</span><span class="o">.</span><span class="n">get_speciation_trees</span><span class="p">()</span>
+<span class="k">print</span> <span class="s">"Found </span><span class="si">%d</span><span class="s"> species trees and </span><span class="si">%d</span><span class="s"> duplication nodes"</span> <span class="o">%</span><span class="p">(</span><span class="n">ntrees</span><span class="p">,</span> <span class="n">ndups</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">spt</span> <span class="ow">in</span> <span class="n">sptrees</span><span class="p">:</span>
+   <span class="k">print</span> <span class="n">spt</span>
+
+<span class="c"># Found 5 species trees and 4 duplication nodes</span>
+<span class="c">#</span>
+<span class="c">#    /-Human_1</span>
+<span class="c"># --|</span>
+<span class="c">#    \-Chimp_1</span>
+<span class="c">#</span>
+<span class="c">#    /-Human_2</span>
+<span class="c"># --|</span>
+<span class="c">#   |   /-Chimp_2</span>
+<span class="c">#    \-|</span>
+<span class="c">#       \-Chimp_3</span>
+<span class="c">#</span>
+<span class="c">#    /-Fish_1</span>
+<span class="c"># --|</span>
+<span class="c">#    \-Yeast_2</span>
+<span class="c">#</span>
+<span class="c">#       /-Human_3</span>
+<span class="c">#    /-|</span>
+<span class="c"># --|   \-Fish_3</span>
+<span class="c">#   |</span>
+<span class="c">#    \-Yeast_2</span>
+<span class="c">#</span>
+<span class="c"># --Yeast_1</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">For performance reasons, species trees are created without any link
+to the original gene family tree, rather than the species name of
+each node. However, the <code class="xref py py-attr docutils literal"><span class="pre">map_features</span></code> attribute can be used
+to keep certain attributes of the original tree into the generated
+species trees.</p>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Although the efficiency of the method to generate all possible
+trees has been significantly improved from ETE version 2.2,
+creating thousands of new PhyloTree objects could affect
+performance. The flag <code class="xref py py-attr docutils literal"><span class="pre">newick_only</span></code> is now available to limit
+the output to a newick string per generated tree, thus improving
+the speed they can be processed or dumped into a file.</p>
+</div>
+</div>
+<div class="section" id="splitting-gene-trees-by-duplication-events">
+<span id="split-by-dup"></span><h3><a class="toc-backref" href="#id18">Splitting gene trees by duplication events</a><a class="headerlink" href="#splitting-gene-trees-by-duplication-events" title="Permalink to this headline">¶</a></h3>
+<p>A much simpler approach to separate duplicates within the same gene
+family tree is to split the topology by their duplication nodes. For
+this, the method <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.split_by_dups" title="ete3.PhyloNode.split_by_dups"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.split_by_dups()</span></code></a> is provided.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_species_naming_function</span><span class="p">(</span><span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"species"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span> <span class="p">)</span>
+
+<span class="c">#            /-Human_1, Human</span>
+<span class="c">#          /-|</span>
+<span class="c">#         |   \-Chimp_1, Chimp</span>
+<span class="c">#       /-|</span>
+<span class="c">#      |  |   /-Human_2, Human</span>
+<span class="c">#      |   \-|</span>
+<span class="c">#      |     |   /-Chimp_2, Chimp</span>
+<span class="c">#      |      \-|</span>
+<span class="c">#    /-|         \-Chimp_3, Chimp</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |  |      /-Fish_1, Fish</span>
+<span class="c">#   |  |   /-|</span>
+<span class="c">#   |  |  |  |   /-Human_3, Human</span>
+<span class="c"># --|   \-|   \-|</span>
+<span class="c">#   |     |      \-Fish_3, Fish</span>
+<span class="c">#   |     |</span>
+<span class="c">#   |      \-Yeast_2, Yeast</span>
+<span class="c">#   |</span>
+<span class="c">#    \-Yeast_1, Yeast</span>
+
+<span class="c"># Again, species specific duplications are ignored</span>
+<span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">split_by_dups</span><span class="p">():</span>
+    <span class="k">print</span> <span class="n">node</span>
+
+<span class="c">#    /-Human_1</span>
+<span class="c"># --|</span>
+<span class="c">#    \-Chimp_1</span>
+<span class="c">#</span>
+<span class="c">#    /-Human_2</span>
+<span class="c"># --|</span>
+<span class="c">#   |   /-Chimp_2</span>
+<span class="c">#    \-|</span>
+<span class="c">#       \-Chimp_3</span>
+<span class="c">#</span>
+<span class="c"># --Yeast_2</span>
+<span class="c">#</span>
+<span class="c"># --Fish_1</span>
+<span class="c">#</span>
+<span class="c">#    /-Human_3</span>
+<span class="c"># --|</span>
+<span class="c">#    \-Fish_3</span>
+<span class="c">#</span>
+<span class="c"># --Yeast_1</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="collapse-species-specific-duplications">
+<span id="collapse-expansions"></span><h3><a class="toc-backref" href="#id19">Collapse species specific duplications</a><a class="headerlink" href="#collapse-species-specific-duplications" title="Permalink to this headline">¶</a></h3>
+<p>The method <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloNode.collapse_lineage_specific_expansions" title="ete3.PhyloNode.collapse_lineage_specific_expansions"><code class="xref py py-func docutils literal"><span class="pre">PhyloNode.collapse_lineage_specific_expansions()</span></code></a>
+method, which returns a pruned version of a tree, where nodes
+representing lineage specific expansions are converted into a single
+leaf node is also available.</p>
+<p>From the previous examples, the lineage specific duplication of
+Chimp_1 and Chimp_2 could be easily collapsed into a single node.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">PhyloTree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">PhyloTree</span><span class="p">(</span><span class="s">"((((Human_1, Chimp_1), (Human_2, (Chimp_2, Chimp_3))), ((Fish_1, (Human_3, Fish_3)), Yeast_2)), Yeast_1);"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_species_naming_function</span><span class="p">(</span><span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"species"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span> <span class="p">)</span>
+
+<span class="c">#            /-Human_1, Human</span>
+<span class="c">#          /-|</span>
+<span class="c">#         |   \-Chimp_1, Chimp</span>
+<span class="c">#       /-|</span>
+<span class="c">#      |  |   /-Human_2, Human</span>
+<span class="c">#      |   \-|</span>
+<span class="c">#      |     |   /-Chimp_2, Chimp</span>
+<span class="c">#      |      \-|</span>
+<span class="c">#    /-|         \-Chimp_3, Chimp</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |  |      /-Fish_1, Fish</span>
+<span class="c">#   |  |   /-|</span>
+<span class="c">#   |  |  |  |   /-Human_3, Human</span>
+<span class="c"># --|   \-|   \-|</span>
+<span class="c">#   |     |      \-Fish_3, Fish</span>
+<span class="c">#   |     |</span>
+<span class="c">#   |      \-Yeast_2, Yeast</span>
+<span class="c">#   |</span>
+<span class="c">#    \-Yeast_1, Yeast</span>
+
+<span class="n">t2</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">collapse_lineage_specific_expansions</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t2</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"species"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span> <span class="p">)</span>
+
+<span class="c">#             /-Human_1, Human</span>
+<span class="c">#          /-|</span>
+<span class="c">#         |   \-Chimp_1, Chimp</span>
+<span class="c">#       /-|</span>
+<span class="c">#      |  |   /-Human_2, Human</span>
+<span class="c">#      |   \-|</span>
+<span class="c">#      |      \-Chimp_2, Chimp   ***</span>
+<span class="c">#    /-|</span>
+<span class="c">#   |  |      /-Fish_1, Fish</span>
+<span class="c">#   |  |   /-|</span>
+<span class="c">#   |  |  |  |   /-Human_3, Human</span>
+<span class="c"># --|   \-|   \-|</span>
+<span class="c">#   |     |      \-Fish_3, Fish</span>
+<span class="c">#   |     |</span>
+<span class="c">#   |      \-Yeast_2, Yeast</span>
+<span class="c">#   |</span>
+<span class="c">#    \-Yeast_1, Yeast</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_clustering.html" class="btn btn-neutral float-right" title="Clustering Trees" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_drawing.html" class="btn btn-neutral" title="The Programmable Tree Drawing Engine" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_phylomedb.html b/doc/tutorial/tutorial_phylomedb.html
new file mode 100644
index 0000000..5efeb9d
--- /dev/null
+++ b/doc/tutorial/tutorial_phylomedb.html
@@ -0,0 +1,288 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>The PhylomeDB API — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html">The ETE tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+    <li>The PhylomeDB API</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_phylomedb.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="the-phylomedb-api">
+<h1>The PhylomeDB API<a class="headerlink" href="#the-phylomedb-api" title="Permalink to this headline">¶</a></h1>
+<p>PhylomeDB is a public database for complete collections of gene phylogenies
+(phylomes). It allows users to interactively explore the evolutionary history of
+genes through the visualization of phylogenetic trees and multiple sequence
+alignments. Moreover, phylomeDB provides genome-wide orthology and paralogy
+predictions which are based on the analysis of the phylogenetic trees. The
+automated pipeline used to reconstruct trees aims at providing a high-quality
+phylogenetic analysis of different genomes , including Maximum Likelihood or
+Bayesian tree inference, alignment trimming and evolutionary model testing.
+PhylomeDB includes also a public download section with the complete set of
+trees, alignments and orthology predictions.</p>
+<p>ETE’s phylomeDB extension provides an access API to the main PhylomeDB database,
+thus allowing to search for and fetch precomputed gene phylogenies.</p>
+<div class="section" id="basis-of-the-phylomedb-api-usage">
+<h2>Basis of the phylomeDB API usage<a class="headerlink" href="#basis-of-the-phylomedb-api-usage" title="Permalink to this headline">¶</a></h2>
+<p>In order to explore the database resources, you have to create a connector to
+the database, which will be used to query it. To do so, you must use the
+<strong>PhylomeDBConnector</strong> class and specify the parameters of the DB connection.</p>
+<p>The PhylomeDBConnector constructor will return a pointer to the DB that you can
+use to perform queries. All methods starting by <strong>get_</strong> can be used to retrieve
+information from the database. A complete list of available methods can be found
+in the ETE’s programming guide (available at
+<a class="reference external" href="http://etetoolkit.org">http://etetoolkit.org</a>) or explored by executing
+<strong>dir(PhylomeDBConnector)</strong> in a python console.</p>
+</div>
+<div class="section" id="phylomedb-structure">
+<h2>PhylomeDB structure<a class="headerlink" href="#phylomedb-structure" title="Permalink to this headline">¶</a></h2>
+<p>A phylome includes thousands of gene trees associated to the different
+genes/proteins of a given species. Thus, for example, the human phylome includes
+more than 20.000 phylogenetic trees; on per human gene. Moreover, the same gene
+may be associated to different trees within the same phylome differing only in
+the evolutionary model that assumed to reconstruct the phylogeny.</p>
+<p>Given that each phylogenetic tree was reconstructed using a a single gene as the
+seed sequence to find homologous in other species, the tree takes the name from
+the seed sequence.</p>
+<p>You can obtain a full list of phylomes through the <strong>get_phylomes()</strong> and a full
+list of seed sequence in a phylome using the <strong>get_seed_ids()</strong> method.
+Phylogenetic trees within a given phylome were reconstructed in a context of a
+fixed set of species. In order to obtain the list of proteomes included in a
+phylome, use the** get_proteomes_in_phylome()** method. PhylomeDB uses its own
+sequence identifiers, but you can use the <strong>search_id()</strong> to find a match from
+an external sequence ID.</p>
+<p>Each phylome is the collection of all trees associated to a given species. Thus,
+the human phylome will contain thousands of phylogenetic trees. Each
+gene/protein in a phylome may be associated to different trees, testing, for
+example, different evolutionary models. Thus when you query the database for a
+gene phylogeny you have to specify from which phylome and which specific tree.
+Alternatively, you can query for the best tree in a given phylomes, which will
+basically return the best likelihood tree for the queried gene/protein. The
+get_tree and get_best_tree methods carry out such operations. When trees are
+fetched from the phylomeDB database, the are automatically converted to the
+PhyloTree class, thus allowing to operate with them as phylogenetic trees.</p>
+</div>
+<div class="section" id="going-phylogenomic-scale">
+<h2>Going phylogenomic scale<a class="headerlink" href="#going-phylogenomic-scale" title="Permalink to this headline">¶</a></h2>
+<p>Just to show you how to explore a complete phylome:</p>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_phyloxml.html b/doc/tutorial/tutorial_phyloxml.html
new file mode 100644
index 0000000..60f620b
--- /dev/null
+++ b/doc/tutorial/tutorial_phyloxml.html
@@ -0,0 +1,402 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>PhyloXML — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="Phylogenetic XML standards" href="tutorial_xml.html"/>
+        <link rel="next" title="Interactive web tree visualization" href="tutorial_webplugin.html"/>
+        <link rel="prev" title="NeXML" href="tutorial_nexml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="tutorial_nexml.html">NeXML</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="">PhyloXML</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#loading-phyloxml-projects-from-files">Loading PhyloXML projects from files</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#creating-phyloxml-projects-from-scratch">Creating PhyloXML projects from scratch</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+          <li><a href="tutorial_xml.html">Phylogenetic XML standards</a> »</li>
+      
+    <li>PhyloXML</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_phyloxml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<div class="section" id="phyloxml">
+<h1>PhyloXML<a class="headerlink" href="#phyloxml" title="Permalink to this headline">¶</a></h1>
+<p>PhyloXML (<a class="reference external" href="http://www.phyloxml.org/">http://www.phyloxml.org/</a>) is a novel standard used to encode
+phylogenetic information. In particular, phyloXML is designed to
+describe phylogenetic trees (or networks) and associated data, such as
+taxonomic information, gene names and identifiers, branch lengths,
+support values, and gene duplication and speciation events.</p>
+<div class="section" id="loading-phyloxml-projects-from-files">
+<h2>Loading PhyloXML projects from files<a class="headerlink" href="#loading-phyloxml-projects-from-files" title="Permalink to this headline">¶</a></h2>
+<p>ETE provides full support for phyloXML projects through the
+<a class="reference internal" href="../reference/reference_phyloxml.html#ete3.Phyloxml" title="ete3.Phyloxml"><code class="xref py py-class docutils literal"><span class="pre">Phyloxml</span></code></a> object. Phylogenies are integrated as ETE’s tree
+data structures as <a class="reference internal" href="../reference/reference_phyloxml.html#ete3.PhyloxmlTree" title="ete3.PhyloxmlTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloxmlTree</span></code></a> instances, while the rest of
+features are represented as simple classes (<a class="reference internal" href="../reference/reference_phyloxml.html#module-ete3.phyloxml" title="ete3.phyloxml"><code class="xref py py-mod docutils literal"><span class="pre">ete3.phyloxml</span></code></a>)
+providing basic reading and writing operations.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Phyloxml</span>
+<span class="n">project</span> <span class="o">=</span> <span class="n">Phyloxml</span><span class="p">()</span>
+<span class="n">project</span><span class="o">.</span><span class="n">build_from_file</span><span class="p">(</span><span class="s">"apaf.xml"</span><span class="p">)</span>
+
+<span class="c"># Each tree contains the same methods as a PhyloTree object</span>
+<span class="k">for</span> <span class="n">tree</span> <span class="ow">in</span> <span class="n">project</span><span class="o">.</span><span class="n">get_phylogeny</span><span class="p">():</span>
+    <span class="k">print</span> <span class="n">tree</span>
+    <span class="c"># you can even use rendering options</span>
+    <span class="n">tree</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+    <span class="c"># PhyloXML features are stored in the phyloxml_clade attribute</span>
+    <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">tree</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">"Node name:"</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">for</span> <span class="n">seq</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">phyloxml_clade</span><span class="o">.</span><span class="n">get_sequence</span><span class="p">():</span>
+            <span class="k">for</span> <span class="n">domain</span> <span class="ow">in</span> <span class="n">seq</span><span class="o">.</span><span class="n">domain_architecture</span><span class="o">.</span><span class="n">get_domain</span><span class="p">():</span>
+                <span class="n">domain_data</span> <span class="o">=</span> <span class="p">[</span><span class="n">domain</span><span class="o">.</span><span class="n">valueOf_</span><span class="p">,</span> <span class="n">domain</span><span class="o">.</span><span class="n">get_from</span><span class="p">(),</span> <span class="n">domain</span><span class="o">.</span><span class="n">get_to</span><span class="p">()]</span>
+                <span class="k">print</span> <span class="s">"  Domain:"</span><span class="p">,</span> <span class="s">'</span><span class="se">\t</span><span class="s">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">domain_data</span><span class="p">))</span>
+</pre></div>
+</div>
+<p><a class="reference download internal" href="../_downloads/phyloxml_parser.py"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">script]</span></code></a>
+<a class="reference download internal" href="../_downloads/apaf.xml"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">example]</span></code></a></p>
+<p>Each tree node contains two phyloxml elements, <code class="xref py py-attr docutils literal"><span class="pre">phyloxml_clade</span></code>
+and <code class="xref py py-attr docutils literal"><span class="pre">phyloxml_phylogeny</span></code>. The first attribute contains clade
+information referred to the node, while <code class="docutils literal"><span class="pre">phyloxml_phylogeny</span></code>
+contains general data about the subtree defined by each node. This
+way, you can split, or copy any part of a tree and it will be exported
+as a separate phyloxml phylogeny instance.</p>
+<p>Note that <code class="xref py py-attr docutils literal"><span class="pre">node.dist</span></code>, <code class="xref py py-attr docutils literal"><span class="pre">node.support</span></code> and
+<code class="xref py py-attr docutils literal"><span class="pre">node.name</span></code> features are linked to
+<code class="xref py py-attr docutils literal"><span class="pre">node.phyloxml_clade.branch_length</span></code>,
+<code class="xref py py-attr docutils literal"><span class="pre">node.phyloxml_clade.confidence</span></code> and
+<code class="xref py py-attr docutils literal"><span class="pre">node.phyloxml_clade.name</span></code>, respectively.</p>
+</div>
+<div class="section" id="creating-phyloxml-projects-from-scratch">
+<h2>Creating PhyloXML projects from scratch<a class="headerlink" href="#creating-phyloxml-projects-from-scratch" title="Permalink to this headline">¶</a></h2>
+<p>In order to create new PhyloXML projects, a set of classes is
+available in the <a class="reference internal" href="../reference/reference_phyloxml.html#module-ete3.phyloxml" title="ete3.phyloxml"><code class="xref py py-mod docutils literal"><span class="pre">ete3.phyloxml</span></code></a> module.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Phyloxml</span><span class="p">,</span> <span class="n">phyloxml</span>
+<span class="kn">import</span> <span class="nn">random</span>
+<span class="n">project</span> <span class="o">=</span> <span class="n">Phyloxml</span><span class="p">()</span>
+
+<span class="c"># Creates a random tree</span>
+<span class="n">phylo</span> <span class="o">=</span> <span class="n">phyloxml</span><span class="o">.</span><span class="n">PhyloxmlTree</span><span class="p">()</span>
+<span class="n">phylo</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">random_branches</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">phylo</span><span class="o">.</span><span class="n">phyloxml_phylogeny</span><span class="o">.</span><span class="n">set_name</span><span class="p">(</span><span class="s">"test_tree"</span><span class="p">)</span>
+<span class="c"># Add the tree to the phyloxml project</span>
+<span class="n">project</span><span class="o">.</span><span class="n">add_phylogeny</span><span class="p">(</span><span class="n">phylo</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">project</span><span class="o">.</span><span class="n">get_phylogeny</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="c">#          /-iajom</span>
+<span class="c">#     /---|</span>
+<span class="c">#    |     \-wiszh</span>
+<span class="c">#----|</span>
+<span class="c">#    |     /-xrygw</span>
+<span class="c">#     \---|</span>
+<span class="c">#         |     /-gjlwx</span>
+<span class="c">#          \---|</span>
+<span class="c">#               \-ijvnk</span>
+
+<span class="c"># Trees can be operated as normal ETE trees</span>
+<span class="n">phylo</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+
+<span class="c"># Export the project as phyloXML format</span>
+<span class="n">project</span><span class="o">.</span><span class="n">export</span><span class="p">()</span>
+
+<span class="c"># <phy:Phyloxml xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd"></span>
+<span class="c">#     <phy:phylogeny></span>
+<span class="c">#         <phy:name>test_tree</phy:name></span>
+<span class="c">#         <phy:clade></span>
+<span class="c">#             <phy:name>NoName</phy:name></span>
+<span class="c">#             <phy:branch_length>0.000000e+00</phy:branch_length></span>
+<span class="c">#             <phy:confidence type="branch_support">1.0</phy:confidence></span>
+<span class="c">#             <phy:clade></span>
+<span class="c">#                 <phy:name>NoName</phy:name></span>
+<span class="c">#                 <phy:branch_length>1.665083e-01</phy:branch_length></span>
+<span class="c">#                 <phy:confidence type="branch_support">0.938507980435</phy:confidence></span>
+<span class="c">#                 <phy:clade></span>
+<span class="c">#                     <phy:name>NoName</phy:name></span>
+<span class="c">#                     <phy:branch_length>1.366655e-01</phy:branch_length></span>
+<span class="c">#                     <phy:confidence type="branch_support">0.791888248212</phy:confidence></span>
+<span class="c">#                     <phy:clade></span>
+<span class="c">#                         <phy:name>ojnfg</phy:name></span>
+<span class="c">#                         <phy:branch_length>2.194209e-01</phy:branch_length></span>
+<span class="c">#                         <phy:confidence type="branch_support">0.304705977822</phy:confidence></span>
+<span class="c">#                     </phy:clade></span>
+<span class="c">#                     <phy:clade></span>
+<span class="c">#                         <phy:name>qrfnz</phy:name></span>
+<span class="c">#                         <phy:branch_length>5.235437e-02</phy:branch_length></span>
+<span class="c">#                         <phy:confidence type="branch_support">0.508533765418</phy:confidence></span>
+<span class="c">#                     </phy:clade></span>
+<span class="c">#                 </phy:clade></span>
+<span class="c">#                 <phy:clade></span>
+<span class="c">#                     <phy:name>shngq</phy:name></span>
+<span class="c">#                     <phy:branch_length>9.740958e-01</phy:branch_length></span>
+<span class="c">#                     <phy:confidence type="branch_support">0.642187390965</phy:confidence></span>
+<span class="c">#                 </phy:clade></span>
+<span class="c">#             </phy:clade></span>
+<span class="c">#             <phy:clade></span>
+<span class="c">#                 <phy:name>NoName</phy:name></span>
+<span class="c">#                 <phy:branch_length>3.806412e-01</phy:branch_length></span>
+<span class="c">#                 <phy:confidence type="branch_support">0.383619811911</phy:confidence></span>
+<span class="c">#                 <phy:clade></span>
+<span class="c">#                     <phy:name>vfmnk</phy:name></span>
+<span class="c">#                     <phy:branch_length>6.495163e-01</phy:branch_length></span>
+<span class="c">#                     <phy:confidence type="branch_support">0.141298879514</phy:confidence></span>
+<span class="c">#                 </phy:clade></span>
+<span class="c">#                 <phy:clade></span>
+<span class="c">#                     <phy:name>btexi</phy:name></span>
+<span class="c">#                     <phy:branch_length>5.704955e-01</phy:branch_length></span>
+<span class="c">#                     <phy:confidence type="branch_support">0.951876078012</phy:confidence></span>
+<span class="c">#                 </phy:clade></span>
+<span class="c">#             </phy:clade></span>
+<span class="c">#         </phy:clade></span>
+<span class="c">#     </phy:phylogeny></span>
+<span class="c"># </phy:Phyloxml></span>
+</pre></div>
+</div>
+<p><a class="reference download internal" href="../_downloads/phyloxml_from_scratch.py"><code class="xref download docutils literal"><span class="pre">[Download</span> <span class="pre">script]</span></code></a></p>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_webplugin.html" class="btn btn-neutral float-right" title="Interactive web tree visualization" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_nexml.html" class="btn btn-neutral" title="NeXML" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_trees.html b/doc/tutorial/tutorial_trees.html
new file mode 100644
index 0000000..e5845a3
--- /dev/null
+++ b/doc/tutorial/tutorial_trees.html
@@ -0,0 +1,2170 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Working With Tree Data Structures — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="The Programmable Tree Drawing Engine" href="tutorial_drawing.html"/>
+        <link rel="prev" title="The ETE tutorial" href="index.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" href="">Working With Tree Data Structures</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#trees">Trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#reading-and-writing-newick-trees">Reading and Writing Newick Trees</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#reading-newick-trees">Reading newick trees</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#writing-newick-trees">Writing newick trees</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#understanding-ete-trees">Understanding ETE Trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#basic-tree-attributes">Basic tree attributes</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#root-node-on-unrooted-trees">Root node on unrooted trees?</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#browsing-trees-traversing">Browsing trees (traversing)</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#getting-leaves-descendants-and-node-s-relatives">Getting Leaves, Descendants and Node’s Relatives</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#traversing-browsing-trees">Traversing (browsing) trees</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#advanced-traversing-stopping-criteria">Advanced traversing (stopping criteria)</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#iterating-instead-of-getting">Iterating instead of Getting</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#finding-nodes-by-their-attributes">Finding nodes by their attributes</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#checking-the-monophyly-of-attributes-within-a-tree">Checking the monophyly of attributes within a tree</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#caching-tree-content-for-faster-lookup-operations">Caching tree content for faster lookup operations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#node-annotation">Node annotation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#comparing-trees">Comparing Trees</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#calculate-distances-between-trees">Calculate distances between trees</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#robinson-foulds-distance">Robinson-foulds distance</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#modifying-tree-topology">Modifying Tree Topology</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#creating-trees-from-scratch">Creating Trees from Scratch</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#deleting-eliminating-and-removing-detaching-nodes">Deleting (eliminating) and Removing (detaching) nodes</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="#pruning-trees">Pruning trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#concatenating-trees">Concatenating trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#copying-duplicating-trees">Copying (duplicating) trees</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#solving-multifurcations">Solving multifurcations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#tree-rooting">Tree Rooting</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#working-with-branch-distances">Working with branch distances</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#getting-distances-between-nodes">Getting distances between nodes</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#getting-midpoint-outgroup">getting midpoint outgroup</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Working With Tree Data Structures</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_trees.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3"></span><div class="section" id="working-with-tree-data-structures">
+<h1><a class="toc-backref" href="#id3">Working With Tree Data Structures</a><a class="headerlink" href="#working-with-tree-data-structures" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#working-with-tree-data-structures" id="id3">Working With Tree Data Structures</a><ul>
+<li><a class="reference internal" href="#trees" id="id4">Trees</a></li>
+<li><a class="reference internal" href="#reading-and-writing-newick-trees" id="id5">Reading and Writing Newick Trees</a><ul>
+<li><a class="reference internal" href="#reading-newick-trees" id="id6">Reading newick trees</a></li>
+<li><a class="reference internal" href="#writing-newick-trees" id="id7">Writing newick trees</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#understanding-ete-trees" id="id8">Understanding ETE Trees</a></li>
+<li><a class="reference internal" href="#basic-tree-attributes" id="id9">Basic tree attributes</a><ul>
+<li><a class="reference internal" href="#root-node-on-unrooted-trees" id="id10">Root node on unrooted trees?</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#browsing-trees-traversing" id="id11">Browsing trees (traversing)</a><ul>
+<li><a class="reference internal" href="#getting-leaves-descendants-and-node-s-relatives" id="id12">Getting Leaves, Descendants and Node’s Relatives</a></li>
+<li><a class="reference internal" href="#traversing-browsing-trees" id="id13">Traversing (browsing) trees</a></li>
+<li><a class="reference internal" href="#advanced-traversing-stopping-criteria" id="id14">Advanced traversing (stopping criteria)</a><ul>
+<li><a class="reference internal" href="#collapsing-nodes-while-traversing-custom-is-leaf-definition" id="id15">Collapsing nodes while traversing (custom is_leaf definition)</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#iterating-instead-of-getting" id="id16">Iterating instead of Getting</a></li>
+<li><a class="reference internal" href="#finding-nodes-by-their-attributes" id="id17">Finding nodes by their attributes</a><ul>
+<li><a class="reference internal" href="#search-all-nodes-matching-a-given-criteria" id="id18">Search_all nodes matching a given criteria</a></li>
+<li><a class="reference internal" href="#search-nodes-matching-a-given-criteria-iteration" id="id19">Search nodes matching a given criteria (iteration)</a></li>
+<li><a class="reference internal" href="#find-the-first-common-ancestor" id="id20">Find the first common ancestor</a></li>
+<li><a class="reference internal" href="#custom-searching-functions" id="id21">Custom searching functions</a></li>
+<li><a class="reference internal" href="#shortcuts" id="id22">Shortcuts</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#checking-the-monophyly-of-attributes-within-a-tree" id="id23">Checking the monophyly of attributes within a tree</a></li>
+<li><a class="reference internal" href="#caching-tree-content-for-faster-lookup-operations" id="id24">Caching tree content for faster lookup operations</a></li>
+<li><a class="reference internal" href="#node-annotation" id="id25">Node annotation</a></li>
+<li><a class="reference internal" href="#comparing-trees" id="id26">Comparing Trees</a><ul>
+<li><a class="reference internal" href="#calculate-distances-between-trees" id="id27">Calculate distances between trees</a></li>
+<li><a class="reference internal" href="#robinson-foulds-distance" id="id28">Robinson-foulds distance</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#modifying-tree-topology" id="id29">Modifying Tree Topology</a><ul>
+<li><a class="reference internal" href="#creating-trees-from-scratch" id="id30">Creating Trees from Scratch</a></li>
+<li><a class="reference internal" href="#deleting-eliminating-and-removing-detaching-nodes" id="id31">Deleting (eliminating) and Removing (detaching) nodes</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#pruning-trees" id="id32">Pruning trees</a></li>
+<li><a class="reference internal" href="#concatenating-trees" id="id33">Concatenating trees</a></li>
+<li><a class="reference internal" href="#copying-duplicating-trees" id="id34">Copying (duplicating) trees</a></li>
+<li><a class="reference internal" href="#solving-multifurcations" id="id35">Solving multifurcations</a></li>
+<li><a class="reference internal" href="#tree-rooting" id="id36">Tree Rooting</a></li>
+<li><a class="reference internal" href="#working-with-branch-distances" id="id37">Working with branch distances</a><ul>
+<li><a class="reference internal" href="#getting-distances-between-nodes" id="id38">Getting distances between nodes</a></li>
+<li><a class="reference internal" href="#getting-midpoint-outgroup" id="id39">getting midpoint outgroup</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="trees">
+<h2><a class="toc-backref" href="#id4">Trees</a><a class="headerlink" href="#trees" title="Permalink to this headline">¶</a></h2>
+<p>Trees are a widely-used type of data structure that emulates a tree
+design with a set of linked nodes.  Formally, a tree is considered an
+acyclic and connected graph. Each node in a tree has zero or more
+child nodes, which are below it in the tree (by convention, trees grow
+down, not up as they do in nature). A node that has a child is called
+the child’s parent node (or ancestor node, or superior). A node has at
+most one parent.</p>
+<p>The height of a node is the length of the longest downward path to a
+leaf from that node. The height of the root is the height of the
+tree. The depth of a node is the length of the path to its root (i.e.,
+its root path).</p>
+<ul class="simple">
+<li>The topmost node in a tree is called the root node. Being the
+topmost node, the root node will not have parents. It is the node at
+which operations on the tree commonly begin (although some
+algorithms begin with the leaf nodes and work up ending at the
+root). All other nodes can be reached from it by following edges or
+links. Every node in a tree can be seen as the root node of the
+subtree rooted at that node.</li>
+<li>Nodes at the bottommost level of the tree are called leaf
+nodes. Since they are at the bottommost level, they do not have any
+children.</li>
+<li>An internal node or inner node is any node of a tree that has child
+nodes and is thus not a leaf node.</li>
+<li>A subtree is a portion of a tree data structure that can be viewed
+as a complete tree in itself. Any node in a tree T, together with
+all the nodes below it, comprise a subtree of T. The subtree
+corresponding to the root node is the entire tree; the subtree
+corresponding to any other node is called a proper subtree (in
+analogy to the term proper subset).</li>
+</ul>
+<p>In bioinformatics, trees are the result of many analyses, such as
+phylogenetics or clustering. Although each case entails specific
+considerations, many properties remains constant among them. In this
+respect, ETE is a python toolkit that assists in the automated
+manipulation, analysis and visualization of any type of hierarchical
+trees. It provides general methods to handle and visualize tree
+topologies, as well as specific modules to deal with phylogenetic and
+clustering trees.</p>
+</div>
+<div class="section" id="reading-and-writing-newick-trees">
+<span id="sec-newick-formats"></span><h2><a class="toc-backref" href="#id5">Reading and Writing Newick Trees</a><a class="headerlink" href="#reading-and-writing-newick-trees" title="Permalink to this headline">¶</a></h2>
+<p>The Newick format is one of the most widely used standard
+representation of trees in bioinformatics. It uses nested parentheses
+to represent hierarchical data structures as text strings. The
+original newick standard is able to encode information about the tree
+topology, branch distances and node names. Nevertheless, it is not
+uncommon to find slightly different formats using the newick standard.</p>
+<p>ETE can read and write many of them:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="4%" />
+<col width="33%" />
+<col width="63%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">FORMAT</th>
+<th class="head">DESCRIPTION</th>
+<th class="head">SAMPLE</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>0</td>
+<td>flexible with support values</td>
+<td>((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);</td>
+</tr>
+<tr class="row-odd"><td>1</td>
+<td>flexible with internal node names</td>
+<td>((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);</td>
+</tr>
+<tr class="row-even"><td>2</td>
+<td>all branches + leaf names + internal supports</td>
+<td>((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.279326,H:0.756049)1.000000:0.807788);</td>
+</tr>
+<tr class="row-odd"><td>3</td>
+<td>all branches + all names</td>
+<td>((D:0.723274,F:0.567784)E:0.067192,(B:0.279326,H:0.756049)B:0.807788);</td>
+</tr>
+<tr class="row-even"><td>4</td>
+<td>leaf branches + leaf names</td>
+<td>((D:0.723274,F:0.567784),(B:0.279326,H:0.756049));</td>
+</tr>
+<tr class="row-odd"><td>5</td>
+<td>internal and leaf branches + leaf names</td>
+<td>((D:0.723274,F:0.567784):0.067192,(B:0.279326,H:0.756049):0.807788);</td>
+</tr>
+<tr class="row-even"><td>6</td>
+<td>internal branches + leaf names</td>
+<td>((D,F):0.067192,(B,H):0.807788);</td>
+</tr>
+<tr class="row-odd"><td>7</td>
+<td>leaf branches + all names</td>
+<td>((D:0.723274,F:0.567784)E,(B:0.279326,H:0.756049)B);</td>
+</tr>
+<tr class="row-even"><td>8</td>
+<td>all names</td>
+<td>((D,F)E,(B,H)B);</td>
+</tr>
+<tr class="row-odd"><td>9</td>
+<td>leaf names</td>
+<td>((D,F),(B,H));</td>
+</tr>
+<tr class="row-even"><td>100</td>
+<td>topology only</td>
+<td>((,),(,));</td>
+</tr>
+</tbody>
+</table>
+<p>Formats labeled as <em>flexible</em> allow for missing information. For
+instance, format 0 will be able to load a newick tree even if it does
+not contain branch support information (it will be initialized with
+the default value). However, format 2 would raise an exception.  In
+other words, if you want to control that your newick files strictly
+follow a given pattern you should use <strong>strict</strong> format definitions.</p>
+<div class="section" id="reading-newick-trees">
+<h3><a class="toc-backref" href="#id6">Reading newick trees</a><a class="headerlink" href="#reading-newick-trees" title="Permalink to this headline">¶</a></h3>
+<p>In order to load a tree from a newick text string you can use the
+constructor <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode" title="ete3.TreeNode"><code class="xref py py-class docutils literal"><span class="pre">TreeNode</span></code></a> or its <a class="reference internal" href="../reference/reference_tree.html#ete3.Tree" title="ete3.Tree"><code class="xref py py-class docutils literal"><span class="pre">Tree</span></code></a> alias, provided by the main module
+<a class="reference internal" href="#module-ete3" title="ete3: provides main objects and modules"><code class="xref py py-mod docutils literal"><span class="pre">ete3</span></code></a>. You will only need to pass a text string containing
+the newick structure and the format that should be used to parse it (0
+by default). Alternatively, you can pass the path to a text file
+containing the newick string.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+
+<span class="c"># Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"(A:1,(B:1,(E:1,D:1):0.5):0.5);"</span> <span class="p">)</span>
+
+<span class="c"># Load a tree structure from a newick file.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"genes_tree.nh"</span><span class="p">)</span>
+
+<span class="c"># You can also specify the newick format. For instance, for named internal nodes we will use format 1.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="writing-newick-trees">
+<h3><a class="toc-backref" href="#id7">Writing newick trees</a><a class="headerlink" href="#writing-newick-trees" title="Permalink to this headline">¶</a></h3>
+<p>Any ETE tree instance can be exported using newick notation using the
+<code class="xref py py-func docutils literal"><span class="pre">Tree.write()</span></code> method, which is available in any tree node
+instance. It also allows for format selection
+(<a class="reference internal" href="#sec-newick-formats"><span>Reading and Writing Newick Trees</span></a>), so you can use the same function to
+convert between newick formats.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+
+<span class="c"># Loads a tree with internal node names</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+
+<span class="c"># And prints its newick using the default format</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">()</span> <span class="c"># (A:1.000000,(B:1.000000,(E:1.000000,D:1.000000)1.000000:0.500000)1.000000:0.500000);</span>
+
+<span class="c"># To print the internal node names you need to change the format:</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="c"># (A:1.000000,(B:1.000000,(E:1.000000,D:1.000000)Internal_1:0.500000)Internal_2:0.500000);</span>
+
+<span class="c"># We can also write into a file</span>
+<span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">outfile</span><span class="o">=</span><span class="s">"new_tree.nw"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="understanding-ete-trees">
+<h2><a class="toc-backref" href="#id8">Understanding ETE Trees</a><a class="headerlink" href="#understanding-ete-trees" title="Permalink to this headline">¶</a></h2>
+<p>Any tree topology can be represented as a succession of <strong>nodes</strong>
+connected in a hierarchical way. Thus, for practical reasons, ETE
+makes no distinction between tree and node concepts, as any tree can
+be represented by its root node. This allows to use any internal node
+within a tree as another sub-tree instance.</p>
+<p>Once trees are loaded, they can be manipulated as normal python
+objects. Given that a tree is actually a collection of nodes connected
+in a hierarchical way, what you usually see as a tree will be the root
+node instance from which the tree structure is hanging. However, every
+node within a ETE’s tree structure can be also considered a
+subtree. This means, for example, that all the operational methods
+that we will review in the following sections are available at any
+possible level within a tree. Moreover, this feature will allow you to
+separate large trees into smaller partitions, or concatenate several
+trees into a single structure. For this reason, you will find that the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode" title="ete3.TreeNode"><code class="xref py py-class docutils literal"><span class="pre">TreeNode</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.Tree" title="ete3.Tree"><code class="xref py py-class docutils literal"><span class="pre">Tree</span></code></a> classes are synonymous.</p>
+</div>
+<div class="section" id="basic-tree-attributes">
+<h2><a class="toc-backref" href="#id9">Basic tree attributes</a><a class="headerlink" href="#basic-tree-attributes" title="Permalink to this headline">¶</a></h2>
+<p>Each tree node has two basic attributes used to establish its position
+in the tree: <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.up" title="ete3.TreeNode.up"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.up</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.children" title="ete3.TreeNode.children"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.children</span></code></a>.  The first is
+a pointer to parent’s node, while the later is a list of children
+nodes.  Although it is possible to modify the structure of a tree by
+changing these attributes, it is strongly recommend not to do
+it. Several methods are provided to manipulate each node’s connections
+in a safe way (see <a class="reference internal" href="#sec-modifying-tree-topology"><span>Comparing Trees</span></a>).</p>
+<p>In addition, three other basic attributes are always present in any
+tree node instance:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="19%" />
+<col width="69%" />
+<col width="12%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Method</th>
+<th class="head">Description</th>
+<th class="head">Default value</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.dist" title="ete3.TreeNode.dist"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.dist</span></code></a></td>
+<td>stores the distance from the node to its parent (branch length). Default value = 1.0</td>
+<td>1.0</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.support" title="ete3.TreeNode.support"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.support</span></code></a></td>
+<td>informs about the reliability of the partition defined by the node (i.e. bootstrap support)</td>
+<td>1.0</td>
+</tr>
+<tr class="row-even"><td><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.name</span></code></td>
+<td>Custom node’s name.</td>
+<td>NoName</td>
+</tr>
+</tbody>
+</table>
+<p>In addition, several methods are provided to perform basic operations
+on tree node instances:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="26%" />
+<col width="74%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Method</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.is_leaf" title="ete3.TreeNode.is_leaf"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.is_leaf()</span></code></a></td>
+<td>returns True if <em>node</em> has no children</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.is_root" title="ete3.TreeNode.is_root"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.is_root()</span></code></a></td>
+<td>returns True if <em>node</em> has no parent</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_tree_root" title="ete3.TreeNode.get_tree_root"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_tree_root()</span></code></a></td>
+<td>returns the top-most node within the same tree structure as <em>node</em></td>
+</tr>
+<tr class="row-odd"><td><code class="xref py py-attr docutils literal"><span class="pre">len(TreeNode)</span></code></td>
+<td>returns the number of leaves under <em>node</em></td>
+</tr>
+<tr class="row-even"><td><code class="xref py py-attr docutils literal"><span class="pre">print</span> <span class="pre">node</span></code></td>
+<td>prints a text-based representation of the tree topology under <em>node</em></td>
+</tr>
+<tr class="row-odd"><td><code class="xref py py-attr docutils literal"><span class="pre">if</span> <span class="pre">node</span> <span class="pre">in</span> <span class="pre">tree</span></code></td>
+<td>returns true if <em>node</em> is a leaf under <em>tree</em></td>
+</tr>
+<tr class="row-even"><td><code class="xref py py-attr docutils literal"><span class="pre">for</span> <span class="pre">leaf</span> <span class="pre">in</span> <span class="pre">node</span></code></td>
+<td>iterates over all leaves under <em>node</em></td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.show" title="ete3.TreeNode.show"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.show()</span></code></a></td>
+<td>Explore node graphically using a GUI.</td>
+</tr>
+</tbody>
+</table>
+<p>This is an example on how to access such attributes:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="c"># We create a random tree topology</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">children</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_children</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">up</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">name</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">dist</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_tree_root</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">get_tree_root</span><span class="p">()</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">get_tree_root</span><span class="p">()</span>
+<span class="c"># You can also iterate over tree leaves using a simple syntax</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="p">:</span>
+  <span class="k">print</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span>
+</pre></div>
+</div>
+<div class="section" id="root-node-on-unrooted-trees">
+<h3><a class="toc-backref" href="#id10">Root node on unrooted trees?</a><a class="headerlink" href="#root-node-on-unrooted-trees" title="Permalink to this headline">¶</a></h3>
+<p>When a tree is loaded from external sources, a pointer to the top-most
+node is returned. This is called the tree root, and <strong>it will exist
+even if the tree is conceptually considered as unrooted</strong>. This is,
+the root node can be considered as the master node, since it
+represents the whole tree structure. Unrooted trees can be identified
+as trees in which master root node has more than two children.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">unrooted_tree</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"(A,B,(C,D));"</span> <span class="p">)</span>
+<span class="k">print</span> <span class="n">unrooted_tree</span>
+<span class="c">#</span>
+<span class="c">#     /-A</span>
+<span class="c">#    |</span>
+<span class="c">#----|--B</span>
+<span class="c">#    |</span>
+<span class="c">#    |     /-C</span>
+<span class="c">#     \---|</span>
+<span class="c">#          \-D</span>
+
+<span class="n">rooted_tree</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((A,B),(C,D));"</span> <span class="p">)</span>
+<span class="k">print</span> <span class="n">rooted_tree</span>
+<span class="c">#</span>
+<span class="c">#          /-A</span>
+<span class="c">#     /---|</span>
+<span class="c">#    |     \-B</span>
+<span class="c">#----|</span>
+<span class="c">#    |     /-C</span>
+<span class="c">#     \---|</span>
+<span class="c">#          \-D</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="browsing-trees-traversing">
+<h2><a class="toc-backref" href="#id11">Browsing trees (traversing)</a><a class="headerlink" href="#browsing-trees-traversing" title="Permalink to this headline">¶</a></h2>
+<p>One of the most basic operations for tree analysis is <em>tree
+browsing</em>. This is, essentially, visiting nodes within a tree. ETE
+provides a number of methods to search for specific nodes or to
+navigate over the hierarchical structure of a tree.</p>
+<div class="section" id="getting-leaves-descendants-and-node-s-relatives">
+<h3><a class="toc-backref" href="#id12">Getting Leaves, Descendants and Node’s Relatives</a><a class="headerlink" href="#getting-leaves-descendants-and-node-s-relatives" title="Permalink to this headline">¶</a></h3>
+<p>TreeNode instances contain several functions to access their
+descendants. Available methods are self explanatory:</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+</tbody>
+</table>
+</div>
+<div class="section" id="traversing-browsing-trees">
+<h3><a class="toc-backref" href="#id13">Traversing (browsing) trees</a><a class="headerlink" href="#traversing-browsing-trees" title="Permalink to this headline">¶</a></h3>
+<p>Often, when processing trees, all nodes need to be visited. This is
+called tree traversing. There are different ways to traverse a tree
+structure depending on the order in which children nodes are
+visited. ETE implements the three most common strategies:
+<strong>preorder</strong>, <strong>levelorder</strong> and <strong>postorder</strong>. The following scheme
+shows the differences in the strategy for visiting nodes (note that in
+both cases the whole tree is browsed):</p>
+<ul class="simple">
+<li>preorder: 1)Visit the root, 2) Traverse the left subtree , 3) Traverse the right subtree.</li>
+<li>postorder: 1) Traverse the left subtree , 2) Traverse the right subtree, 3) Visit the root</li>
+<li>levelorder (default): every node on a level before is visited going to a lower level</li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<ul class="last simple">
+<li>Preorder traversal sequence: F, B, A, D, C, E, G, I, H (root, left, right)</li>
+<li>Inorder traversal sequence: A, B, C, D, E, F, G, H, I (left, root, right); note how this produces a sorted sequence</li>
+<li>Postorder traversal sequence: A, C, E, D, B, H, I, G, F (left, right, root)</li>
+<li>Level-order traversal sequence: F, B, G, A, D, I, C, E, H</li>
+</ul>
+</div>
+<p>Every node in a tree includes a <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> method, which can be
+used to visit, one by one, every node node under the current
+partition. In addition, the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_descendants" title="ete3.TreeNode.iter_descendants"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_descendants()</span></code></a> method can be set
+to use either a post- or a preorder strategy.  The only different
+between <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.traverse" title="ete3.TreeNode.traverse"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.traverse()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_descendants" title="ete3.TreeNode.iter_descendants"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_descendants()</span></code></a> is [...]
+first will include the root node in the iteration.</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+</tbody>
+</table>
+<p><strong>strategy</strong> can take one of the following values: <code class="docutils literal"><span class="pre">"postorder"</span></code>, <code class="docutils literal"><span class="pre">"preorder"</span></code> or  <code class="docutils literal"><span class="pre">"levelorder"</span></code></p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># we load a tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((((H,K)D,(F,I)G)B,E)A,((L,(N,Q)O)J,(P,S)M)C);'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+
+<span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">(</span><span class="s">"postorder"</span><span class="p">):</span>
+  <span class="c"># Do some analysis on node</span>
+  <span class="k">print</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span>
+
+<span class="c"># If we want to iterate over a tree excluding the root node, we can</span>
+<span class="c"># use the iter_descendant method</span>
+<span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_descendants</span><span class="p">(</span><span class="s">"postorder"</span><span class="p">):</span>
+  <span class="c"># Do some analysis on node</span>
+  <span class="k">print</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span>
+</pre></div>
+</div>
+<p>Additionally, you can implement your own traversing function using the
+structural attributes of nodes. In the following example, only nodes
+between a given leaf and the tree root are visited.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"(A:1,(B:1,(C:1,D:1):0.5):0.5);"</span> <span class="p">)</span>
+
+<span class="c"># Browse the tree from a specific leaf to the root</span>
+<span class="n">node</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"C"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="k">while</span> <span class="n">node</span><span class="p">:</span>
+   <span class="k">print</span> <span class="n">node</span>
+   <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">up</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="advanced-traversing-stopping-criteria">
+<h3><a class="toc-backref" href="#id14">Advanced traversing (stopping criteria)</a><a class="headerlink" href="#advanced-traversing-stopping-criteria" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="collapsing-nodes-while-traversing-custom-is-leaf-definition">
+<span id="is-leaf-fn"></span><h4><a class="toc-backref" href="#id15">Collapsing nodes while traversing (custom is_leaf definition)</a><a class="headerlink" href="#collapsing-nodes-while-traversing-custom-is-leaf-definition" title="Permalink to this headline">¶</a></h4>
+<p>From version 2.2, ETE supports the use of the <code class="xref py py-attr docutils literal"><span class="pre">is_leaf_fn</span></code>
+argument in most of its traversing functions. The value of
+<code class="xref py py-attr docutils literal"><span class="pre">is_leaf_fn</span></code> is expected to be a pointer to any python function
+that accepts a node instance as its first argument and returns a
+boolean value (True if node should be considered a leaf node).</p>
+<p>By doing so, all traversing methods will use such a custom function to
+decide if a node is a leaf. This becomes specially useful when dynamic
+collapsing of nodes is needed, thus avoiding to prune the same tree in
+many different ways.</p>
+<p>For instance, given a large tree structure, the following code will
+export the newick of the pruned version of the topology, where nodes
+grouping the same tip labels are collapsed.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="k">def</span> <span class="nf">collapsed_leaf</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">node2labels</span><span class="p">[</span><span class="n">node</span><span class="p">])</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+       <span class="k">return</span> <span class="bp">True</span>
+    <span class="k">else</span><span class="p">:</span>
+       <span class="k">return</span> <span class="bp">False</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((((a,a,a)a,a)aa, (b,b)b)ab, (c, (d,d)d)cd);"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c"># We create a cache with every node content</span>
+<span class="n">node2labels</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_cached_content</span><span class="p">(</span><span class="n">store_attr</span><span class="o">=</span><span class="s">"name"</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">is_leaf_fn</span><span class="o">=</span><span class="n">collapsed_leaf</span><span class="p">)</span>
+<span class="c">#             /-a</span>
+<span class="c">#            |</span>
+<span class="c">#          /-|--a</span>
+<span class="c">#         |  |</span>
+<span class="c">#       /-|   \-a</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /-|   \-a</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |  |   /-b</span>
+<span class="c"># --|   \-|</span>
+<span class="c">#   |      \-b</span>
+<span class="c">#   |</span>
+<span class="c">#   |   /-c</span>
+<span class="c">#    \-|</span>
+<span class="c">#      |   /-d</span>
+<span class="c">#       \-|</span>
+<span class="c">#          \-d</span>
+
+<span class="c"># We can even load the collapsed version as a new tree</span>
+<span class="n">t2</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">is_leaf_fn</span><span class="o">=</span><span class="n">collapsed_leaf</span><span class="p">)</span> <span class="p">)</span>
+<span class="k">print</span> <span class="n">t2</span>
+<span class="c">#       /-aa</span>
+<span class="c">#    /-|</span>
+<span class="c">#   |   \-b</span>
+<span class="c"># --|</span>
+<span class="c">#   |   /-c</span>
+<span class="c">#    \-|</span>
+<span class="c">#       \-d</span>
+</pre></div>
+</div>
+<p>Another interesting use of this approach is to find the first matching
+nodes in a given tree that match a custom set of criteria, without
+browsing the whole tree structure.</p>
+<p>Let’s say we want get all deepest nodes in a tree whose branch length
+is larger than one:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"(((a,b)ab:2, (c, d)cd:2)abcd:2, ((e, f):2, g)efg:2);"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="k">def</span> <span class="nf">processable_node</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">dist</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
+       <span class="k">return</span> <span class="bp">True</span>
+    <span class="k">else</span><span class="p">:</span>
+       <span class="k">return</span> <span class="bp">False</span>
+
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_leaves</span><span class="p">(</span><span class="n">is_leaf_fn</span><span class="o">=</span><span class="n">processable_node</span><span class="p">):</span>
+    <span class="k">print</span> <span class="n">leaf</span>
+
+<span class="c">#       /-a</span>
+<span class="c">#    /-|</span>
+<span class="c">#   |   \-b</span>
+<span class="c"># --|</span>
+<span class="c">#   |   /-c</span>
+<span class="c">#    \-|</span>
+<span class="c">#       \-d</span>
+<span class="c">#</span>
+<span class="c">#       /-e</span>
+<span class="c">#    /-|</span>
+<span class="c"># --|   \-f</span>
+<span class="c">#   |</span>
+<span class="c">#    \-g</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="iterating-instead-of-getting">
+<h3><a class="toc-backref" href="#id16">Iterating instead of Getting</a><a class="headerlink" href="#iterating-instead-of-getting" title="Permalink to this headline">¶</a></h3>
+<p>As commented previously, methods starting with <strong>get_</strong> are all
+prepared to return results as a closed list of items. This means, for
+instance, that if you want to process all tree leaves and you ask for
+them using the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_leaves" title="ete3.TreeNode.get_leaves"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_leaves()</span></code></a> method, the whole tree
+structure will be browsed before returning the final list of terminal
+nodes.  This is not a problem in most of the cases, but in large
+trees, you can speed up the browsing process by using iterators.</p>
+<p>Most <strong>get_</strong> methods have their homologous iterator functions. Thus,
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_leaves" title="ete3.TreeNode.get_leaves"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_leaves()</span></code></a> could be substituted by <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_leaves" title="ete3.TreeNode.iter_leaves"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_leaves()</span></code></a> [...]
+occurs with <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_descendants" title="ete3.TreeNode.iter_descendants"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_descendants()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_search_nodes" title="ete3.TreeNode.iter_search_nodes"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_sear [...]
+<p>When iterators are used (note that is only applicable for looping),
+only one step is processed at a time. For instance,
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.iter_search_nodes" title="ete3.TreeNode.iter_search_nodes"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.iter_search_nodes()</span></code></a> will return one match in each
+iteration. In practice, this makes no differences in the final result,
+but it may increase the performance of loop functions (i.e. in case of
+finding a match which interrupts the loop).</p>
+</div>
+<div class="section" id="finding-nodes-by-their-attributes">
+<h3><a class="toc-backref" href="#id17">Finding nodes by their attributes</a><a class="headerlink" href="#finding-nodes-by-their-attributes" title="Permalink to this headline">¶</a></h3>
+<p>Both terminal and internal nodes can be located by searching along the
+tree structure. Several methods are available:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="29%" />
+<col width="71%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">method</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>t.search_nodes(attr=value)</td>
+<td>Returns a list of nodes in which attr is equal to value, i.e. name=A</td>
+</tr>
+<tr class="row-odd"><td>t.iter_search_nodes(attr=value)</td>
+<td>Iterates over all matching nodes matching attr=value. Faster when you only need to get the first occurrence</td>
+</tr>
+<tr class="row-even"><td>t.get_leaves_by_name(name)</td>
+<td>Returns a list of leaf nodes matching a given name. Only leaves are browsed.</td>
+</tr>
+<tr class="row-odd"><td>t.get_common_ancestor([node1, node2, node3])</td>
+<td>Return the first internal node grouping node1, node2 and node3</td>
+</tr>
+<tr class="row-even"><td>t&”A”</td>
+<td>Shortcut for t.search_nodes(name=”A”)[0]</td>
+</tr>
+</tbody>
+</table>
+<div class="section" id="search-all-nodes-matching-a-given-criteria">
+<h4><a class="toc-backref" href="#id18">Search_all nodes matching a given criteria</a><a class="headerlink" href="#search-all-nodes-matching-a-given-criteria" title="Permalink to this headline">¶</a></h4>
+<p>A custom list of nodes matching a given name can be easily obtain
+through the <code class="xref py py-func docutils literal"><span class="pre">TreeNode.search_node()</span></code> function.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">'((H:1,I:1):0.5, A:1, (B:1,(C:1,D:1):0.5):0.5);'</span> <span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                    /-H</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |          \-I</span>
+<span class="c">#         |</span>
+<span class="c">#---------|--A</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-B</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                   |          /-C</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                              \-D</span>
+
+<span class="c"># I get D</span>
+<span class="n">D</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"D"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="c"># I get all nodes with distance=0.5</span>
+<span class="n">nodes</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">dist</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
+<span class="k">print</span> <span class="nb">len</span><span class="p">(</span><span class="n">nodes</span><span class="p">),</span> <span class="s">"nodes have distance=0.5"</span>
+
+<span class="c"># We can limit the search to leaves and node names (faster method).</span>
+<span class="n">D</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_leaves_by_name</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">D</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="search-nodes-matching-a-given-criteria-iteration">
+<h4><a class="toc-backref" href="#id19">Search nodes matching a given criteria (iteration)</a><a class="headerlink" href="#search-nodes-matching-a-given-criteria-iteration" title="Permalink to this headline">¶</a></h4>
+<p>A limitation of the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.search_nodes" title="ete3.TreeNode.search_nodes"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.search_nodes()</span></code></a> method is that you cannot use
+complex conditional statements to find specific nodes.  When search
+criteria is too complex, you may need to create your own search
+function.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+
+<span class="k">def</span> <span class="nf">search_by_size</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+    <span class="s">"Finds nodes with a given number of leaves"</span>
+    <span class="n">matches</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+       <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">==</span> <span class="n">size</span><span class="p">:</span>
+          <span class="n">matches</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">matches</span>
+
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span>
+<span class="c"># returns nodes containing 6 leaves</span>
+<span class="n">search_by_size</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">6</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="find-the-first-common-ancestor">
+<h4><a class="toc-backref" href="#id20">Find the first common ancestor</a><a class="headerlink" href="#find-the-first-common-ancestor" title="Permalink to this headline">¶</a></h4>
+<p>Searching for the first common ancestor of a given set of nodes it is
+a handy way of finding internal nodes.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">"((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:0.5,(J:1.3, (F:1.2, D:0.1):0.5):0.5):0.5):0.5);"</span> <span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="n">ancestor</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"C"</span><span class="p">,</span> <span class="s">"J"</span><span class="p">,</span> <span class="s">"B"</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="custom-searching-functions">
+<h4><a class="toc-backref" href="#id21">Custom searching functions</a><a class="headerlink" href="#custom-searching-functions" title="Permalink to this headline">¶</a></h4>
+<p>A limitation of the previous methods is that you cannot use complex
+conditional statements to find specific nodes. However you can user
+traversing methods to meet your custom filters. A possible general
+strategy would look like this:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,D:1):0.5):0.5);"</span><span class="p">)</span>
+<span class="c"># Create a small function to filter your nodes</span>
+<span class="k">def</span> <span class="nf">conditional_function</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">dist</span> <span class="o">></span> <span class="mf">0.3</span><span class="p">:</span>
+        <span class="k">return</span> <span class="bp">True</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="bp">False</span>
+
+<span class="c"># Use previous function to find matches. Note that we use the traverse</span>
+<span class="c"># method in the filter function. This will iterate over all nodes to</span>
+<span class="c"># assess if they meet our custom conditions and will return a list of</span>
+<span class="c"># matches.</span>
+<span class="n">matches</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="n">conditional_function</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">())</span>
+<span class="k">print</span> <span class="nb">len</span><span class="p">(</span><span class="n">matches</span><span class="p">),</span> <span class="s">"nodes have distance >0.3"</span>
+
+<span class="c"># depending on the complexity of your conditions you can do the same</span>
+<span class="c"># in just one line with the help of lambda functions:</span>
+<span class="n">matches</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span><span class="o">.</span><span class="n">dist</span><span class="o">></span><span class="mf">0.3</span> <span class="ow">and</span> <span class="n">n</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">(),</span> <span class="n">t</span><span class="o"> [...]
+<span class="k">print</span> <span class="nb">len</span><span class="p">(</span><span class="n">matches</span><span class="p">),</span> <span class="s">"nodes have distance >0.3 and are leaves"</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="shortcuts">
+<h4><a class="toc-backref" href="#id22">Shortcuts</a><a class="headerlink" href="#shortcuts" title="Permalink to this headline">¶</a></h4>
+<p>Finally, ETE implements a built-in method to find the first node
+matching a given name, which is one of the most common tasks needed
+for tree analysis. This can be done through the operator &
+(AND). Thus, TreeNode&”A” will always return the first node whose name
+is “A” and that is under the tree “MyTree”. The syntaxis may seem
+confusing, but it can be very useful in some situations.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,(J:1, (F:1, D:1):0.5):0.5):0.5):0.5);"</span><span class="p">)</span>
+<span class="c"># Get the node D in a very simple way</span>
+<span class="n">D</span> <span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"D"</span>
+<span class="c"># Get the path from B to the root</span>
+<span class="n">node</span> <span class="o">=</span> <span class="n">D</span>
+<span class="n">path</span> <span class="o">=</span> <span class="p">[]</span>
+<span class="k">while</span> <span class="n">node</span><span class="o">.</span><span class="n">up</span><span class="p">:</span>
+  <span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+  <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">up</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c"># I substract D node from the total number of visited nodes</span>
+<span class="k">print</span> <span class="s">"There are"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">path</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">"nodes between D and the root"</span>
+<span class="c"># Using parentheses you can use by-operand search syntax as a node</span>
+<span class="c"># instance itself</span>
+<span class="n">Dsparent</span><span class="o">=</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"C"</span><span class="p">)</span><span class="o">.</span><span class="n">up</span>
+<span class="n">Bsparent</span><span class="o">=</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"B"</span><span class="p">)</span><span class="o">.</span><span class="n">up</span>
+<span class="n">Jsparent</span><span class="o">=</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"J"</span><span class="p">)</span><span class="o">.</span><span class="n">up</span>
+<span class="c"># I check if nodes belong to certain partitions</span>
+<span class="k">print</span> <span class="s">"It is"</span><span class="p">,</span> <span class="n">Dsparent</span> <span class="ow">in</span> <span class="n">Bsparent</span><span class="p">,</span> <span class="s">"that C's parent is under B's ancestor"</span>
+<span class="k">print</span> <span class="s">"It is"</span><span class="p">,</span> <span class="n">Dsparent</span> <span class="ow">in</span> <span class="n">Jsparent</span><span class="p">,</span> <span class="s">"that C's parent is under J's ancestor"</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="checking-the-monophyly-of-attributes-within-a-tree">
+<span id="check-monophyly"></span><h2><a class="toc-backref" href="#id23">Checking the monophyly of attributes within a tree</a><a class="headerlink" href="#checking-the-monophyly-of-attributes-within-a-tree" title="Permalink to this headline">¶</a></h2>
+<p>Although monophyly is actually a phylogenetic concept used to refer to
+a set of species that group exclusively together within a tree
+partition, the idea can be easily exported to any type of trees.</p>
+<p>Therefore, we could consider that a set of values for a given node
+attribute present in our tree is monophyletic, if such values group
+exclusively together as a single tree partition. If not, the
+corresponding relationship connecting such values (para or
+poly-phyletic) could be also be inferred.</p>
+<p>The <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.check_monophyly" title="ete3.TreeNode.check_monophyly"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.check_monophyly()</span></code></a> method will do so when a given
+tree is queried for any custom attribute.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span>  <span class="n">Tree</span><span class="p">(</span><span class="s">"((((((a, e), i), o),h), u), ((f, g), j));"</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#                   /-a</span>
+<span class="c">#                /-|</span>
+<span class="c">#             /-|   \-e</span>
+<span class="c">#            |  |</span>
+<span class="c">#          /-|   \-i</span>
+<span class="c">#         |  |</span>
+<span class="c">#       /-|   \-o</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /-|   \-h</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |   \-u</span>
+<span class="c"># --|</span>
+<span class="c">#   |      /-f</span>
+<span class="c">#   |   /-|</span>
+<span class="c">#    \-|   \-g</span>
+<span class="c">#      |</span>
+<span class="c">#       \-j</span>
+
+
+<span class="c"># We can check how, indeed, all vowels are not monophyletic in the</span>
+<span class="c"># previous tree, but polyphyletic (a foreign label breaks its monophyly)</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">check_monophyly</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"u"</s [...]
+
+<span class="c"># however, the following set of vowels are monophyletic</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">check_monophyly</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">],</span> <span class="n">target_attr</sp [...]
+
+<span class="c"># A special case of polyphyly, called paraphyly, is also used to</span>
+<span class="c"># define certain type of grouping. See this wikipedia article for</span>
+<span class="c"># disambiguation: http://en.wikipedia.org/wiki/Paraphyly</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">check_monophyly</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="s">"i"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">],</span> <span class="n">target_attr</span><span class="o">=</span><span class="s">"name"</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Finally, the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_monophyletic" title="ete3.TreeNode.get_monophyletic"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_monophyletic()</span></code></a> method is also
+provided, which allows to return a list of nodes within a tree where a
+given set of attribute values are monophyletic. Note that, although a
+set of values are not monophyletic regarding the whole tree, several
+independent monophyletic partitions could be found within the same
+topology.</p>
+<p>For instance, in the following example, all clusters within the same
+tree exclusively grouping a custom set of annotations are obtained.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span>  <span class="n">Tree</span><span class="p">(</span><span class="s">"((((((4, e), i), o),h), u), ((3, 4), (i, june)));"</span><span class="p">)</span>
+<span class="c"># we annotate the tree using external data</span>
+<span class="n">colors</span> <span class="o">=</span> <span class="p">{</span><span class="s">"a"</span><span class="p">:</span><span class="s">"red"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">:</span><span class="s">"green"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">:</span><span class="s">"yellow"</span><span class="p">,</span>
+          <span class="s">"o"</span><span class="p">:</span><span class="s">"black"</span><span class="p">,</span> <span class="s">"u"</span><span class="p">:</span><span class="s">"purple"</span><span class="p">,</span> <span class="s">"4"</span><span class="p">:</span><span class="s">"green"</span><span class="p">,</span>
+          <span class="s">"3"</span><span class="p">:</span><span class="s">"yellow"</span><span class="p">,</span> <span class="s">"1"</span><span class="p">:</span><span class="s">"white"</span><span class="p">,</span> <span class="s">"5"</span><span class="p">:</span><span class="s">"red"</span><span class="p">,</span>
+          <span class="s">"june"</span><span class="p">:</span><span class="s">"yellow"</span><span class="p">}</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="p">:</span>
+    <span class="n">leaf</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">leaf</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"none"</span><span class="p">))</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"color"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+
+<span class="c">#                   /-4, green</span>
+<span class="c">#                /-|</span>
+<span class="c">#             /-|   \-e, green</span>
+<span class="c">#            |  |</span>
+<span class="c">#          /-|   \-i, yellow</span>
+<span class="c">#         |  |</span>
+<span class="c">#       /-|   \-o, black</span>
+<span class="c">#      |  |</span>
+<span class="c">#    /-|   \-h, none</span>
+<span class="c">#   |  |</span>
+<span class="c">#   |   \-u, purple</span>
+<span class="c"># --|</span>
+<span class="c">#   |      /-3, yellow</span>
+<span class="c">#   |   /-|</span>
+<span class="c">#   |  |   \-4, green</span>
+<span class="c">#    \-|</span>
+<span class="c">#      |   /-i, yellow</span>
+<span class="c">#       \-|</span>
+<span class="c">#          \-june, yellow</span>
+
+<span class="k">print</span> <span class="s">"Green-yellow clusters:"</span>
+<span class="c"># And obtain clusters exclusively green and yellow</span>
+<span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">get_monophyletic</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="s">"green"</span><span class="p">,</span> <span class="s">"yellow"</span><span class="p">],</span> <span class="n">target_attr</span><span class="o">=</span><span class="s">"color&quot [...]
+   <span class="k">print</span> <span class="n">node</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"color"</span><span class="p">,</span> <span class="s">"name"</span><span class="p">],</span> <span class="n">show_internal</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+
+<span class="c"># Green-yellow clusters:</span>
+<span class="c">#</span>
+<span class="c">#       /-green, 4</span>
+<span class="c">#    /-|</span>
+<span class="c"># --|   \-green, e</span>
+<span class="c">#   |</span>
+<span class="c">#    \-yellow, i</span>
+<span class="c">#</span>
+<span class="c">#       /-yellow, 3</span>
+<span class="c">#    /-|</span>
+<span class="c">#   |   \-green, 4</span>
+<span class="c"># --|</span>
+<span class="c">#   |   /-yellow, i</span>
+<span class="c">#    \-|</span>
+<span class="c">#       \-yellow, june</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">When the target attribute is set to the “species” feature name,
+associated to any <a class="reference internal" href="../reference/reference_phylo.html#ete3.PhyloTree" title="ete3.PhyloTree"><code class="xref py py-class docutils literal"><span class="pre">PhyloTree</span></code></a> node, this method will
+accomplish with the standard phylogenetic definition of monophyly,
+polyphyly and paraphyly.</p>
+</div>
+</div>
+<div class="section" id="caching-tree-content-for-faster-lookup-operations">
+<span id="cache-node-content"></span><h2><a class="toc-backref" href="#id24">Caching tree content for faster lookup operations</a><a class="headerlink" href="#caching-tree-content-for-faster-lookup-operations" title="Permalink to this headline">¶</a></h2>
+<p>If your program needs to access to the content of different nodes very
+frequently, traversing the tree to get the leaves of each node over
+and over will produce significant slowdowns in your algorithm.  From
+version 2.2 ETE provides a convenient methods to cache frequent data.</p>
+<p>The method <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_cached_content" title="ete3.TreeNode.get_cached_content"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_cached_content()</span></code></a> returns a dictionary in
+which keys are node instances and values represent the content of such
+nodes. By default, content is understood as a list of leave nodes, so
+looking up size or tip names under a given node will be
+instant. However, specific attributes can be cached by setting a
+custom <code class="xref py py-attr docutils literal"><span class="pre">store_attr</span></code> value.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
+
+<span class="n">node2leaves</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_cached_content</span><span class="p">()</span>
+
+<span class="c"># lets now print the size of each node without the need of</span>
+<span class="c"># recursively traverse</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+    <span class="k">print</span> <span class="s">"node </span><span class="si">%s</span><span class="s"> contains </span><span class="si">%s</span><span class="s"> tips"</span> <span class="o">%</span><span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">node2leaves</span><span class="p">[</span><span class="n">n</span><span class="p">]))</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="node-annotation">
+<h2><a class="toc-backref" href="#id25">Node annotation</a><a class="headerlink" href="#node-annotation" title="Permalink to this headline">¶</a></h2>
+<p>Every node contains three basic attributes: name
+(<code class="xref py py-attr docutils literal"><span class="pre">TreeNode.name</span></code>), branch length (<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.dist" title="ete3.TreeNode.dist"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.dist</span></code></a>) and
+branch support (<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.support" title="ete3.TreeNode.support"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.support</span></code></a>). These three values are
+encoded in the newick format.  However, any extra data could be linked
+to trees. This is called tree annotation.</p>
+<p>The <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.add_feature" title="ete3.TreeNode.add_feature"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.add_feature()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.add_features" title="ete3.TreeNode.add_features"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.add_features()</span></code></a>
+methods allow to add extra attributes (features) to any node.  The
+first allows to add one one feature at a time, while the second can be
+used to add many features with the same call.</p>
+<p>Once extra features are added, you can access their values at any time
+during the analysis of a tree. To do so, you only need to access to
+the <code class="xref py py-attr docutils literal"><span class="pre">TreeNode.feature_name</span></code> attributes.</p>
+<p>Similarly, <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.del_feature" title="ete3.TreeNode.del_feature"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.del_feature()</span></code></a> can be used to delete an
+attribute.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">random</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Creates a tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span> <span class="s">'((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:0.5,(J:1.3, (F:1.2, D:0.1):0.5):0.5):0.5):0.5);'</span> <span class="p">)</span>
+
+<span class="c"># Let's locate some nodes using the get common ancestor method</span>
+<span class="n">ancestor</span><span class="o">=</span><span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"J"</span><span class="p">,</span> <span class="s">"F"</span><span class="p">,</span> <span class="s">"C"</span><span class="p">)</span>
+<span class="c"># the search_nodes method (I take only the first match )</span>
+<span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"A"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="c"># and using the shorcut to finding nodes by name</span>
+<span class="n">C</span><span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"C"</span>
+<span class="n">H</span><span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"H"</span>
+<span class="n">I</span><span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"I"</span>
+
+<span class="c"># Let's now add some custom features to our nodes. add_features can be</span>
+<span class="c"># used to add many features at the same time.</span>
+<span class="n">C</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span>
+<span class="n">A</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
+<span class="n">ancestor</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">nodetype</span><span class="o">=</span><span class="s">"internal"</span><span class="p">)</span>
+
+<span class="c"># Or, using the oneliner notation</span>
+<span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"H"</span><span class="p">)</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="mf">0.2</span><span class="p">)</span>
+
+<span class="c"># But we can automatize this. (note that i will overwrite the previous</span>
+<span class="c"># values)</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+   <span class="k">if</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="s">"AEIOU"</span><span class="p">:</span>
+      <span class="n">leaf</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">())</span>
+   <span class="k">else</span><span class="p">:</span>
+      <span class="n">leaf</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">())</span>
+
+<span class="c"># Now we use these information to analyze the tree.</span>
+<span class="k">print</span> <span class="s">"This tree has"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">True</span><span class="p">)),</span> <span class="s">"vowel nodes"</span>
+<span class="k">print</span> <span class="s">"Which are"</span><span class="p">,</span> <span class="p">[</span><span class="n">leaf</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">iter_leaves</span><span class="p">()</span> <span class="k">if</span> <span class="n">leaf</span><span class="o">.</span><span class="n">vowel</s [...]
+
+<span class="c"># But features may refer to any kind of data, not only simple</span>
+<span class="c"># values. For example, we can calculate some values and store them</span>
+<span class="c"># within nodes.</span>
+<span class="c">#</span>
+<span class="c"># Let's detect leaf nodes under "ancestor" with distance higher thatn</span>
+<span class="c"># 1. Note that I'm traversing a subtree which starts from "ancestor"</span>
+<span class="n">matches</span> <span class="o">=</span> <span class="p">[</span><span class="n">leaf</span> <span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> <span class="k">if</span> <span class="n">leaf</span><span class="o">.</span><span class="n">dist</span><span class="o">></span><span class="mf">1.0</span><span class="p">]</span>
+
+<span class="c"># And save this pre-computed information into the ancestor node</span>
+<span class="n">ancestor</span><span class="o">.</span><span class="n">add_feature</span><span class="p">(</span><span class="s">"long_branch_nodes"</span><span class="p">,</span> <span class="n">matches</span><span class="p">)</span>
+
+<span class="c"># Prints the precomputed nodes</span>
+<span class="k">print</span> <span class="s">"These are nodes under ancestor with long branches"</span><span class="p">,</span> \
+   <span class="p">[</span><span class="n">n</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">long_branch_nodes</span><span class="p">]</span>
+
+<span class="c"># We can also use the add_feature() method to dynamically add new features.</span>
+<span class="n">label</span> <span class="o">=</span> <span class="nb">raw_input</span><span class="p">(</span><span class="s">"custom label:"</span><span class="p">)</span>
+<span class="n">value</span> <span class="o">=</span> <span class="nb">raw_input</span><span class="p">(</span><span class="s">"custom label value:"</span><span class="p">)</span>
+<span class="n">ancestor</span><span class="o">.</span><span class="n">add_feature</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Ancestor has now the ["</span><span class="p">,</span> <span class="n">label</span><span class="p">,</span> <span class="s">"] attribute with value ["</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="s">"]"</span>
+</pre></div>
+</div>
+<p>Unfortunately, newick format does not support adding extra features to
+a tree.  Because of this drawback, several improved formats haven been
+(or are being) developed to read and write tree based
+information. Some of these new formats are based in a completely new
+standard (<a class="reference internal" href="tutorial_xml.html"><em>Phylogenetic XML standards</em></a>), while others are extensions of the
+original newick format (NHX
+<a class="reference external" href="http://phylosoft.org/NHX/http://phylosoft.org/NHX/">http://phylosoft.org/NHX/http://phylosoft.org/NHX/</a>).</p>
+<p>Currently, ETE
+includes support for the New Hampshire eXtended format (NHX), which
+uses the original newick standard and adds the possibility of saving
+additional date related to each tree node. Here is an example of a
+extended newick representation in which extra information is added to
+an internal node:</p>
+<div class="highlight-python"><div class="highlight"><pre>(A:0.35,(B:0.72,(D:0.60,G:0.12):0.64[&&NHX:conf=0.01:name=INTERNAL]):0.56);
+</pre></div>
+</div>
+<p>As you can notice, extra node features in the NHX format are enclosed
+between brackets. ETE is able to read and write features using such
+format, however, the encoded information is expected to be exportable
+as plain text.</p>
+<p>The NHX format is automatically detected when reading a newick file,
+and the detected node features are added using the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.add_feature" title="ete3.TreeNode.add_feature"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.add_feature()</span></code></a> method.  Consequently, you can access the
+information by using the normal ETE’s feature notation:
+<code class="docutils literal"><span class="pre">node.feature_name</span></code>. Similarly, features added to a tree can
+be included within the normal newick representation using the NHX
+notation. For this, you can call the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.write" title="ete3.TreeNode.write"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.write()</span></code></a> method
+using the <code class="xref py py-attr docutils literal"><span class="pre">features</span></code> argument, which is expected to be a list
+with the features names that you want to include in the newick
+string. Note that all nodes containing the suplied features will be
+exposed into the newick string. Use an empty features list
+(<code class="xref py py-attr docutils literal"><span class="pre">features=[]</span></code>) to include all node’s data into the newick
+string.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">random</span>
+<span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Creates a normal tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((H:0.3,I:0.1):0.5, A:1,(B:0.4,(C:0.5,(J:1.3,(F:1.2, D:0.1):0.5):0.5):0.5):0.5);'</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c"># Let's locate some nodes using the get common ancestor method</span>
+<span class="n">ancestor</span><span class="o">=</span><span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"J"</span><span class="p">,</span> <span class="s">"F"</span><span class="p">,</span> <span class="s">"C"</span><span class="p">)</span>
+<span class="c"># Let's label leaf nodes</span>
+<span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+    <span class="k">if</span> <span class="n">leaf</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="s">"AEIOU"</span><span class="p">:</span>
+      <span class="n">leaf</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">())</span>
+    <span class="k">else</span><span class="p">:</span>
+      <span class="n">leaf</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">vowel</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">confidence</span><span class="o">=</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">())</span>
+
+<span class="c"># Let's detect leaf nodes under "ancestor" with distance higher thatn</span>
+<span class="c"># 1. Note that I'm traversing a subtree which starts from "ancestor"</span>
+<span class="n">matches</span> <span class="o">=</span> <span class="p">[</span><span class="n">leaf</span> <span class="k">for</span> <span class="n">leaf</span> <span class="ow">in</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> <span class="k">if</span> <span class="n">leaf</span><span class="o">.</span><span class="n">dist</span><span class="o">></span><span class="mf">1.0</span><span class="p">]</span>
+
+<span class="c"># And save this pre-computed information into the ancestor node</span>
+<span class="n">ancestor</span><span class="o">.</span><span class="n">add_feature</span><span class="p">(</span><span class="s">"long_branch_nodes"</span><span class="p">,</span> <span class="n">matches</span><span class="p">)</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="s">"NHX notation including vowel and confidence attributes"</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"vowel"</span><span class="p">,</span> <span class="s">"confidence"</span><span class="p">])</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="s">"NHX notation including all node's data"</span>
+<span class="k">print</span>
+
+<span class="c"># Note that when all features are requested, only those with values</span>
+<span class="c"># equal to text-strings or numbers are considered. "long_branch_nodes"</span>
+<span class="c"># is not included into the newick string.</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[])</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="s">"basic newick formats are still available"</span>
+<span class="k">print</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">format</span><span class="o">=</span><span class="mi">9</span><span class="p">,</span> <span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="s">"vowel"</span><span class="p">])</span>
+<span class="c"># You don't need to do anything speciall to read NHX notation. Just</span>
+<span class="c"># specify the newick format and the NHX tags will be automatically</span>
+<span class="c"># detected.</span>
+<span class="n">nw</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">(((ADH2:0.1[&&NHX:S=human:E=1.1.1.1], ADH1:0.11[&&NHX:S=human:E=1.1.1.1])</span>
+<span class="s">:0.05[&&NHX:S=Primates:E=1.1.1.1:D=Y:B=100], ADHY:0.1[&&NHX:S=nematode:</span>
+<span class="s">E=1.1.1.1],ADHX:0.12[&&NHX:S=insect:E=1.1.1.1]):0.1[&&NHX:S=Metazoa:</span>
+<span class="s">E=1.1.1.1:D=N], (ADH4:0.09[&&NHX:S=yeast:E=1.1.1.1],ADH3:0.13[&&NHX:S=yeast:</span>
+<span class="s">E=1.1.1.1], ADH2:0.12[&&NHX:S=yeast:E=1.1.1.1],ADH1:0.11[&&NHX:S=yeast:E=1.1.1.1]):0.1</span>
+<span class="s">[&&NHX:S=Fungi])[&&NHX:E=1.1.1.1:D=N];</span>
+<span class="s">"""</span>
+<span class="c"># Loads the NHX example found at http://www.phylosoft.org/NHX/</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="n">nw</span><span class="p">)</span>
+<span class="c"># And access node's attributes.</span>
+<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">t</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span>
+    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="s">"S"</span><span class="p">):</span>
+       <span class="k">print</span> <span class="n">n</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">n</span><span class="o">.</span><span class="n">S</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="comparing-trees">
+<span id="robinson-foulds"></span><span id="sec-modifying-tree-topology"></span><h2><a class="toc-backref" href="#id26">Comparing Trees</a><a class="headerlink" href="#comparing-trees" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="calculate-distances-between-trees">
+<h3><a class="toc-backref" href="#id27">Calculate distances between trees</a><a class="headerlink" href="#calculate-distances-between-trees" title="Permalink to this headline">¶</a></h3>
+<p>The <a href="#id1"><span class="problematic" id="id2">:Tree:`compare`</span></a> function allows to calculate distances between two trees
+based on any node feature (i.e. name, species, other tags) using robinson-foulds
+and edge compatibility distances. It automatically handles differences in tree
+sizes, shared nodes and duplicated feature names.</p>
+<ul class="simple">
+<li>result[“rf”] = robinson-foulds distance between the two trees. (average of
+robinson-foulds distances if target tree contained duplication and was split
+in several subtrees)</li>
+<li>result[“max_rf”] = Maximum robinson-foulds distance expected for this comparison</li>
+<li>result[“norm_rf”] = normalized robinson-foulds distance (from 0 to 1)</li>
+<li>result[“effective_tree_size”] = the size of the compared trees, which are pruned to the common shared nodes.</li>
+<li>result[“ref_edges_in_source”] = compatibility score of the target tree with
+respect to the source tree (how many edges in reference are found in the
+source)</li>
+<li>result[“source_edges_in_ref”] = compatibility score of the source tree with
+respect to the reference tree (how many edges in source are found in the
+reference)</li>
+<li>result[“source_subtrees”] = number of subtrees in the source tree (1 if do not contain duplications)</li>
+<li>result[“common_edges”] = a set of common edges between source tree and reference</li>
+<li>result[“source_edges”] = the set of edges found in the source tree</li>
+<li>result[“ref_edges”] = the set of edges found in the reference tree</li>
+<li>result[“treeko_dist”] = TreeKO speciation distance for comparisons including duplication nodes.</li>
+</ul>
+</div>
+<div class="section" id="robinson-foulds-distance">
+<h3><a class="toc-backref" href="#id28">Robinson-foulds distance</a><a class="headerlink" href="#robinson-foulds-distance" title="Permalink to this headline">¶</a></h3>
+<p>Two tree topologies can be compared using ETE and the Robinson-Foulds
+(RF) metric. The method <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.robinson_foulds" title="ete3.TreeNode.robinson_foulds"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.robinson_foulds()</span></code></a> available for
+any ETE tree node allows to:</p>
+<blockquote>
+<div><ul class="simple">
+<li>compare two tree topologies by their name labels (default) or any
+other annotated feature in the tree.</li>
+<li>compare topologies of different size and content. When two trees
+contain a different set of labels, only shared leaves will be used.</li>
+<li>examine size and content of matching and missing partitions. Since
+the method return the list of partitions found in both trees,
+details about matching partitions can be obtained easily.</li>
+</ul>
+</div></blockquote>
+<p>In the following example, several of above mentioned features are
+shown:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((a,b),c), ((e, f), g));'</span><span class="p">)</span>
+<span class="n">t2</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((a,c),b), ((e, f), g));'</span><span class="p">)</span>
+<span class="n">rf</span><span class="p">,</span> <span class="n">max_rf</span><span class="p">,</span> <span class="n">common_leaves</span><span class="p">,</span> <span class="n">parts_t1</span><span class="p">,</span> <span class="n">parts_t2</span> <span class="o">=</span> <span class="n">t1</span><span class="o">.</span><span class="n">robinson_foulds</span><span class="p">(</span><span class="n">t2</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t1</span><span class="p">,</span> <span class="n">t2</span>
+<span class="k">print</span> <span class="s">"RF distance is </span><span class="si">%s</span><span class="s"> over a total of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span><span class="p">(</span><span class="n">rf</span><span class="p">,</span> <span class="n">max_rf</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Partitions in tree2 that were not found in tree1:"</span><span class="p">,</span> <span class="n">parts_t1</span> <span class="o">-</span> <span class="n">parts_t2</span>
+<span class="k">print</span> <span class="s">"Partitions in tree1 that were not found in tree2:"</span><span class="p">,</span> <span class="n">parts_t2</span> <span class="o">-</span> <span class="n">parts_t1</span>
+
+<span class="c"># We can also compare trees sharing only part of their labels</span>
+
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((a,b),c), ((e, f), g));'</span><span class="p">)</span>
+<span class="n">t2</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((a,c),b), (g, H));'</span><span class="p">)</span>
+<span class="n">rf</span><span class="p">,</span> <span class="n">max_rf</span><span class="p">,</span> <span class="n">common_leaves</span><span class="p">,</span> <span class="n">parts_t1</span><span class="p">,</span> <span class="n">parts_t2</span> <span class="o">=</span> <span class="n">t1</span><span class="o">.</span><span class="n">robinson_foulds</span><span class="p">(</span><span class="n">t2</span><span class="p">)</span>
+
+<span class="k">print</span> <span class="n">t1</span><span class="p">,</span> <span class="n">t2</span>
+<span class="k">print</span> <span class="s">"Same distance holds even for partially overlapping trees"</span>
+<span class="k">print</span> <span class="s">"RF distance is </span><span class="si">%s</span><span class="s"> over a total of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span><span class="p">(</span><span class="n">rf</span><span class="p">,</span> <span class="n">max_rf</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Partitions in tree2 that were not found in tree1:"</span><span class="p">,</span> <span class="n">parts_t1</span> <span class="o">-</span> <span class="n">parts_t2</span>
+<span class="k">print</span> <span class="s">"Partitions in tree1 that were not found in tree2:"</span><span class="p">,</span> <span class="n">parts_t2</span> <span class="o">-</span> <span class="n">parts_t1</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="modifying-tree-topology">
+<h2><a class="toc-backref" href="#id29">Modifying Tree Topology</a><a class="headerlink" href="#modifying-tree-topology" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="creating-trees-from-scratch">
+<h3><a class="toc-backref" href="#id30">Creating Trees from Scratch</a><a class="headerlink" href="#creating-trees-from-scratch" title="Permalink to this headline">¶</a></h3>
+<p>If no arguments are passed to the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode" title="ete3.TreeNode"><code class="xref py py-class docutils literal"><span class="pre">TreeNode</span></code></a> class constructor,
+an empty tree node will be returned. Such an orphan node can be used
+to populate a tree from scratch. For this, the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.up" title="ete3.TreeNode.up"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.up</span></code></a>,
+and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.children" title="ete3.TreeNode.children"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.children</span></code></a> attributes should never be used (unless
+it is strictly necessary). Instead, several methods exist to
+manipulate the topology of a tree:</p>
+<table border="1" class="longtable docutils">
+<colgroup>
+<col width="10%" />
+<col width="90%" />
+</colgroup>
+<tbody valign="top">
+</tbody>
+</table>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span> <span class="c"># Creates an empty tree</span>
+<span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"A"</span><span class="p">)</span> <span class="c"># Adds a new child to the current tree root</span>
+                           <span class="c"># and returns it</span>
+<span class="n">B</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"B"</span><span class="p">)</span> <span class="c"># Adds a second child to the current tree</span>
+                           <span class="c"># root and returns it</span>
+<span class="n">C</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"C"</span><span class="p">)</span> <span class="c"># Adds a new child to one of the branches</span>
+<span class="n">D</span> <span class="o">=</span> <span class="n">C</span><span class="o">.</span><span class="n">add_sister</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span> <span class="c"># Adds a second child to same branch as</span>
+                             <span class="c"># before, but using a sister as the starting</span>
+                             <span class="c"># point</span>
+<span class="n">R</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"R"</span><span class="p">)</span> <span class="c"># Adds a third child to the</span>
+                           <span class="c"># branch. Multifurcations are supported</span>
+<span class="c"># Next, I add 6 random leaves to the R branch names_library is an</span>
+<span class="c"># optional argument. If no names are provided, they will be generated</span>
+<span class="c"># randomly.</span>
+<span class="n">R</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">names_library</span><span class="o">=</span><span class="p">[</span><span class="s">"r1"</span><span class="p">,</span><span class="s">"r2"</span><span class="p">,</span><span class="s">"r3"</span><span class="p">,</span><span class="s">"r4"</span><span class="p">,</span><span class [...]
+<span class="c"># Prints the tree topology</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                     /-C</span>
+<span class="c">#                    |</span>
+<span class="c">#                    |--D</span>
+<span class="c">#                    |</span>
+<span class="c">#           /--------|                              /-r4</span>
+<span class="c">#          |         |                    /--------|</span>
+<span class="c">#          |         |          /--------|          \-r3</span>
+<span class="c">#          |         |         |         |</span>
+<span class="c">#          |         |         |          \-r5</span>
+<span class="c">#          |          \--------|</span>
+<span class="c"># ---------|                   |                    /-r6</span>
+<span class="c">#          |                   |          /--------|</span>
+<span class="c">#          |                    \--------|          \-r2</span>
+<span class="c">#          |                             |</span>
+<span class="c">#          |                              \-r1</span>
+<span class="c">#          |</span>
+<span class="c">#           \-B</span>
+<span class="c"># a common use of the populate method is to quickly create example</span>
+<span class="c"># trees from scratch. Here we create a random tree with 100 leaves.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">()</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="deleting-eliminating-and-removing-detaching-nodes">
+<h3><a class="toc-backref" href="#id31">Deleting (eliminating) and Removing (detaching) nodes</a><a class="headerlink" href="#deleting-eliminating-and-removing-detaching-nodes" title="Permalink to this headline">¶</a></h3>
+<p>As currently implemented, there is a difference between detaching and
+deleting a node. The former disconnects a complete partition from the
+tree structure, so all its descendants are also disconnected from the
+tree. There are two methods to perform this action:
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.remove_child" title="ete3.TreeNode.remove_child"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.remove_child()</span></code></a> and <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.detach" title="ete3.TreeNode.detach"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.detach()</span></code></a>. In
+contrast, deleting a node means eliminating such node without
+affecting its descendants. Children from the deleted node are
+automatically connected to the next possible parent. This is better
+understood with the following example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Loads a tree. Note that we use format 1 to read internal node names</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((((H,K)D,(F,I)G)B,E)A,((L,(N,Q)O)J,(P,S)M)C);'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"original tree looks like this:"</span>
+<span class="c"># This is an alternative way of using "print t". Thus we have a bit</span>
+<span class="c"># more of control on how tree is printed. Here i print the tree</span>
+<span class="c"># showing internal node names</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">show_internal</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="c">#</span>
+<span class="c">#                                        /-H</span>
+<span class="c">#                              /D-------|</span>
+<span class="c">#                             |          \-K</span>
+<span class="c">#                    /B-------|</span>
+<span class="c">#                   |         |          /-F</span>
+<span class="c">#          /A-------|          \G-------|</span>
+<span class="c">#         |         |                    \-I</span>
+<span class="c">#         |         |</span>
+<span class="c">#         |          \-E</span>
+<span class="c">#-NoName--|</span>
+<span class="c">#         |                    /-L</span>
+<span class="c">#         |          /J-------|</span>
+<span class="c">#         |         |         |          /-N</span>
+<span class="c">#         |         |          \O-------|</span>
+<span class="c">#          \C-------|                    \-Q</span>
+<span class="c">#                   |</span>
+<span class="c">#                   |          /-P</span>
+<span class="c">#                    \M-------|</span>
+<span class="c">#                              \-S</span>
+<span class="c"># Get pointers to specific nodes</span>
+<span class="n">G</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"G"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="n">J</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"J"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="n">C</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"C"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="c"># If we remove J from the tree, the whole partition under J node will</span>
+<span class="c"># be detached from the tree and it will be considered an independent</span>
+<span class="c"># tree. We can do the same thing using two approaches: J.detach() or</span>
+<span class="c"># C.remove_child(J)</span>
+<span class="n">removed_node</span> <span class="o">=</span> <span class="n">J</span><span class="o">.</span><span class="n">detach</span><span class="p">()</span> <span class="c"># = C.remove_child(J)</span>
+<span class="c"># if we know print the original tree, we will see how J partition is</span>
+<span class="c"># no longer there.</span>
+<span class="k">print</span> <span class="s">"Tree after REMOVING the node J"</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">show_internal</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="c">#                                        /-H</span>
+<span class="c">#                              /D-------|</span>
+<span class="c">#                             |          \-K</span>
+<span class="c">#                    /B-------|</span>
+<span class="c">#                   |         |          /-F</span>
+<span class="c">#          /A-------|          \G-------|</span>
+<span class="c">#         |         |                    \-I</span>
+<span class="c">#         |         |</span>
+<span class="c">#-NoName--|          \-E</span>
+<span class="c">#         |</span>
+<span class="c">#         |                    /-P</span>
+<span class="c">#          \C------- /M-------|</span>
+<span class="c">#                              \-S</span>
+<span class="c"># however, if we DELETE the node G, only G will be eliminated from the</span>
+<span class="c"># tree, and all its descendants will then hang from the next upper</span>
+<span class="c"># node.</span>
+<span class="n">G</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
+<span class="k">print</span> <span class="s">"Tree after DELETING the node G"</span>
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">show_internal</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="c">#                                        /-H</span>
+<span class="c">#                              /D-------|</span>
+<span class="c">#                             |          \-K</span>
+<span class="c">#                    /B-------|</span>
+<span class="c">#                   |         |--F</span>
+<span class="c">#          /A-------|         |</span>
+<span class="c">#         |         |          \-I</span>
+<span class="c">#         |         |</span>
+<span class="c">#-NoName--|          \-E</span>
+<span class="c">#         |</span>
+<span class="c">#         |                    /-P</span>
+<span class="c">#          \C------- /M-------|</span>
+<span class="c">#                              \-S</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="pruning-trees">
+<h2><a class="toc-backref" href="#id32">Pruning trees</a><a class="headerlink" href="#pruning-trees" title="Permalink to this headline">¶</a></h2>
+<p>Pruning a tree means to obtain the topology that connects a certain
+group of items by removing the unnecessary edges. To facilitate this
+task, ETE implements the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.prune" title="ete3.TreeNode.prune"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.prune()</span></code></a> method, which can be
+used by providing the list of terminal and/or internal nodes that must
+be kept in the tree.</p>
+<p>From version 2.2, this function includes also the
+<cite>preserve_branch_length</cite> flag, which allows to remove nodes from a
+tree while keeping original distances among remaining nodes.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Let's create simple tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((((H,K),(F,I)G),E),((L,(N,Q)O),(P,S)));'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Original tree looks like this:"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#                                        /-H</span>
+<span class="c">#                              /--------|</span>
+<span class="c">#                             |          \-K</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#                   |         |          /-F</span>
+<span class="c">#          /--------|          \--------|</span>
+<span class="c">#         |         |                    \-I</span>
+<span class="c">#         |         |</span>
+<span class="c">#         |          \-E</span>
+<span class="c">#---------|</span>
+<span class="c">#         |                    /-L</span>
+<span class="c">#         |          /--------|</span>
+<span class="c">#         |         |         |          /-N</span>
+<span class="c">#         |         |          \--------|</span>
+<span class="c">#          \--------|                    \-Q</span>
+<span class="c">#                   |</span>
+<span class="c">#                   |          /-P</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                              \-S</span>
+<span class="c"># Prune the tree in order to keep only some leaf nodes.</span>
+<span class="n">t</span><span class="o">.</span><span class="n">prune</span><span class="p">([</span><span class="s">"H"</span><span class="p">,</span><span class="s">"F"</span><span class="p">,</span><span class="s">"E"</span><span class="p">,</span><span class="s">"Q"</span><span class="p">,</span> <span class="s">"P"</span><span class="p">])</span>
+<span class="k">print</span> <span class="s">"Pruned tree"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#                              /-F</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#          /--------|          \-H</span>
+<span class="c">#         |         |</span>
+<span class="c">#---------|          \-E</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-Q</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                    \-P</span>
+<span class="c"># Let's re-create the same tree again</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="concatenating-trees">
+<h2><a class="toc-backref" href="#id33">Concatenating trees</a><a class="headerlink" href="#concatenating-trees" title="Permalink to this headline">¶</a></h2>
+<p>Given that all tree nodes share the same basic properties, they can be
+connected freely. In fact, any node can add a whole subtree as a
+child, so we can actually <em>cut & paste</em> partitions. To do so, you only
+need to call the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.add_child" title="ete3.TreeNode.add_child"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.add_child()</span></code></a> method using another tree
+node as a first argument. If such a node is the root node of a
+different tree, you will concatenate two structures. But caution!!,
+this kind of operations may result into circular tree structures if
+add an node’s ancestor as a new node’s child. Some basic checks are
+internally performed by the ETE topology related methods, however, a
+fully qualified check of this issue would affect seriously the
+performance of the method. For this reason, users themselves should
+take care about not creating circular structures by mistake.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Loads 3 independent trees</span>
+<span class="n">t1</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(A,(B,C));'</span><span class="p">)</span>
+<span class="n">t2</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'((D,E), (F,G));'</span><span class="p">)</span>
+<span class="n">t3</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(H, ((I,J), (K,L)));'</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Tree1:"</span><span class="p">,</span> <span class="n">t1</span>
+<span class="c">#            /-A</span>
+<span class="c">#  ---------|</span>
+<span class="c">#           |          /-B</span>
+<span class="c">#            \--------|</span>
+<span class="c">#                      \-C</span>
+<span class="k">print</span> <span class="s">"Tree2:"</span><span class="p">,</span> <span class="n">t2</span>
+<span class="c">#                      /-D</span>
+<span class="c">#            /--------|</span>
+<span class="c">#           |          \-E</span>
+<span class="c">#  ---------|</span>
+<span class="c">#           |          /-F</span>
+<span class="c">#            \--------|</span>
+<span class="c">#                      \-G</span>
+<span class="k">print</span> <span class="s">"Tree3:"</span><span class="p">,</span> <span class="n">t3</span>
+<span class="c">#            /-H</span>
+<span class="c">#           |</span>
+<span class="c">#  ---------|                    /-I</span>
+<span class="c">#           |          /--------|</span>
+<span class="c">#           |         |          \-J</span>
+<span class="c">#            \--------|</span>
+<span class="c">#                     |          /-K</span>
+<span class="c">#                      \--------|</span>
+<span class="c">#                                \-L</span>
+<span class="c"># Locates a terminal node in the first tree</span>
+<span class="n">A</span> <span class="o">=</span> <span class="n">t1</span><span class="o">.</span><span class="n">search_nodes</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">'A'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+<span class="c"># and adds the two other trees as children.</span>
+<span class="n">A</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">t2</span><span class="p">)</span>
+<span class="n">A</span><span class="o">.</span><span class="n">add_child</span><span class="p">(</span><span class="n">t3</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Resulting concatenated tree:"</span><span class="p">,</span> <span class="n">t1</span>
+<span class="c">#                                          /-D</span>
+<span class="c">#                                /--------|</span>
+<span class="c">#                               |          \-E</span>
+<span class="c">#                      /--------|</span>
+<span class="c">#                     |         |          /-F</span>
+<span class="c">#                     |          \--------|</span>
+<span class="c">#            /--------|                    \-G</span>
+<span class="c">#           |         |</span>
+<span class="c">#           |         |          /-H</span>
+<span class="c">#           |         |         |</span>
+<span class="c">#           |          \--------|                    /-I</span>
+<span class="c">#           |                   |          /--------|</span>
+<span class="c">#  ---------|                   |         |          \-J</span>
+<span class="c">#           |                    \--------|</span>
+<span class="c">#           |                             |          /-K</span>
+<span class="c">#           |                              \--------|</span>
+<span class="c">#           |                                        \-L</span>
+<span class="c">#           |</span>
+<span class="c">#           |          /-B</span>
+<span class="c">#            \--------|</span>
+<span class="c">#                      \-C</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="copying-duplicating-trees">
+<span id="copying-trees"></span><span id="sec-tree-rooting"></span><h2><a class="toc-backref" href="#id34">Copying (duplicating) trees</a><a class="headerlink" href="#copying-duplicating-trees" title="Permalink to this headline">¶</a></h2>
+<p>ETE provides several strategies to clone tree structures. The method
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.copy" title="ete3.TreeNode.copy"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.copy()</span></code></a> can be used to produce a new independent tree
+object with the exact topology and features as the original. However,
+as trees may involve many intricate levels of branches and nested
+features, 4 different methods are available to create a tree copy:</p>
+<blockquote>
+<div><ul class="simple">
+<li>“newick”: Tree topology, node names, branch lengths and branch
+support values will be copied as represented in the newick string
+This method is based on newick format serialization works very fast
+even for large trees.</li>
+<li>“newick-extended”: Tree topology and all node features will be
+copied based on the extended newick format representation. Only
+node features will be copied, thus excluding other node
+attributes. As this method is also based on newick serialisation,
+features will be converted into text strings when making the
+copy. Performance will depend on the tree size and the number and
+type of features being copied.</li>
+<li>“cpickle”: This is the default method. The whole node structure and
+its content will be cloned based on the cPickle object
+serialization python approach.  This method is slower, but
+recommended for full tree copying.</li>
+<li>“deepcopy”: The whole node structure and its content is copied
+based on the standard “copy” Python functionality. This is the
+slowest method, but it allows to copy very complex objects even
+when attributes point to lambda functions.</li>
+</ul>
+</div></blockquote>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"((A, B)Internal_1:0.7, (C, D)Internal_2:0.5)root:1.3;"</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+<span class="c"># we add a custom annotation to the node named A</span>
+<span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"A"</span><span class="p">)</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s">"custom Value"</span><span class="p">)</span>
+<span class="c"># we add a complex feature to the A node, consisting of a list of lists</span>
+<span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"A"</span><span class="p">)</span><span class="o">.</span><span class="n">add_features</span><span class="p">(</span><span class="nb">complex</span><span class="o">=</span><span class="p">[[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="mi">3 [...]
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">,</span> <span class="s">"label"</span><span class="p">,</span> <span class="s">"complex"</span><span class="p">])</span>
+
+<span class="c">#                         /-A, 0.0, custom Value, [[0, 1], [2, 3], [1, 11], [1, 0]]</span>
+<span class="c">#          /Internal_1, 0.7</span>
+<span class="c">#         |               \-B, 0.0</span>
+<span class="c"># -root, 1.3</span>
+<span class="c">#         |               /-C, 0.0</span>
+<span class="c">#          \Internal_2, 0.5</span>
+<span class="c">#                         \-D, 0.0</span>
+
+<span class="c"># Newick copy will loose custom node annotations, complex features,</span>
+<span class="c"># but not names and branch values</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="s">"newick"</span><span class="p">)</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">,</span> <span clas [...]
+
+<span class="c">#                           /-A, 0.0</span>
+<span class="c">#            /Internal_1, 0.7</span>
+<span class="c">#           |               \-B, 0.0</span>
+<span class="c"># -NoName, 0.0</span>
+<span class="c">#           |               /-C, 0.0</span>
+<span class="c">#            \Internal_2, 0.5</span>
+<span class="c">#                           \-D, 0.0</span>
+
+<span class="c"># Extended newick copy will transfer custom annotations as text</span>
+<span class="c"># strings, so complex features are lost.</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="s">"newick-extended"</span><span class="p">)</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">,</span> < [...]
+
+<span class="c">#                              /-A, 0.0, custom Value, __0_ 1__ _2_ 3__ _1_ 11__ _1_ 0__</span>
+<span class="c">#            /Internal_1, 0.7</span>
+<span class="c">#           |               \-B, 0.0</span>
+<span class="c"># -NoName, 0.0</span>
+<span class="c">#           |               /-C, 0.0</span>
+<span class="c">#            \Internal_2, 0.5</span>
+<span class="c">#                           \-D, 0.0</span>
+
+<span class="c"># The default pickle method will produce a exact clone of the</span>
+<span class="c"># original tree, where features are duplicated keeping their</span>
+<span class="c"># python data type.</span>
+
+<span class="k">print</span> <span class="n">t</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">get_ascii</span><span class="p">(</span><span class="n">attributes</span><span class="o">=</span><span class="p">[</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"dist"</span><span class="p">,</span> <span class="s">"label"</span><span class="p">,</span> <span cla [...]
+<span class="k">print</span> <span class="s">"first element in complex feature:"</span><span class="p">,</span> <span class="p">(</span><span class="n">t</span> <span class="o">&</span> <span class="s">"A"</span><span class="p">)</span><span class="o">.</span><span class="n">complex</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+
+<span class="c">#                         /-A, 0.0, custom Value, [[0, 1], [2, 3], [1, 11], [1, 0]]</span>
+<span class="c">#          /Internal_1, 0.7</span>
+<span class="c">#         |               \-B, 0.0</span>
+<span class="c"># -root, 1.3</span>
+<span class="c">#         |               /-C, 0.0</span>
+<span class="c">#          \Internal_2, 0.5</span>
+<span class="c">#                         \-D, 0.0</span>
+<span class="c"># first element in complex feature: [0, 1]</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="solving-multifurcations">
+<span id="resolve-polytomy"></span><h2><a class="toc-backref" href="#id35">Solving multifurcations</a><a class="headerlink" href="#solving-multifurcations" title="Permalink to this headline">¶</a></h2>
+<p>When a tree contains a polytomy (a node with more than 2 children),
+the method <code class="xref py py-func docutils literal"><span class="pre">resolve_polytomy()</span></code> can be used to convert the node
+into a randomly bifurcated structure in which branch lengths are set
+to 0. This is really not a solution for the polytomy but it allows to
+export the tree as a strictly bifurcated newick structure, which is a
+requirement for some external software.</p>
+<p>The method can be used on a very specific node while keeping the rest
+of the tree intact by disabling the <code class="xref py py-attr docutils literal"><span class="pre">recursive</span></code> flag.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">"(( (a, b, c), (d, e, f, g)), (f, i, h));"</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#             /-a</span>
+<span class="c">#            |</span>
+<span class="c">#         /--|--b</span>
+<span class="c">#        |   |</span>
+<span class="c">#        |    \-c</span>
+<span class="c">#     /--|</span>
+<span class="c">#    |   |    /-d</span>
+<span class="c">#    |   |   | y</span>
+<span class="c">#    |   |   |--e</span>
+<span class="c">#    |    \--|</span>
+<span class="c"># ---|       |--f</span>
+<span class="c">#    |       |</span>
+<span class="c">#    |        \-g</span>
+<span class="c">#    |</span>
+<span class="c">#    |    /-f</span>
+<span class="c">#    |   |</span>
+<span class="c">#     \--|--i</span>
+<span class="c">#        |</span>
+<span class="c">#         \-h</span>
+
+
+<span class="n">polynode</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
+<span class="n">polynode</span><span class="o">.</span><span class="n">resolve_polytomy</span><span class="p">(</span><span class="n">recursive</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#                 /-b</span>
+<span class="c">#             /--|</span>
+<span class="c">#         /--|    \-c</span>
+<span class="c">#        |   |</span>
+<span class="c">#        |    \-a</span>
+<span class="c">#     /--|</span>
+<span class="c">#    |   |    /-d</span>
+<span class="c">#    |   |   |</span>
+<span class="c">#    |   |   |--e</span>
+<span class="c">#    |    \--|</span>
+<span class="c"># ---|       |--f</span>
+<span class="c">#    |       |</span>
+<span class="c">#    |        \-g</span>
+<span class="c">#    |</span>
+<span class="c">#    |    /-f</span>
+<span class="c">#    |   |</span>
+<span class="c">#     \--|--i</span>
+<span class="c">#        |</span>
+<span class="c">#         \-h</span>
+
+
+<span class="n">t</span><span class="o">.</span><span class="n">resolve_polytomy</span><span class="p">(</span><span class="n">recursive</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+
+<span class="c">#</span>
+<span class="c">#                 /-b</span>
+<span class="c">#             /--|</span>
+<span class="c">#         /--|    \-c</span>
+<span class="c">#        |   |</span>
+<span class="c">#        |    \-a</span>
+<span class="c">#        |</span>
+<span class="c">#     /--|            /-f</span>
+<span class="c">#    |   |        /--|</span>
+<span class="c">#    |   |    /--|    \-g</span>
+<span class="c">#    |   |   |   |</span>
+<span class="c">#    |    \--|    \-e</span>
+<span class="c"># ---|       |</span>
+<span class="c">#    |        \-d</span>
+<span class="c">#    |</span>
+<span class="c">#    |        /-i</span>
+<span class="c">#    |    /--|</span>
+<span class="c">#     \--|    \-h</span>
+<span class="c">#        |</span>
+<span class="c">#         \-f</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="tree-rooting">
+<h2><a class="toc-backref" href="#id36">Tree Rooting</a><a class="headerlink" href="#tree-rooting" title="Permalink to this headline">¶</a></h2>
+<p>Tree rooting is understood as the technique by with a given tree is
+conceptually polarized from more basal to more terminal nodes. In
+phylogenetics, for instance, this a crucial step prior to the
+interpretation of trees, since it will determine the evolutionary
+relationships among the species involved. The concept of rooted trees
+is different than just having a root node, which is always necessary
+to handle a tree data structure. Usually, the way in which a tree is
+differentiated between rooted and unrooted, is by counting the number
+of branches of the current root node. Thus, if the root node has more
+than two child branches, the tree is considered unrooted. By contrast,
+when only two main branches exist under the root node, the tree is
+considered rooted.</p>
+<p>Having an unrooted tree means that any internal branch within the tree
+could be regarded as the root node, and there is no conceptual reason
+to place the root node where it is placed at the moment. Therefore, in
+an unrooted tree, there is no information about which internal nodes
+are more basal than others. By setting the root node between a given
+edge/branch of the tree structure the tree is polarized, meaning that
+the two branches under the root node are the most basal nodes. In
+practice, this is usually done by setting an <strong>outgroup</strong> <strong>node</strong>,
+which would represent one of these main root branches. The second one
+will be, obviously, the brother node. When you set an outgroup on
+unrooted trees, the multifurcations at the current root node are
+solved.</p>
+<p>In order to root an unrooted tree or re-root a tree structure, ETE
+implements the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.set_outgroup" title="ete3.TreeNode.set_outgroup"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.set_outgroup()</span></code></a> method, which is present
+in any tree node instance.  Similarly, the <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.unroot" title="ete3.TreeNode.unroot"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.unroot()</span></code></a>
+method can be used to perform the opposite action.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># Load an unrooted tree. Note that three branches hang from the root</span>
+<span class="c"># node. This usually means that no information is available about</span>
+<span class="c"># which of nodes is more basal.</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(A,(H,F),(B,(E,D)));'</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Unrooted tree"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#          /-A</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-H</span>
+<span class="c">#---------|---------|</span>
+<span class="c">#         |          \-F</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-B</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                   |          /-E</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                              \-D</span>
+<span class="c">#</span>
+<span class="c"># Let's define that the ancestor of E and D as the tree outgroup.  Of</span>
+<span class="c"># course, the definition of an outgroup will depend on user criteria.</span>
+<span class="n">ancestor</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"E"</span><span class="p">,</span><span class="s">"D"</span><span class="p">)</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_outgroup</span><span class="p">(</span><span class="n">ancestor</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Tree rooteda at E and D's ancestor is more basal that the others."</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#                    /-B</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |         |          /-A</span>
+<span class="c">#         |          \--------|</span>
+<span class="c">#         |                   |          /-H</span>
+<span class="c">#---------|                    \--------|</span>
+<span class="c">#         |                              \-F</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-E</span>
+<span class="c">#          \--------|</span>
+<span class="c">#                    \-D</span>
+<span class="c">#</span>
+<span class="c"># Note that setting a different outgroup, a different interpretation</span>
+<span class="c"># of the tree is possible</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_outgroup</span><span class="p">(</span> <span class="n">t</span><span class="o">&</span><span class="s">"A"</span> <span class="p">)</span>
+<span class="k">print</span> <span class="s">"Tree rooted at a terminal node"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                              /-H</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#                   |          \-F</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |         |          /-B</span>
+<span class="c">#         |          \--------|</span>
+<span class="c">#---------|                   |          /-E</span>
+<span class="c">#         |                    \--------|</span>
+<span class="c">#         |                              \-D</span>
+<span class="c">#         |</span>
+<span class="c">#          \-A</span>
+</pre></div>
+</div>
+<p>Note that although <strong>rooting</strong> is usually regarded as a whole-tree
+operation, ETE allows to root subparts of the tree without affecting
+to its parent tree structure.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s">'(((A,C),((H,F),(L,M))),((B,(J,K)),(E,D)));'</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Original tree:"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                              /-A</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#                   |          \-C</span>
+<span class="c">#                   |</span>
+<span class="c">#          /--------|                    /-H</span>
+<span class="c">#         |         |          /--------|</span>
+<span class="c">#         |         |         |          \-F</span>
+<span class="c">#         |          \--------|</span>
+<span class="c">#         |                   |          /-L</span>
+<span class="c">#         |                    \--------|</span>
+<span class="c">#---------|                              \-M</span>
+<span class="c">#         |</span>
+<span class="c">#         |                    /-B</span>
+<span class="c">#         |          /--------|</span>
+<span class="c">#         |         |         |          /-J</span>
+<span class="c">#         |         |          \--------|</span>
+<span class="c">#          \--------|                    \-K</span>
+<span class="c">#                   |</span>
+<span class="c">#                   |          /-E</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                              \-D</span>
+<span class="c">#</span>
+<span class="c"># Each main branch of the tree is independently rooted.</span>
+<span class="n">node1</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"A"</span><span class="p">,</span><span class="s">"H"</span><span class="p">)</span>
+<span class="n">node2</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_common_ancestor</span><span class="p">(</span><span class="s">"B"</span><span class="p">,</span><span class="s">"D"</span><span class="p">)</span>
+<span class="n">node1</span><span class="o">.</span><span class="n">set_outgroup</span><span class="p">(</span><span class="s">"H"</span><span class="p">)</span>
+<span class="n">node2</span><span class="o">.</span><span class="n">set_outgroup</span><span class="p">(</span><span class="s">"E"</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"Tree after rooting each node independently:"</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#                              /-F</span>
+<span class="c">#                             |</span>
+<span class="c">#                    /--------|                    /-L</span>
+<span class="c">#                   |         |          /--------|</span>
+<span class="c">#                   |         |         |          \-M</span>
+<span class="c">#                   |          \--------|</span>
+<span class="c">#          /--------|                   |          /-A</span>
+<span class="c">#         |         |                    \--------|</span>
+<span class="c">#         |         |                              \-C</span>
+<span class="c">#         |         |</span>
+<span class="c">#         |          \-H</span>
+<span class="c">#---------|</span>
+<span class="c">#         |                    /-D</span>
+<span class="c">#         |          /--------|</span>
+<span class="c">#         |         |         |          /-B</span>
+<span class="c">#         |         |          \--------|</span>
+<span class="c">#          \--------|                   |          /-J</span>
+<span class="c">#                   |                    \--------|</span>
+<span class="c">#                   |                              \-K</span>
+<span class="c">#                   |</span>
+<span class="c">#                    \-E</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="working-with-branch-distances">
+<h2><a class="toc-backref" href="#id37">Working with branch distances</a><a class="headerlink" href="#working-with-branch-distances" title="Permalink to this headline">¶</a></h2>
+<p>The branch length between one node an its parent is encoded as the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.dist" title="ete3.TreeNode.dist"><code class="xref py py-attr docutils literal"><span class="pre">TreeNode.dist</span></code></a> attribute. Together with tree topology, branch
+lengths define the relationships among nodes.</p>
+<div class="section" id="getting-distances-between-nodes">
+<h3><a class="toc-backref" href="#id38">Getting distances between nodes</a><a class="headerlink" href="#getting-distances-between-nodes" title="Permalink to this headline">¶</a></h3>
+<p>The <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_distance" title="ete3.TreeNode.get_distance"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_distance()</span></code></a> method can be used to calculate the
+distance between two connected nodes. There are two ways of using this
+method: a) by querying the distance between two descendant nodes (two
+nodes are passed as arguments) b) by querying the distance between the
+current node and any other relative node (parental or descendant).</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+
+<span class="c"># Loads a tree with branch lenght information. Note that if no</span>
+<span class="c"># distance info is provided in the newick, it will be initialized with</span>
+<span class="c"># the default dist value = 1.0</span>
+<span class="n">nw</span> <span class="o">=</span> <span class="s">"""(((A:0.1, B:0.01):0.001, C:0.0001):1.0,</span>
+<span class="s">(((((D:0.00001,I:0):0,F:0):0,G:0):0,H:0):0,</span>
+<span class="s">E:0.000001):0.0000001):2.0;"""</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="n">nw</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                              /-A</span>
+<span class="c">#                    /--------|</span>
+<span class="c">#          /--------|          \-B</span>
+<span class="c">#         |         |</span>
+<span class="c">#         |          \-C</span>
+<span class="c">#         |</span>
+<span class="c">#         |                                                  /-D</span>
+<span class="c">#         |                                        /--------|</span>
+<span class="c">#---------|                              /--------|          \-I</span>
+<span class="c">#         |                             |         |</span>
+<span class="c">#         |                    /--------|          \-F</span>
+<span class="c">#         |                   |         |</span>
+<span class="c">#         |          /--------|          \-G</span>
+<span class="c">#         |         |         |</span>
+<span class="c">#          \--------|          \-H</span>
+<span class="c">#                   |</span>
+<span class="c">#                    \-E</span>
+<span class="c">#</span>
+<span class="c"># Locate some nodes</span>
+<span class="n">A</span> <span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"A"</span>
+<span class="n">C</span> <span class="o">=</span> <span class="n">t</span><span class="o">&</span><span class="s">"C"</span>
+<span class="c"># Calculate distance from current node</span>
+<span class="k">print</span> <span class="s">"The distance between A and C is"</span><span class="p">,</span>  <span class="n">A</span><span class="o">.</span><span class="n">get_distance</span><span class="p">(</span><span class="s">"C"</span><span class="p">)</span>
+<span class="c"># Calculate distance between two descendants of current node</span>
+<span class="k">print</span> <span class="s">"The distance between A and C is"</span><span class="p">,</span>  <span class="n">t</span><span class="o">.</span><span class="n">get_distance</span><span class="p">(</span><span class="s">"A"</span><span class="p">,</span><span class="s">"C"</span><span class="p">)</span>
+<span class="c"># Calculate the toplogical distance (number of nodes in between)</span>
+<span class="k">print</span> <span class="s">"The number of nodes between A and D is "</span><span class="p">,</span>  \
+    <span class="n">t</span><span class="o">.</span><span class="n">get_distance</span><span class="p">(</span><span class="s">"A"</span><span class="p">,</span><span class="s">"D"</span><span class="p">,</span> <span class="n">topology_only</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Additionally to this, ETE incorporates two more methods to calculate
+the most distant node from a given point in a tree. You can use the
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_farthest_node" title="ete3.TreeNode.get_farthest_node"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_farthest_node()</span></code></a> method to retrieve the most distant
+point from a node within the whole tree structure. Alternatively,
+<a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_farthest_leaf" title="ete3.TreeNode.get_farthest_leaf"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_farthest_leaf()</span></code></a> will return the most distant
+descendant (always a leaf). If more than one node matches the farthest
+distance, the first occurrence is returned.</p>
+<p>Distance between nodes can also be computed as the number of nodes
+between them (considering all branch lengths equal to 1.0). To do so,
+the <strong>topology_only</strong> argument must be set to <strong>True</strong> for all the
+above mentioned methods.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Calculate the farthest node from E within the whole structure</span>
+<span class="n">farthest</span><span class="p">,</span> <span class="n">dist</span> <span class="o">=</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"E"</span><span class="p">)</span><span class="o">.</span><span class="n">get_farthest_node</span><span class="p">()</span>
+<span class="k">print</span> <span class="s">"The farthest node from E is"</span><span class="p">,</span> <span class="n">farthest</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"with dist="</span><span class="p">,</span> <span class="n">dist</span>
+<span class="c"># Calculate the farthest node from E within the whole structure,</span>
+<span class="c"># regarding the number of nodes in between as distance value</span>
+<span class="c"># Note that the result is differnt.</span>
+<span class="n">farthest</span><span class="p">,</span> <span class="n">dist</span> <span class="o">=</span> <span class="p">(</span><span class="n">t</span><span class="o">&</span><span class="s">"E"</span><span class="p">)</span><span class="o">.</span><span class="n">get_farthest_node</span><span class="p">(</span><span class="n">topology_only</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="k">print</span> <span class="s">"The farthest (topologically) node from E is"</span><span class="p">,</span> \
+    <span class="n">farthest</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"with"</span><span class="p">,</span> <span class="n">dist</span><span class="p">,</span> <span class="s">"nodes in between"</span>
+<span class="c"># Calculate farthest node from an internal node</span>
+<span class="n">farthest</span><span class="p">,</span> <span class="n">dist</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_farthest_node</span><span class="p">()</span>
+<span class="k">print</span> <span class="s">"The farthest node from root is"</span><span class="p">,</span> <span class="n">farthest</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">"with dist="</span><span class="p">,</span> <span class="n">dist</span>
+<span class="c">#</span>
+<span class="c"># The program results in the following information:</span>
+<span class="c">#</span>
+<span class="c"># The distance between A and C is 0.1011</span>
+<span class="c"># The distance between A and C is 0.1011</span>
+<span class="c"># The number of nodes between A and D is  8.0</span>
+<span class="c"># The farthest node from E is A with dist= 1.1010011</span>
+<span class="c"># The farthest (topologically) node from E is I with 5.0 nodes in between</span>
+<span class="c"># The farthest node from root is A with dist= 1.101</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="getting-midpoint-outgroup">
+<span id="sub-getting-midpoint-outgroup"></span><h3><a class="toc-backref" href="#id39">getting midpoint outgroup</a><a class="headerlink" href="#getting-midpoint-outgroup" title="Permalink to this headline">¶</a></h3>
+<p>In order to obtain a balanced rooting of the tree, you can set as the tree
+outgroup that partition which splits the tree in two equally distant clusters
+(using branch lengths). This is called the midpoint outgroup.</p>
+<p>The <a class="reference internal" href="../reference/reference_tree.html#ete3.TreeNode.get_midpoint_outgroup" title="ete3.TreeNode.get_midpoint_outgroup"><code class="xref py py-func docutils literal"><span class="pre">TreeNode.get_midpoint_outgroup()</span></code></a> method will return the
+outgroup partition that splits current node into two balanced branches
+in terms of node distances.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">ete3</span> <span class="kn">import</span> <span class="n">Tree</span>
+<span class="c"># generates a random tree</span>
+<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">();</span>
+<span class="n">t</span><span class="o">.</span><span class="n">populate</span><span class="p">(</span><span class="mi">15</span><span class="p">);</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#</span>
+<span class="c">#</span>
+<span class="c">#                    /-qogjl</span>
+<span class="c">#          /--------|</span>
+<span class="c">#         |          \-vxbgp</span>
+<span class="c">#         |</span>
+<span class="c">#         |          /-xyewk</span>
+<span class="c">#---------|         |</span>
+<span class="c">#         |         |                    /-opben</span>
+<span class="c">#         |         |                   |</span>
+<span class="c">#         |         |          /--------|                    /-xoryn</span>
+<span class="c">#          \--------|         |         |          /--------|</span>
+<span class="c">#                   |         |         |         |         |          /-wdima</span>
+<span class="c">#                   |         |          \--------|          \--------|</span>
+<span class="c">#                   |         |                   |                    \-qxovz</span>
+<span class="c">#                   |         |                   |</span>
+<span class="c">#                   |         |                    \-isngq</span>
+<span class="c">#                    \--------|</span>
+<span class="c">#                             |                    /-neqsc</span>
+<span class="c">#                             |                   |</span>
+<span class="c">#                             |                   |                              /-waxkv</span>
+<span class="c">#                             |          /--------|                    /--------|</span>
+<span class="c">#                             |         |         |          /--------|          \-djeoh</span>
+<span class="c">#                             |         |         |         |         |</span>
+<span class="c">#                             |         |          \--------|          \-exmsn</span>
+<span class="c">#                              \--------|                   |</span>
+<span class="c">#                                       |                   |          /-udspq</span>
+<span class="c">#                                       |                    \--------|</span>
+<span class="c">#                                       |                              \-buxpw</span>
+<span class="c">#                                       |</span>
+<span class="c">#                                        \-rkzwd</span>
+<span class="c"># Calculate the midpoint node</span>
+<span class="n">R</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">get_midpoint_outgroup</span><span class="p">()</span>
+<span class="c"># and set it as tree outgroup</span>
+<span class="n">t</span><span class="o">.</span><span class="n">set_outgroup</span><span class="p">(</span><span class="n">R</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">t</span>
+<span class="c">#                              /-opben</span>
+<span class="c">#                             |</span>
+<span class="c">#                    /--------|                    /-xoryn</span>
+<span class="c">#                   |         |          /--------|</span>
+<span class="c">#                   |         |         |         |          /-wdima</span>
+<span class="c">#                   |          \--------|          \--------|</span>
+<span class="c">#          /--------|                   |                    \-qxovz</span>
+<span class="c">#         |         |                   |</span>
+<span class="c">#         |         |                    \-isngq</span>
+<span class="c">#         |         |</span>
+<span class="c">#         |         |          /-xyewk</span>
+<span class="c">#         |          \--------|</span>
+<span class="c">#         |                   |          /-qogjl</span>
+<span class="c">#         |                    \--------|</span>
+<span class="c">#---------|                              \-vxbgp</span>
+<span class="c">#         |</span>
+<span class="c">#         |                    /-neqsc</span>
+<span class="c">#         |                   |</span>
+<span class="c">#         |                   |                              /-waxkv</span>
+<span class="c">#         |          /--------|                    /--------|</span>
+<span class="c">#         |         |         |          /--------|          \-djeoh</span>
+<span class="c">#         |         |         |         |         |</span>
+<span class="c">#         |         |          \--------|          \-exmsn</span>
+<span class="c">#          \--------|                   |</span>
+<span class="c">#                   |                   |          /-udspq</span>
+<span class="c">#                   |                    \--------|</span>
+<span class="c">#                   |                              \-buxpw</span>
+<span class="c">#                   |</span>
+<span class="c">#                    \-rkzwd</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_drawing.html" class="btn btn-neutral float-right" title="The Programmable Tree Drawing Engine" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="index.html" class="btn btn-neutral" title="The ETE tutorial" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_webplugin.html b/doc/tutorial/tutorial_webplugin.html
new file mode 100644
index 0000000..2b3a073
--- /dev/null
+++ b/doc/tutorial/tutorial_webplugin.html
@@ -0,0 +1,394 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Interactive web tree visualization — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="Testing Evolutionary Hypothesis" href="tutorial_adaptation.html"/>
+        <link rel="prev" title="PhyloXML" href="tutorial_phyloxml.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_xml.html">Phylogenetic XML standards</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Interactive web tree visualization</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#no-x-system-available">NO X system available?</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#installing-a-x-server">Installing a X server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#servers">Servers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#desktops">Desktops</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#configuring-the-web-sever">Configuring the web sever</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#implementation-of-webtreeapplications">Implementation of WebTreeApplications</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Interactive web tree visualization</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_webplugin.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <span class="target" id="module-ete3.webplugin"></span><div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<div class="section" id="interactive-web-tree-visualization">
+<h1>Interactive web tree visualization<a class="headerlink" href="#interactive-web-tree-visualization" title="Permalink to this headline">¶</a></h1>
+<p>Starting at version 2.1, ETE provides a module to interactively
+display trees within web pages. This task is not straightforward, but
+ETE tries to simplify it by providing a basic
+<a class="reference internal" href="../reference/reference_webplugin.html#ete3.WebTreeApplication" title="ete3.WebTreeApplication"><code class="xref py py-class docutils literal"><span class="pre">WebTreeApplication</span></code></a> class that can be imported in your python
+web applications.</p>
+<p><a class="reference internal" href="../reference/reference_webplugin.html#ete3.WebTreeApplication" title="ete3.WebTreeApplication"><code class="xref py py-class docutils literal"><span class="pre">WebTreeApplication</span></code></a> implements a transparent connector between
+ETE’s functionality and web application. For this, a pre-built
+<a class="reference external" href="http://wsgi.org">WSGI</a> application is provided.</p>
+<p>Through this application, you will be able to create custom web
+implementations to visualize and manipulate trees interactively. Some
+examples can be found at the <a class="reference external" href="http://phylomedb.org/?q=search_tree&seqid=Phy00085K5_HUMAN">PhylomeDB tree browser</a> or in
+the <a class="reference external" href="http://etetoolkit.org/treeview">ETE’s online treeviewer</a>.</p>
+<div class="section" id="no-x-system-available">
+<h2>NO X system available?<a class="headerlink" href="#no-x-system-available" title="Permalink to this headline">¶</a></h2>
+<p>Alternatively, a virtual X system such as XVFB <a class="reference external" href="https://github.com/jhcepas/ete/issues/101">has been reported</a> to work in servers without a
+proper X backend. Just install XVFB and preface your ETE commands with xvfb-run.</p>
+<p><code class="docutils literal"><span class="pre">xvfb-run</span> <span class="pre">python</span> <span class="pre">MyETEscript.py</span></code></p>
+</div>
+<div class="section" id="installing-a-x-server">
+<h2>Installing a X server<a class="headerlink" href="#installing-a-x-server" title="Permalink to this headline">¶</a></h2>
+<p>All modern linux desktop installations include a graphical interface
+(called X server). However web servers (in which the ETE plugin is
+expected to run) may not count with a X server.</p>
+</div>
+<div class="section" id="servers">
+<h2>Servers<a class="headerlink" href="#servers" title="Permalink to this headline">¶</a></h2>
+<p>In order to render tree images with ETE, you will need to install, at
+least, a basic X server. Note that the X server does not require a
+desktop interface, such as Gnome or KDE.</p>
+<p>In Ubuntu, for instance, a basic X server called xdm can be installed
+as follows:</p>
+<p><code class="docutils literal"><span class="pre">apt-get</span> <span class="pre">install</span>  <span class="pre">xserver-xorg</span> <span class="pre">xdm</span>  <span class="pre">xfonts-base</span> <span class="pre">xfonts-100dpi</span> <span class="pre">xfonts-75dpi</span></code></p>
+<p>Once the X server is installed, you will need to configure it to
+accept connections from the web-server.</p>
+<p>In our example, edit the <code class="docutils literal"><span class="pre">/etc/X11/xdm/xdm-config</span></code> file and set
+following values:</p>
+<div class="highlight-python"><div class="highlight"><pre>DisplayManager*authorize:       false
+!
+DisplayManager*authComplain:    false
+</pre></div>
+</div>
+<p>Do not forget to restart your xdm server.</p>
+<p><code class="docutils literal"><span class="pre">/etc/init.d/xdm</span> <span class="pre">restart</span></code></p>
+</div>
+<div class="section" id="desktops">
+<h2>Desktops<a class="headerlink" href="#desktops" title="Permalink to this headline">¶</a></h2>
+<p>If you plan to use web tree application in a linux desktop computer,
+then the X server is already installed. You will only need to give
+permissions to the web-server (i.e. apache) to connect your
+display. Usually, as simple as running the following command in a
+terminal:</p>
+<p><code class="docutils literal"><span class="pre">xhost</span> <span class="pre">+</span></code></p>
+</div>
+<div class="section" id="configuring-the-web-sever">
+<h2>Configuring the web sever<a class="headerlink" href="#configuring-the-web-sever" title="Permalink to this headline">¶</a></h2>
+<p>You will need to add support for WSGI application to your web
+server. In the following steps, an Apache2 web server will be assumed.</p>
+<ul class="simple">
+<li>Install and activate the <code class="docutils literal"><span class="pre">modwsgi</span></code> module in Apache.</li>
+<li>Configure your site to support WSGI.</li>
+</ul>
+<p>Configuration will depend a lot on your specific system, but this is
+an example configuration file for the default site of your Apache
+server (usually at <code class="docutils literal"><span class="pre">/ete/apache2/sites-available/default</span></code>):</p>
+<div class="highlight-python"><div class="highlight"><pre><VirtualHost *:80>
+ ServerAdmin webmaster at localhost
+
+ DocumentRoot /var/www
+ <Directory />
+        Options +FollowSymLinks
+        AllowOverride None
+ </Directory>
+
+ ErrorLog /var/log/apache2/error.log
+
+ # Possible values include: debug, info, notice, warn, error, crit,
+ # alert, emerg.
+ LogLevel warn
+
+ CustomLog /var/log/apache2/access.log combined
+
+ # ########################### #
+ # WSGI SPECIFIC CONFIG        #
+
+ WSGIDaemonProcess eteApp user=www-data group=www-data processes=1 threads=1
+ WSGIProcessGroup eteApp
+ WSGIApplicationGroup %{GLOBAL}
+
+ <Directory /var/www/webplugin/>
+        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+        SetHandler wsgi-script
+        Order allow,deny
+        Allow from all
+        AddHandler wsgi-script .py
+ </Directory>
+
+ # END OF WSGI SPECIFIC CONFIG #
+ # ########################### #
+
+</VirtualHost>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last"><cite>/var/www/webplugin/wsgi/</cite> is the folder in which python web
+application will be located. Make sure that the apache WSGI config
+enables this folder to run wsgi-scripts.</p>
+</div>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p>Important notes:</p>
+<p><cite>/var/www/webplugin/</cite> is assumed to be the directory in which your
+application will run.</p>
+<p class="last"><cite>/var/www/webplugin/tmp/</cite> should be writable by the web-server
+(i.e. chmod 777)</p>
+</div>
+</div>
+<div class="section" id="implementation-of-webtreeapplications">
+<h2>Implementation of WebTreeApplications<a class="headerlink" href="#implementation-of-webtreeapplications" title="Permalink to this headline">¶</a></h2>
+<p>ETE’s <a class="reference internal" href="../reference/reference_webplugin.html#ete3.WebTreeApplication" title="ete3.WebTreeApplication"><code class="xref py py-class docutils literal"><span class="pre">WebTreeApplication</span></code></a> uses WSGI in the backend, and a
+several javascript files in the frontend. Basic files are included as
+an example in the <a class="reference external" href="http://pypi.python.org/pypi/ete3">ETE installation package</a> <code class="docutils literal"><span class="pre">examples/webplugin</span></code>. The
+whole example folder is necessary, and it contains a commented copy of
+a web-tree implementation
+<code class="docutils literal"><span class="pre">examples/webplugin/wsgi/webplugin_example.py</span></code>.</p>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_adaptation.html" class="btn btn-neutral float-right" title="Testing Evolutionary Hypothesis" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_phyloxml.html" class="btn btn-neutral" title="PhyloXML" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/tutorial/tutorial_xml.html b/doc/tutorial/tutorial_xml.html
new file mode 100644
index 0000000..dc6a7d1
--- /dev/null
+++ b/doc/tutorial/tutorial_xml.html
@@ -0,0 +1,303 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Phylogenetic XML standards — ETE Toolkit - analysis and visualization of trees</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+        <link rel="author" title="About these documents"
+              href="../about.html"/>
+    <link rel="top" title="ETE Toolkit - analysis and visualization of trees" href="../index.html"/>
+        <link rel="up" title="The ETE tutorial" href="index.html"/>
+        <link rel="next" title="NeXML" href="tutorial_nexml.html"/>
+        <link rel="prev" title="Clustering Trees" href="tutorial_clustering.html"/>
+<script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+           (i[r].q=i[r].q||[]).push(arguments)
+    },i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-783841-4', 'etetoolkit.org');
+ ga('send', 'pageview');
+ </script>
+
+<!-- 
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-783841-12']);
+ _gaq.push(['_setCookiePath', '/ete2/']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ -->
+<!-- <link rel="canonical" href="http://etetoolkit.org/docs/2.3/CANONICALPATH" />
+<meta http-equiv="refresh" content="0; url=http:/etetoolkit.org/CANONICALPATH" />
+<script type="text/javascript">
+window.location.replace('http://etetoolkit.org/docs/2.3/' + window.location.pathname.replace('/ete2/',''));
+</script> -->
+ 
+ 
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> ETE Toolkit
+          
+
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                3.0
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../changelog/index.html">Changelog history</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">The ETE tutorial</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="tutorial_trees.html">Working With Tree Data Structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_drawing.html">The Programmable Tree Drawing Engine</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phylogeny.html">Phylogenetic Trees</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_clustering.html">Clustering Trees</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Phylogenetic XML standards</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_nexml.html">NeXML</a></li>
+<li class="toctree-l3"><a class="reference internal" href="tutorial_phyloxml.html">PhyloXML</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_webplugin.html">Interactive web tree visualization</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_adaptation.html">Testing Evolutionary Hypothesis</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_ncbitaxonomy.html">Dealing with the NCBI Taxonomy database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_etree2orthoxml.html">SCRIPTS: orthoXML</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">ETE’s Reference Guide</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">ETE Toolkit</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> »</li>
+      
+          <li><a href="index.html">The ETE tutorial</a> »</li>
+      
+    <li>Phylogenetic XML standards</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+            <a href="../_sources/tutorial/tutorial_xml.txt" rel="nofollow"> View page source</a>
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            
+  <div class="section" id="phylogenetic-xml-standards">
+<h1>Phylogenetic XML standards<a class="headerlink" href="#phylogenetic-xml-standards" title="Permalink to this headline">¶</a></h1>
+<div class="versionadded">
+<p><span class="versionmodified">New in version 2.1.</span></p>
+</div>
+<p>From version 2.1, ETE provides support for <a class="reference external" href="http://nexml.org/">NeXML</a> and <a class="reference external" href="http://phyloxml.org/">PhyloXML</a>
+phylogenetic XML standards, both reading and writing. These standards
+allow to encode complex phylogenetic data, and therefore they are not
+limited to trees. Although ETE is mainly focused on allowing
+transparent interaction with trees, it also provides basic I/O methods
+to data of different type.</p>
+<p>Essentially, NexML and PhyloXML files are intended to encode
+collections of phylogenetic data. Such information can be converted to
+a collection Python objects sorted in a hierarchical way. A specific
+Python class exists for every element encoded documented by the NeXML
+and PhyloXML formats. This is possible thanks to the the general
+purpose Python drivers available for both formats
+(<a class="reference external" href="http://etetoolkit.org/phyloxml-and-nexml-python-parsers">http://etetoolkit.org/phyloxml-and-nexml-python-parsers</a>). ETE will
+use such drivers to access XML data, and it will also convert tree
+data into PhyloTree objects. In practice, conversions will occur
+transparently.  NeXML and PhyloXML files are loaded using their
+specific root classes, provided by the main ETE module, and all the
+information will become available as a collection of Python objects
+internally sorted according to the original XML hierarchy.</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_nexml.html">NeXML</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_nexml.html#reading-nexml-projects">Reading NeXML projects</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_nexml.html#nexml-tree-manipulation-and-visualization">NeXML tree manipulation and visualization</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial_phyloxml.html">PhyloXML</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phyloxml.html#loading-phyloxml-projects-from-files">Loading PhyloXML projects from files</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tutorial_phyloxml.html#creating-phyloxml-projects-from-scratch">Creating PhyloXML projects from scratch</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">NeXML and PhyloXML python parsers are possible thanks to Dave
+Kulhman and his work on the <a class="reference external" href="http://www.rexx.com/~dkuhlman/generateDS.html">generateDS.py</a>
+application. Thanks Dave! ;-)</p>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="tutorial_nexml.html" class="btn btn-neutral float-right" title="NeXML" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="tutorial_clustering.html" class="btn btn-neutral" title="Clustering Trees" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        © Copyright 2015, The ETE Toolkit Team.
+      Last updated on Mar 18, 2016.
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'3.0.0b35',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/ete3.egg-info/PKG-INFO b/ete3.egg-info/PKG-INFO
new file mode 100644
index 0000000..d0715ea
--- /dev/null
+++ b/ete3.egg-info/PKG-INFO
@@ -0,0 +1,46 @@
+Metadata-Version: 1.1
+Name: ete3
+Version: 3.0.0b35
+Summary: A Python Environment for (phylogenetic) Tree Exploration
+Home-page: http://etetoolkit.org
+Author: Jaime Huerta-Cepas
+Author-email: huerta at embl.de
+License: GPLv3
+Download-URL: http://etetoolkit.org/static/releases/ete3/
+Description: 
+        The Environment for Tree Exploration (ETE) is a Python programming
+        toolkit that assists in the recontruction, manipulation, analysis and
+        visualization of phylogenetic trees (although clustering trees or any
+        other tree-like data structure are also supported).
+        
+        ETE is currently developed as a tool for researchers working in
+        phylogenetics and genomics. If you use ETE for a published work,
+        please cite:
+        
+        ::
+        
+           Jaime Huerta-Cepas, François Serra and Peer Bork. "ETE 3: Reconstruction,
+           analysis and visualization of phylogenomic data."  Mol Biol Evol (2016) doi:
+           10.1093/molbev/msw046
+        
+        Visit http://etetoolkit.org for more info.
+        
+Keywords: tree,tree reconstruction,tree visualization,tree comparison,phylogeny,phylogenetics,phylogenomics
+Platform: OS Independent
+Classifier: Development Status :: 6 - Mature
+Classifier: Environment :: Console
+Classifier: Environment :: X11 Applications :: Qt
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Other Audience
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: English
+Classifier: Operating System :: MacOS
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
+Classifier: Topic :: Scientific/Engineering :: Visualization
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires: six
+Provides: ete3
diff --git a/ete3.egg-info/SOURCES.txt b/ete3.egg-info/SOURCES.txt
new file mode 100644
index 0000000..077eef8
--- /dev/null
+++ b/ete3.egg-info/SOURCES.txt
@@ -0,0 +1,830 @@
+CITATION.txt
+LICENSE
+MANIFEST.in
+README.rst
+THANKS.rst
+VERSION
+ez_setup.py
+setup.py
+doc/.buildinfo
+doc/ETE.pdf
+doc/about.html
+doc/genindex.html
+doc/index.html
+doc/objects.inv
+doc/py-modindex.html
+doc/search.html
+doc/searchindex.js
+doc/support.html
+doc/_downloads/apaf.xml
+doc/_downloads/face_grid.py
+doc/_downloads/nexml_annotated_trees.py
+doc/_downloads/nexml_from_scratch.py
+doc/_downloads/nexml_parser.py
+doc/_downloads/phyloxml_from_scratch.py
+doc/_downloads/phyloxml_parser.py
+doc/_downloads/species_aware_phylogenies.py
+doc/_downloads/tolweb.xml
+doc/_downloads/trees.xml
+doc/_images/M2_curve.png
+doc/_images/M2_default.png
+doc/_images/M2_sticks.png
+doc/_images/M2_super_profesional.png
+doc/_images/barcharts.png
+doc/_images/bubble_map.png
+doc/_images/bubbles_validation.png
+doc/_images/face_borders.png
+doc/_images/face_positions.png
+doc/_images/fb_clean.png
+doc/_images/fb_default.png
+doc/_images/float_piechart.png
+doc/_images/img_faces.png
+doc/_images/item_faces.png
+doc/_images/node_background.png
+doc/_images/node_style.png
+doc/_images/node_style_red_and_blue_nodes.png
+doc/_images/node_style_red_nodes.png
+doc/_images/phylotree.png
+doc/_images/profile_faces.png
+doc/_images/rotated_faces.png
+doc/_images/rotated_tree.png
+doc/_images/scale_x.png
+doc/_images/scale_y.png
+doc/_images/semi_circular_tree.png
+doc/_images/seq_motif_faces.png
+doc/_images/seqmotif.png
+doc/_images/show_info.png
+doc/_images/svg_colors.png
+doc/_images/tree_faces.png
+doc/_images/treeko_logo.png
+doc/_sources/about.txt
+doc/_sources/index.txt
+doc/_sources/support.txt
+doc/_sources/changelog/changelog2.1.txt
+doc/_sources/changelog/changelog2.2.txt
+doc/_sources/changelog/changelog2.3.txt
+doc/_sources/changelog/index.txt
+doc/_sources/faqs/index.txt
+doc/_sources/reference/index.txt
+doc/_sources/reference/reference_clustering.txt
+doc/_sources/reference/reference_evoltree.txt
+doc/_sources/reference/reference_ncbi.txt
+doc/_sources/reference/reference_nexml.txt
+doc/_sources/reference/reference_phylo.txt
+doc/_sources/reference/reference_phylomedb.txt
+doc/_sources/reference/reference_phyloxml.txt
+doc/_sources/reference/reference_seqgroup.txt
+doc/_sources/reference/reference_tree.txt
+doc/_sources/reference/reference_treeview.txt
+doc/_sources/reference/reference_webplugin.txt
+doc/_sources/tutorial/index.txt
+doc/_sources/tutorial/tutorial_adaptation.txt
+doc/_sources/tutorial/tutorial_clustering.txt
+doc/_sources/tutorial/tutorial_drawing.txt
+doc/_sources/tutorial/tutorial_etree2orthoxml.txt
+doc/_sources/tutorial/tutorial_ncbitaxonomy.txt
+doc/_sources/tutorial/tutorial_nexml.txt
+doc/_sources/tutorial/tutorial_phylogeny.txt
+doc/_sources/tutorial/tutorial_phylomedb.txt
+doc/_sources/tutorial/tutorial_phyloxml.txt
+doc/_sources/tutorial/tutorial_trees.txt
+doc/_sources/tutorial/tutorial_webplugin.txt
+doc/_sources/tutorial/tutorial_xml.txt
+doc/_static/ajax-loader.gif
+doc/_static/basic.css
+doc/_static/comment-bright.png
+doc/_static/comment-close.png
+doc/_static/comment.png
+doc/_static/doctools.js
+doc/_static/down-pressed.png
+doc/_static/down.png
+doc/_static/favicon.ico
+doc/_static/file.png
+doc/_static/jquery-1.11.1.js
+doc/_static/jquery.js
+doc/_static/minus.png
+doc/_static/plus.png
+doc/_static/pygments.css
+doc/_static/searchtools.js
+doc/_static/underscore-1.3.1.js
+doc/_static/underscore.js
+doc/_static/up-pressed.png
+doc/_static/up.png
+doc/_static/websupport.js
+doc/_static/css/badge_only.css
+doc/_static/css/theme.css
+doc/_static/fonts/Inconsolata-Bold.ttf
+doc/_static/fonts/Inconsolata-Regular.ttf
+doc/_static/fonts/Lato-Bold.ttf
+doc/_static/fonts/Lato-Regular.ttf
+doc/_static/fonts/RobotoSlab-Bold.ttf
+doc/_static/fonts/RobotoSlab-Regular.ttf
+doc/_static/fonts/fontawesome-webfont.eot
+doc/_static/fonts/fontawesome-webfont.svg
+doc/_static/fonts/fontawesome-webfont.ttf
+doc/_static/fonts/fontawesome-webfont.woff
+doc/_static/js/modernizr.min.js
+doc/_static/js/theme.js
+doc/changelog/changelog2.1.html
+doc/changelog/changelog2.2.html
+doc/changelog/changelog2.3.html
+doc/changelog/index.html
+doc/faqs/index.html
+doc/reference/index.html
+doc/reference/reference_clustering.html
+doc/reference/reference_evoltree.html
+doc/reference/reference_ncbi.html
+doc/reference/reference_nexml.html
+doc/reference/reference_phylo.html
+doc/reference/reference_phylomedb.html
+doc/reference/reference_phyloxml.html
+doc/reference/reference_seqgroup.html
+doc/reference/reference_tree.html
+doc/reference/reference_treeview.html
+doc/reference/reference_webplugin.html
+doc/tutorial/index.html
+doc/tutorial/tutorial_adaptation.html
+doc/tutorial/tutorial_clustering.html
+doc/tutorial/tutorial_drawing.html
+doc/tutorial/tutorial_etree2orthoxml.html
+doc/tutorial/tutorial_ncbitaxonomy.html
+doc/tutorial/tutorial_nexml.html
+doc/tutorial/tutorial_phylogeny.html
+doc/tutorial/tutorial_phylomedb.html
+doc/tutorial/tutorial_phyloxml.html
+doc/tutorial/tutorial_trees.html
+doc/tutorial/tutorial_webplugin.html
+doc/tutorial/tutorial_xml.html
+ete3/__init__.py
+ete3/_ph.py
+ete3/citation.py
+ete3/utils.py
+ete3/version.py
+ete3.egg-info/PKG-INFO
+ete3.egg-info/SOURCES.txt
+ete3.egg-info/dependency_links.txt
+ete3.egg-info/entry_points.txt
+ete3.egg-info/top_level.txt
+ete3/clustering/__init__.py
+ete3/clustering/clustertree.py
+ete3/clustering/clustvalidation.py
+ete3/clustering/pstat.py
+ete3/clustering/stats.py
+ete3/coretype/__init__.py
+ete3/coretype/arraytable.py
+ete3/coretype/seqgroup.py
+ete3/coretype/tree.py
+ete3/evol/__init__.py
+ete3/evol/control.py
+ete3/evol/evoltree.py
+ete3/evol/model.py
+ete3/evol/utils.py
+ete3/evol/parser/__init__.py
+ete3/evol/parser/codemlparser.py
+ete3/evol/parser/slrparser.py
+ete3/ncbi_taxonomy/__init__.py
+ete3/ncbi_taxonomy/ncbiquery.py
+ete3/ncbi_taxonomy/SQLite-Levenshtein/.gitignore
+ete3/ncbi_taxonomy/SQLite-Levenshtein/EXAMPLE
+ete3/ncbi_taxonomy/SQLite-Levenshtein/Makefile
+ete3/ncbi_taxonomy/SQLite-Levenshtein/README
+ete3/ncbi_taxonomy/SQLite-Levenshtein/src/levenshtein.c
+ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/README
+ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/levenshtein-test.sql
+ete3/nexml/__init__.py
+ete3/nexml/_nexml.py
+ete3/nexml/_nexml_tree.py
+ete3/orthoxml/__init__.py
+ete3/orthoxml/_orthoxml.py
+ete3/parser/__init__.py
+ete3/parser/fasta.py
+ete3/parser/newick.py
+ete3/parser/paml.py
+ete3/parser/phylip.py
+ete3/parser/text_arraytable.py
+ete3/phylo/__init__.py
+ete3/phylo/evolevents.py
+ete3/phylo/phylotree.py
+ete3/phylo/reconciliation.py
+ete3/phylo/spoverlap.py
+ete3/phylomedb/__init__.py
+ete3/phylomedb/phylomeDB.py
+ete3/phylomedb/phylomeDB3.py
+ete3/phyloxml/__init__.py
+ete3/phyloxml/_phyloxml.py
+ete3/phyloxml/_phyloxml_tree.py
+ete3/test/__init__.py
+ete3/test/datasets.py
+ete3/test/test_all.py
+ete3/test/test_api.py
+ete3/test/test_arraytable.py
+ete3/test/test_circle_label.py
+ete3/test/test_clustertree.py
+ete3/test/test_ete_evol.py
+ete3/test/test_evol.py
+ete3/test/test_interop.py
+ete3/test/test_ncbiquery.py
+ete3/test/test_phylotree.py
+ete3/test/test_seqgroup.py
+ete3/test/test_tree.py
+ete3/test/test_xml_parsers.py
+ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.fasta
+ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.nw
+ete3/test/ete_evol_data/L_example/alignment_L_measuring_evol.fasta
+ete3/test/ete_evol_data/L_example/measuring_L_tree.nw
+ete3/test/ete_evol_data/S_example/ali.fasta
+ete3/test/ete_evol_data/S_example/tree.nw
+ete3/test/ete_evol_data/S_example/paml/M1/2NG.dN
+ete3/test/ete_evol_data/S_example/paml/M1/2NG.dS
+ete3/test/ete_evol_data/S_example/paml/M1/2NG.t
+ete3/test/ete_evol_data/S_example/paml/M1/4fold.nuc
+ete3/test/ete_evol_data/S_example/paml/M1/algn
+ete3/test/ete_evol_data/S_example/paml/M1/lnf
+ete3/test/ete_evol_data/S_example/paml/M1/out
+ete3/test/ete_evol_data/S_example/paml/M1/rst
+ete3/test/ete_evol_data/S_example/paml/M1/rst1
+ete3/test/ete_evol_data/S_example/paml/M1/rub
+ete3/test/ete_evol_data/S_example/paml/M1/tmp.ctl
+ete3/test/ete_evol_data/S_example/paml/M1/tree
+ete3/test/ete_evol_data/S_example/paml/M2/2NG.dN
+ete3/test/ete_evol_data/S_example/paml/M2/2NG.dS
+ete3/test/ete_evol_data/S_example/paml/M2/2NG.t
+ete3/test/ete_evol_data/S_example/paml/M2/4fold.nuc
+ete3/test/ete_evol_data/S_example/paml/M2/algn
+ete3/test/ete_evol_data/S_example/paml/M2/lnf
+ete3/test/ete_evol_data/S_example/paml/M2/out
+ete3/test/ete_evol_data/S_example/paml/M2/rst
+ete3/test/ete_evol_data/S_example/paml/M2/rst1
+ete3/test/ete_evol_data/S_example/paml/M2/rub
+ete3/test/ete_evol_data/S_example/paml/M2/tmp.ctl
+ete3/test/ete_evol_data/S_example/paml/M2/tree
+ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dN
+ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dS
+ete3/test/ete_evol_data/S_example/paml/bsA/2NG.t
+ete3/test/ete_evol_data/S_example/paml/bsA/4fold.nuc
+ete3/test/ete_evol_data/S_example/paml/bsA/algn
+ete3/test/ete_evol_data/S_example/paml/bsA/lnf
+ete3/test/ete_evol_data/S_example/paml/bsA/out
+ete3/test/ete_evol_data/S_example/paml/bsA/rst
+ete3/test/ete_evol_data/S_example/paml/bsA/rst1
+ete3/test/ete_evol_data/S_example/paml/bsA/rub
+ete3/test/ete_evol_data/S_example/paml/bsA/tmp.ctl
+ete3/test/ete_evol_data/S_example/paml/bsA/tree
+ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dN
+ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dS
+ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.t
+ete3/test/ete_evol_data/S_example/paml/bsA1/4fold.nuc
+ete3/test/ete_evol_data/S_example/paml/bsA1/algn
+ete3/test/ete_evol_data/S_example/paml/bsA1/lnf
+ete3/test/ete_evol_data/S_example/paml/bsA1/out
+ete3/test/ete_evol_data/S_example/paml/bsA1/rst
+ete3/test/ete_evol_data/S_example/paml/bsA1/rst1
+ete3/test/ete_evol_data/S_example/paml/bsA1/rub
+ete3/test/ete_evol_data/S_example/paml/bsA1/tmp.ctl
+ete3/test/ete_evol_data/S_example/paml/bsA1/tree
+ete3/test/ete_evol_data/S_example/paml/fb/2NG.dN
+ete3/test/ete_evol_data/S_example/paml/fb/2NG.dS
+ete3/test/ete_evol_data/S_example/paml/fb/2NG.t
+ete3/test/ete_evol_data/S_example/paml/fb/4fold.nuc
+ete3/test/ete_evol_data/S_example/paml/fb/algn
+ete3/test/ete_evol_data/S_example/paml/fb/lnf
+ete3/test/ete_evol_data/S_example/paml/fb/out
+ete3/test/ete_evol_data/S_example/paml/fb/rst
+ete3/test/ete_evol_data/S_example/paml/fb/rst1
+ete3/test/ete_evol_data/S_example/paml/fb/rub
+ete3/test/ete_evol_data/S_example/paml/fb/tmp.ctl
+ete3/test/ete_evol_data/S_example/paml/fb/tree
+ete3/test/ete_evol_data/XS_example/ali.fasta
+ete3/test/ete_evol_data/XS_example/tree.nw
+ete3/test/ete_evol_data/protamine/PRM1/alignments.fasta_ali
+ete3/test/ete_evol_data/protamine/PRM1/tree.nw
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/out
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tree
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/M1.out
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tree
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/M2.out
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tree
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/M7.out
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tree
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/M8.out
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tree
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/algn
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/fb.out
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/lnf
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst.fb
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst1
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rub
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tree
+ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dN
+ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dS
+ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.t
+ete3/test/ete_evol_data/protamine/PRM1/slr/4fold.nuc
+ete3/test/ete_evol_data/protamine/PRM1/slr/algn
+ete3/test/ete_evol_data/protamine/PRM1/slr/fb.out
+ete3/test/ete_evol_data/protamine/PRM1/slr/lnf
+ete3/test/ete_evol_data/protamine/PRM1/slr/rst.fb
+ete3/test/ete_evol_data/protamine/PRM1/slr/rst1
+ete3/test/ete_evol_data/protamine/PRM1/slr/rub
+ete3/test/ete_evol_data/protamine/PRM1/slr/slr.ctl
+ete3/test/ete_evol_data/protamine/PRM1/slr/tmp.ctl
+ete3/test/ete_evol_data/protamine/PRM1/slr/tree
+ete3/test/ete_evol_data/protamine/PRM1/slr/tree.slr
+ete3/test/test_ete_build/NUP62.aa.fa
+ete3/test/test_ete_build/NUP62.nt.fa
+ete3/test/test_ete_build/P53.alg.fa
+ete3/test/test_ete_build/P53.fa
+ete3/test/test_ete_build/__init__.py
+ete3/test/test_ete_build/__main__.py
+ete3/test/test_ete_build/cog_seqs.fa
+ete3/test/test_ete_build/cog_seqs.nt.fa
+ete3/test/test_ete_build/fake_alg1.fa
+ete3/test/test_ete_build/fake_alg1.nt.fa
+ete3/test/test_ete_build/fake_alg2.fa
+ete3/test/test_ete_build/fake_alg2.nt.fa
+ete3/test/test_ete_build/fake_alg3.fa
+ete3/test/test_ete_build/fake_alg3.nt.fa
+ete3/test/test_ete_build/fake_cogs.tsv
+ete3/test/test_ete_build/test_genetree.py
+ete3/test/test_ete_build/test_manual_alg.py
+ete3/test/test_ete_build/test_modeltest.py
+ete3/test/test_ete_build/test_sptree.py
+ete3/test/test_treeview/__init__.py
+ete3/test/test_treeview/barchart_and_piechart_faces.py
+ete3/test/test_treeview/barcharts.png
+ete3/test/test_treeview/bubble_map.png
+ete3/test/test_treeview/bubble_map.py
+ete3/test/test_treeview/chimp.png
+ete3/test/test_treeview/dog.png
+ete3/test/test_treeview/face_grid.py
+ete3/test/test_treeview/face_positions.py
+ete3/test/test_treeview/face_rotation.py
+ete3/test/test_treeview/fish.png
+ete3/test/test_treeview/float_piechart.png
+ete3/test/test_treeview/floating_piecharts.py
+ete3/test/test_treeview/fly.png
+ete3/test/test_treeview/human.png
+ete3/test/test_treeview/img_faces.png
+ete3/test/test_treeview/img_faces.py
+ete3/test/test_treeview/item_faces.png
+ete3/test/test_treeview/item_faces.py
+ete3/test/test_treeview/motifs.png
+ete3/test/test_treeview/mouse.png
+ete3/test/test_treeview/new_seq_face.py
+ete3/test/test_treeview/node_background.png
+ete3/test/test_treeview/node_background.py
+ete3/test/test_treeview/node_style.png
+ete3/test/test_treeview/node_style.py
+ete3/test/test_treeview/phylotree_visualization.py
+ete3/test/test_treeview/random_draw.py
+ete3/test/test_treeview/rotated_faces.png
+ete3/test/test_treeview/seq_motif_faces.png
+ete3/test/test_treeview/seq_motif_faces.py
+ete3/test/test_treeview/seqmotif.png
+ete3/test/test_treeview/test_all_treeview.py
+ete3/test/test_treeview/tree_faces.png
+ete3/test/test_treeview/tree_faces.py
+ete3/tools/__init__.py
+ete3/tools/common.py
+ete3/tools/ete.py
+ete3/tools/ete_annotate.py
+ete3/tools/ete_compare.py
+ete3/tools/ete_evol.py
+ete3/tools/ete_expand.py
+ete3/tools/ete_extract.py
+ete3/tools/ete_generate.py
+ete3/tools/ete_maptrees.py
+ete3/tools/ete_mod.py
+ete3/tools/ete_ncbiquery.py
+ete3/tools/ete_split.py
+ete3/tools/ete_upgrade_tools.py
+ete3/tools/ete_view.py
+ete3/tools/phylobuild.cfg
+ete3/tools/phylobuild.py
+ete3/tools/utils.py
+ete3/tools/phylobuild_lib/__init__.py
+ete3/tools/phylobuild_lib/apps.py
+ete3/tools/phylobuild_lib/configcheck.py
+ete3/tools/phylobuild_lib/configobj.py
+ete3/tools/phylobuild_lib/curses_gui.py
+ete3/tools/phylobuild_lib/db.py
+ete3/tools/phylobuild_lib/errors.py
+ete3/tools/phylobuild_lib/getch.py
+ete3/tools/phylobuild_lib/interface.py
+ete3/tools/phylobuild_lib/logger.py
+ete3/tools/phylobuild_lib/master_job.py
+ete3/tools/phylobuild_lib/master_task.py
+ete3/tools/phylobuild_lib/ordereddict.py
+ete3/tools/phylobuild_lib/scheduler.py
+ete3/tools/phylobuild_lib/seqio.py
+ete3/tools/phylobuild_lib/sge.py
+ete3/tools/phylobuild_lib/utils.py
+ete3/tools/phylobuild_lib/validate.py
+ete3/tools/phylobuild_lib/visualize.py
+ete3/tools/phylobuild_lib/task/__init__.py
+ete3/tools/phylobuild_lib/task/clustalo.py
+ete3/tools/phylobuild_lib/task/cog_creator.py
+ete3/tools/phylobuild_lib/task/cog_selector.py
+ete3/tools/phylobuild_lib/task/concat_alg.py
+ete3/tools/phylobuild_lib/task/dialigntx.py
+ete3/tools/phylobuild_lib/task/dummyalg.py
+ete3/tools/phylobuild_lib/task/dummytree.py
+ete3/tools/phylobuild_lib/task/fasttree.py
+ete3/tools/phylobuild_lib/task/jmodeltest.py
+ete3/tools/phylobuild_lib/task/mafft.py
+ete3/tools/phylobuild_lib/task/merger.py
+ete3/tools/phylobuild_lib/task/meta_aligner.py
+ete3/tools/phylobuild_lib/task/msf.py
+ete3/tools/phylobuild_lib/task/muscle.py
+ete3/tools/phylobuild_lib/task/phyml.py
+ete3/tools/phylobuild_lib/task/pmodeltest.py
+ete3/tools/phylobuild_lib/task/prottest.py
+ete3/tools/phylobuild_lib/task/prottest2.py
+ete3/tools/phylobuild_lib/task/raxml.py
+ete3/tools/phylobuild_lib/task/tcoffee.py
+ete3/tools/phylobuild_lib/task/trimal.py
+ete3/tools/phylobuild_lib/task/uhire.py
+ete3/tools/phylobuild_lib/workflow/__init__.py
+ete3/tools/phylobuild_lib/workflow/common.py
+ete3/tools/phylobuild_lib/workflow/genetree.py
+ete3/tools/phylobuild_lib/workflow/supermatrix.py
+ete3/treeview/__init__.py
+ete3/treeview/_about.py
+ete3/treeview/_mainwindow.py
+ete3/treeview/_open_newick.py
+ete3/treeview/_search_dialog.py
+ete3/treeview/_show_codeml.py
+ete3/treeview/_show_newick.py
+ete3/treeview/about.ui
+ete3/treeview/clean_search.png
+ete3/treeview/drawer.py
+ete3/treeview/ete_icon.png
+ete3/treeview/ete_logo.png
+ete3/treeview/ete_qt4app.ui
+ete3/treeview/ete_resources.qrc
+ete3/treeview/ete_resources_rc.py
+ete3/treeview/export_pdf.png
+ete3/treeview/faces.py
+ete3/treeview/fileopen.png
+ete3/treeview/filesave.png
+ete3/treeview/fit_region.png
+ete3/treeview/fit_tree.png
+ete3/treeview/force_topo.png
+ete3/treeview/image_properties.ui
+ete3/treeview/layouts.py
+ete3/treeview/main.py
+ete3/treeview/node_gui_actions.py
+ete3/treeview/open_newick.ui
+ete3/treeview/qt4_circular_render.py
+ete3/treeview/qt4_compile_resources.sh
+ete3/treeview/qt4_face_render.py
+ete3/treeview/qt4_gui.py
+ete3/treeview/qt4_rect_render.py
+ete3/treeview/qt4_render.py
+ete3/treeview/search.png
+ete3/treeview/search_dialog.ui
+ete3/treeview/show_dist.png
+ete3/treeview/show_names.png
+ete3/treeview/show_newick.png
+ete3/treeview/show_newick.ui
+ete3/treeview/show_support.png
+ete3/treeview/svg_colors.py
+ete3/treeview/templates.py
+ete3/treeview/x_expand.png
+ete3/treeview/x_reduce.png
+ete3/treeview/y_expand.png
+ete3/treeview/y_reduce.png
+ete3/treeview/zoom_in.png
+ete3/treeview/zoom_out.png
+ete3/webplugin/__init__.py
+ete3/webplugin/webapp.py
+examples/clustering/bubbles_validation.py
+examples/clustering/cluster_visualization.py
+examples/clustering/clustering_tree.py
+examples/clustering/diauxic.array
+examples/clustering/diauxic.nw
+examples/evol/1_freeratio.py
+examples/evol/2_sites_model.py
+examples/evol/3_branchsite_test.py
+examples/evol/4_branch_models.py
+examples/evol/5_branchsite_cladetest.py
+examples/evol/6_ancestral_sequence.py
+examples/evol/7_slr.py
+examples/evol/README
+examples/evol/measuring_evolution_trees.py
+examples/evol/test_hist.py
+examples/evol/test_protamine.py
+examples/evol/data/CladeModelCD/ECP_EDN_15.fasta
+examples/evol/data/CladeModelCD/ECP_EDN_15.nw
+examples/evol/data/L_example/alignment_L_measuring_evol.fasta
+examples/evol/data/L_example/measuring_L_tree.nw
+examples/evol/data/S_example/alignment_S_measuring_evol.fasta
+examples/evol/data/S_example/measuring_S_tree.nw
+examples/evol/data/S_example/paml/M1/2NG.dN
+examples/evol/data/S_example/paml/M1/2NG.dS
+examples/evol/data/S_example/paml/M1/2NG.t
+examples/evol/data/S_example/paml/M1/4fold.nuc
+examples/evol/data/S_example/paml/M1/algn
+examples/evol/data/S_example/paml/M1/lnf
+examples/evol/data/S_example/paml/M1/out
+examples/evol/data/S_example/paml/M1/rst
+examples/evol/data/S_example/paml/M1/rst1
+examples/evol/data/S_example/paml/M1/rub
+examples/evol/data/S_example/paml/M1/tmp.ctl
+examples/evol/data/S_example/paml/M1/tree
+examples/evol/data/S_example/paml/M2/2NG.dN
+examples/evol/data/S_example/paml/M2/2NG.dS
+examples/evol/data/S_example/paml/M2/2NG.t
+examples/evol/data/S_example/paml/M2/4fold.nuc
+examples/evol/data/S_example/paml/M2/algn
+examples/evol/data/S_example/paml/M2/lnf
+examples/evol/data/S_example/paml/M2/out
+examples/evol/data/S_example/paml/M2/rst
+examples/evol/data/S_example/paml/M2/rst1
+examples/evol/data/S_example/paml/M2/rub
+examples/evol/data/S_example/paml/M2/tmp.ctl
+examples/evol/data/S_example/paml/M2/tree
+examples/evol/data/S_example/paml/bsA/2NG.dN
+examples/evol/data/S_example/paml/bsA/2NG.dS
+examples/evol/data/S_example/paml/bsA/2NG.t
+examples/evol/data/S_example/paml/bsA/4fold.nuc
+examples/evol/data/S_example/paml/bsA/algn
+examples/evol/data/S_example/paml/bsA/lnf
+examples/evol/data/S_example/paml/bsA/out
+examples/evol/data/S_example/paml/bsA/rst
+examples/evol/data/S_example/paml/bsA/rst1
+examples/evol/data/S_example/paml/bsA/rub
+examples/evol/data/S_example/paml/bsA/tmp.ctl
+examples/evol/data/S_example/paml/bsA/tree
+examples/evol/data/S_example/paml/bsA1/2NG.dN
+examples/evol/data/S_example/paml/bsA1/2NG.dS
+examples/evol/data/S_example/paml/bsA1/2NG.t
+examples/evol/data/S_example/paml/bsA1/4fold.nuc
+examples/evol/data/S_example/paml/bsA1/algn
+examples/evol/data/S_example/paml/bsA1/lnf
+examples/evol/data/S_example/paml/bsA1/out
+examples/evol/data/S_example/paml/bsA1/rst
+examples/evol/data/S_example/paml/bsA1/rst1
+examples/evol/data/S_example/paml/bsA1/rub
+examples/evol/data/S_example/paml/bsA1/tmp.ctl
+examples/evol/data/S_example/paml/bsA1/tree
+examples/evol/data/S_example/paml/fb/2NG.dN
+examples/evol/data/S_example/paml/fb/2NG.dS
+examples/evol/data/S_example/paml/fb/2NG.t
+examples/evol/data/S_example/paml/fb/4fold.nuc
+examples/evol/data/S_example/paml/fb/algn
+examples/evol/data/S_example/paml/fb/lnf
+examples/evol/data/S_example/paml/fb/out
+examples/evol/data/S_example/paml/fb/rst
+examples/evol/data/S_example/paml/fb/rst1
+examples/evol/data/S_example/paml/fb/rub
+examples/evol/data/S_example/paml/fb/tmp.ctl
+examples/evol/data/S_example/paml/fb/tree
+examples/evol/data/protamine/PRM1/alignments.fasta_ali
+examples/evol/data/protamine/PRM1/tree.nw
+examples/evol/data/protamine/PRM1/paml/M0/2NG.dN
+examples/evol/data/protamine/PRM1/paml/M0/2NG.dS
+examples/evol/data/protamine/PRM1/paml/M0/2NG.t
+examples/evol/data/protamine/PRM1/paml/M0/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/M0/algn
+examples/evol/data/protamine/PRM1/paml/M0/lnf
+examples/evol/data/protamine/PRM1/paml/M0/out
+examples/evol/data/protamine/PRM1/paml/M0/rst
+examples/evol/data/protamine/PRM1/paml/M0/rst1
+examples/evol/data/protamine/PRM1/paml/M0/rub
+examples/evol/data/protamine/PRM1/paml/M0/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/M0/tree
+examples/evol/data/protamine/PRM1/paml/M1/2NG.dN
+examples/evol/data/protamine/PRM1/paml/M1/2NG.dS
+examples/evol/data/protamine/PRM1/paml/M1/2NG.t
+examples/evol/data/protamine/PRM1/paml/M1/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/M1/M1.out
+examples/evol/data/protamine/PRM1/paml/M1/algn
+examples/evol/data/protamine/PRM1/paml/M1/lnf
+examples/evol/data/protamine/PRM1/paml/M1/rst
+examples/evol/data/protamine/PRM1/paml/M1/rst1
+examples/evol/data/protamine/PRM1/paml/M1/rub
+examples/evol/data/protamine/PRM1/paml/M1/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/M1/tree
+examples/evol/data/protamine/PRM1/paml/M2/2NG.dN
+examples/evol/data/protamine/PRM1/paml/M2/2NG.dS
+examples/evol/data/protamine/PRM1/paml/M2/2NG.t
+examples/evol/data/protamine/PRM1/paml/M2/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/M2/M2.out
+examples/evol/data/protamine/PRM1/paml/M2/algn
+examples/evol/data/protamine/PRM1/paml/M2/lnf
+examples/evol/data/protamine/PRM1/paml/M2/rst
+examples/evol/data/protamine/PRM1/paml/M2/rst1
+examples/evol/data/protamine/PRM1/paml/M2/rub
+examples/evol/data/protamine/PRM1/paml/M2/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/M2/tree
+examples/evol/data/protamine/PRM1/paml/M7/2NG.dN
+examples/evol/data/protamine/PRM1/paml/M7/2NG.dS
+examples/evol/data/protamine/PRM1/paml/M7/2NG.t
+examples/evol/data/protamine/PRM1/paml/M7/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/M7/M7.out
+examples/evol/data/protamine/PRM1/paml/M7/algn
+examples/evol/data/protamine/PRM1/paml/M7/lnf
+examples/evol/data/protamine/PRM1/paml/M7/rst
+examples/evol/data/protamine/PRM1/paml/M7/rst1
+examples/evol/data/protamine/PRM1/paml/M7/rub
+examples/evol/data/protamine/PRM1/paml/M7/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/M7/tree
+examples/evol/data/protamine/PRM1/paml/M8/2NG.dN
+examples/evol/data/protamine/PRM1/paml/M8/2NG.dS
+examples/evol/data/protamine/PRM1/paml/M8/2NG.t
+examples/evol/data/protamine/PRM1/paml/M8/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/M8/M8.out
+examples/evol/data/protamine/PRM1/paml/M8/algn
+examples/evol/data/protamine/PRM1/paml/M8/lnf
+examples/evol/data/protamine/PRM1/paml/M8/rst
+examples/evol/data/protamine/PRM1/paml/M8/rst1
+examples/evol/data/protamine/PRM1/paml/M8/rub
+examples/evol/data/protamine/PRM1/paml/M8/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/M8/tree
+examples/evol/data/protamine/PRM1/paml/fb/2NG.dN
+examples/evol/data/protamine/PRM1/paml/fb/2NG.dS
+examples/evol/data/protamine/PRM1/paml/fb/2NG.t
+examples/evol/data/protamine/PRM1/paml/fb/4fold.nuc
+examples/evol/data/protamine/PRM1/paml/fb/algn
+examples/evol/data/protamine/PRM1/paml/fb/fb.out
+examples/evol/data/protamine/PRM1/paml/fb/lnf
+examples/evol/data/protamine/PRM1/paml/fb/rst.fb
+examples/evol/data/protamine/PRM1/paml/fb/rst1
+examples/evol/data/protamine/PRM1/paml/fb/rub
+examples/evol/data/protamine/PRM1/paml/fb/tmp.ctl
+examples/evol/data/protamine/PRM1/paml/fb/tree
+examples/evol/data/protamine/PRM1/slr/2NG.dN
+examples/evol/data/protamine/PRM1/slr/2NG.dS
+examples/evol/data/protamine/PRM1/slr/2NG.t
+examples/evol/data/protamine/PRM1/slr/4fold.nuc
+examples/evol/data/protamine/PRM1/slr/algn
+examples/evol/data/protamine/PRM1/slr/fb.out
+examples/evol/data/protamine/PRM1/slr/lnf
+examples/evol/data/protamine/PRM1/slr/rst.fb
+examples/evol/data/protamine/PRM1/slr/rst1
+examples/evol/data/protamine/PRM1/slr/rub
+examples/evol/data/protamine/PRM1/slr/slr.ctl
+examples/evol/data/protamine/PRM1/slr/tmp.ctl
+examples/evol/data/protamine/PRM1/slr/tree
+examples/evol/data/protamine/PRM1/slr/tree.slr
+examples/general/add_features.py
+examples/general/byoperand_search.py
+examples/general/chimp.png
+examples/general/copy_and_paste_trees.py
+examples/general/create_trees_from_scratch.py
+examples/general/custom_search.py
+examples/general/custom_tree_traversing.py
+examples/general/custom_tree_visualization.py
+examples/general/dog.png
+examples/general/fish.png
+examples/general/fly.png
+examples/general/genes_tree.nh
+examples/general/get_common_ancestor.py
+examples/general/get_distances_between_nodes.py
+examples/general/get_midpoint_outgroup.py
+examples/general/getting_leaves.py
+examples/general/human.png
+examples/general/iterators.py
+examples/general/label_nodes.py
+examples/general/mouse.png
+examples/general/nhx_format.py
+examples/general/prune_tree.py
+examples/general/random_tree.png
+examples/general/read_newick.py
+examples/general/remove_and_delete_nodes.py
+examples/general/render_tree_images.py
+examples/general/rooting_subtrees.py
+examples/general/rooting_trees.py
+examples/general/search_nodes.py
+examples/general/tree_basis.py
+examples/general/tree_traverse.py
+examples/general/write_newick.py
+examples/nexml/02_dogfish_no_taxrefs.xml
+examples/nexml/characters.xml
+examples/nexml/meta_taxa.xml
+examples/nexml/nexml.xml
+examples/nexml/nexml_annotated_trees.py
+examples/nexml/nexml_from_scratch.py
+examples/nexml/nexml_parser.py
+examples/nexml/phenoscape.xml
+examples/nexml/taxa.xml
+examples/nexml/timetree.xml
+examples/nexml/tolweb.xml
+examples/nexml/trees.xml
+examples/phylogenies/dating_evolutionary_events.py
+examples/phylogenies/link_sequences_to_phylogenies.py
+examples/phylogenies/orthology_and_paralogy_prediction.py
+examples/phylogenies/phylotree.png
+examples/phylogenies/phylotree_visualization.py
+examples/phylogenies/species_aware_phylogenies.py
+examples/phylogenies/tree_reconciliation.py
+examples/phyloxml/apaf.xml
+examples/phyloxml/bcl_2.xml
+examples/phyloxml/example1.xml
+examples/phyloxml/example2.xml
+examples/phyloxml/example3.xml
+examples/phyloxml/multiple_supports.xml
+examples/phyloxml/ncbi_taxonomy_metazoa.xml.bz2
+examples/phyloxml/phyloxml_examples.xml
+examples/phyloxml/phyloxml_from_scratch.py
+examples/phyloxml/phyloxml_parser.py
+examples/phyloxml/tol_life_on_earth.xml.bz2
+examples/treeview/barchart_and_piechart_faces.py
+examples/treeview/barcharts.png
+examples/treeview/bubble_map.png
+examples/treeview/bubble_map.py
+examples/treeview/face_grid.py
+examples/treeview/face_positions.py
+examples/treeview/face_rotation.py
+examples/treeview/float_piechart.png
+examples/treeview/floating_piecharts.py
+examples/treeview/item_faces.png
+examples/treeview/item_faces.py
+examples/treeview/new_seq_face.py
+examples/treeview/node_background.png
+examples/treeview/node_background.py
+examples/treeview/node_style.png
+examples/treeview/node_style.py
+examples/treeview/random_draw.py
+examples/treeview/rotated_faces.png
+examples/treeview/seq_motif_faces.png
+examples/treeview/seq_motif_faces.py
+examples/treeview/seqmotif.png
+examples/treeview/tree_faces.png
+examples/treeview/tree_faces.py
+examples/treeview/img_faces/chimp.png
+examples/treeview/img_faces/dog.png
+examples/treeview/img_faces/fish.png
+examples/treeview/img_faces/fly.png
+examples/treeview/img_faces/human.png
+examples/treeview/img_faces/img_faces.png
+examples/treeview/img_faces/img_faces.py
+examples/treeview/img_faces/mouse.png
+examples/webplugin/README
+examples/webplugin/close.png
+examples/webplugin/ete.css
+examples/webplugin/ete.js
+examples/webplugin/icon_attachment.png
+examples/webplugin/icon_cancel_search.png
+examples/webplugin/icon_search.png
+examples/webplugin/icon_tools.png
+examples/webplugin/jquery-1.4.2.min.js
+examples/webplugin/jquery-ui-1.8.4.custom.min.js
+examples/webplugin/loader.gif
+examples/webplugin/webplugin_example.html
+examples/webplugin/wsgi/webplugin_example.py
\ No newline at end of file
diff --git a/ete3.egg-info/dependency_links.txt b/ete3.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/ete3.egg-info/entry_points.txt b/ete3.egg-info/entry_points.txt
new file mode 100644
index 0000000..eb9981d
--- /dev/null
+++ b/ete3.egg-info/entry_points.txt
@@ -0,0 +1,3 @@
+[console_scripts]
+ete3 = ete3.tools.ete:main
+
diff --git a/ete3.egg-info/top_level.txt b/ete3.egg-info/top_level.txt
new file mode 100644
index 0000000..51b804f
--- /dev/null
+++ b/ete3.egg-info/top_level.txt
@@ -0,0 +1 @@
+ete3
diff --git a/ete3/__init__.py b/ete3/__init__.py
new file mode 100644
index 0000000..2e58057
--- /dev/null
+++ b/ete3/__init__.py
@@ -0,0 +1,81 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+# Note that the use of "from x import *" is safe here. Modules include
+# the __all__ variable.
+from __future__ import absolute_import
+from warnings import warn
+
+try:
+    import numpy
+except ImportError as e:
+    numpy = None
+
+from .ncbi_taxonomy import *
+from .coretype.tree import *
+from .coretype.seqgroup import *
+from .phylo.phylotree import *
+from .evol.evoltree import *
+from .webplugin.webapp import *
+from .phyloxml import Phyloxml, PhyloxmlTree
+from .nexml import Nexml, NexmlTree
+from .evol import EvolTree
+from .coretype.arraytable import *
+from .clustering.clustertree import *
+
+try:
+    from .phylomedb.phylomeDB3 import *
+except ImportError as e:
+    pass
+
+try:
+    from .treeview.svg_colors import *
+    from .treeview.main import *
+    from .treeview.faces import *
+    from .treeview import faces
+    from .treeview import layouts
+except ImportError as e:
+    pass
+
+try:
+    from .version import __version__
+except ImportError:
+     __version__ = 'unknown'
+
diff --git a/ete3/_ph.py b/ete3/_ph.py
new file mode 100644
index 0000000..a88f392
--- /dev/null
+++ b/ete3/_ph.py
@@ -0,0 +1,142 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+''' I use this module to check for newer versions of ETE '''
+from __future__ import absolute_import
+from __future__ import print_function
+
+try:
+    from urllib2 import urlopen
+    from urllib2 import quote as urlquote
+except ImportError:
+    from urllib.request import urlopen
+    from urllib.parse import quote as urquote
+
+from six.moves import input
+
+try:
+    from . import __ETEID__
+except ImportError:
+    __ETEID__ = "Unknown"
+
+try:
+    from .version import __version__
+except ImportError:
+     __version__ = 'unknown'
+
+def call():
+    print("  == Calling home...", end=' ')
+    try:
+        f = urlopen('http://etetoolkit.org/static/et_phone_home.php?VERSION=%s&ID=%s'
+                %(__version__, __ETEID__))
+    except:
+        print("No answer :(")
+    else:
+        print("Got answer!")
+        try:
+            f = urlopen('http://pypi.python.org/pypi/ete3/')
+        except:
+            latest = None
+        else:
+            latest = int(f.read())
+
+        try:
+            current = int(__version__.split("rev")[1])
+        except (IndexError, ValueError):
+            current = None
+
+        if not latest:
+            print("I could not find data about your version [%s]" %__version__)
+            print("Are you ok?")
+        elif not current:
+            print("I could not determine your version [%s]" %__version__)
+            print("Are you ok?")
+            print("Latest stable ETE version is", latest)
+        elif latest > current:
+            print("You look a bit old.")
+            print("A newer version is available: rev%s" %latest)
+        else:
+            print("I see you are in good shape.")
+            print("No updates are available.")
+        try:
+            msg = input("\n  == Do you want to leave any message?\n(Press enter to finish)\n\n").strip()
+        except KeyboardInterrupt:
+            msg = None
+
+        if msg:
+            msg = urlquote(msg)
+            try:
+                f = urlopen('http://etetoolkit.org/static/et_phone_home.php?VERSION=%s&ID=%s&MSG=%s'
+                                %(__version__, __ETEID__, msg))
+            except:
+                print("Message could be delivered :(")
+            else:
+                print("Message delivered")
+
+def new_version(module_name=None, current=None):
+    if not module_name:
+        module_name = __name__.split(".")[0]
+    try:
+        f = urlopen('http://etetoolkit.org/releases/ete3/%s.latest'
+                        %module_name)
+    except:
+        latest = None
+    else:
+        latest = int(f.read())
+
+    news_url = 'http://etetoolkit.org/releases/ete3/%s.latest_news' %module_name
+    msg = read_content(news_url)
+
+    if not current:
+        try:
+            current = int(__version__.split("rev")[1])
+        except (IndexError, ValueError):
+            current = None
+
+    return current, latest, msg
+
+def read_content(address):
+    try:
+        f = urlopen(address)
+    except:
+        return None
+    else:
+        return f.read()
+
diff --git a/ete3/citation.py b/ete3/citation.py
new file mode 100644
index 0000000..f178e76
--- /dev/null
+++ b/ete3/citation.py
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import re
+import textwrap as twrap
+
+__all__ = ["Citator"]
+
+
+class Citator(object):
+    REFERENCES = {
+        'ETE': u"""Huerta-Cepas J, Serra F, Bork P. ETE 3: Reconstruction, analysis and
+        visualization of phylogenomic data. Mol Biol Evol (2016) doi:
+        10.1093/molbev/msw046""",
+        
+        'phyml': u"""Guindon S, Dufayard JF, Lefort V, Anisimova M, Hordijk W, Gascuel O.
+        New algorithms and methods to estimate maximum-likelihood phylogenies:
+        assessing the performance of PhyML 3.0. Syst Biol. 2010
+        May;59(3):307-21.""",
+        
+        'fasttree': u"""Price MN, Dehal PS, Arkin AP. FastTree 2 -
+        approximately maximum-likelihood trees for large alignments. PLoS
+        One. 2010 Mar 10;5(3):e9490.""",
+        
+        'raxml': u"""Stamatakis A. RAxML version 8: a tool for phylogenetic analysis and
+        post-analysis of large phylogenies Bioinformatics (2014) 30 (9): 1312-1313.""",
+        'mafft': u"""Katoh K, Kuma K, Toh H, Miyata T. MAFFT version 5:
+        improvement in accuracy of multiple sequence alignment.  Nucleic Acids
+        Res. 2005 Jan 20;33(2):511-8.""",
+        
+        'trimal': u"""Capella-Gutiérrez S, Silla-Martínez JM, Gabaldón T.
+        trimAl: a tool for automated alignment trimming in large-scale
+        phylogenetic analyses.  Bioinformatics. 2009 Aug 1;25(15):1972-3.""",
+        
+        'muscle': u"""Edgar RC. MUSCLE: multiple sequence alignment with
+        high accuracy and high throughput.", Nucleic Acids Res. 2004 Mar
+        19;32(5):1792-7.""",
+        
+        'clustalo': u""" Sievers F, Wilm A, Dineen D, Gibson TJ, Karplus
+        K, Li W, Lopez R, McWilliam H, Remmert M, Söding J, Thompson JD,
+        Higgins DG.  Fast, scalable generation of high-quality protein
+        multiple sequence alignments using Clustal Omega.  Mol Syst Biol. 2011
+        Oct 11;7:539. doi: 10.1038/msb.2011.75.""",
+        
+        'dialigntx': u"""Subramanian AR, Kaufmann M, Morgenstern B.
+        DIALIGN-TX: greedy and progressive approaches for segment-based
+        multiple sequence alignment. Algorithms Mol Biol. 2008 May 27;3:6.""",
+        
+        'mcoffee': u"""Wallace IM, O'Sullivan O, Higgins DG, Notredame C.
+        M-Coffee: combining multiple sequence alignment methods with T-Coffee.
+        Nucleic Acids Res. 2006 Mar 23;34(6):1692-9. """,
+        
+        'tcoffee': u"""Magis C, Taly JF, Bussotti G, Chang JM, Di Tommaso P, Erb I,
+        Espinosa-Carrasco J, Notredame C. T-Coffee: Tree-based consistency objective
+        function for alignment evaluation. Methods Mol Biol. 2014;1079:117-29.""",
+
+        'jmodeltest': u"""Darriba D, Taboada GL, Doallo R, Posada
+        D. jModelTest 2: more models, new heuristics and parallel computing.Nat
+        Methods. 2012 Jul 30;9(8):772.""",
+
+        'treeko': u"""Marcet-Houben M, Gabaldón T. TreeKO: a duplication-aware algorithm for the
+        comparison of phylogenetic trees. Nucleic Acids Res. 2011 May;39(10):e66. doi:
+        10.1093/nar/gkr087."""        
+        }
+    
+    def __init__(self):
+        self.citations = set()
+
+    def add(self, ref):
+        self.citations.add(self.REFERENCES[ref])
+
+    def show(self):
+        wrapper = twrap.TextWrapper(width=75, initial_indent="   ",
+                              subsequent_indent="      ",
+                              replace_whitespace=False)
+        citations = sorted(self.citations)
+        print("   ========================================================================")
+        print("         The following published software and/or methods were used.        ")
+        print("               *** Please, do not forget to cite them! ***                 ")
+        print("   ========================================================================")
+        for ref in citations:
+            print(wrapper.fill(re.sub('[\n \t]+', ' ', ref).strip()))
+
diff --git a/ete3/clustering/__init__.py b/ete3/clustering/__init__.py
new file mode 100644
index 0000000..6e24104
--- /dev/null
+++ b/ete3/clustering/__init__.py
@@ -0,0 +1,42 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from .clustertree import *
+
+__all__ = clustertree.__all__
diff --git a/ete3/clustering/clustertree.py b/ete3/clustering/clustertree.py
new file mode 100644
index 0000000..0b00333
--- /dev/null
+++ b/ete3/clustering/clustertree.py
@@ -0,0 +1,256 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from sys import stderr
+from . import clustvalidation
+from ..coretype.tree import _translate_nodes
+from .. import TreeNode, ArrayTable
+from .. import numpy
+from six.moves import range
+
+__all__ = ["ClusterNode", "ClusterTree"]
+
+class ClusterNode(TreeNode):
+    """ Creates a new Cluster Tree object, which is a collection
+    of ClusterNode instances connected in a hierarchical way, and
+    representing a clustering result.
+
+    a newick file or string can be passed as the first argument. An
+    ArrayTable file or instance can be passed as a second argument.
+
+    Examples:
+      t1 = Tree() # creates an empty tree
+      t2 = Tree( '(A:1,(B:1,(C:1,D:1):0.5):0.5);' )
+      t3 = Tree( '/home/user/myNewickFile.txt' )
+    """
+
+    def _set_forbidden(self, value):
+        raise ValueError("This attribute can not be manually set.")
+
+    def _get_intra(self):
+        if self._silhouette == None:
+            self.get_silhouette()
+        return self._intracluster_dist
+
+    def _get_inter(self):
+        if self._silhouette == None:
+            self.get_silhouette()
+        return self._intercluster_dist
+
+    def _get_silh(self):
+        if self._silhouette == None:
+            self.get_silhouette()
+        return self._silhouette
+
+    def _get_prof(self):
+        if self._profile is None:
+            self._calculate_avg_profile()
+        return self._profile
+
+    def _get_std(self):
+        if self._std_profile is None:
+            self._calculate_avg_profile()
+        return self._std_profile
+
+    def _set_profile(self, value):
+        self._profile = value
+
+    intracluster_dist = property(fget=_get_intra, fset=_set_forbidden)
+    intercluster_dist = property(fget=_get_inter, fset=_set_forbidden)
+    silhouette = property(fget=_get_silh, fset=_set_forbidden)
+    profile = property(fget=_get_prof, fset=_set_profile)
+    deviation = property(fget=_get_std, fset=_set_forbidden)
+
+    def __init__(self, newick = None, text_array = None, \
+                 fdist=clustvalidation.default_dist):
+        # Default dist is spearman_dist when scipy module is loaded
+        # otherwise, it is set to euclidean_dist.
+
+        # Initialize basic tree features and loads the newick (if any)
+        TreeNode.__init__(self, newick)
+        self._fdist = None
+        self._silhouette = None
+        self._intercluster_dist = None
+        self._intracluster_dist = None
+        self._profile = None
+        self._std_profile = None
+
+        # Cluster especific features
+        self.features.add("intercluster_dist")
+        self.features.add("intracluster_dist")
+        self.features.add("silhouette")
+        self.features.add("profile")
+        self.features.add("deviation")
+
+        # Initialize tree with array data
+        if text_array:
+            self.link_to_arraytable(text_array)
+
+        if newick:
+            self.set_distance_function(fdist)
+
+    def __repr__(self):
+        return "ClusterTree node (%s)" %hex(self.__hash__())
+
+    def set_distance_function(self, fn):
+        """ Sets the distance function used to calculate cluster
+        distances and silouette index.
+
+        ARGUMENTS:
+
+          fn: a pointer to python function acepting two arrays (numpy) as
+          arguments.
+
+        EXAMPLE:
+
+          # A simple euclidean distance
+          my_dist_fn = lambda x,y: abs(x-y)
+          tree.set_distance_function(my_dist_fn)
+
+          """
+        for n in self.traverse():
+            n._fdist = fn
+            n._silhouette = None
+            n._intercluster_dist = None
+            n._intracluster_dist = None
+
+    def link_to_arraytable(self, arraytbl):
+        """ Allows to link a given arraytable object to the tree
+        structure under this node. Row names in the arraytable object
+        are expected to match leaf names.
+
+        Returns a list of nodes for with profiles could not been found
+        in arraytable.
+
+        """
+
+        # Initialize tree with array data
+
+        if type(arraytbl) == ArrayTable:
+            array = arraytbl
+        else:
+            array = ArrayTable(arraytbl)
+
+        missing_leaves = []
+        matrix_values = [i for r in range(len(array.matrix))\
+                           for i in array.matrix[r] if numpy.isfinite(i)]
+
+        array._matrix_min = min(matrix_values)
+        array._matrix_max = max(matrix_values)
+
+        for n in self.traverse():
+            n.arraytable = array
+            if n.is_leaf() and n.name in array.rowNames:
+                n._profile = array.get_row_vector(n.name)
+            elif n.is_leaf():
+                n._profile = [numpy.nan]*len(array.colNames)
+                missing_leaves.append(n)
+
+
+        if len(missing_leaves)>0:
+            print("""[%d] leaf names could not be mapped to the matrix rows.""" %\
+                len(missing_leaves), file=stderr)
+
+        self.arraytable = array
+
+    def iter_leaf_profiles(self):
+        """ Returns an iterator over all the profiles associated to
+        the leaves under this node."""
+        for l in self.iter_leaves():
+            yield l.get_profile()[0]
+
+    def get_leaf_profiles(self):
+        """ Returns the list of all the profiles associated to the
+        leaves under this node."""
+        return [l.get_profile()[0] for l in self.iter_leaves()]
+
+    def get_silhouette(self, fdist=None):
+        """ Calculates the node's silhouette value by using a given
+        distance function. By default, euclidean distance is used. It
+        also calculates the deviation profile, mean profile, and
+        inter/intra-cluster distances.
+
+        It sets the following features into the analyzed node:
+           - node.intracluster
+           - node.intercluster
+           - node.silhouete
+
+        intracluster distances a(i) are calculated as the Centroid
+        Diameter
+
+        intercluster distances b(i) are calculated as the Centroid linkage distance
+
+        ** Rousseeuw, P.J. (1987) Silhouettes: A graphical aid to the
+        interpretation and validation of cluster analysis.
+        J. Comput. Appl. Math., 20, 53-65.
+
+        """
+        if fdist is None:
+            fdist = self._fdist
+
+        # Updates internal values
+        self._silhouette, self._intracluster_dist, self._intercluster_dist = \
+            clustvalidation.get_silhouette_width(fdist, self)
+        # And returns them
+        return self._silhouette, self._intracluster_dist, self._intercluster_dist
+
+    def get_dunn(self, clusters, fdist=None):
+        """ Calculates the Dunn index for the given set of descendant
+        nodes.
+        """
+
+        if fdist is None:
+            fdist = self._fdist
+        nodes = _translate_nodes(self, *clusters)
+        return clustvalidation.get_dunn_index(fdist, *nodes)
+
+    def _calculate_avg_profile(self):
+        """ This internal function updates the mean profile
+        associated to an internal node. """
+
+        # Updates internal values
+        self._profile, self._std_profile = clustvalidation.get_avg_profile(self)
+
+
+# cosmetic alias
+#: .. currentmodule:: ete3
+#
+ClusterTree = ClusterNode
diff --git a/ete3/clustering/clustvalidation.py b/ete3/clustering/clustvalidation.py
new file mode 100644
index 0000000..d9e81cc
--- /dev/null
+++ b/ete3/clustering/clustvalidation.py
@@ -0,0 +1,204 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+
+from .. import numpy
+from math import sqrt
+from six.moves import range
+
+def safe_mean(values):
+    """ Returns mean value discarding non finite values """
+    valid_values = []
+    for v in values:
+        if numpy.isfinite(v):
+            valid_values.append(v)
+    return numpy.mean(valid_values), numpy.std(valid_values)
+
+def safe_mean_vector(vectors):
+    """ Returns mean profile discarding non finite values.
+    """
+    # if only one vector, avg = itself
+    if len(vectors)==1:
+        return vectors[0], numpy.zeros(len(vectors[0]))
+    # Takes the vector length form the first item
+    length = len(vectors[0])
+
+    safe_mean = []
+    safe_std  = []
+
+    for pos in range(length):
+        pos_mean = []
+        for v in vectors:
+            if numpy.isfinite(v[pos]):
+                pos_mean.append(v[pos])
+        safe_mean.append(numpy.mean(pos_mean))
+        safe_std.append(numpy.std(pos_mean))
+    return numpy.array(safe_mean), numpy.array(safe_std)
+
+def get_silhouette_width(fdist, cluster):
+    sisters = cluster.get_sisters()
+
+    # Calculates silhouette
+    silhouette = []
+    intra_dist = []
+    inter_dist = []
+    for st in sisters:
+        if st.profile is None:
+            continue
+        for i in cluster.iter_leaves():
+            # Skip nodes without profile
+            if i._profile is not None:
+                # item intraclsuterdist -> Centroid Diameter
+                a = fdist(i.profile, cluster.profile)*2
+                # intracluster dist -> Centroid Linkage
+                b = fdist(i.profile, st.profile)
+
+                if (b-a) == 0.0:
+                    s = 0.0
+                else:
+                    s =  (b-a) / max(a,b)
+
+                intra_dist.append(a)
+                inter_dist.append(b)
+                silhouette.append(s)
+
+    silhouette, std = safe_mean(silhouette)
+    intracluster_dist, std = safe_mean(intra_dist)
+    intercluster_dist, std = safe_mean(inter_dist)
+    return silhouette, intracluster_dist, intercluster_dist
+
+def get_avg_profile(node):
+    """ This internal function updates the mean profile
+    associated to an internal node. """
+
+    if not node.is_leaf():
+        leaf_vectors = [n._profile for n in  node.get_leaves() \
+                            if n._profile is not None]
+        if len(leaf_vectors)>0:
+            node._profile, node._std_profile = safe_mean_vector(leaf_vectors)
+        else:
+            node._profile, node._std_profile = None, None
+        return node._profile, node._std_profile
+    else:
+        node._std_profile = [0.0]*len(node._profile)
+        return node._profile, [0.0]*len(node._profile)
+
+
+def get_dunn_index(fdist, *clusters):
+    """
+    Returns the Dunn index for the given selection of nodes.
+
+    J.C. Dunn. Well separated clusters and optimal fuzzy
+    partitions. 1974. J.Cybern. 4. 95-104.
+
+    """
+
+    if len(clusters)<2:
+        raise ValueError("At least 2 clusters are required")
+
+    intra_dist = []
+    for c in clusters:
+        for i in c.get_leaves():
+            if i is not None:
+                # item intraclsuterdist -> Centroid Diameter
+                a = fdist(i.profile, c.profile)*2
+                intra_dist.append(a)
+    max_a = numpy.max(intra_dist)
+    inter_dist = []
+    for i, ci in enumerate(clusters):
+        for cj in clusters[i+1:]:
+            # intracluster dist -> Centroid Linkage
+            b = fdist(ci.profile, cj.profile)
+            inter_dist.append(b)
+    min_b = numpy.min(inter_dist)
+
+    if max_a == 0.0:
+        D = 0.0
+    else:
+        D = min_b / max_a
+    return D
+
+
+
+# ####################
+# distance functions
+# ####################
+
+def pearson_dist(v1, v2):
+    if (v1 == v2).all():
+        return 0.0
+    else:
+        return 1.0 - stats.pearsonr(list(v1),list(v2))[0]
+
+def spearman_dist(v1, v2):
+    if (v1 == v2).all():
+        return 0.0
+    else:
+        return 1.0 - stats.spearmanr(list(v1),list(v2))[0]
+
+def euclidean_dist(v1,v2):
+    if (v1 == v2).all():
+        return 0.0
+    else:
+        return sqrt( square_euclidean_dist(v1,v2) )
+
+def square_euclidean_dist(v1,v2):
+    if (v1 == v2).all():
+        return 0.0
+    valids  = 0
+    distance= 0.0
+    for i in range(len(v1)):
+        if numpy.isfinite(v1[i]) and numpy.isfinite(v2[i]):
+            valids += 1
+            d = v1[i]-v2[i]
+            distance += d*d
+    if valids==0:
+        raise ValueError("Cannot calculate values")
+    return  distance/valids
+
+try:
+   from scipy import stats
+except ImportError:
+    try:
+        from . import stats
+        default_dist = spearman_dist
+    except ImportError:
+        default_dist = euclidean_dist
+else:
+    default_dist = spearman_dist
diff --git a/ete3/clustering/pstat.py b/ete3/clustering/pstat.py
new file mode 100644
index 0000000..d07464b
--- /dev/null
+++ b/ete3/clustering/pstat.py
@@ -0,0 +1,1110 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+# Copyright (c) 1999-2007 Gary Strangman; All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+# Comments and/or additions are welcome (send e-mail to:
+# strang at nmr.mgh.harvard.edu).
+#
+"""
+pstat.py module
+
+#################################################
+#######  Written by:  Gary Strangman  ###########
+#######  Last modified:  Dec 18, 2007 ###########
+#################################################
+
+This module provides some useful list and array manipulation routines
+modeled after those found in the |Stat package by Gary Perlman, plus a
+number of other useful list/file manipulation functions.  The list-based
+functions include:
+
+      abut (source,*args)
+      simpleabut (source, addon)
+      colex (listoflists,cnums)
+      collapse (listoflists,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+      dm (listoflists,criterion)
+      flat (l)
+      linexand (listoflists,columnlist,valuelist)
+      linexor (listoflists,columnlist,valuelist)
+      linedelimited (inlist,delimiter)
+      lineincols (inlist,colsize)
+      lineincustcols (inlist,colsizes)
+      list2string (inlist)
+      makelol(inlist)
+      makestr(x)
+      printcc (lst,extra=2)
+      printincols (listoflists,colsize)
+      pl (listoflists)
+      printl(listoflists)
+      replace (lst,oldval,newval)
+      recode (inlist,listmap,cols='all')
+      remap (listoflists,criterion)
+      roundlist (inlist,num_digits_to_round_floats_to)
+      sortby(listoflists,sortcols)
+      unique (inlist)
+      duplicates(inlist)
+      writedelimited (listoflists, delimiter, file, writetype='w')
+
+Some of these functions have alternate versions which are defined only if
+Numeric (NumPy) can be imported.  These functions are generally named as
+above, with an 'a' prefix.
+
+      aabut (source, *args)
+      acolex (a,indices,axis=1)
+      acollapse (a,keepcols,collapsecols,sterr=0,ns=0)
+      adm (a,criterion)
+      alinexand (a,columnlist,valuelist)
+      alinexor (a,columnlist,valuelist)
+      areplace (a,oldval,newval)
+      arecode (a,listmap,col='all')
+      arowcompare (row1, row2)
+      arowsame (row1, row2)
+      asortrows(a,axis=0)
+      aunique(inarray)
+      aduplicates(inarray)
+
+Currently, the code is all but completely un-optimized.  In many cases, the
+array versions of functions amount simply to aliases to built-in array
+functions/methods.  Their inclusion here is for function name consistency.
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+
+## CHANGE LOG:
+## ==========
+## 07-11-26 ... edited to work with numpy
+## 01-11-15 ... changed list2string() to accept a delimiter
+## 01-06-29 ... converted exec()'s to eval()'s to make compatible with Py2.1
+## 01-05-31 ... added duplicates() and aduplicates() functions
+## 00-12-28 ... license made GPL, docstring and import requirements
+## 99-11-01 ... changed version to 0.3
+## 99-08-30 ... removed get, getstrings, put, aget, aput (into io.py)
+## 03/27/99 ... added areplace function, made replace fcn recursive
+## 12/31/98 ... added writefc function for ouput to fixed column sizes
+## 12/07/98 ... fixed import problem (failed on collapse() fcn)
+##              added __version__ variable (now 0.2)
+## 12/05/98 ... updated doc-strings
+##              added features to collapse() function
+##              added flat() function for lists
+##              fixed a broken asortrows()
+## 11/16/98 ... fixed minor bug in aput for 1D arrays
+##
+## 11/08/98 ... fixed aput to output large arrays correctly
+
+from . import stats  # required 3rd party module
+import string, copy
+from types import *
+from six.moves import map
+from six.moves import range
+
+__version__ = 0.4
+
+###===========================  LIST FUNCTIONS  ==========================
+###
+### Here are the list functions, DEFINED FOR ALL SYSTEMS.
+### Array functions (for NumPy-enabled computers) appear below.
+###
+
+def abut (source,*args):
+    """
+Like the |Stat abut command.  It concatenates two lists side-by-side
+and returns the result.  '2D' lists are also accomodated for either argument
+(source or addon).  CAUTION:  If one list is shorter, it will be repeated
+until it is as long as the longest list.  If this behavior is not desired,
+use pstat.simpleabut().
+
+Usage:   abut(source, args)   where args=any # of lists
+Returns: a list of lists as long as the LONGEST list past, source on the
+         'left', lists in <args> attached consecutively on the 'right'
+"""
+
+    if type(source) not in [ListType,TupleType]:
+        source = [source]
+    for addon in args:
+        if type(addon) not in [ListType,TupleType]:
+            addon = [addon]
+        if len(addon) < len(source):                # is source list longer?
+            if len(source) % len(addon) == 0:        # are they integer multiples?
+                repeats = len(source)/len(addon)    # repeat addon n times
+                origadd = copy.deepcopy(addon)
+                for i in range(repeats-1):
+                    addon = addon + origadd
+            else:
+                repeats = len(source)/len(addon)+1  # repeat addon x times,
+                origadd = copy.deepcopy(addon)      #    x is NOT an integer
+                for i in range(repeats-1):
+                    addon = addon + origadd
+                    addon = addon[0:len(source)]
+        elif len(source) < len(addon):                # is addon list longer?
+            if len(addon) % len(source) == 0:        # are they integer multiples?
+                repeats = len(addon)/len(source)    # repeat source n times
+                origsour = copy.deepcopy(source)
+                for i in range(repeats-1):
+                    source = source + origsour
+            else:
+                repeats = len(addon)/len(source)+1  # repeat source x times,
+                origsour = copy.deepcopy(source)    #   x is NOT an integer
+                for i in range(repeats-1):
+                    source = source + origsour
+                source = source[0:len(addon)]
+
+        source = simpleabut(source,addon)
+    return source
+
+
+def simpleabut (source, addon):
+    """
+Concatenates two lists as columns and returns the result.  '2D' lists
+are also accomodated for either argument (source or addon).  This DOES NOT
+repeat either list to make the 2 lists of equal length.  Beware of list pairs
+with different lengths ... the resulting list will be the length of the
+FIRST list passed.
+
+Usage:   simpleabut(source,addon)  where source, addon=list (or list-of-lists)
+Returns: a list of lists as long as source, with source on the 'left' and
+                 addon on the 'right'
+"""
+    if type(source) not in [ListType,TupleType]:
+        source = [source]
+    if type(addon) not in [ListType,TupleType]:
+        addon = [addon]
+    minlen = min(len(source),len(addon))
+    list = copy.deepcopy(source)                # start abut process
+    if type(source[0]) not in [ListType,TupleType]:
+        if type(addon[0]) not in [ListType,TupleType]:
+            for i in range(minlen):
+                list[i] = [source[i]] + [addon[i]]        # source/addon = column
+        else:
+            for i in range(minlen):
+                list[i] = [source[i]] + addon[i]        # addon=list-of-lists
+    else:
+        if type(addon[0]) not in [ListType,TupleType]:
+            for i in range(minlen):
+                list[i] = source[i] + [addon[i]]        # source=list-of-lists
+        else:
+            for i in range(minlen):
+                list[i] = source[i] + addon[i]        # source/addon = list-of-lists
+    source = list
+    return source
+
+
+def colex (listoflists,cnums):
+    """
+Extracts from listoflists the columns specified in the list 'cnums'
+(cnums can be an integer, a sequence of integers, or a string-expression that
+corresponds to a slice operation on the variable x ... e.g., 'x[3:]' will colex
+columns 3 onward from the listoflists).
+
+Usage:   colex (listoflists,cnums)
+Returns: a list-of-lists corresponding to the columns from listoflists
+         specified by cnums, in the order the column numbers appear in cnums
+"""
+    global index
+    column = 0
+    if type(cnums) in [ListType,TupleType]:   # if multiple columns to get
+        index = cnums[0]
+        column = [x[index] for x in listoflists]
+        for col in cnums[1:]:
+            index = col
+            column = abut(column,[x[index] for x in listoflists])
+    elif type(cnums) == StringType:              # if an 'x[3:]' type expr.
+        evalstring = 'map(lambda x: x'+cnums+', listoflists)'
+        column = eval(evalstring)
+    else:                                     # else it's just 1 col to get
+        index = cnums
+        column = [x[index] for x in listoflists]
+    return column
+
+
+def collapse (listoflists,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None):
+     """
+Averages data in collapsecol, keeping all unique items in keepcols
+(using unique, which keeps unique LISTS of column numbers), retaining the
+unique sets of values in keepcols, the mean for each.  Setting fcn1
+and/or fcn2 to point to a function rather than None (e.g., stats.sterr, len)
+will append those results (e.g., the sterr, N) after each calculated mean.
+cfcn is the collapse function to apply (defaults to mean, defined here in the
+pstat module to avoid circular imports with stats.py, but harmonicmean or
+others could be passed).
+
+Usage:    collapse (listoflists,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+Returns: a list of lists with all unique permutations of entries appearing in
+     columns ("conditions") specified by keepcols, abutted with the result of
+     cfcn (if cfcn=None, defaults to the mean) of each column specified by
+     collapsecols.
+"""
+     def collmean (inlist):
+         s = 0
+         for item in inlist:
+             s = s + item
+         return s/float(len(inlist))
+
+     if type(keepcols) not in [ListType,TupleType]:
+         keepcols = [keepcols]
+     if type(collapsecols) not in [ListType,TupleType]:
+         collapsecols = [collapsecols]
+     if cfcn == None:
+         cfcn = collmean
+     if keepcols == []:
+         means = [0]*len(collapsecols)
+         for i in range(len(collapsecols)):
+             avgcol = colex(listoflists,collapsecols[i])
+             means[i] = cfcn(avgcol)
+             if fcn1:
+                 try:
+                     test = fcn1(avgcol)
+                 except:
+                     test = 'N/A'
+                     means[i] = [means[i], test]
+             if fcn2:
+                 try:
+                     test = fcn2(avgcol)
+                 except:
+                     test = 'N/A'
+                 try:
+                     means[i] = means[i] + [len(avgcol)]
+                 except TypeError:
+                     means[i] = [means[i],len(avgcol)]
+         return means
+     else:
+         values = colex(listoflists,keepcols)
+         uniques = unique(values)
+         uniques.sort()
+         newlist = []
+         if type(keepcols) not in [ListType,TupleType]:  keepcols = [keepcols]
+         for item in uniques:
+             if type(item) not in [ListType,TupleType]:  item =[item]
+             tmprows = linexand(listoflists,keepcols,item)
+             for col in collapsecols:
+                 avgcol = colex(tmprows,col)
+                 item.append(cfcn(avgcol))
+                 if fcn1 != None:
+                     try:
+                         test = fcn1(avgcol)
+                     except:
+                         test = 'N/A'
+                     item.append(test)
+                 if fcn2 != None:
+                     try:
+                         test = fcn2(avgcol)
+                     except:
+                         test = 'N/A'
+                     item.append(test)
+                 newlist.append(item)
+         return newlist
+
+
+def dm (listoflists,criterion):
+    """
+Returns rows from the passed list of lists that meet the criteria in
+the passed criterion expression (a string as a function of x; e.g., 'x[3]>=9'
+will return all rows where the 4th column>=9 and "x[2]=='N'" will return rows
+with column 2 equal to the string 'N').
+
+Usage:   dm (listoflists, criterion)
+Returns: rows from listoflists that meet the specified criterion.
+"""
+    function = 'filter(lambda x: '+criterion+',listoflists)'
+    lines = eval(function)
+    return lines
+
+
+def flat(l):
+    """
+Returns the flattened version of a '2D' list.  List-correlate to the a.ravel()()
+method of NumPy arrays.
+
+Usage:    flat(l)
+"""
+    newl = []
+    for i in range(len(l)):
+        for j in range(len(l[i])):
+            newl.append(l[i][j])
+    return newl
+
+
+def linexand (listoflists,columnlist,valuelist):
+    """
+Returns the rows of a list of lists where col (from columnlist) = val
+(from valuelist) for EVERY pair of values (columnlist[i],valuelists[i]).
+len(columnlist) must equal len(valuelist).
+
+Usage:   linexand (listoflists,columnlist,valuelist)
+Returns: the rows of listoflists where columnlist[i]=valuelist[i] for ALL i
+"""
+    if type(columnlist) not in [ListType,TupleType]:
+        columnlist = [columnlist]
+    if type(valuelist) not in [ListType,TupleType]:
+        valuelist = [valuelist]
+    criterion = ''
+    for i in range(len(columnlist)):
+        if type(valuelist[i])==StringType:
+            critval = '\'' + valuelist[i] + '\''
+        else:
+            critval = str(valuelist[i])
+        criterion = criterion + ' x['+str(columnlist[i])+']=='+critval+' and'
+    criterion = criterion[0:-3]         # remove the "and" after the last crit
+    function = 'filter(lambda x: '+criterion+',listoflists)'
+    lines = eval(function)
+    return lines
+
+
+def linexor (listoflists,columnlist,valuelist):
+    """
+Returns the rows of a list of lists where col (from columnlist) = val
+(from valuelist) for ANY pair of values (colunmlist[i],valuelist[i[).
+One value is required for each column in columnlist.  If only one value
+exists for columnlist but multiple values appear in valuelist, the
+valuelist values are all assumed to pertain to the same column.
+
+Usage:   linexor (listoflists,columnlist,valuelist)
+Returns: the rows of listoflists where columnlist[i]=valuelist[i] for ANY i
+"""
+    if type(columnlist) not in [ListType,TupleType]:
+        columnlist = [columnlist]
+    if type(valuelist) not in [ListType,TupleType]:
+        valuelist = [valuelist]
+    criterion = ''
+    if len(columnlist) == 1 and len(valuelist) > 1:
+        columnlist = columnlist*len(valuelist)
+    for i in range(len(columnlist)):          # build an exec string
+        if type(valuelist[i])==StringType:
+            critval = '\'' + valuelist[i] + '\''
+        else:
+            critval = str(valuelist[i])
+        criterion = criterion + ' x['+str(columnlist[i])+']=='+critval+' or'
+    criterion = criterion[0:-2]         # remove the "or" after the last crit
+    function = 'filter(lambda x: '+criterion+',listoflists)'
+    lines = eval(function)
+    return lines
+
+
+def linedelimited (inlist,delimiter):
+    """
+Returns a string composed of elements in inlist, with each element
+separated by 'delimiter.'  Used by function writedelimited.  Use '\t'
+for tab-delimiting.
+
+Usage:   linedelimited (inlist,delimiter)
+"""
+    outstr = ''
+    for item in inlist:
+        if type(item) != StringType:
+            item = str(item)
+        outstr = outstr + item + delimiter
+    outstr = outstr[0:-1]
+    return outstr
+
+
+def lineincols (inlist,colsize):
+    """
+Returns a string composed of elements in inlist, with each element
+right-aligned in columns of (fixed) colsize.
+
+Usage:   lineincols (inlist,colsize)   where colsize is an integer
+"""
+    outstr = ''
+    for item in inlist:
+        if type(item) != StringType:
+            item = str(item)
+        size = len(item)
+        if size <= colsize:
+            for i in range(colsize-size):
+                outstr = outstr + ' '
+            outstr = outstr + item
+        else:
+            outstr = outstr + item[0:colsize+1]
+    return outstr
+
+
+def lineincustcols (inlist,colsizes):
+    """
+Returns a string composed of elements in inlist, with each element
+right-aligned in a column of width specified by a sequence colsizes.  The
+length of colsizes must be greater than or equal to the number of columns
+in inlist.
+
+Usage:   lineincustcols (inlist,colsizes)
+Returns: formatted string created from inlist
+"""
+    outstr = ''
+    for i in range(len(inlist)):
+        if type(inlist[i]) != StringType:
+            item = str(inlist[i])
+        else:
+            item = inlist[i]
+        size = len(item)
+        if size <= colsizes[i]:
+            for j in range(colsizes[i]-size):
+                outstr = outstr + ' '
+            outstr = outstr + item
+        else:
+            outstr = outstr + item[0:colsizes[i]+1]
+    return outstr
+
+
+def list2string (inlist,delimit=' '):
+    """
+Converts a 1D list to a single long string for file output, using
+the string.join function.
+
+Usage:   list2string (inlist,delimit=' ')
+Returns: the string created from inlist
+"""
+    stringlist = list(map(makestr,inlist))
+    return string.join(stringlist,delimit)
+
+
+def makelol(inlist):
+    """
+Converts a 1D list to a 2D list (i.e., a list-of-lists).  Useful when you
+want to use put() to write a 1D list one item per line in the file.
+
+Usage:   makelol(inlist)
+Returns: if l = [1,2,'hi'] then returns [[1],[2],['hi']] etc.
+"""
+    x = []
+    for item in inlist:
+        x.append([item])
+    return x
+
+
+def makestr (x):
+    if type(x) != StringType:
+        x = str(x)
+    return x
+
+
+def printcc (lst,extra=2):
+    """
+Prints a list of lists in columns, customized by the max size of items
+within the columns (max size of items in col, plus 'extra' number of spaces).
+Use 'dashes' or '\\n' in the list-of-lists to print dashes or blank lines,
+respectively.
+
+Usage:   printcc (lst,extra=2)
+Returns: None
+"""
+    if type(lst[0]) not in [ListType,TupleType]:
+        lst = [lst]
+    rowstokill = []
+    list2print = copy.deepcopy(lst)
+    for i in range(len(lst)):
+        if lst[i] == ['\n'] or lst[i]=='\n' or lst[i]=='dashes' or lst[i]=='' or lst[i]==['']:
+            rowstokill = rowstokill + [i]
+    rowstokill.reverse()   # delete blank rows from the end
+    for row in rowstokill:
+        del list2print[row]
+    maxsize = [0]*len(list2print[0])
+    for col in range(len(list2print[0])):
+        items = colex(list2print,col)
+        items = list(map(makestr,items))
+        maxsize[col] = max(list(map(len,items))) + extra
+    for row in lst:
+        if row == ['\n'] or row == '\n' or row == '' or row == ['']:
+            print()
+        elif row == ['dashes'] or row == 'dashes':
+            dashes = [0]*len(maxsize)
+            for j in range(len(maxsize)):
+                dashes[j] = '-'*(maxsize[j]-2)
+            print(lineincustcols(dashes,maxsize))
+        else:
+            print(lineincustcols(row,maxsize))
+    return None
+
+
+def printincols (listoflists,colsize):
+    """
+Prints a list of lists in columns of (fixed) colsize width, where
+colsize is an integer.
+
+Usage:   printincols (listoflists,colsize)
+Returns: None
+"""
+    for row in listoflists:
+        print(lineincols(row,colsize))
+    return None
+
+
+def pl (listoflists):
+    """
+Prints a list of lists, 1 list (row) at a time.
+
+Usage:   pl(listoflists)
+Returns: None
+"""
+    for row in listoflists:
+        if row[-1] == '\n':
+            print(row, end=' ')
+        else:
+            print(row)
+    return None
+
+
+def printl(listoflists):
+    """Alias for pl."""
+    pl(listoflists)
+    return
+
+
+def replace (inlst,oldval,newval):
+    """
+Replaces all occurrences of 'oldval' with 'newval', recursively.
+
+Usage:   replace (inlst,oldval,newval)
+"""
+    lst = inlst*1
+    for i in range(len(lst)):
+        if type(lst[i]) not in [ListType,TupleType]:
+            if lst[i]==oldval: lst[i]=newval
+        else:
+            lst[i] = replace(lst[i],oldval,newval)
+    return lst
+
+
+def recode (inlist,listmap,cols=None):
+    """
+Changes the values in a list to a new set of values (useful when
+you need to recode data from (e.g.) strings to numbers.  cols defaults
+to None (meaning all columns are recoded).
+
+Usage:   recode (inlist,listmap,cols=None)  cols=recode cols, listmap=2D list
+Returns: inlist with the appropriate values replaced with new ones
+"""
+    lst = copy.deepcopy(inlist)
+    if cols != None:
+        if type(cols) not in [ListType,TupleType]:
+            cols = [cols]
+        for col in cols:
+            for row in range(len(lst)):
+                try:
+                    idx = colex(listmap,0).index(lst[row][col])
+                    lst[row][col] = listmap[idx][1]
+                except ValueError:
+                    pass
+    else:
+        for row in range(len(lst)):
+            for col in range(len(lst)):
+                try:
+                    idx = colex(listmap,0).index(lst[row][col])
+                    lst[row][col] = listmap[idx][1]
+                except ValueError:
+                    pass
+    return lst
+
+
+def remap (listoflists,criterion):
+    """
+Remaps values in a given column of a 2D list (listoflists).  This requires
+a criterion as a function of 'x' so that the result of the following is
+returned ... map(lambda x: 'criterion',listoflists).
+
+Usage:   remap(listoflists,criterion)    criterion=string
+Returns: remapped version of listoflists
+"""
+    function = 'map(lambda x: '+criterion+',listoflists)'
+    lines = eval(function)
+    return lines
+
+
+def roundlist (inlist,digits):
+    """
+Goes through each element in a 1D or 2D inlist, and applies the following
+function to all elements of FloatType ... round(element,digits).
+
+Usage:   roundlist(inlist,digits)
+Returns: list with rounded floats
+"""
+    if type(inlist[0]) in [IntType, FloatType]:
+        inlist = [inlist]
+    l = inlist*1
+    for i in range(len(l)):
+        for j in range(len(l[i])):
+            if type(l[i][j])==FloatType:
+                l[i][j] = round(l[i][j],digits)
+    return l
+
+
+def sortby(listoflists,sortcols):
+    """
+Sorts a list of lists on the column(s) specified in the sequence
+sortcols.
+
+Usage:   sortby(listoflists,sortcols)
+Returns: sorted list, unchanged column ordering
+"""
+    newlist = abut(colex(listoflists,sortcols),listoflists)
+    newlist.sort()
+    try:
+        numcols = len(sortcols)
+    except TypeError:
+        numcols = 1
+    crit = '[' + str(numcols) + ':]'
+    newlist = colex(newlist,crit)
+    return newlist
+
+
+def unique (inlist):
+    """
+Returns all unique items in the passed list.  If the a list-of-lists
+is passed, unique LISTS are found (i.e., items in the first dimension are
+compared).
+
+Usage:   unique (inlist)
+Returns: the unique elements (or rows) in inlist
+"""
+    uniques = []
+    for item in inlist:
+        if item not in uniques:
+            uniques.append(item)
+    return uniques
+
+def duplicates(inlist):
+    """
+Returns duplicate items in the FIRST dimension of the passed list.
+
+Usage:   duplicates (inlist)
+"""
+    dups = []
+    for i in range(len(inlist)):
+        if inlist[i] in inlist[i+1:]:
+            dups.append(inlist[i])
+    return dups
+
+
+def nonrepeats(inlist):
+    """
+Returns items that are NOT duplicated in the first dim of the passed list.
+
+Usage:   nonrepeats (inlist)
+"""
+    nonrepeats = []
+    for i in range(len(inlist)):
+        if inlist.count(inlist[i]) == 1:
+            nonrepeats.append(inlist[i])
+    return nonrepeats
+
+
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+
+try:                         # DEFINE THESE *ONLY* IF numpy IS AVAILABLE
+ import numpy as N
+
+ def aabut (source, *args):
+    """
+Like the |Stat abut command.  It concatenates two arrays column-wise
+and returns the result.  CAUTION:  If one array is shorter, it will be
+repeated until it is as long as the other.
+
+Usage:   aabut (source, args)    where args=any # of arrays
+Returns: an array as long as the LONGEST array past, source appearing on the
+         'left', arrays in <args> attached on the 'right'.
+"""
+    if len(source.shape)==1:
+        width = 1
+        source = N.resize(source,[source.shape[0],width])
+    else:
+        width = source.shape[1]
+    for addon in args:
+        if len(addon.shape)==1:
+            width = 1
+            addon = N.resize(addon,[source.shape[0],width])
+        else:
+            width = source.shape[1]
+        if len(addon) < len(source):
+            addon = N.resize(addon,[source.shape[0],addon.shape[1]])
+        elif len(source) < len(addon):
+            source = N.resize(source,[addon.shape[0],source.shape[1]])
+        source = N.concatenate((source,addon),1)
+    return source
+
+
+ def acolex (a,indices,axis=1):
+    """
+Extracts specified indices (a list) from passed array, along passed
+axis (column extraction is default).  BEWARE: A 1D array is presumed to be a
+column-array (and that the whole array will be returned as a column).
+
+Usage:   acolex (a,indices,axis=1)
+Returns: the columns of a specified by indices
+"""
+    if type(indices) not in [ListType,TupleType,N.ndarray]:
+        indices = [indices]
+    if len(N.shape(a)) == 1:
+        cols = N.resize(a,[a.shape[0],1])
+    else:
+        cols = N.take(a,indices,axis)
+    return cols
+
+
+ def acollapse (a,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None):
+    """
+Averages data in collapsecol, keeping all unique items in keepcols
+(using unique, which keeps unique LISTS of column numbers), retaining
+the unique sets of values in keepcols, the mean for each.  If stderror or
+N of the mean are desired, set either or both parameters to 1.
+
+Usage:   acollapse (a,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+Returns: unique 'conditions' specified by the contents of columns specified
+         by keepcols, abutted with the mean(s) of column(s) specified by
+         collapsecols
+"""
+    def acollmean (inarray):
+        return N.sum(N.ravel(inarray))
+
+    if type(keepcols) not in [ListType,TupleType,N.ndarray]:
+        keepcols = [keepcols]
+    if type(collapsecols) not in [ListType,TupleType,N.ndarray]:
+        collapsecols = [collapsecols]
+
+    if cfcn == None:
+        cfcn = acollmean
+    if keepcols == []:
+        avgcol = acolex(a,collapsecols)
+        means = N.sum(avgcol)/float(len(avgcol))
+        if fcn1!=None:
+            try:
+                test = fcn1(avgcol)
+            except:
+                test = N.array(['N/A']*len(means))
+            means = aabut(means,test)
+        if fcn2!=None:
+            try:
+                test = fcn2(avgcol)
+            except:
+                test = N.array(['N/A']*len(means))
+            means = aabut(means,test)
+        return means
+    else:
+        if type(keepcols) not in [ListType,TupleType,N.ndarray]:
+            keepcols = [keepcols]
+        values = colex(a,keepcols)   # so that "item" can be appended (below)
+        uniques = unique(values)  # get a LIST, so .sort keeps rows intact
+        uniques.sort()
+        newlist = []
+        for item in uniques:
+            if type(item) not in [ListType,TupleType,N.ndarray]:
+                item =[item]
+            tmprows = alinexand(a,keepcols,item)
+            for col in collapsecols:
+                avgcol = acolex(tmprows,col)
+                item.append(acollmean(avgcol))
+                if fcn1!=None:
+                    try:
+                        test = fcn1(avgcol)
+                    except:
+                        test = 'N/A'
+                    item.append(test)
+                if fcn2!=None:
+                    try:
+                        test = fcn2(avgcol)
+                    except:
+                        test = 'N/A'
+                    item.append(test)
+                newlist.append(item)
+        try:
+            new_a = N.array(newlist)
+        except TypeError:
+            new_a = N.array(newlist,'O')
+        return new_a
+
+
+ def adm (a,criterion):
+    """
+Returns rows from the passed list of lists that meet the criteria in
+the passed criterion expression (a string as a function of x).
+
+Usage:   adm (a,criterion)   where criterion is like 'x[2]==37'
+"""
+    function = 'filter(lambda x: '+criterion+',a)'
+    lines = eval(function)
+    try:
+        lines = N.array(lines)
+    except:
+        lines = N.array(lines,dtype='O')
+    return lines
+
+
+ def isstring(x):
+    if type(x)==StringType:
+        return 1
+    else:
+        return 0
+
+
+ def alinexand (a,columnlist,valuelist):
+    """
+Returns the rows of an array where col (from columnlist) = val
+(from valuelist).  One value is required for each column in columnlist.
+
+Usage:   alinexand (a,columnlist,valuelist)
+Returns: the rows of a where columnlist[i]=valuelist[i] for ALL i
+"""
+    if type(columnlist) not in [ListType,TupleType,N.ndarray]:
+        columnlist = [columnlist]
+    if type(valuelist) not in [ListType,TupleType,N.ndarray]:
+        valuelist = [valuelist]
+    criterion = ''
+    for i in range(len(columnlist)):
+        if type(valuelist[i])==StringType:
+            critval = '\'' + valuelist[i] + '\''
+        else:
+            critval = str(valuelist[i])
+        criterion = criterion + ' x['+str(columnlist[i])+']=='+critval+' and'
+    criterion = criterion[0:-3]         # remove the "and" after the last crit
+    return adm(a,criterion)
+
+
+ def alinexor (a,columnlist,valuelist):
+    """
+Returns the rows of an array where col (from columnlist) = val (from
+valuelist).  One value is required for each column in columnlist.
+The exception is if either columnlist or valuelist has only 1 value,
+in which case that item will be expanded to match the length of the
+other list.
+
+Usage:   alinexor (a,columnlist,valuelist)
+Returns: the rows of a where columnlist[i]=valuelist[i] for ANY i
+"""
+    if type(columnlist) not in [ListType,TupleType,N.ndarray]:
+        columnlist = [columnlist]
+    if type(valuelist) not in [ListType,TupleType,N.ndarray]:
+        valuelist = [valuelist]
+    criterion = ''
+    if len(columnlist) == 1 and len(valuelist) > 1:
+        columnlist = columnlist*len(valuelist)
+    elif len(valuelist) == 1 and len(columnlist) > 1:
+        valuelist = valuelist*len(columnlist)
+    for i in range(len(columnlist)):
+        if type(valuelist[i])==StringType:
+            critval = '\'' + valuelist[i] + '\''
+        else:
+            critval = str(valuelist[i])
+        criterion = criterion + ' x['+str(columnlist[i])+']=='+critval+' or'
+    criterion = criterion[0:-2]         # remove the "or" after the last crit
+    return adm(a,criterion)
+
+
+ def areplace (a,oldval,newval):
+    """
+Replaces all occurrences of oldval with newval in array a.
+
+Usage:   areplace(a,oldval,newval)
+"""
+    return N.where(a==oldval,newval,a)
+
+
+ def arecode (a,listmap,col='all'):
+    """
+Remaps the values in an array to a new set of values (useful when
+you need to recode data from (e.g.) strings to numbers as most stats
+packages require.  Can work on SINGLE columns, or 'all' columns at once.
+@@@BROKEN 2007-11-26
+
+Usage:   arecode (a,listmap,col='all')
+Returns: a version of array a where listmap[i][0] = (instead) listmap[i][1]
+"""
+    ashape = a.shape
+    if col == 'all':
+        work = a.ravel()
+    else:
+        work = acolex(a,col)
+        work = work.ravel()
+    for pair in listmap:
+        if type(pair[1]) == StringType or work.dtype.char=='O' or a.dtype.char=='O':
+            work = N.array(work,dtype='O')
+            a = N.array(a,dtype='O')
+            for i in range(len(work)):
+                if work[i]==pair[0]:
+                    work[i] = pair[1]
+            if col == 'all':
+                return N.reshape(work,ashape)
+            else:
+                return N.concatenate([a[:,0:col],work[:,N.newaxis],a[:,col+1:]],1)
+        else:   # must be a non-Object type array and replacement
+            work = N.where(work==pair[0],pair[1],work)
+            return N.concatenate([a[:,0:col],work[:,N.newaxis],a[:,col+1:]],1)
+
+
+ def arowcompare(row1, row2):
+    """
+Compares two rows from an array, regardless of whether it is an
+array of numbers or of python objects (which requires the cmp function).
+@@@PURPOSE? 2007-11-26
+
+Usage:   arowcompare(row1,row2)
+Returns: an array of equal length containing 1s where the two rows had
+         identical elements and 0 otherwise
+"""
+    return
+    if row1.dtype.char=='O' or row2.dtype=='O':
+        cmpvect = N.logical_not(abs(N.array(list(map(cmp,row1,row2))))) # cmp fcn gives -1,0,1
+    else:
+        cmpvect = N.equal(row1,row2)
+    return cmpvect
+
+
+ def arowsame(row1, row2):
+    """
+Compares two rows from an array, regardless of whether it is an
+array of numbers or of python objects (which requires the cmp function).
+
+Usage:   arowsame(row1,row2)
+Returns: 1 if the two rows are identical, 0 otherwise.
+"""
+    cmpval = N.alltrue(arowcompare(row1,row2))
+    return cmpval
+
+
+ def asortrows(a,axis=0):
+    """
+Sorts an array "by rows".  This differs from the Numeric.sort() function,
+which sorts elements WITHIN the given axis.  Instead, this function keeps
+the elements along the given axis intact, but shifts them 'up or down'
+relative to one another.
+
+Usage:   asortrows(a,axis=0)
+Returns: sorted version of a
+"""
+    return N.sort(a,axis=axis,kind='mergesort')
+
+
+ def aunique(inarray):
+    """
+Returns unique items in the FIRST dimension of the passed array. Only
+works on arrays NOT including string items.
+
+Usage:   aunique (inarray)
+"""
+    uniques = N.array([inarray[0]])
+    if len(uniques.shape) == 1:            # IF IT'S A 1D ARRAY
+        for item in inarray[1:]:
+            if N.add.reduce(N.equal(uniques,item).ravel()) == 0:
+                try:
+                    uniques = N.concatenate([uniques,N.array[N.newaxis,:]])
+                except TypeError:
+                    uniques = N.concatenate([uniques,N.array([item])])
+    else:                                  # IT MUST BE A 2+D ARRAY
+        if inarray.dtype.char != 'O':  # not an Object array
+            for item in inarray[1:]:
+                if not N.sum(N.alltrue(N.equal(uniques,item),1)):
+                    try:
+                        uniques = N.concatenate( [uniques,item[N.newaxis,:]] )
+                    except TypeError:    # the item to add isn't a list
+                        uniques = N.concatenate([uniques,N.array([item])])
+                else:
+                    pass  # this item is already in the uniques array
+        else:   # must be an Object array, alltrue/equal functions don't work
+            for item in inarray[1:]:
+                newflag = 1
+                for unq in uniques:  # NOTE: cmp --> 0=same, -1=<, 1=>
+                    test = N.sum(abs(N.array(list(map(cmp,item,unq)))))
+                    if test == 0:   # if item identical to any 1 row in uniques
+                        newflag = 0 # then not a novel item to add
+                        break
+                if newflag == 1:
+                    try:
+                        uniques = N.concatenate( [uniques,item[N.newaxis,:]] )
+                    except TypeError:    # the item to add isn't a list
+                        uniques = N.concatenate([uniques,N.array([item])])
+    return uniques
+
+
+ def aduplicates(inarray):
+    """
+Returns duplicate items in the FIRST dimension of the passed array. Only
+works on arrays NOT including string items.
+
+Usage:   aunique (inarray)
+"""
+    inarray = N.array(inarray)
+    if len(inarray.shape) == 1:            # IF IT'S A 1D ARRAY
+        dups = []
+        inarray = inarray.tolist()
+        for i in range(len(inarray)):
+            if inarray[i] in inarray[i+1:]:
+                dups.append(inarray[i])
+        dups = aunique(dups)
+    else:                                  # IT MUST BE A 2+D ARRAY
+        dups = []
+        aslist = inarray.tolist()
+        for i in range(len(aslist)):
+            if aslist[i] in aslist[i+1:]:
+                dups.append(aslist[i])
+        dups = unique(dups)
+        dups = N.array(dups)
+    return dups
+
+except ImportError:    # IF NUMERIC ISN'T AVAILABLE, SKIP ALL arrayfuncs
+ pass
diff --git a/ete3/clustering/stats.py b/ete3/clustering/stats.py
new file mode 100644
index 0000000..62b65c4
--- /dev/null
+++ b/ete3/clustering/stats.py
@@ -0,0 +1,4567 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+# Copyright (c) 1999-2007 Gary Strangman; All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+# Comments and/or additions are welcome (send e-mail to:
+# strang at nmr.mgh.harvard.edu).
+#
+"""
+stats.py module
+
+(Requires pstat.py module.)
+
+#################################################
+#######  Written by:  Gary Strangman  ###########
+#######  Last modified:  Dec 18, 2007 ###########
+#################################################
+
+A collection of basic statistical functions for python.  The function
+names appear below.
+
+IMPORTANT:  There are really *3* sets of functions.  The first set has an 'l'
+prefix, which can be used with list or tuple arguments.  The second set has
+an 'a' prefix, which can accept NumPy array arguments.  These latter
+functions are defined only when NumPy is available on the system.  The third
+type has NO prefix (i.e., has the name that appears below).  Functions of
+this set are members of a "Dispatch" class, c/o David Ascher.  This class
+allows different functions to be called depending on the type of the passed
+arguments.  Thus, stats.mean is a member of the Dispatch class and
+stats.mean(range(20)) will call stats.lmean(range(20)) while
+stats.mean(Numeric.arange(20)) will call stats.amean(Numeric.arange(20)).
+This is a handy way to keep consistent function names when different
+argument types require different functions to be called.  Having
+implementated the Dispatch class, however, means that to get info on
+a given function, you must use the REAL function name ... that is
+"print stats.lmean.__doc__" or "print stats.amean.__doc__" work fine,
+while "print stats.mean.__doc__" will print the doc for the Dispatch
+class.  NUMPY FUNCTIONS ('a' prefix) generally have more argument options
+but should otherwise be consistent with the corresponding list functions.
+
+Disclaimers:  The function list is obviously incomplete and, worse, the
+functions are not optimized.  All functions have been tested (some more
+so than others), but they are far from bulletproof.  Thus, as with any
+free software, no warranty or guarantee is expressed or implied. :-)  A
+few extra functions that don't appear in the list below can be found by
+interested treasure-hunters.  These functions don't necessarily have
+both list and array versions but were deemed useful
+
+CENTRAL TENDENCY:  geometricmean
+                   harmonicmean
+                   mean
+                   median
+                   medianscore
+                   mode
+
+MOMENTS:  moment
+          variation
+          skew
+          kurtosis
+          skewtest   (for Numpy arrays only)
+          kurtosistest (for Numpy arrays only)
+          normaltest (for Numpy arrays only)
+
+ALTERED VERSIONS:  tmean  (for Numpy arrays only)
+                   tvar   (for Numpy arrays only)
+                   tmin   (for Numpy arrays only)
+                   tmax   (for Numpy arrays only)
+                   tstdev (for Numpy arrays only)
+                   tsem   (for Numpy arrays only)
+                   describe
+
+FREQUENCY STATS:  itemfreq
+                  scoreatpercentile
+                  percentileofscore
+                  histogram
+                  cumfreq
+                  relfreq
+
+VARIABILITY:  obrientransform
+              samplevar
+              samplestdev
+              signaltonoise (for Numpy arrays only)
+              var
+              stdev
+              sterr
+              sem
+              z
+              zs
+              zmap (for Numpy arrays only)
+
+TRIMMING FCNS:  threshold (for Numpy arrays only)
+                trimboth
+                trim1
+                round (round all vals to 'n' decimals; Numpy only)
+
+CORRELATION FCNS:  covariance  (for Numpy arrays only)
+                   correlation (for Numpy arrays only)
+                   paired
+                   pearsonr
+                   spearmanr
+                   pointbiserialr
+                   kendalltau
+                   linregress
+
+INFERENTIAL STATS:  ttest_1samp
+                    ttest_ind
+                    ttest_rel
+                    chisquare
+                    ks_2samp
+                    mannwhitneyu
+                    ranksums
+                    wilcoxont
+                    kruskalwallish
+                    friedmanchisquare
+
+PROBABILITY CALCS:  chisqprob
+                    erfcc
+                    zprob
+                    ksprob
+                    fprob
+                    betacf
+                    gammln
+                    betai
+
+ANOVA FUNCTIONS:  F_oneway
+                  F_value
+
+SUPPORT FUNCTIONS:  writecc
+                    incr
+                    sign  (for Numpy arrays only)
+                    sum
+                    cumsum
+                    ss
+                    summult
+                    sumdiffsquared
+                    square_of_sums
+                    shellsort
+                    rankdata
+                    outputpairedstats
+                    findwithin
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+## CHANGE LOG:
+## ===========
+## 07-11.26 ... conversion for numpy started
+## 07-05-16 ... added Lin's Concordance Correlation Coefficient (alincc) and acov
+## 05-08-21 ... added "Dice's coefficient"
+## 04-10-26 ... added ap2t(), an ugly fcn for converting p-vals to T-vals
+## 04-04-03 ... added amasslinregress() function to do regression on N-D arrays
+## 03-01-03 ... CHANGED VERSION TO 0.6
+##              fixed atsem() to properly handle limits=None case
+##              improved histogram and median functions (estbinwidth) and
+##                   fixed atvar() function (wrong answers for neg numbers?!?)
+## 02-11-19 ... fixed attest_ind and attest_rel for div-by-zero Overflows
+## 02-05-10 ... fixed lchisqprob indentation (failed when df=even)
+## 00-12-28 ... removed aanova() to separate module, fixed licensing to
+##                   match Python License, fixed doc string & imports
+## 00-04-13 ... pulled all "global" statements, except from aanova()
+##              added/fixed lots of documentation, removed io.py dependency
+##              changed to version 0.5
+## 99-11-13 ... added asign() function
+## 99-11-01 ... changed version to 0.4 ... enough incremental changes now
+## 99-10-25 ... added acovariance and acorrelation functions
+## 99-10-10 ... fixed askew/akurtosis to avoid divide-by-zero errors
+##              added aglm function (crude, but will be improved)
+## 99-10-04 ... upgraded acumsum, ass, asummult, asamplevar, avar, etc. to
+##                   all handle lists of 'dimension's and keepdims
+##              REMOVED ar0, ar2, ar3, ar4 and replaced them with around
+##              reinserted fixes for abetai to avoid math overflows
+## 99-09-05 ... rewrote achisqprob/aerfcc/aksprob/afprob/abetacf/abetai to
+##                   handle multi-dimensional arrays (whew!)
+## 99-08-30 ... fixed l/amoment, l/askew, l/akurtosis per D'Agostino (1990)
+##              added anormaltest per same reference
+##              re-wrote azprob to calc arrays of probs all at once
+## 99-08-22 ... edited attest_ind printing section so arrays could be rounded
+## 99-08-19 ... fixed amean and aharmonicmean for non-error(!) overflow on
+##                   short/byte arrays (mean of #s btw 100-300 = -150??)
+## 99-08-09 ... fixed asum so that the None case works for Byte arrays
+## 99-08-08 ... fixed 7/3 'improvement' to handle t-calcs on N-D arrays
+## 99-07-03 ... improved attest_ind, attest_rel (zero-division errortrap)
+## 99-06-24 ... fixed bug(?) in attest_ind (n1=a.shape[0])
+## 04/11/99 ... added asignaltonoise, athreshold functions, changed all
+##                   max/min in array section to N.maximum/N.minimum,
+##                   fixed square_of_sums to prevent integer overflow
+## 04/10/99 ... !!! Changed function name ... sumsquared ==> square_of_sums
+## 03/18/99 ... Added ar0, ar2, ar3 and ar4 rounding functions
+## 02/28/99 ... Fixed aobrientransform to return an array rather than a list
+## 01/15/99 ... Essentially ceased updating list-versions of functions (!!!)
+## 01/13/99 ... CHANGED TO VERSION 0.3
+##              fixed bug in a/lmannwhitneyu p-value calculation
+## 12/31/98 ... fixed variable-name bug in ldescribe
+## 12/19/98 ... fixed bug in findwithin (fcns needed pstat. prefix)
+## 12/16/98 ... changed amedianscore to return float (not array) for 1 score
+## 12/14/98 ... added atmin and atmax functions
+##              removed umath from import line (not needed)
+##              l/ageometricmean modified to reduce chance of overflows (take
+##                   nth root first, then multiply)
+## 12/07/98 ... added __version__variable (now 0.2)
+##              removed all 'stats.' from anova() fcn
+## 12/06/98 ... changed those functions (except shellsort) that altered
+##                   arguments in-place ... cumsum, ranksort, ...
+##              updated (and fixed some) doc-strings
+## 12/01/98 ... added anova() function (requires NumPy)
+##              incorporated Dispatch class
+## 11/12/98 ... added functionality to amean, aharmonicmean, ageometricmean
+##              added 'asum' function (added functionality to N.add.reduce)
+##              fixed both moment and amoment (two errors)
+##              changed name of skewness and askewness to skew and askew
+##              fixed (a)histogram (which sometimes counted points <lowerlimit)
+
+from . import pstat               # required 3rd party module
+import math, string, copy  # required python modules
+from types import *
+from six.moves import map
+from six.moves import range
+from six.moves import input
+
+__version__ = 0.6
+
+############# DISPATCH CODE ##############
+
+
+class Dispatch:
+    """
+The Dispatch class, care of David Ascher, allows different functions to
+be called depending on the argument types.  This way, there can be one
+function name regardless of the argument type.  To access function doc
+in stats.py module, prefix the function with an 'l' or 'a' for list or
+array arguments, respectively.  That is, print stats.lmean.__doc__ or
+print stats.amean.__doc__ or whatever.
+"""
+
+    def __init__(self, *tuples):
+        self._dispatch = {}
+        for func, types in tuples:
+            for t in types:
+                if t in list(self._dispatch.keys()):
+                    raise ValueError("can't have two dispatches on "+str(t))
+                self._dispatch[t] = func
+        self._types = list(self._dispatch.keys())
+
+    def __call__(self, arg1, *args, **kw):
+        if type(arg1) not in self._types:
+            raise TypeError("don't know how to dispatch %s arguments" %  type(arg1))
+        return self._dispatch[type(arg1)](*(arg1,) + args, **kw)
+
+
+##########################################################################
+########################   LIST-BASED FUNCTIONS   ########################
+##########################################################################
+
+### Define these regardless
+
+####################################
+#######  CENTRAL TENDENCY  #########
+####################################
+
+def lgeometricmean (inlist):
+    """
+Calculates the geometric mean of the values in the passed list.
+That is:  n-th root of (x1 * x2 * ... * xn).  Assumes a '1D' list.
+
+Usage:   lgeometricmean(inlist)
+"""
+    mult = 1.0
+    one_over_n = 1.0/len(inlist)
+    for item in inlist:
+        mult = mult * pow(item,one_over_n)
+    return mult
+
+
+def lharmonicmean (inlist):
+    """
+Calculates the harmonic mean of the values in the passed list.
+That is:  n / (1/x1 + 1/x2 + ... + 1/xn).  Assumes a '1D' list.
+
+Usage:   lharmonicmean(inlist)
+"""
+    sum = 0
+    for item in inlist:
+        sum = sum + 1.0/item
+    return len(inlist) / sum
+
+
+def lmean (inlist):
+    """
+Returns the arithematic mean of the values in the passed list.
+Assumes a '1D' list, but will function on the 1st dim of an array(!).
+
+Usage:   lmean(inlist)
+"""
+    sum = 0
+    for item in inlist:
+        sum = sum + item
+    return sum/float(len(inlist))
+
+
+def lmedian (inlist,numbins=1000):
+    """
+Returns the computed median value of a list of numbers, given the
+number of bins to use for the histogram (more bins brings the computed value
+closer to the median score, default number of bins = 1000).  See G.W.
+Heiman's Basic Stats (1st Edition), or CRC Probability & Statistics.
+
+Usage:   lmedian (inlist, numbins=1000)
+"""
+    (hist, smallest, binsize, extras) = histogram(inlist,numbins,[min(inlist),max(inlist)]) # make histog
+    cumhist = cumsum(hist)              # make cumulative histogram
+    for i in range(len(cumhist)):        # get 1st(!) index holding 50%ile score
+        if cumhist[i]>=len(inlist)/2.0:
+            cfbin = i
+            break
+    LRL = smallest + binsize*cfbin        # get lower read limit of that bin
+    cfbelow = cumhist[cfbin-1]
+    freq = float(hist[cfbin])                # frequency IN the 50%ile bin
+    median = LRL + ((len(inlist)/2.0 - cfbelow)/float(freq))*binsize  # median formula
+    return median
+
+
+def lmedianscore (inlist):
+    """
+Returns the 'middle' score of the passed list.  If there is an even
+number of scores, the mean of the 2 middle scores is returned.
+
+Usage:   lmedianscore(inlist)
+"""
+
+    newlist = copy.deepcopy(inlist)
+    newlist.sort()
+    if len(newlist) % 2 == 0:   # if even number of scores, average middle 2
+        index = len(newlist)/2  # integer division correct
+        median = float(newlist[index] + newlist[index-1]) /2
+    else:
+        index = len(newlist)/2  # int divsion gives mid value when count from 0
+        median = newlist[index]
+    return median
+
+
+def lmode(inlist):
+    """
+Returns a list of the modal (most common) score(s) in the passed
+list.  If there is more than one such score, all are returned.  The
+bin-count for the mode(s) is also returned.
+
+Usage:   lmode(inlist)
+Returns: bin-count for mode(s), a list of modal value(s)
+"""
+
+    scores = pstat.unique(inlist)
+    scores.sort()
+    freq = []
+    for item in scores:
+        freq.append(inlist.count(item))
+    maxfreq = max(freq)
+    mode = []
+    stillmore = 1
+    while stillmore:
+        try:
+            indx = freq.index(maxfreq)
+            mode.append(scores[indx])
+            del freq[indx]
+            del scores[indx]
+        except ValueError:
+            stillmore=0
+    return maxfreq, mode
+
+
+####################################
+############  MOMENTS  #############
+####################################
+
+def lmoment(inlist,moment=1):
+    """
+Calculates the nth moment about the mean for a sample (defaults to
+the 1st moment).  Used to calculate coefficients of skewness and kurtosis.
+
+Usage:   lmoment(inlist,moment=1)
+Returns: appropriate moment (r) from ... 1/n * SUM((inlist(i)-mean)**r)
+"""
+    if moment == 1:
+        return 0.0
+    else:
+        mn = mean(inlist)
+        n = len(inlist)
+        s = 0
+        for x in inlist:
+            s = s + (x-mn)**moment
+        return s/float(n)
+
+
+def lvariation(inlist):
+    """
+Returns the coefficient of variation, as defined in CRC Standard
+Probability and Statistics, p.6.
+
+Usage:   lvariation(inlist)
+"""
+    return 100.0*samplestdev(inlist)/float(mean(inlist))
+
+
+def lskew(inlist):
+    """
+Returns the skewness of a distribution, as defined in Numerical
+Recipies (alternate defn in CRC Standard Probability and Statistics, p.6.)
+
+Usage:   lskew(inlist)
+"""
+    return moment(inlist,3)/pow(moment(inlist,2),1.5)
+
+
+def lkurtosis(inlist):
+    """
+Returns the kurtosis of a distribution, as defined in Numerical
+Recipies (alternate defn in CRC Standard Probability and Statistics, p.6.)
+
+Usage:   lkurtosis(inlist)
+"""
+    return moment(inlist,4)/pow(moment(inlist,2),2.0)
+
+
+def ldescribe(inlist):
+    """
+Returns some descriptive statistics of the passed list (assumed to be 1D).
+
+Usage:   ldescribe(inlist)
+Returns: n, mean, standard deviation, skew, kurtosis
+"""
+    n = len(inlist)
+    mm = (min(inlist),max(inlist))
+    m = mean(inlist)
+    sd = stdev(inlist)
+    sk = skew(inlist)
+    kurt = kurtosis(inlist)
+    return n, mm, m, sd, sk, kurt
+
+
+####################################
+#######  FREQUENCY STATS  ##########
+####################################
+
+def litemfreq(inlist):
+    """
+Returns a list of pairs.  Each pair consists of one of the scores in inlist
+and it's frequency count.  Assumes a 1D list is passed.
+
+Usage:   litemfreq(inlist)
+Returns: a 2D frequency table (col [0:n-1]=scores, col n=frequencies)
+"""
+    scores = pstat.unique(inlist)
+    scores.sort()
+    freq = []
+    for item in scores:
+        freq.append(inlist.count(item))
+    return pstat.abut(scores, freq)
+
+
+def lscoreatpercentile (inlist, percent):
+    """
+Returns the score at a given percentile relative to the distribution
+given by inlist.
+
+Usage:   lscoreatpercentile(inlist,percent)
+"""
+    if percent > 1:
+        print("\nDividing percent>1 by 100 in lscoreatpercentile().\n")
+        percent = percent / 100.0
+    targetcf = percent*len(inlist)
+    h, lrl, binsize, extras = histogram(inlist)
+    cumhist = cumsum(copy.deepcopy(h))
+    for i in range(len(cumhist)):
+        if cumhist[i] >= targetcf:
+            break
+    score = binsize * ((targetcf - cumhist[i-1]) / float(h[i])) + (lrl+binsize*i)
+    return score
+
+
+def lpercentileofscore (inlist, score,histbins=10,defaultlimits=None):
+    """
+Returns the percentile value of a score relative to the distribution
+given by inlist.  Formula depends on the values used to histogram the data(!).
+
+Usage:   lpercentileofscore(inlist,score,histbins=10,defaultlimits=None)
+"""
+
+    h, lrl, binsize, extras = histogram(inlist,histbins,defaultlimits)
+    cumhist = cumsum(copy.deepcopy(h))
+    i = int((score - lrl)/float(binsize))
+    pct = (cumhist[i-1]+((score-(lrl+binsize*i))/float(binsize))*h[i])/float(len(inlist)) * 100
+    return pct
+
+
+def lhistogram (inlist,numbins=10,defaultreallimits=None,printextras=0):
+    """
+Returns (i) a list of histogram bin counts, (ii) the smallest value
+of the histogram binning, and (iii) the bin width (the last 2 are not
+necessarily integers).  Default number of bins is 10.  If no sequence object
+is given for defaultreallimits, the routine picks (usually non-pretty) bins
+spanning all the numbers in the inlist.
+
+Usage:   lhistogram (inlist, numbins=10, defaultreallimits=None,suppressoutput=0)
+Returns: list of bin values, lowerreallimit, binsize, extrapoints
+"""
+    if (defaultreallimits != None):
+        if type(defaultreallimits) not in [ListType,TupleType] or len(defaultreallimits)==1: # only one limit given, assumed to be lower one & upper is calc'd
+            lowerreallimit = defaultreallimits
+            upperreallimit = 1.000001 * max(inlist)
+        else: # assume both limits given
+            lowerreallimit = defaultreallimits[0]
+            upperreallimit = defaultreallimits[1]
+        binsize = (upperreallimit-lowerreallimit)/float(numbins)
+    else:     # no limits given for histogram, both must be calc'd
+        estbinwidth=(max(inlist)-min(inlist))/float(numbins) +1e-6 #1=>cover all
+        binsize = ((max(inlist)-min(inlist)+estbinwidth))/float(numbins)
+        lowerreallimit = min(inlist) - binsize/2 #lower real limit,1st bin
+    bins = [0]*(numbins)
+    extrapoints = 0
+    for num in inlist:
+        try:
+            if (num-lowerreallimit) < 0:
+                extrapoints = extrapoints + 1
+            else:
+                bintoincrement = int((num-lowerreallimit)/float(binsize))
+                bins[bintoincrement] = bins[bintoincrement] + 1
+        except:
+            extrapoints = extrapoints + 1
+    if (extrapoints > 0 and printextras == 1):
+        print('\nPoints outside given histogram range =',extrapoints)
+    return (bins, lowerreallimit, binsize, extrapoints)
+
+
+def lcumfreq(inlist,numbins=10,defaultreallimits=None):
+    """
+Returns a cumulative frequency histogram, using the histogram function.
+
+Usage:   lcumfreq(inlist,numbins=10,defaultreallimits=None)
+Returns: list of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h,l,b,e = histogram(inlist,numbins,defaultreallimits)
+    cumhist = cumsum(copy.deepcopy(h))
+    return cumhist,l,b,e
+
+
+def lrelfreq(inlist,numbins=10,defaultreallimits=None):
+    """
+Returns a relative frequency histogram, using the histogram function.
+
+Usage:   lrelfreq(inlist,numbins=10,defaultreallimits=None)
+Returns: list of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h,l,b,e = histogram(inlist,numbins,defaultreallimits)
+    for i in range(len(h)):
+        h[i] = h[i]/float(len(inlist))
+    return h,l,b,e
+
+
+####################################
+#####  VARIABILITY FUNCTIONS  ######
+####################################
+
+def lobrientransform(*args):
+    """
+Computes a transform on input data (any number of columns).  Used to
+test for homogeneity of variance prior to running one-way stats.  From
+Maxwell and Delaney, p.112.
+
+Usage:   lobrientransform(*args)
+Returns: transformed data for use in an ANOVA
+"""
+    TINY = 1e-10
+    k = len(args)
+    n = [0.0]*k
+    v = [0.0]*k
+    m = [0.0]*k
+    nargs = []
+    for i in range(k):
+        nargs.append(copy.deepcopy(args[i]))
+        n[i] = float(len(nargs[i]))
+        v[i] = var(nargs[i])
+        m[i] = mean(nargs[i])
+    for j in range(k):
+        for i in range(n[j]):
+            t1 = (n[j]-1.5)*n[j]*(nargs[j][i]-m[j])**2
+            t2 = 0.5*v[j]*(n[j]-1.0)
+            t3 = (n[j]-1.0)*(n[j]-2.0)
+            nargs[j][i] = (t1-t2) / float(t3)
+    check = 1
+    for j in range(k):
+        if v[j] - mean(nargs[j]) > TINY:
+            check = 0
+    if check != 1:
+        raise ValueError('Problem in obrientransform.')
+    else:
+        return nargs
+
+
+def lsamplevar (inlist):
+    """
+Returns the variance of the values in the passed list using
+N for the denominator (i.e., DESCRIBES the sample variance only).
+
+Usage:   lsamplevar(inlist)
+"""
+    n = len(inlist)
+    mn = mean(inlist)
+    deviations = []
+    for item in inlist:
+        deviations.append(item-mn)
+    return ss(deviations)/float(n)
+
+
+def lsamplestdev (inlist):
+    """
+Returns the standard deviation of the values in the passed list using
+N for the denominator (i.e., DESCRIBES the sample stdev only).
+
+Usage:   lsamplestdev(inlist)
+"""
+    return math.sqrt(samplevar(inlist))
+
+
+def lcov (x,y, keepdims=0):
+    """
+Returns the estimated covariance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   lcov(x,y,keepdims=0)
+"""
+
+    n = len(x)
+    xmn = mean(x)
+    ymn = mean(y)
+    xdeviations = [0]*len(x)
+    ydeviations = [0]*len(y)
+    for i in range(len(x)):
+        xdeviations[i] = x[i] - xmn
+        ydeviations[i] = y[i] - ymn
+    ss = 0.0
+    for i in range(len(xdeviations)):
+        ss = ss + xdeviations[i]*ydeviations[i]
+    return ss/float(n-1)
+
+
+def lvar (inlist):
+    """
+Returns the variance of the values in the passed list using N-1
+for the denominator (i.e., for estimating population variance).
+
+Usage:   lvar(inlist)
+"""
+    n = len(inlist)
+    mn = mean(inlist)
+    deviations = [0]*len(inlist)
+    for i in range(len(inlist)):
+        deviations[i] = inlist[i] - mn
+    return ss(deviations)/float(n-1)
+
+
+def lstdev (inlist):
+    """
+Returns the standard deviation of the values in the passed list
+using N-1 in the denominator (i.e., to estimate population stdev).
+
+Usage:   lstdev(inlist)
+"""
+    return math.sqrt(var(inlist))
+
+
+def lsterr(inlist):
+    """
+Returns the standard error of the values in the passed list using N-1
+in the denominator (i.e., to estimate population standard error).
+
+Usage:   lsterr(inlist)
+"""
+    return stdev(inlist) / float(math.sqrt(len(inlist)))
+
+
+def lsem (inlist):
+    """
+Returns the estimated standard error of the mean (sx-bar) of the
+values in the passed list.  sem = stdev / sqrt(n)
+
+Usage:   lsem(inlist)
+"""
+    sd = stdev(inlist)
+    n = len(inlist)
+    return sd/math.sqrt(n)
+
+
+def lz (inlist, score):
+    """
+Returns the z-score for a given input score, given that score and the
+list from which that score came.  Not appropriate for population calculations.
+
+Usage:   lz(inlist, score)
+"""
+    z = (score-mean(inlist))/samplestdev(inlist)
+    return z
+
+
+def lzs (inlist):
+    """
+Returns a list of z-scores, one for each score in the passed list.
+
+Usage:   lzs(inlist)
+"""
+    zscores = []
+    for item in inlist:
+        zscores.append(z(inlist,item))
+    return zscores
+
+
+####################################
+#######  TRIMMING FUNCTIONS  #######
+####################################
+
+def ltrimboth (l,proportiontocut):
+    """
+Slices off the passed proportion of items from BOTH ends of the passed
+list (i.e., with proportiontocut=0.1, slices 'leftmost' 10% AND 'rightmost'
+10% of scores.  Assumes list is sorted by magnitude.  Slices off LESS if
+proportion results in a non-integer slice index (i.e., conservatively
+slices off proportiontocut).
+
+Usage:   ltrimboth (l,proportiontocut)
+Returns: trimmed version of list l
+"""
+    lowercut = int(proportiontocut*len(l))
+    uppercut = len(l) - lowercut
+    return l[lowercut:uppercut]
+
+
+def ltrim1 (l,proportiontocut,tail='right'):
+    """
+Slices off the passed proportion of items from ONE end of the passed
+list (i.e., if proportiontocut=0.1, slices off 'leftmost' or 'rightmost'
+10% of scores).  Slices off LESS if proportion results in a non-integer
+slice index (i.e., conservatively slices off proportiontocut).
+
+Usage:   ltrim1 (l,proportiontocut,tail='right')  or set tail='left'
+Returns: trimmed version of list l
+"""
+    if tail == 'right':
+        lowercut = 0
+        uppercut = len(l) - int(proportiontocut*len(l))
+    elif tail == 'left':
+        lowercut = int(proportiontocut*len(l))
+        uppercut = len(l)
+    return l[lowercut:uppercut]
+
+
+####################################
+#####  CORRELATION FUNCTIONS  ######
+####################################
+
+def lpaired(x,y):
+    """
+Interactively determines the type of data and then runs the
+appropriated statistic for paired group data.
+
+Usage:   lpaired(x,y)
+Returns: appropriate statistic name, value, and probability
+"""
+    samples = ''
+    while samples not in ['i','r','I','R','c','C']:
+        print('\nIndependent or related samples, or correlation (i,r,c): ', end=' ')
+        samples = input()
+
+    if samples in ['i','I','r','R']:
+        print('\nComparing variances ...', end=' ')
+# USE O'BRIEN'S TEST FOR HOMOGENEITY OF VARIANCE, Maxwell & delaney, p.112
+        r = obrientransform(x,y)
+        f,p = F_oneway(pstat.colex(r,0),pstat.colex(r,1))
+        if p<0.05:
+            vartype='unequal, p='+str(round(p,4))
+        else:
+            vartype='equal'
+        print(vartype)
+        if samples in ['i','I']:
+            if vartype[0]=='e':
+                t,p = ttest_ind(x,y,0)
+                print('\nIndependent samples t-test:  ', round(t,4),round(p,4))
+            else:
+                if len(x)>20 or len(y)>20:
+                    z,p = ranksums(x,y)
+                    print('\nRank Sums test (NONparametric, n>20):  ', round(z,4),round(p,4))
+                else:
+                    u,p = mannwhitneyu(x,y)
+                    print('\nMann-Whitney U-test (NONparametric, ns<20):  ', round(u,4),round(p,4))
+
+        else:  # RELATED SAMPLES
+            if vartype[0]=='e':
+                t,p = ttest_rel(x,y,0)
+                print('\nRelated samples t-test:  ', round(t,4),round(p,4))
+            else:
+                t,p = ranksums(x,y)
+                print('\nWilcoxon T-test (NONparametric):  ', round(t,4),round(p,4))
+    else:  # CORRELATION ANALYSIS
+        corrtype = ''
+        while corrtype not in ['c','C','r','R','d','D']:
+            print('\nIs the data Continuous, Ranked, or Dichotomous (c,r,d): ', end=' ')
+            corrtype = input()
+        if corrtype in ['c','C']:
+            m,b,r,p,see = linregress(x,y)
+            print('\nLinear regression for continuous variables ...')
+            lol = [['Slope','Intercept','r','Prob','SEestimate'],[round(m,4),round(b,4),round(r,4),round(p,4),round(see,4)]]
+            pstat.printcc(lol)
+        elif corrtype in ['r','R']:
+            r,p = spearmanr(x,y)
+            print('\nCorrelation for ranked variables ...')
+            print("Spearman's r: ",round(r,4),round(p,4))
+        else: # DICHOTOMOUS
+            r,p = pointbiserialr(x,y)
+            print('\nAssuming x contains a dichotomous variable ...')
+            print('Point Biserial r: ',round(r,4),round(p,4))
+    print('\n\n')
+    return None
+
+
+def lpearsonr(x,y):
+    """
+Calculates a Pearson correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (2nd), p.195.
+
+Usage:   lpearsonr(x,y)      where x and y are equal-length lists
+Returns: Pearson's r value, two-tailed p-value
+"""
+    TINY = 1.0e-30
+    if len(x) != len(y):
+        raise ValueError('Input values not paired in pearsonr.  Aborting.')
+    n = len(x)
+    x = list(map(float,x))
+    y = list(map(float,y))
+    xmean = mean(x)
+    ymean = mean(y)
+    r_num = n*(summult(x,y)) - sum(x)*sum(y)
+    r_den = math.sqrt((n*ss(x) - square_of_sums(x))*(n*ss(y)-square_of_sums(y)))
+    r = (r_num / r_den)  # denominator already a float
+    df = n-2
+    t = r*math.sqrt(df/((1.0-r+TINY)*(1.0+r+TINY)))
+    prob = betai(0.5*df,0.5,df/float(df+t*t))
+    return r, prob
+
+
+def llincc(x,y):
+    """
+Calculates Lin's concordance correlation coefficient.
+
+Usage:   alincc(x,y)    where x, y are equal-length arrays
+Returns: Lin's CC
+"""
+    covar = lcov(x,y)*(len(x)-1)/float(len(x))  # correct denom to n
+    xvar = lvar(x)*(len(x)-1)/float(len(x))  # correct denom to n
+    yvar = lvar(y)*(len(y)-1)/float(len(y))  # correct denom to n
+    lincc = (2 * covar) / ((xvar+yvar) +((amean(x)-amean(y))**2))
+    return lincc
+
+
+def lspearmanr(x,y):
+    """
+Calculates a Spearman rank-order correlation coefficient.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (1st), p.192.
+
+Usage:   lspearmanr(x,y)      where x and y are equal-length lists
+Returns: Spearman's r, two-tailed p-value
+"""
+    TINY = 1e-30
+    if len(x) != len(y):
+        raise ValueError('Input values not paired in spearmanr.  Aborting.')
+    n = len(x)
+    rankx = rankdata(x)
+    ranky = rankdata(y)
+    dsq = sumdiffsquared(rankx,ranky)
+    rs = 1 - 6*dsq / float(n*(n**2-1))
+    t = rs * math.sqrt((n-2) / ((rs+1.0)*(1.0-rs)))
+    df = n-2
+    probrs = betai(0.5*df,0.5,df/(df+t*t))  # t already a float
+# probability values for rs are from part 2 of the spearman function in
+# Numerical Recipies, p.510.  They are close to tables, but not exact. (?)
+    return rs, probrs
+
+
+def lpointbiserialr(x,y):
+    """
+Calculates a point-biserial correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (1st), p.194.
+
+Usage:   lpointbiserialr(x,y)      where x,y are equal-length lists
+Returns: Point-biserial r, two-tailed p-value
+"""
+    TINY = 1e-30
+    if len(x) != len(y):
+        raise ValueError('INPUT VALUES NOT PAIRED IN pointbiserialr.  ABORTING.')
+    data = pstat.abut(x,y)
+    categories = pstat.unique(x)
+    if len(categories) != 2:
+        raise ValueError("Exactly 2 categories required for pointbiserialr().")
+    else:   # there are 2 categories, continue
+        codemap = pstat.abut(categories,list(range(2)))
+        recoded = pstat.recode(data,codemap,0)
+        x = pstat.linexand(data,0,categories[0])
+        y = pstat.linexand(data,0,categories[1])
+        xmean = mean(pstat.colex(x,1))
+        ymean = mean(pstat.colex(y,1))
+        n = len(data)
+        adjust = math.sqrt((len(x)/float(n))*(len(y)/float(n)))
+        rpb = (ymean - xmean)/samplestdev(pstat.colex(data,1))*adjust
+        df = n-2
+        t = rpb*math.sqrt(df/((1.0-rpb+TINY)*(1.0+rpb+TINY)))
+        prob = betai(0.5*df,0.5,df/(df+t*t))  # t already a float
+        return rpb, prob
+
+
+def lkendalltau(x,y):
+    """
+Calculates Kendall's tau ... correlation of ordinal data.  Adapted
+from function kendl1 in Numerical Recipies.  Needs good test-routine.@@@
+
+Usage:   lkendalltau(x,y)
+Returns: Kendall's tau, two-tailed p-value
+"""
+    n1 = 0
+    n2 = 0
+    iss = 0
+    for j in range(len(x)-1):
+        for k in range(j,len(y)):
+            a1 = x[j] - x[k]
+            a2 = y[j] - y[k]
+            aa = a1 * a2
+            if (aa):             # neither list has a tie
+                n1 = n1 + 1
+                n2 = n2 + 1
+                if aa > 0:
+                    iss = iss + 1
+                else:
+                    iss = iss -1
+            else:
+                if (a1):
+                    n1 = n1 + 1
+                else:
+                    n2 = n2 + 1
+    tau = iss / math.sqrt(n1*n2)
+    svar = (4.0*len(x)+10.0) / (9.0*len(x)*(len(x)-1))
+    z = tau / math.sqrt(svar)
+    prob = erfcc(abs(z)/1.4142136)
+    return tau, prob
+
+
+def llinregress(x,y):
+    """
+Calculates a regression line on x,y pairs.
+
+Usage:   llinregress(x,y)      x,y are equal-length lists of x-y coordinates
+Returns: slope, intercept, r, two-tailed prob, sterr-of-estimate
+"""
+    TINY = 1.0e-20
+    if len(x) != len(y):
+        raise ValueError('Input values not paired in linregress.  Aborting.')
+    n = len(x)
+    x = list(map(float,x))
+    y = list(map(float,y))
+    xmean = mean(x)
+    ymean = mean(y)
+    r_num = float(n*(summult(x,y)) - sum(x)*sum(y))
+    r_den = math.sqrt((n*ss(x) - square_of_sums(x))*(n*ss(y)-square_of_sums(y)))
+    r = r_num / r_den
+    z = 0.5*math.log((1.0+r+TINY)/(1.0-r+TINY))
+    df = n-2
+    t = r*math.sqrt(df/((1.0-r+TINY)*(1.0+r+TINY)))
+    prob = betai(0.5*df,0.5,df/(df+t*t))
+    slope = r_num / float(n*ss(x) - square_of_sums(x))
+    intercept = ymean - slope*xmean
+    sterrest = math.sqrt(1-r*r)*samplestdev(y)
+    return slope, intercept, r, prob, sterrest
+
+
+####################################
+#####  INFERENTIAL STATISTICS  #####
+####################################
+
+def lttest_1samp(a,popmean,printit=0,name='Sample',writemode='a'):
+    """
+Calculates the t-obtained for the independent samples T-test on ONE group
+of scores a, given a population mean.  If printit=1, results are printed
+to the screen.  If printit='filename', the results are output to 'filename'
+using the given writemode (default=append).  Returns t-value, and prob.
+
+Usage:   lttest_1samp(a,popmean,Name='Sample',printit=0,writemode='a')
+Returns: t-value, two-tailed prob
+"""
+    x = mean(a)
+    v = var(a)
+    n = len(a)
+    df = n-1
+    svar = ((n-1)*v)/float(df)
+    t = (x-popmean)/math.sqrt(svar*(1.0/n))
+    prob = betai(0.5*df,0.5,float(df)/(df+t*t))
+
+    if printit != 0:
+        statname = 'Single-sample T-test.'
+        outputpairedstats(printit,writemode,
+                          'Population','--',popmean,0,0,0,
+                          name,n,x,v,min(a),max(a),
+                          statname,t,prob)
+    return t,prob
+
+
+def lttest_ind (a, b, printit=0, name1='Samp1', name2='Samp2', writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO INDEPENDENT samples of
+scores a, and b.  From Numerical Recipies, p.483.  If printit=1, results
+are printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Returns t-value,
+and prob.
+
+Usage:   lttest_ind(a,b,printit=0,name1='Samp1',name2='Samp2',writemode='a')
+Returns: t-value, two-tailed prob
+"""
+    x1 = mean(a)
+    x2 = mean(b)
+    v1 = stdev(a)**2
+    v2 = stdev(b)**2
+    n1 = len(a)
+    n2 = len(b)
+    df = n1+n2-2
+    svar = ((n1-1)*v1+(n2-1)*v2)/float(df)
+    t = (x1-x2)/math.sqrt(svar*(1.0/n1 + 1.0/n2))
+    prob = betai(0.5*df,0.5,df/(df+t*t))
+
+    if printit != 0:
+        statname = 'Independent samples T-test.'
+        outputpairedstats(printit,writemode,
+                          name1,n1,x1,v1,min(a),max(a),
+                          name2,n2,x2,v2,min(b),max(b),
+                          statname,t,prob)
+    return t,prob
+
+
+def lttest_rel (a,b,printit=0,name1='Sample1',name2='Sample2',writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO RELATED samples of scores,
+a and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output to
+'filename' using the given writemode (default=append).  Returns t-value,
+and prob.
+
+Usage:   lttest_rel(a,b,printit=0,name1='Sample1',name2='Sample2',writemode='a')
+Returns: t-value, two-tailed prob
+"""
+    if len(a)!=len(b):
+        raise ValueError('Unequal length lists in ttest_rel.')
+    x1 = mean(a)
+    x2 = mean(b)
+    v1 = var(a)
+    v2 = var(b)
+    n = len(a)
+    cov = 0
+    for i in range(len(a)):
+        cov = cov + (a[i]-x1) * (b[i]-x2)
+    df = n-1
+    cov = cov / float(df)
+    sd = math.sqrt((v1+v2 - 2.0*cov)/float(n))
+    t = (x1-x2)/sd
+    prob = betai(0.5*df,0.5,df/(df+t*t))
+
+    if printit != 0:
+        statname = 'Related samples T-test.'
+        outputpairedstats(printit,writemode,
+                          name1,n,x1,v1,min(a),max(a),
+                          name2,n,x2,v2,min(b),max(b),
+                          statname,t,prob)
+    return t, prob
+
+
+def lchisquare(f_obs,f_exp=None):
+    """
+Calculates a one-way chi square for list of observed frequencies and returns
+the result.  If no expected frequencies are given, the total N is assumed to
+be equally distributed across all groups.
+
+Usage:   lchisquare(f_obs, f_exp=None)   f_obs = list of observed cell freq.
+Returns: chisquare-statistic, associated p-value
+"""
+    k = len(f_obs)                 # number of groups
+    if f_exp == None:
+        f_exp = [sum(f_obs)/float(k)] * len(f_obs) # create k bins with = freq.
+    chisq = 0
+    for i in range(len(f_obs)):
+        chisq = chisq + (f_obs[i]-f_exp[i])**2 / float(f_exp[i])
+    return chisq, chisqprob(chisq, k-1)
+
+
+def lks_2samp (data1,data2):
+    """
+Computes the Kolmogorov-Smirnof statistic on 2 samples.  From
+Numerical Recipies in C, page 493.
+
+Usage:   lks_2samp(data1,data2)   data1&2 are lists of values for 2 conditions
+Returns: KS D-value, associated p-value
+"""
+    j1 = 0
+    j2 = 0
+    fn1 = 0.0
+    fn2 = 0.0
+    n1 = len(data1)
+    n2 = len(data2)
+    en1 = n1
+    en2 = n2
+    d = 0.0
+    data1.sort()
+    data2.sort()
+    while j1 < n1 and j2 < n2:
+        d1=data1[j1]
+        d2=data2[j2]
+        if d1 <= d2:
+            fn1 = (j1)/float(en1)
+            j1 = j1 + 1
+        if d2 <= d1:
+            fn2 = (j2)/float(en2)
+            j2 = j2 + 1
+        dt = (fn2-fn1)
+        if math.fabs(dt) > math.fabs(d):
+            d = dt
+    try:
+        en = math.sqrt(en1*en2/float(en1+en2))
+        prob = ksprob((en+0.12+0.11/en)*abs(d))
+    except:
+        prob = 1.0
+    return d, prob
+
+
+def lmannwhitneyu(x,y):
+    """
+Calculates a Mann-Whitney U statistic on the provided scores and
+returns the result.  Use only when the n in each condition is < 20 and
+you have 2 independent samples of ranks.  NOTE: Mann-Whitney U is
+significant if the u-obtained is LESS THAN or equal to the critical
+value of U found in the tables.  Equivalent to Kruskal-Wallis H with
+just 2 groups.
+
+Usage:   lmannwhitneyu(data)
+Returns: u-statistic, one-tailed p-value (i.e., p(z(U)))
+"""
+    n1 = len(x)
+    n2 = len(y)
+    ranked = rankdata(x+y)
+    rankx = ranked[0:n1]       # get the x-ranks
+    ranky = ranked[n1:]        # the rest are y-ranks
+    u1 = n1*n2 + (n1*(n1+1))/2.0 - sum(rankx)  # calc U for x
+    u2 = n1*n2 - u1                            # remainder is U for y
+    bigu = max(u1,u2)
+    smallu = min(u1,u2)
+    T = math.sqrt(tiecorrect(ranked))  # correction factor for tied scores
+    if T == 0:
+        raise ValueError('All numbers are identical in lmannwhitneyu')
+    sd = math.sqrt(T*n1*n2*(n1+n2+1)/12.0)
+    z = abs((bigu-n1*n2/2.0) / sd)  # normal approximation for prob calc
+    return smallu, 1.0 - zprob(z)
+
+
+def ltiecorrect(rankvals):
+    """
+Corrects for ties in Mann Whitney U and Kruskal Wallis H tests.  See
+Siegel, S. (1956) Nonparametric Statistics for the Behavioral Sciences.
+New York: McGraw-Hill.  Code adapted from |Stat rankind.c code.
+
+Usage:   ltiecorrect(rankvals)
+Returns: T correction factor for U or H
+"""
+    sorted,posn = shellsort(rankvals)
+    n = len(sorted)
+    T = 0.0
+    i = 0
+    while (i<n-1):
+        if sorted[i] == sorted[i+1]:
+            nties = 1
+            while (i<n-1) and (sorted[i] == sorted[i+1]):
+                nties = nties +1
+                i = i +1
+            T = T + nties**3 - nties
+        i = i+1
+    T = T / float(n**3-n)
+    return 1.0 - T
+
+
+def lranksums(x,y):
+    """
+Calculates the rank sums statistic on the provided scores and
+returns the result.  Use only when the n in each condition is > 20 and you
+have 2 independent samples of ranks.
+
+Usage:   lranksums(x,y)
+Returns: a z-statistic, two-tailed p-value
+"""
+    n1 = len(x)
+    n2 = len(y)
+    alldata = x+y
+    ranked = rankdata(alldata)
+    x = ranked[:n1]
+    y = ranked[n1:]
+    s = sum(x)
+    expected = n1*(n1+n2+1) / 2.0
+    z = (s - expected) / math.sqrt(n1*n2*(n1+n2+1)/12.0)
+    prob = 2*(1.0 -zprob(abs(z)))
+    return z, prob
+
+
+def lwilcoxont(x,y):
+    """
+Calculates the Wilcoxon T-test for related samples and returns the
+result.  A non-parametric T-test.
+
+Usage:   lwilcoxont(x,y)
+Returns: a t-statistic, two-tail probability estimate
+"""
+    if len(x) != len(y):
+        raise ValueError('Unequal N in wilcoxont.  Aborting.')
+    d=[]
+    for i in range(len(x)):
+        diff = x[i] - y[i]
+        if diff != 0:
+            d.append(diff)
+    count = len(d)
+    absd = list(map(abs,d))
+    absranked = rankdata(absd)
+    r_plus = 0.0
+    r_minus = 0.0
+    for i in range(len(absd)):
+        if d[i] < 0:
+            r_minus = r_minus + absranked[i]
+        else:
+            r_plus = r_plus + absranked[i]
+    wt = min(r_plus, r_minus)
+    mn = count * (count+1) * 0.25
+    se =  math.sqrt(count*(count+1)*(2.0*count+1.0)/24.0)
+    z = math.fabs(wt-mn) / se
+    prob = 2*(1.0 -zprob(abs(z)))
+    return wt, prob
+
+
+def lkruskalwallish(*args):
+    """
+The Kruskal-Wallis H-test is a non-parametric ANOVA for 3 or more
+groups, requiring at least 5 subjects in each group.  This function
+calculates the Kruskal-Wallis H-test for 3 or more independent samples
+and returns the result.
+
+Usage:   lkruskalwallish(*args)
+Returns: H-statistic (corrected for ties), associated p-value
+"""
+    args = list(args)
+    n = [0]*len(args)
+    all = []
+    n = list(map(len,args))
+    for i in range(len(args)):
+        all = all + args[i]
+    ranked = rankdata(all)
+    T = tiecorrect(ranked)
+    for i in range(len(args)):
+        args[i] = ranked[0:n[i]]
+        del ranked[0:n[i]]
+    rsums = []
+    for i in range(len(args)):
+        rsums.append(sum(args[i])**2)
+        rsums[i] = rsums[i] / float(n[i])
+    ssbn = sum(rsums)
+    totaln = sum(n)
+    h = 12.0 / (totaln*(totaln+1)) * ssbn - 3*(totaln+1)
+    df = len(args) - 1
+    if T == 0:
+        raise ValueError('All numbers are identical in lkruskalwallish')
+    h = h / float(T)
+    return h, chisqprob(h,df)
+
+
+def lfriedmanchisquare(*args):
+    """
+Friedman Chi-Square is a non-parametric, one-way within-subjects
+ANOVA.  This function calculates the Friedman Chi-square test for repeated
+measures and returns the result, along with the associated probability
+value.  It assumes 3 or more repeated measures.  Only 3 levels requires a
+minimum of 10 subjects in the study.  Four levels requires 5 subjects per
+level(??).
+
+Usage:   lfriedmanchisquare(*args)
+Returns: chi-square statistic, associated p-value
+"""
+    k = len(args)
+    if k < 3:
+        raise ValueError('Less than 3 levels.  Friedman test not appropriate.')
+    n = len(args[0])
+    data = pstat.abut(*tuple(args))
+    for i in range(len(data)):
+        data[i] = rankdata(data[i])
+    ssbn = 0
+    for i in range(k):
+        ssbn = ssbn + sum(args[i])**2
+    chisq = 12.0 / (k*n*(k+1)) * ssbn - 3*n*(k+1)
+    return chisq, chisqprob(chisq,k-1)
+
+
+####################################
+####  PROBABILITY CALCULATIONS  ####
+####################################
+
+def lchisqprob(chisq,df):
+    """
+Returns the (1-tailed) probability value associated with the provided
+chi-square value and df.  Adapted from chisq.c in Gary Perlman's |Stat.
+
+Usage:   lchisqprob(chisq,df)
+"""
+    BIG = 20.0
+    def ex(x):
+        BIG = 20.0
+        if x < -BIG:
+            return 0.0
+        else:
+            return math.exp(x)
+
+    if chisq <=0 or df < 1:
+        return 1.0
+    a = 0.5 * chisq
+    if df%2 == 0:
+        even = 1
+    else:
+        even = 0
+    if df > 1:
+        y = ex(-a)
+    if even:
+        s = y
+    else:
+        s = 2.0 * zprob(-math.sqrt(chisq))
+    if (df > 2):
+        chisq = 0.5 * (df - 1.0)
+        if even:
+            z = 1.0
+        else:
+            z = 0.5
+        if a > BIG:
+            if even:
+                e = 0.0
+            else:
+                e = math.log(math.sqrt(math.pi))
+            c = math.log(a)
+            while (z <= chisq):
+                e = math.log(z) + e
+                s = s + ex(c*z-a-e)
+                z = z + 1.0
+            return s
+        else:
+            if even:
+                e = 1.0
+            else:
+                e = 1.0 / math.sqrt(math.pi) / math.sqrt(a)
+            c = 0.0
+            while (z <= chisq):
+                e = e * (a/float(z))
+                c = c + e
+                z = z + 1.0
+            return (c*y+s)
+    else:
+        return s
+
+
+def lerfcc(x):
+    """
+Returns the complementary error function erfc(x) with fractional
+error everywhere less than 1.2e-7.  Adapted from Numerical Recipies.
+
+Usage:   lerfcc(x)
+"""
+    z = abs(x)
+    t = 1.0 / (1.0+0.5*z)
+    ans = t * math.exp(-z*z-1.26551223 + t*(1.00002368+t*(0.37409196+t*(0.09678418+t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+t*(-0.82215223+t*0.17087277)))))))))
+    if x >= 0:
+        return ans
+    else:
+        return 2.0 - ans
+
+
+def lzprob(z):
+    """
+Returns the area under the normal curve 'to the left of' the given z value.
+Thus,
+    for z<0, zprob(z) = 1-tail probability
+    for z>0, 1.0-zprob(z) = 1-tail probability
+    for any z, 2.0*(1.0-zprob(abs(z))) = 2-tail probability
+Adapted from z.c in Gary Perlman's |Stat.
+
+Usage:   lzprob(z)
+"""
+    Z_MAX = 6.0    # maximum meaningful z-value
+    if z == 0.0:
+        x = 0.0
+    else:
+        y = 0.5 * math.fabs(z)
+        if y >= (Z_MAX*0.5):
+            x = 1.0
+        elif (y < 1.0):
+            w = y*y
+            x = ((((((((0.000124818987 * w
+                        -0.001075204047) * w +0.005198775019) * w
+                      -0.019198292004) * w +0.059054035642) * w
+                    -0.151968751364) * w +0.319152932694) * w
+                  -0.531923007300) * w +0.797884560593) * y * 2.0
+        else:
+            y = y - 2.0
+            x = (((((((((((((-0.000045255659 * y
+                             +0.000152529290) * y -0.000019538132) * y
+                           -0.000676904986) * y +0.001390604284) * y
+                         -0.000794620820) * y -0.002034254874) * y
+                       +0.006549791214) * y -0.010557625006) * y
+                     +0.011630447319) * y -0.009279453341) * y
+                   +0.005353579108) * y -0.002141268741) * y
+                 +0.000535310849) * y +0.999936657524
+    if z > 0.0:
+        prob = ((x+1.0)*0.5)
+    else:
+        prob = ((1.0-x)*0.5)
+    return prob
+
+
+def lksprob(alam):
+    """
+Computes a Kolmolgorov-Smirnov t-test significance level.  Adapted from
+Numerical Recipies.
+
+Usage:   lksprob(alam)
+"""
+    fac = 2.0
+    sum = 0.0
+    termbf = 0.0
+    a2 = -2.0*alam*alam
+    for j in range(1,201):
+        term = fac*math.exp(a2*j*j)
+        sum = sum + term
+        if math.fabs(term) <= (0.001*termbf) or math.fabs(term) < (1.0e-8*sum):
+            return sum
+        fac = -fac
+        termbf = math.fabs(term)
+    return 1.0             # Get here only if fails to converge; was 0.0!!
+
+
+def lfprob (dfnum, dfden, F):
+    """
+Returns the (1-tailed) significance level (p-value) of an F
+statistic given the degrees of freedom for the numerator (dfR-dfF) and
+the degrees of freedom for the denominator (dfF).
+
+Usage:   lfprob(dfnum, dfden, F)   where usually dfnum=dfbn, dfden=dfwn
+"""
+    p = betai(0.5*dfden, 0.5*dfnum, dfden/float(dfden+dfnum*F))
+    return p
+
+
+def lbetacf(a,b,x):
+    """
+This function evaluates the continued fraction form of the incomplete
+Beta function, betai.  (Adapted from: Numerical Recipies in C.)
+
+Usage:   lbetacf(a,b,x)
+"""
+    ITMAX = 200
+    EPS = 3.0e-7
+
+    bm = az = am = 1.0
+    qab = a+b
+    qap = a+1.0
+    qam = a-1.0
+    bz = 1.0-qab*x/qap
+    for i in range(ITMAX+1):
+        em = float(i+1)
+        tem = em + em
+        d = em*(b-em)*x/((qam+tem)*(a+tem))
+        ap = az + d*am
+        bp = bz+d*bm
+        d = -(a+em)*(qab+em)*x/((qap+tem)*(a+tem))
+        app = ap+d*az
+        bpp = bp+d*bz
+        aold = az
+        am = ap/bpp
+        bm = bp/bpp
+        az = app/bpp
+        bz = 1.0
+        if (abs(az-aold)<(EPS*abs(az))):
+            return az
+    print('a or b too big, or ITMAX too small in Betacf.')
+
+
+def lgammln(xx):
+    """
+Returns the gamma function of xx.
+    Gamma(z) = Integral(0,infinity) of t^(z-1)exp(-t) dt.
+(Adapted from: Numerical Recipies in C.)
+
+Usage:   lgammln(xx)
+"""
+
+    coeff = [76.18009173, -86.50532033, 24.01409822, -1.231739516,
+             0.120858003e-2, -0.536382e-5]
+    x = xx - 1.0
+    tmp = x + 5.5
+    tmp = tmp - (x+0.5)*math.log(tmp)
+    ser = 1.0
+    for j in range(len(coeff)):
+        x = x + 1
+        ser = ser + coeff[j]/x
+    return -tmp + math.log(2.50662827465*ser)
+
+
+def lbetai(a,b,x):
+    """
+Returns the incomplete beta function:
+
+    I-sub-x(a,b) = 1/B(a,b)*(Integral(0,x) of t^(a-1)(1-t)^(b-1) dt)
+
+where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma
+function of a.  The continued fraction formulation is implemented here,
+using the betacf function.  (Adapted from: Numerical Recipies in C.)
+
+Usage:   lbetai(a,b,x)
+"""
+    if (x<0.0 or x>1.0):
+        raise ValueError('Bad x in lbetai')
+    if (x==0.0 or x==1.0):
+        bt = 0.0
+    else:
+        bt = math.exp(gammln(a+b)-gammln(a)-gammln(b)+a*math.log(x)+b*
+                      math.log(1.0-x))
+    if (x<(a+1.0)/(a+b+2.0)):
+        return bt*betacf(a,b,x)/float(a)
+    else:
+        return 1.0-bt*betacf(b,a,1.0-x)/float(b)
+
+
+####################################
+#######  ANOVA CALCULATIONS  #######
+####################################
+
+def lF_oneway(*lists):
+    """
+Performs a 1-way ANOVA, returning an F-value and probability given
+any number of groups.  From Heiman, pp.394-7.
+
+Usage:   F_oneway(*lists)    where *lists is any number of lists, one per
+                                  treatment group
+Returns: F value, one-tailed p-value
+"""
+    a = len(lists)           # ANOVA on 'a' groups, each in it's own list
+    means = [0]*a
+    vars = [0]*a
+    ns = [0]*a
+    alldata = []
+    tmp = list(map(N.array,lists))
+    means = list(map(amean,tmp))
+    vars = list(map(avar,tmp))
+    ns = list(map(len,lists))
+    for i in range(len(lists)):
+        alldata = alldata + lists[i]
+    alldata = N.array(alldata)
+    bign = len(alldata)
+    sstot = ass(alldata)-(asquare_of_sums(alldata)/float(bign))
+    ssbn = 0
+    for list in lists:
+        ssbn = ssbn + asquare_of_sums(N.array(list))/float(len(list))
+    ssbn = ssbn - (asquare_of_sums(alldata)/float(bign))
+    sswn = sstot-ssbn
+    dfbn = a-1
+    dfwn = bign - a
+    msb = ssbn/float(dfbn)
+    msw = sswn/float(dfwn)
+    f = msb/msw
+    prob = fprob(dfbn,dfwn,f)
+    return f, prob
+
+
+def lF_value (ER,EF,dfnum,dfden):
+    """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR-dfF = degrees of freedom of the numerator
+        dfF = degrees of freedom associated with the denominator/Full model
+
+Usage:   lF_value(ER,EF,dfnum,dfden)
+"""
+    return ((ER-EF)/float(dfnum) / (EF/float(dfden)))
+
+
+####################################
+########  SUPPORT FUNCTIONS  #######
+####################################
+
+def writecc (listoflists,file,writetype='w',extra=2):
+    """
+Writes a list of lists to a file in columns, customized by the max
+size of items within the columns (max size of items in col, +2 characters)
+to specified file.  File-overwrite is the default.
+
+Usage:   writecc (listoflists,file,writetype='w',extra=2)
+Returns: None
+"""
+    if type(listoflists[0]) not in [ListType,TupleType]:
+        listoflists = [listoflists]
+    outfile = open(file,writetype)
+    rowstokill = []
+    list2print = copy.deepcopy(listoflists)
+    for i in range(len(listoflists)):
+        if listoflists[i] == ['\n'] or listoflists[i]=='\n' or listoflists[i]=='dashes':
+            rowstokill = rowstokill + [i]
+    rowstokill.reverse()
+    for row in rowstokill:
+        del list2print[row]
+    maxsize = [0]*len(list2print[0])
+    for col in range(len(list2print[0])):
+        items = pstat.colex(list2print,col)
+        items = list(map(pstat.makestr,items))
+        maxsize[col] = max(list(map(len,items))) + extra
+    for row in listoflists:
+        if row == ['\n'] or row == '\n':
+            outfile.write('\n')
+        elif row == ['dashes'] or row == 'dashes':
+            dashes = [0]*len(maxsize)
+            for j in range(len(maxsize)):
+                dashes[j] = '-'*(maxsize[j]-2)
+            outfile.write(pstat.lineincustcols(dashes,maxsize))
+        else:
+            outfile.write(pstat.lineincustcols(row,maxsize))
+        outfile.write('\n')
+    outfile.close()
+    return None
+
+
+def lincr(l,cap):        # to increment a list up to a max-list of 'cap'
+    """
+Simulate a counting system from an n-dimensional list.
+
+Usage:   lincr(l,cap)   l=list to increment, cap=max values for each list pos'n
+Returns: next set of values for list l, OR -1 (if overflow)
+"""
+    l[0] = l[0] + 1     # e.g., [0,0,0] --> [2,4,3] (=cap)
+    for i in range(len(l)):
+        if l[i] > cap[i] and i < len(l)-1: # if carryover AND not done
+            l[i] = 0
+            l[i+1] = l[i+1] + 1
+        elif l[i] > cap[i] and i == len(l)-1: # overflow past last column, must be finished
+            l = -1
+    return l
+
+
+def lsum (inlist):
+    """
+Returns the sum of the items in the passed list.
+
+Usage:   lsum(inlist)
+"""
+    s = 0
+    for item in inlist:
+        s = s + item
+    return s
+
+
+def lcumsum (inlist):
+    """
+Returns a list consisting of the cumulative sum of the items in the
+passed list.
+
+Usage:   lcumsum(inlist)
+"""
+    newlist = copy.deepcopy(inlist)
+    for i in range(1,len(newlist)):
+        newlist[i] = newlist[i] + newlist[i-1]
+    return newlist
+
+
+def lss(inlist):
+    """
+Squares each value in the passed list, adds up these squares and
+returns the result.
+
+Usage:   lss(inlist)
+"""
+    ss = 0
+    for item in inlist:
+        ss = ss + item*item
+    return ss
+
+
+def lsummult (list1,list2):
+    """
+Multiplies elements in list1 and list2, element by element, and
+returns the sum of all resulting multiplications.  Must provide equal
+length lists.
+
+Usage:   lsummult(list1,list2)
+"""
+    if len(list1) != len(list2):
+        raise ValueError("Lists not equal length in summult.")
+    s = 0
+    for item1,item2 in pstat.abut(list1,list2):
+        s = s + item1*item2
+    return s
+
+
+def lsumdiffsquared(x,y):
+    """
+Takes pairwise differences of the values in lists x and y, squares
+these differences, and returns the sum of these squares.
+
+Usage:   lsumdiffsquared(x,y)
+Returns: sum[(x[i]-y[i])**2]
+"""
+    sds = 0
+    for i in range(len(x)):
+        sds = sds + (x[i]-y[i])**2
+    return sds
+
+
+def lsquare_of_sums(inlist):
+    """
+Adds the values in the passed list, squares the sum, and returns
+the result.
+
+Usage:   lsquare_of_sums(inlist)
+Returns: sum(inlist[i])**2
+"""
+    s = sum(inlist)
+    return float(s)*s
+
+
+def lshellsort(inlist):
+    """
+Shellsort algorithm.  Sorts a 1D-list.
+
+Usage:   lshellsort(inlist)
+Returns: sorted-inlist, sorting-index-vector (for original list)
+"""
+    n = len(inlist)
+    svec = copy.deepcopy(inlist)
+    ivec = list(range(n))
+    gap = n/2   # integer division needed
+    while gap >0:
+        for i in range(gap,n):
+            for j in range(i-gap,-1,-gap):
+                while j>=0 and svec[j]>svec[j+gap]:
+                    temp        = svec[j]
+                    svec[j]     = svec[j+gap]
+                    svec[j+gap] = temp
+                    itemp       = ivec[j]
+                    ivec[j]     = ivec[j+gap]
+                    ivec[j+gap] = itemp
+        gap = gap / 2  # integer division needed
+# svec is now sorted inlist, and ivec has the order svec[i] = vec[ivec[i]]
+    return svec, ivec
+
+
+def lrankdata(inlist):
+    """
+Ranks the data in inlist, dealing with ties appropritely.  Assumes
+a 1D inlist.  Adapted from Gary Perlman's |Stat ranksort.
+
+Usage:   lrankdata(inlist)
+Returns: a list of length equal to inlist, containing rank scores
+"""
+    n = len(inlist)
+    svec, ivec = shellsort(inlist)
+    sumranks = 0
+    dupcount = 0
+    newlist = [0]*n
+    for i in range(n):
+        sumranks = sumranks + i
+        dupcount = dupcount + 1
+        if i==n-1 or svec[i] != svec[i+1]:
+            averank = sumranks / float(dupcount) + 1
+            for j in range(i-dupcount+1,i+1):
+                newlist[ivec[j]] = averank
+            sumranks = 0
+            dupcount = 0
+    return newlist
+
+
+def outputpairedstats(fname,writemode,name1,n1,m1,se1,min1,max1,name2,n2,m2,se2,min2,max2,statname,stat,prob):
+    """
+Prints or write to a file stats for two groups, using the name, n,
+mean, sterr, min and max for each group, as well as the statistic name,
+its value, and the associated p-value.
+
+Usage:   outputpairedstats(fname,writemode,
+                           name1,n1,mean1,stderr1,min1,max1,
+                           name2,n2,mean2,stderr2,min2,max2,
+                           statname,stat,prob)
+Returns: None
+"""
+    suffix = ''                       # for *s after the p-value
+    try:
+        x = prob.shape
+        prob = prob[0]
+    except:
+        pass
+    if  prob < 0.001:  suffix = '  ***'
+    elif prob < 0.01:  suffix = '  **'
+    elif prob < 0.05:  suffix = '  *'
+    title = [['Name','N','Mean','SD','Min','Max']]
+    lofl = title+[[name1,n1,round(m1,3),round(math.sqrt(se1),3),min1,max1],
+                  [name2,n2,round(m2,3),round(math.sqrt(se2),3),min2,max2]]
+    if type(fname)!=StringType or len(fname)==0:
+        print()
+        print(statname)
+        print()
+        pstat.printcc(lofl)
+        print()
+        try:
+            if stat.shape == ():
+                stat = stat[0]
+            if prob.shape == ():
+                prob = prob[0]
+        except:
+            pass
+        print('Test statistic = ',round(stat,3),'   p = ',round(prob,3),suffix)
+        print()
+    else:
+        file = open(fname,writemode)
+        file.write('\n'+statname+'\n\n')
+        file.close()
+        writecc(lofl,fname,'a')
+        file = open(fname,'a')
+        try:
+            if stat.shape == ():
+                stat = stat[0]
+            if prob.shape == ():
+                prob = prob[0]
+        except:
+            pass
+        file.write(pstat.list2string(['\nTest statistic = ',round(stat,4),'   p = ',round(prob,4),suffix,'\n\n']))
+        file.close()
+    return None
+
+
+def lfindwithin (data):
+    """
+Returns an integer representing a binary vector, where 1=within-
+subject factor, 0=between.  Input equals the entire data 2D list (i.e.,
+column 0=random factor, column -1=measured values (those two are skipped).
+Note: input data is in |Stat format ... a list of lists ("2D list") with
+one row per measured value, first column=subject identifier, last column=
+score, one in-between column per factor (these columns contain level
+designations on each factor).  See also stats.anova.__doc__.
+
+Usage:   lfindwithin(data)     data in |Stat format
+"""
+
+    numfact = len(data[0])-1
+    withinvec = 0
+    for col in range(1,numfact):
+        examplelevel = pstat.unique(pstat.colex(data,col))[0]
+        rows = pstat.linexand(data,col,examplelevel)  # get 1 level of this factor
+        factsubjs = pstat.unique(pstat.colex(rows,0))
+        allsubjs = pstat.unique(pstat.colex(data,0))
+        if len(factsubjs) == len(allsubjs):  # fewer Ss than scores on this factor?
+            withinvec = withinvec + (1 << col)
+    return withinvec
+
+
+#########################################################
+#########################################################
+####### DISPATCH LISTS AND TUPLES TO ABOVE FCNS #########
+#########################################################
+#########################################################
+
+## CENTRAL TENDENCY:
+geometricmean = Dispatch ( (lgeometricmean, (ListType, TupleType)), )
+harmonicmean = Dispatch ( (lharmonicmean, (ListType, TupleType)), )
+mean = Dispatch ( (lmean, (ListType, TupleType)), )
+median = Dispatch ( (lmedian, (ListType, TupleType)), )
+medianscore = Dispatch ( (lmedianscore, (ListType, TupleType)), )
+mode = Dispatch ( (lmode, (ListType, TupleType)), )
+
+## MOMENTS:
+moment = Dispatch ( (lmoment, (ListType, TupleType)), )
+variation = Dispatch ( (lvariation, (ListType, TupleType)), )
+skew = Dispatch ( (lskew, (ListType, TupleType)), )
+kurtosis = Dispatch ( (lkurtosis, (ListType, TupleType)), )
+describe = Dispatch ( (ldescribe, (ListType, TupleType)), )
+
+## FREQUENCY STATISTICS:
+itemfreq = Dispatch ( (litemfreq, (ListType, TupleType)), )
+scoreatpercentile = Dispatch ( (lscoreatpercentile, (ListType, TupleType)), )
+percentileofscore = Dispatch ( (lpercentileofscore, (ListType, TupleType)), )
+histogram = Dispatch ( (lhistogram, (ListType, TupleType)), )
+cumfreq = Dispatch ( (lcumfreq, (ListType, TupleType)), )
+relfreq = Dispatch ( (lrelfreq, (ListType, TupleType)), )
+
+## VARIABILITY:
+obrientransform = Dispatch ( (lobrientransform, (ListType, TupleType)), )
+samplevar = Dispatch ( (lsamplevar, (ListType, TupleType)), )
+samplestdev = Dispatch ( (lsamplestdev, (ListType, TupleType)), )
+var = Dispatch ( (lvar, (ListType, TupleType)), )
+stdev = Dispatch ( (lstdev, (ListType, TupleType)), )
+sterr = Dispatch ( (lsterr, (ListType, TupleType)), )
+sem = Dispatch ( (lsem, (ListType, TupleType)), )
+z = Dispatch ( (lz, (ListType, TupleType)), )
+zs = Dispatch ( (lzs, (ListType, TupleType)), )
+
+## TRIMMING FCNS:
+trimboth = Dispatch ( (ltrimboth, (ListType, TupleType)), )
+trim1 = Dispatch ( (ltrim1, (ListType, TupleType)), )
+
+## CORRELATION FCNS:
+paired = Dispatch ( (lpaired, (ListType, TupleType)), )
+pearsonr = Dispatch ( (lpearsonr, (ListType, TupleType)), )
+spearmanr = Dispatch ( (lspearmanr, (ListType, TupleType)), )
+pointbiserialr = Dispatch ( (lpointbiserialr, (ListType, TupleType)), )
+kendalltau = Dispatch ( (lkendalltau, (ListType, TupleType)), )
+linregress = Dispatch ( (llinregress, (ListType, TupleType)), )
+
+## INFERENTIAL STATS:
+ttest_1samp = Dispatch ( (lttest_1samp, (ListType, TupleType)), )
+ttest_ind = Dispatch ( (lttest_ind, (ListType, TupleType)), )
+ttest_rel = Dispatch ( (lttest_rel, (ListType, TupleType)), )
+chisquare = Dispatch ( (lchisquare, (ListType, TupleType)), )
+ks_2samp = Dispatch ( (lks_2samp, (ListType, TupleType)), )
+mannwhitneyu = Dispatch ( (lmannwhitneyu, (ListType, TupleType)), )
+ranksums = Dispatch ( (lranksums, (ListType, TupleType)), )
+tiecorrect = Dispatch ( (ltiecorrect, (ListType, TupleType)), )
+wilcoxont = Dispatch ( (lwilcoxont, (ListType, TupleType)), )
+kruskalwallish = Dispatch ( (lkruskalwallish, (ListType, TupleType)), )
+friedmanchisquare = Dispatch ( (lfriedmanchisquare, (ListType, TupleType)), )
+
+## PROBABILITY CALCS:
+chisqprob = Dispatch ( (lchisqprob, (IntType, FloatType)), )
+zprob = Dispatch ( (lzprob, (IntType, FloatType)), )
+ksprob = Dispatch ( (lksprob, (IntType, FloatType)), )
+fprob = Dispatch ( (lfprob, (IntType, FloatType)), )
+betacf = Dispatch ( (lbetacf, (IntType, FloatType)), )
+betai = Dispatch ( (lbetai, (IntType, FloatType)), )
+erfcc = Dispatch ( (lerfcc, (IntType, FloatType)), )
+gammln = Dispatch ( (lgammln, (IntType, FloatType)), )
+
+## ANOVA FUNCTIONS:
+F_oneway = Dispatch ( (lF_oneway, (ListType, TupleType)), )
+F_value = Dispatch ( (lF_value, (ListType, TupleType)), )
+
+## SUPPORT FUNCTIONS:
+incr = Dispatch ( (lincr, (ListType, TupleType)), )
+sum = Dispatch ( (lsum, (ListType, TupleType)), )
+cumsum = Dispatch ( (lcumsum, (ListType, TupleType)), )
+ss = Dispatch ( (lss, (ListType, TupleType)), )
+summult = Dispatch ( (lsummult, (ListType, TupleType)), )
+square_of_sums = Dispatch ( (lsquare_of_sums, (ListType, TupleType)), )
+sumdiffsquared = Dispatch ( (lsumdiffsquared, (ListType, TupleType)), )
+shellsort = Dispatch ( (lshellsort, (ListType, TupleType)), )
+rankdata = Dispatch ( (lrankdata, (ListType, TupleType)), )
+findwithin = Dispatch ( (lfindwithin, (ListType, TupleType)), )
+
+
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+
+try:                         # DEFINE THESE *ONLY* IF NUMERIC IS AVAILABLE
+ import numpy as N
+ import numpy.linalg as LA
+
+
+#####################################
+########  ACENTRAL TENDENCY  ########
+#####################################
+
+ def ageometricmean (inarray,dimension=None,keepdims=0):
+    """
+Calculates the geometric mean of the values in the passed array.
+That is:  n-th root of (x1 * x2 * ... * xn).  Defaults to ALL values in
+the passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   ageometricmean(inarray,dimension=None,keepdims=0)
+Returns: geometric mean computed over dim(s) listed in dimension
+"""
+    inarray = N.array(inarray,N.float_)
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        size = len(inarray)
+        mult = N.power(inarray,1.0/size)
+        mult = N.multiply.reduce(mult)
+    elif type(dimension) in [IntType,FloatType]:
+        size = inarray.shape[dimension]
+        mult = N.power(inarray,1.0/size)
+        mult = N.multiply.reduce(mult,dimension)
+        if keepdims == 1:
+            shp = list(inarray.shape)
+            shp[dimension] = 1
+            sum = N.reshape(sum,shp)
+    else: # must be a SEQUENCE of dims to average over
+        dims = list(dimension)
+        dims.sort()
+        dims.reverse()
+        size = N.array(N.multiply.reduce(N.take(inarray.shape,dims)),N.float_)
+        mult = N.power(inarray,1.0/size)
+        for dim in dims:
+            mult = N.multiply.reduce(mult,dim)
+        if keepdims == 1:
+            shp = list(inarray.shape)
+            for dim in dims:
+                shp[dim] = 1
+            mult = N.reshape(mult,shp)
+    return mult
+
+
+ def aharmonicmean (inarray,dimension=None,keepdims=0):
+    """
+Calculates the harmonic mean of the values in the passed array.
+That is:  n / (1/x1 + 1/x2 + ... + 1/xn).  Defaults to ALL values in
+the passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   aharmonicmean(inarray,dimension=None,keepdims=0)
+Returns: harmonic mean computed over dim(s) in dimension
+"""
+    inarray = inarray.astype(N.float_)
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        size = len(inarray)
+        s = N.add.reduce(1.0 / inarray)
+    elif type(dimension) in [IntType,FloatType]:
+        size = float(inarray.shape[dimension])
+        s = N.add.reduce(1.0/inarray, dimension)
+        if keepdims == 1:
+            shp = list(inarray.shape)
+            shp[dimension] = 1
+            s = N.reshape(s,shp)
+    else: # must be a SEQUENCE of dims to average over
+        dims = list(dimension)
+        dims.sort()
+        nondims = []
+        for i in range(len(inarray.shape)):
+            if i not in dims:
+                nondims.append(i)
+        tinarray = N.transpose(inarray,nondims+dims) # put keep-dims first
+        idx = [0] *len(nondims)
+        if idx == []:
+            size = len(N.ravel(inarray))
+            s = asum(1.0 / inarray)
+            if keepdims == 1:
+                s = N.reshape([s],N.ones(len(inarray.shape)))
+        else:
+            idx[0] = -1
+            loopcap = N.array(tinarray.shape[0:len(nondims)]) -1
+            s = N.zeros(loopcap+1,N.float_)
+            while incr(idx,loopcap) != -1:
+                s[idx] = asum(1.0/tinarray[idx])
+            size = N.multiply.reduce(N.take(inarray.shape,dims))
+            if keepdims == 1:
+                shp = list(inarray.shape)
+                for dim in dims:
+                    shp[dim] = 1
+                s = N.reshape(s,shp)
+    return size / s
+
+
+ def amean (inarray,dimension=None,keepdims=0):
+    """
+Calculates the arithmatic mean of the values in the passed array.
+That is:  1/n * (x1 + x2 + ... + xn).  Defaults to ALL values in the
+passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   amean(inarray,dimension=None,keepdims=0)
+Returns: arithematic mean calculated over dim(s) in dimension
+"""
+    if inarray.dtype in [N.int_, N.short,N.ubyte]:
+        inarray = inarray.astype(N.float_)
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        sum = N.add.reduce(inarray)
+        denom = float(len(inarray))
+    elif type(dimension) in [IntType,FloatType]:
+        sum = asum(inarray,dimension)
+        denom = float(inarray.shape[dimension])
+        if keepdims == 1:
+            shp = list(inarray.shape)
+            shp[dimension] = 1
+            sum = N.reshape(sum,shp)
+    else: # must be a TUPLE of dims to average over
+        dims = list(dimension)
+        dims.sort()
+        dims.reverse()
+        sum = inarray *1.0
+        for dim in dims:
+            sum = N.add.reduce(sum,dim)
+        denom = N.array(N.multiply.reduce(N.take(inarray.shape,dims)),N.float_)
+        if keepdims == 1:
+            shp = list(inarray.shape)
+            for dim in dims:
+                shp[dim] = 1
+            sum = N.reshape(sum,shp)
+    return sum/denom
+
+
+ def amedian (inarray,numbins=1000):
+    """
+Calculates the COMPUTED median value of an array of numbers, given the
+number of bins to use for the histogram (more bins approaches finding the
+precise median value of the array; default number of bins = 1000).  From
+G.W. Heiman's Basic Stats, or CRC Probability & Statistics.
+NOTE:  THIS ROUTINE ALWAYS uses the entire passed array (flattens it first).
+
+Usage:   amedian(inarray,numbins=1000)
+Returns: median calculated over ALL values in inarray
+"""
+    inarray = N.ravel(inarray)
+    (hist, smallest, binsize, extras) = ahistogram(inarray,numbins,[min(inarray),max(inarray)])
+    cumhist = N.cumsum(hist)            # make cumulative histogram
+    otherbins = N.greater_equal(cumhist,len(inarray)/2.0)
+    otherbins = list(otherbins)         # list of 0/1s, 1s start at median bin
+    cfbin = otherbins.index(1)                # get 1st(!) index holding 50%ile score
+    LRL = smallest + binsize*cfbin        # get lower read limit of that bin
+    cfbelow = N.add.reduce(hist[0:cfbin])        # cum. freq. below bin
+    freq = hist[cfbin]                        # frequency IN the 50%ile bin
+    median = LRL + ((len(inarray)/2.0-cfbelow)/float(freq))*binsize # MEDIAN
+    return median
+
+
+ def amedianscore (inarray,dimension=None):
+    """
+Returns the 'middle' score of the passed array.  If there is an even
+number of scores, the mean of the 2 middle scores is returned.  Can function
+with 1D arrays, or on the FIRST dimension of 2D arrays (i.e., dimension can
+be None, to pre-flatten the array, or else dimension must equal 0).
+
+Usage:   amedianscore(inarray,dimension=None)
+Returns: 'middle' score of the array, or the mean of the 2 middle scores
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    inarray = N.sort(inarray,dimension)
+    if inarray.shape[dimension] % 2 == 0:   # if even number of elements
+        indx = inarray.shape[dimension]/2   # integer division correct
+        median = N.asarray(inarray[indx]+inarray[indx-1]) / 2.0
+    else:
+        indx = inarray.shape[dimension] / 2 # integer division correct
+        median = N.take(inarray,[indx],dimension)
+        if median.shape == (1,):
+            median = median[0]
+    return median
+
+
+ def amode(a, dimension=None):
+    """
+Returns an array of the modal (most common) score in the passed array.
+If there is more than one such score, ONLY THE FIRST is returned.
+The bin-count for the modal values is also returned.  Operates on whole
+array (dimension=None), or on a given dimension.
+
+Usage:   amode(a, dimension=None)
+Returns: array of bin-counts for mode(s), array of corresponding modal values
+"""
+
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    scores = pstat.aunique(N.ravel(a))       # get ALL unique values
+    testshape = list(a.shape)
+    testshape[dimension] = 1
+    oldmostfreq = N.zeros(testshape)
+    oldcounts = N.zeros(testshape)
+    for score in scores:
+        template = N.equal(a,score)
+        counts = asum(template,dimension,1)
+        mostfrequent = N.where(counts>oldcounts,score,oldmostfreq)
+        oldcounts = N.where(counts>oldcounts,counts,oldcounts)
+        oldmostfreq = mostfrequent
+    return oldcounts, mostfrequent
+
+
+ def atmean(a,limits=None,inclusive=(1,1)):
+     """
+Returns the arithmetic mean of all values in an array, ignoring values
+strictly outside the sequence passed to 'limits'.   Note: either limit
+in the sequence, or the value of limits itself, can be set to None.  The
+inclusive list/tuple determines whether the lower and upper limiting bounds
+(respectively) are open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atmean(a,limits=None,inclusive=(1,1))
+"""
+     if a.dtype in [N.int_, N.short,N.ubyte]:
+         a = a.astype(N.float_)
+     if limits == None:
+         return mean(a)
+     assert type(limits) in [ListType,TupleType,N.ndarray], "Wrong type for limits in atmean"
+     if inclusive[0]:         lowerfcn = N.greater_equal
+     else:               lowerfcn = N.greater
+     if inclusive[1]:         upperfcn = N.less_equal
+     else:               upperfcn = N.less
+     if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(N.ravel(a)):
+         raise ValueError("No array values within given limits (atmean).")
+     elif limits[0]==None and limits[1]!=None:
+         mask = upperfcn(a,limits[1])
+     elif limits[0]!=None and limits[1]==None:
+         mask = lowerfcn(a,limits[0])
+     elif limits[0]!=None and limits[1]!=None:
+         mask = lowerfcn(a,limits[0])*upperfcn(a,limits[1])
+     s = float(N.add.reduce(N.ravel(a*mask)))
+     n = float(N.add.reduce(N.ravel(mask)))
+     return s/n
+
+
+ def atvar(a,limits=None,inclusive=(1,1)):
+     """
+Returns the sample variance of values in an array, (i.e., using N-1),
+ignoring values strictly outside the sequence passed to 'limits'.
+Note: either limit in the sequence, or the value of limits itself,
+can be set to None.  The inclusive list/tuple determines whether the lower
+and upper limiting bounds (respectively) are open/exclusive (0) or
+closed/inclusive (1). ASSUMES A FLAT ARRAY (OR ELSE PREFLATTENS).
+
+Usage:   atvar(a,limits=None,inclusive=(1,1))
+"""
+     a = a.astype(N.float_)
+     if limits == None or limits == [None,None]:
+         return avar(a)
+     assert type(limits) in [ListType,TupleType,N.ndarray], "Wrong type for limits in atvar"
+     if inclusive[0]:    lowerfcn = N.greater_equal
+     else:               lowerfcn = N.greater
+     if inclusive[1]:    upperfcn = N.less_equal
+     else:               upperfcn = N.less
+     if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(N.ravel(a)):
+         raise ValueError("No array values within given limits (atvar).")
+     elif limits[0]==None and limits[1]!=None:
+         mask = upperfcn(a,limits[1])
+     elif limits[0]!=None and limits[1]==None:
+         mask = lowerfcn(a,limits[0])
+     elif limits[0]!=None and limits[1]!=None:
+         mask = lowerfcn(a,limits[0])*upperfcn(a,limits[1])
+
+     a = N.compress(mask,a)  # squish out excluded values
+     return avar(a)
+
+
+ def atmin(a,lowerlimit=None,dimension=None,inclusive=1):
+     """
+Returns the minimum value of a, along dimension, including only values less
+than (or equal to, if inclusive=1) lowerlimit.  If the limit is set to None,
+all values in the array are used.
+
+Usage:   atmin(a,lowerlimit=None,dimension=None,inclusive=1)
+"""
+     if inclusive:         lowerfcn = N.greater
+     else:               lowerfcn = N.greater_equal
+     if dimension == None:
+         a = N.ravel(a)
+         dimension = 0
+     if lowerlimit == None:
+         lowerlimit = N.minimum.reduce(N.ravel(a))-11
+     biggest = N.maximum.reduce(N.ravel(a))
+     ta = N.where(lowerfcn(a,lowerlimit),a,biggest)
+     return N.minimum.reduce(ta,dimension)
+
+
+ def atmax(a,upperlimit,dimension=None,inclusive=1):
+     """
+Returns the maximum value of a, along dimension, including only values greater
+than (or equal to, if inclusive=1) upperlimit.  If the limit is set to None,
+a limit larger than the max value in the array is used.
+
+Usage:   atmax(a,upperlimit,dimension=None,inclusive=1)
+"""
+     if inclusive:         upperfcn = N.less
+     else:               upperfcn = N.less_equal
+     if dimension == None:
+         a = N.ravel(a)
+         dimension = 0
+     if upperlimit == None:
+         upperlimit = N.maximum.reduce(N.ravel(a))+1
+     smallest = N.minimum.reduce(N.ravel(a))
+     ta = N.where(upperfcn(a,upperlimit),a,smallest)
+     return N.maximum.reduce(ta,dimension)
+
+
+ def atstdev(a,limits=None,inclusive=(1,1)):
+     """
+Returns the standard deviation of all values in an array, ignoring values
+strictly outside the sequence passed to 'limits'.   Note: either limit
+in the sequence, or the value of limits itself, can be set to None.  The
+inclusive list/tuple determines whether the lower and upper limiting bounds
+(respectively) are open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atstdev(a,limits=None,inclusive=(1,1))
+"""
+     return N.sqrt(tvar(a,limits,inclusive))
+
+
+ def atsem(a,limits=None,inclusive=(1,1)):
+     """
+Returns the standard error of the mean for the values in an array,
+(i.e., using N for the denominator), ignoring values strictly outside
+the sequence passed to 'limits'.   Note: either limit in the sequence,
+or the value of limits itself, can be set to None.  The inclusive list/tuple
+determines whether the lower and upper limiting bounds (respectively) are
+open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atsem(a,limits=None,inclusive=(1,1))
+"""
+     sd = tstdev(a,limits,inclusive)
+     if limits == None or limits == [None,None]:
+         n = float(len(N.ravel(a)))
+         limits = [min(a)-1, max(a)+1]
+     assert type(limits) in [ListType,TupleType,N.ndarray], "Wrong type for limits in atsem"
+     if inclusive[0]:         lowerfcn = N.greater_equal
+     else:               lowerfcn = N.greater
+     if inclusive[1]:         upperfcn = N.less_equal
+     else:               upperfcn = N.less
+     if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(N.ravel(a)):
+         raise ValueError("No array values within given limits (atsem).")
+     elif limits[0]==None and limits[1]!=None:
+         mask = upperfcn(a,limits[1])
+     elif limits[0]!=None and limits[1]==None:
+         mask = lowerfcn(a,limits[0])
+     elif limits[0]!=None and limits[1]!=None:
+         mask = lowerfcn(a,limits[0])*upperfcn(a,limits[1])
+     term1 = N.add.reduce(N.ravel(a*a*mask))
+     n = float(N.add.reduce(N.ravel(mask)))
+     return sd/math.sqrt(n)
+
+
+#####################################
+############  AMOMENTS  #############
+#####################################
+
+ def amoment(a,moment=1,dimension=None):
+    """
+Calculates the nth moment about the mean for a sample (defaults to the
+1st moment).  Generally used to calculate coefficients of skewness and
+kurtosis.  Dimension can equal None (ravel array first), an integer
+(the dimension over which to operate), or a sequence (operate over
+multiple dimensions).
+
+Usage:   amoment(a,moment=1,dimension=None)
+Returns: appropriate moment along given dimension
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    if moment == 1:
+        return 0.0
+    else:
+        mn = amean(a,dimension,1)  # 1=keepdims
+        s = N.power((a-mn),moment)
+        return amean(s,dimension)
+
+
+ def avariation(a,dimension=None):
+    """
+Returns the coefficient of variation, as defined in CRC Standard
+Probability and Statistics, p.6. Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   avariation(a,dimension=None)
+"""
+    return 100.0*asamplestdev(a,dimension)/amean(a,dimension)
+
+
+ def askew(a,dimension=None):
+    """
+Returns the skewness of a distribution (normal ==> 0.0; >0 means extra
+weight in left tail).  Use askewtest() to see if it's close enough.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).
+
+Usage:   askew(a, dimension=None)
+Returns: skew of vals in a along dimension, returning ZERO where all vals equal
+"""
+    denom = N.power(amoment(a,2,dimension),1.5)
+    zero = N.equal(denom,0)
+    if type(denom) == N.ndarray and asum(zero) != 0:
+        print("Number of zeros in askew: ",asum(zero))
+    denom = denom + zero  # prevent divide-by-zero
+    return N.where(zero, 0, amoment(a,3,dimension)/denom)
+
+
+ def akurtosis(a,dimension=None):
+    """
+Returns the kurtosis of a distribution (normal ==> 3.0; >3 means
+heavier in the tails, and usually more peaked).  Use akurtosistest()
+to see if it's close enough.  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   akurtosis(a,dimension=None)
+Returns: kurtosis of values in a along dimension, and ZERO where all vals equal
+"""
+    denom = N.power(amoment(a,2,dimension),2)
+    zero = N.equal(denom,0)
+    if type(denom) == N.ndarray and asum(zero) != 0:
+        print("Number of zeros in akurtosis: ",asum(zero))
+    denom = denom + zero  # prevent divide-by-zero
+    return N.where(zero,0,amoment(a,4,dimension)/denom)
+
+
+ def adescribe(inarray,dimension=None):
+     """
+Returns several descriptive statistics of the passed array.  Dimension
+can equal None (ravel array first), an integer (the dimension over
+which to operate), or a sequence (operate over multiple dimensions).
+
+Usage:   adescribe(inarray,dimension=None)
+Returns: n, (min,max), mean, standard deviation, skew, kurtosis
+"""
+     if dimension == None:
+         inarray = N.ravel(inarray)
+         dimension = 0
+     n = inarray.shape[dimension]
+     mm = (N.minimum.reduce(inarray),N.maximum.reduce(inarray))
+     m = amean(inarray,dimension)
+     sd = astdev(inarray,dimension)
+     skew = askew(inarray,dimension)
+     kurt = akurtosis(inarray,dimension)
+     return n, mm, m, sd, skew, kurt
+
+
+#####################################
+########  NORMALITY TESTS  ##########
+#####################################
+
+ def askewtest(a,dimension=None):
+    """
+Tests whether the skew is significantly different from a normal
+distribution.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).
+
+Usage:   askewtest(a,dimension=None)
+Returns: z-score and 2-tail z-probability
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    b2 = askew(a,dimension)
+    n = float(a.shape[dimension])
+    y = b2 * N.sqrt(((n+1)*(n+3)) / (6.0*(n-2)) )
+    beta2 = ( 3.0*(n*n+27*n-70)*(n+1)*(n+3) ) / ( (n-2.0)*(n+5)*(n+7)*(n+9) )
+    W2 = -1 + N.sqrt(2*(beta2-1))
+    delta = 1/N.sqrt(N.log(N.sqrt(W2)))
+    alpha = N.sqrt(2/(W2-1))
+    y = N.where(y==0,1,y)
+    Z = delta*N.log(y/alpha + N.sqrt((y/alpha)**2+1))
+    return Z, (1.0-zprob(Z))*2
+
+
+ def akurtosistest(a,dimension=None):
+    """
+Tests whether a dataset has normal kurtosis (i.e.,
+kurtosis=3(n-1)/(n+1)) Valid only for n>20.  Dimension can equal None
+(ravel array first), an integer (the dimension over which to operate),
+or a sequence (operate over multiple dimensions).
+
+Usage:   akurtosistest(a,dimension=None)
+Returns: z-score and 2-tail z-probability, returns 0 for bad pixels
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    n = float(a.shape[dimension])
+    if n<20:
+        print("akurtosistest only valid for n>=20 ... continuing anyway, n=",n)
+    b2 = akurtosis(a,dimension)
+    E = 3.0*(n-1) /(n+1)
+    varb2 = 24.0*n*(n-2)*(n-3) / ((n+1)*(n+1)*(n+3)*(n+5))
+    x = (b2-E)/N.sqrt(varb2)
+    sqrtbeta1 = 6.0*(n*n-5*n+2)/((n+7)*(n+9)) * N.sqrt((6.0*(n+3)*(n+5))/
+                                                       (n*(n-2)*(n-3)))
+    A = 6.0 + 8.0/sqrtbeta1 *(2.0/sqrtbeta1 + N.sqrt(1+4.0/(sqrtbeta1**2)))
+    term1 = 1 -2/(9.0*A)
+    denom = 1 +x*N.sqrt(2/(A-4.0))
+    denom = N.where(N.less(denom,0), 99, denom)
+    term2 = N.where(N.equal(denom,0), term1, N.power((1-2.0/A)/denom,1/3.0))
+    Z = ( term1 - term2 ) / N.sqrt(2/(9.0*A))
+    Z = N.where(N.equal(denom,99), 0, Z)
+    return Z, (1.0-zprob(Z))*2
+
+
+ def anormaltest(a,dimension=None):
+    """
+Tests whether skew and/OR kurtosis of dataset differs from normal
+curve.  Can operate over multiple dimensions.  Dimension can equal
+None (ravel array first), an integer (the dimension over which to
+operate), or a sequence (operate over multiple dimensions).
+
+Usage:   anormaltest(a,dimension=None)
+Returns: z-score and 2-tail probability
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    s,p = askewtest(a,dimension)
+    k,p = akurtosistest(a,dimension)
+    k2 = N.power(s,2) + N.power(k,2)
+    return k2, achisqprob(k2,2)
+
+
+#####################################
+######  AFREQUENCY FUNCTIONS  #######
+#####################################
+
+ def aitemfreq(a):
+    """
+Returns a 2D array of item frequencies.  Column 1 contains item values,
+column 2 contains their respective counts.  Assumes a 1D array is passed.
+@@@sorting OK?
+
+Usage:   aitemfreq(a)
+Returns: a 2D frequency table (col [0:n-1]=scores, col n=frequencies)
+"""
+    scores = pstat.aunique(a)
+    scores = N.sort(scores)
+    freq = N.zeros(len(scores))
+    for i in range(len(scores)):
+        freq[i] = N.add.reduce(N.equal(a,scores[i]))
+    return N.array(pstat.aabut(scores, freq))
+
+
+ def ascoreatpercentile (inarray, percent):
+    """
+Usage:   ascoreatpercentile(inarray,percent)   0<percent<100
+Returns: score at given percentile, relative to inarray distribution
+"""
+    percent = percent / 100.0
+    targetcf = percent*len(inarray)
+    h, lrl, binsize, extras = histogram(inarray)
+    cumhist = cumsum(h*1)
+    for i in range(len(cumhist)):
+        if cumhist[i] >= targetcf:
+            break
+    score = binsize * ((targetcf - cumhist[i-1]) / float(h[i])) + (lrl+binsize*i)
+    return score
+
+
+ def apercentileofscore (inarray,score,histbins=10,defaultlimits=None):
+    """
+Note: result of this function depends on the values used to histogram
+the data(!).
+
+Usage:   apercentileofscore(inarray,score,histbins=10,defaultlimits=None)
+Returns: percentile-position of score (0-100) relative to inarray
+"""
+    h, lrl, binsize, extras = histogram(inarray,histbins,defaultlimits)
+    cumhist = cumsum(h*1)
+    i = int((score - lrl)/float(binsize))
+    pct = (cumhist[i-1]+((score-(lrl+binsize*i))/float(binsize))*h[i])/float(len(inarray)) * 100
+    return pct
+
+
+ def ahistogram (inarray,numbins=10,defaultlimits=None,printextras=1):
+    """
+Returns (i) an array of histogram bin counts, (ii) the smallest value
+of the histogram binning, and (iii) the bin width (the last 2 are not
+necessarily integers).  Default number of bins is 10.  Defaultlimits
+can be None (the routine picks bins spanning all the numbers in the
+inarray) or a 2-sequence (lowerlimit, upperlimit).  Returns all of the
+following: array of bin values, lowerreallimit, binsize, extrapoints.
+
+Usage:   ahistogram(inarray,numbins=10,defaultlimits=None,printextras=1)
+Returns: (array of bin counts, bin-minimum, min-width, #-points-outside-range)
+"""
+    inarray = N.ravel(inarray)               # flatten any >1D arrays
+    if (defaultlimits != None):
+        lowerreallimit = defaultlimits[0]
+        upperreallimit = defaultlimits[1]
+        binsize = (upperreallimit-lowerreallimit) / float(numbins)
+    else:
+        Min = N.minimum.reduce(inarray)
+        Max = N.maximum.reduce(inarray)
+        estbinwidth = float(Max - Min)/float(numbins) + 1e-6
+        binsize = (Max-Min+estbinwidth)/float(numbins)
+        lowerreallimit = Min - binsize/2.0  #lower real limit,1st bin
+    bins = N.zeros(numbins)
+    extrapoints = 0
+    for num in inarray:
+        try:
+            if (num-lowerreallimit) < 0:
+                extrapoints = extrapoints + 1
+            else:
+                bintoincrement = int((num-lowerreallimit) / float(binsize))
+                bins[bintoincrement] = bins[bintoincrement] + 1
+        except:                           # point outside lower/upper limits
+            extrapoints = extrapoints + 1
+    if (extrapoints > 0 and printextras == 1):
+        print('\nPoints outside given histogram range =',extrapoints)
+    return (bins, lowerreallimit, binsize, extrapoints)
+
+
+ def acumfreq(a,numbins=10,defaultreallimits=None):
+    """
+Returns a cumulative frequency histogram, using the histogram function.
+Defaultreallimits can be None (use all data), or a 2-sequence containing
+lower and upper limits on values to include.
+
+Usage:   acumfreq(a,numbins=10,defaultreallimits=None)
+Returns: array of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h,l,b,e = histogram(a,numbins,defaultreallimits)
+    cumhist = cumsum(h*1)
+    return cumhist,l,b,e
+
+
+ def arelfreq(a,numbins=10,defaultreallimits=None):
+    """
+Returns a relative frequency histogram, using the histogram function.
+Defaultreallimits can be None (use all data), or a 2-sequence containing
+lower and upper limits on values to include.
+
+Usage:   arelfreq(a,numbins=10,defaultreallimits=None)
+Returns: array of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h,l,b,e = histogram(a,numbins,defaultreallimits)
+    h = N.array(h/float(a.shape[0]))
+    return h,l,b,e
+
+
+#####################################
+######  AVARIABILITY FUNCTIONS  #####
+#####################################
+
+ def aobrientransform(*args):
+    """
+Computes a transform on input data (any number of columns).  Used to
+test for homogeneity of variance prior to running one-way stats.  Each
+array in *args is one level of a factor.  If an F_oneway() run on the
+transformed data and found significant, variances are unequal.   From
+Maxwell and Delaney, p.112.
+
+Usage:   aobrientransform(*args)    *args = 1D arrays, one per level of factor
+Returns: transformed data for use in an ANOVA
+"""
+    TINY = 1e-10
+    k = len(args)
+    n = N.zeros(k,N.float_)
+    v = N.zeros(k,N.float_)
+    m = N.zeros(k,N.float_)
+    nargs = []
+    for i in range(k):
+        nargs.append(args[i].astype(N.float_))
+        n[i] = float(len(nargs[i]))
+        v[i] = var(nargs[i])
+        m[i] = mean(nargs[i])
+    for j in range(k):
+        for i in range(n[j]):
+            t1 = (n[j]-1.5)*n[j]*(nargs[j][i]-m[j])**2
+            t2 = 0.5*v[j]*(n[j]-1.0)
+            t3 = (n[j]-1.0)*(n[j]-2.0)
+            nargs[j][i] = (t1-t2) / float(t3)
+    check = 1
+    for j in range(k):
+        if v[j] - mean(nargs[j]) > TINY:
+            check = 0
+    if check != 1:
+        raise ValueError('Lack of convergence in obrientransform.')
+    else:
+        return N.array(nargs)
+
+
+ def asamplevar (inarray,dimension=None,keepdims=0):
+    """
+Returns the sample standard deviation of the values in the passed
+array (i.e., using N).  Dimension can equal None (ravel array first),
+an integer (the dimension over which to operate), or a sequence
+(operate over multiple dimensions).  Set keepdims=1 to return an array
+with the same number of dimensions as inarray.
+
+Usage:   asamplevar(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    if dimension == 1:
+        mn = amean(inarray,dimension)[:,N.NewAxis]
+    else:
+        mn = amean(inarray,dimension,keepdims=1)
+    deviations = inarray - mn
+    if type(dimension) == ListType:
+        n = 1
+        for d in dimension:
+            n = n*inarray.shape[d]
+    else:
+        n = inarray.shape[dimension]
+    svar = ass(deviations,dimension,keepdims) / float(n)
+    return svar
+
+
+ def asamplestdev (inarray, dimension=None, keepdims=0):
+    """
+Returns the sample standard deviation of the values in the passed
+array (i.e., using N).  Dimension can equal None (ravel array first),
+an integer (the dimension over which to operate), or a sequence
+(operate over multiple dimensions).  Set keepdims=1 to return an array
+with the same number of dimensions as inarray.
+
+Usage:   asamplestdev(inarray,dimension=None,keepdims=0)
+"""
+    return N.sqrt(asamplevar(inarray,dimension,keepdims))
+
+
+ def asignaltonoise(instack,dimension=0):
+    """
+Calculates signal-to-noise.  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   asignaltonoise(instack,dimension=0):
+Returns: array containing the value of (mean/stdev) along dimension,
+         or 0 when stdev=0
+"""
+    m = mean(instack,dimension)
+    sd = stdev(instack,dimension)
+    return N.where(sd==0,0,m/sd)
+
+
+ def acov (x,y, dimension=None,keepdims=0):
+    """
+Returns the estimated covariance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   acov(x,y,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+        x = N.ravel(x)
+        y = N.ravel(y)
+        dimension = 0
+    xmn = amean(x,dimension,1)  # keepdims
+    xdeviations = x - xmn
+    ymn = amean(y,dimension,1)  # keepdims
+    ydeviations = y - ymn
+    if type(dimension) == ListType:
+        n = 1
+        for d in dimension:
+            n = n*x.shape[d]
+    else:
+        n = x.shape[dimension]
+    covar = N.sum(xdeviations*ydeviations)/float(n-1)
+    return covar
+
+
+ def avar (inarray, dimension=None,keepdims=0):
+    """
+Returns the estimated population variance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   avar(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    mn = amean(inarray,dimension,1)
+    deviations = inarray - mn
+    if type(dimension) == ListType:
+        n = 1
+        for d in dimension:
+            n = n*inarray.shape[d]
+    else:
+        n = inarray.shape[dimension]
+    var = ass(deviations,dimension,keepdims)/float(n-1)
+    return var
+
+
+ def astdev (inarray, dimension=None, keepdims=0):
+    """
+Returns the estimated population standard deviation of the values in
+the passed array (i.e., N-1).  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).  Set keepdims=1 to return
+an array with the same number of dimensions as inarray.
+
+Usage:   astdev(inarray,dimension=None,keepdims=0)
+"""
+    return N.sqrt(avar(inarray,dimension,keepdims))
+
+
+ def asterr (inarray, dimension=None, keepdims=0):
+    """
+Returns the estimated population standard error of the values in the
+passed array (i.e., N-1).  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).  Set keepdims=1 to return
+an array with the same number of dimensions as inarray.
+
+Usage:   asterr(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    return astdev(inarray,dimension,keepdims) / float(N.sqrt(inarray.shape[dimension]))
+
+
+ def asem (inarray, dimension=None, keepdims=0):
+    """
+Returns the standard error of the mean (i.e., using N) of the values
+in the passed array.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   asem(inarray,dimension=None, keepdims=0)
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    if type(dimension) == ListType:
+        n = 1
+        for d in dimension:
+            n = n*inarray.shape[d]
+    else:
+        n = inarray.shape[dimension]
+    s = asamplestdev(inarray,dimension,keepdims) / N.sqrt(n-1)
+    return s
+
+
+ def az (a, score):
+    """
+Returns the z-score of a given input score, given thearray from which
+that score came.  Not appropriate for population calculations, nor for
+arrays > 1D.
+
+Usage:   az(a, score)
+"""
+    z = (score-amean(a)) / asamplestdev(a)
+    return z
+
+
+ def azs (a):
+    """
+Returns a 1D array of z-scores, one for each score in the passed array,
+computed relative to the passed array.
+
+Usage:   azs(a)
+"""
+    zscores = []
+    for item in a:
+        zscores.append(z(a,item))
+    return N.array(zscores)
+
+
+ def azmap (scores, compare, dimension=0):
+    """
+Returns an array of z-scores the shape of scores (e.g., [x,y]), compared to
+array passed to compare (e.g., [time,x,y]).  Assumes collapsing over dim 0
+of the compare array.
+
+Usage:   azs(scores, compare, dimension=0)
+"""
+    mns = amean(compare,dimension)
+    sstd = asamplestdev(compare,0)
+    return (scores - mns) / sstd
+
+
+#####################################
+#######  ATRIMMING FUNCTIONS  #######
+#####################################
+
+## deleted around() as it's in numpy now
+
+ def athreshold(a,threshmin=None,threshmax=None,newval=0):
+    """
+Like Numeric.clip() except that values <threshmid or >threshmax are replaced
+by newval instead of by threshmin/threshmax (respectively).
+
+Usage:   athreshold(a,threshmin=None,threshmax=None,newval=0)
+Returns: a, with values <threshmin or >threshmax replaced with newval
+"""
+    mask = N.zeros(a.shape)
+    if threshmin != None:
+        mask = mask + N.where(a<threshmin,1,0)
+    if threshmax != None:
+        mask = mask + N.where(a>threshmax,1,0)
+    mask = N.clip(mask,0,1)
+    return N.where(mask,newval,a)
+
+
+ def atrimboth (a,proportiontocut):
+    """
+Slices off the passed proportion of items from BOTH ends of the passed
+array (i.e., with proportiontocut=0.1, slices 'leftmost' 10% AND
+'rightmost' 10% of scores.  You must pre-sort the array if you want
+"proper" trimming.  Slices off LESS if proportion results in a
+non-integer slice index (i.e., conservatively slices off
+proportiontocut).
+
+Usage:   atrimboth (a,proportiontocut)
+Returns: trimmed version of array a
+"""
+    lowercut = int(proportiontocut*len(a))
+    uppercut = len(a) - lowercut
+    return a[lowercut:uppercut]
+
+
+ def atrim1 (a,proportiontocut,tail='right'):
+    """
+Slices off the passed proportion of items from ONE end of the passed
+array (i.e., if proportiontocut=0.1, slices off 'leftmost' or 'rightmost'
+10% of scores).  Slices off LESS if proportion results in a non-integer
+slice index (i.e., conservatively slices off proportiontocut).
+
+Usage:   atrim1(a,proportiontocut,tail='right')  or set tail='left'
+Returns: trimmed version of array a
+"""
+    if string.lower(tail) == 'right':
+        lowercut = 0
+        uppercut = len(a) - int(proportiontocut*len(a))
+    elif string.lower(tail) == 'left':
+        lowercut = int(proportiontocut*len(a))
+        uppercut = len(a)
+    return a[lowercut:uppercut]
+
+
+#####################################
+#####  ACORRELATION FUNCTIONS  ######
+#####################################
+
+ def acovariance(X):
+    """
+Computes the covariance matrix of a matrix X.  Requires a 2D matrix input.
+
+Usage:   acovariance(X)
+Returns: covariance matrix of X
+"""
+    if len(X.shape) != 2:
+        raise TypeError("acovariance requires 2D matrices")
+    n = X.shape[0]
+    mX = amean(X,0)
+    return N.dot(N.transpose(X),X) / float(n) - N.multiply.outer(mX,mX)
+
+
+ def acorrelation(X):
+    """
+Computes the correlation matrix of a matrix X.  Requires a 2D matrix input.
+
+Usage:   acorrelation(X)
+Returns: correlation matrix of X
+"""
+    C = acovariance(X)
+    V = N.diagonal(C)
+    return C / N.sqrt(N.multiply.outer(V,V))
+
+
+ def apaired(x,y):
+    """
+Interactively determines the type of data in x and y, and then runs the
+appropriated statistic for paired group data.
+
+Usage:   apaired(x,y)     x,y = the two arrays of values to be compared
+Returns: appropriate statistic name, value, and probability
+"""
+    samples = ''
+    while samples not in ['i','r','I','R','c','C']:
+        print('\nIndependent or related samples, or correlation (i,r,c): ', end=' ')
+        samples = input()
+
+    if samples in ['i','I','r','R']:
+        print('\nComparing variances ...', end=' ')
+# USE O'BRIEN'S TEST FOR HOMOGENEITY OF VARIANCE, Maxwell & delaney, p.112
+        r = obrientransform(x,y)
+        f,p = F_oneway(pstat.colex(r,0),pstat.colex(r,1))
+        if p<0.05:
+            vartype='unequal, p='+str(round(p,4))
+        else:
+            vartype='equal'
+        print(vartype)
+        if samples in ['i','I']:
+            if vartype[0]=='e':
+                t,p = ttest_ind(x,y,None,0)
+                print('\nIndependent samples t-test:  ', round(t,4),round(p,4))
+            else:
+                if len(x)>20 or len(y)>20:
+                    z,p = ranksums(x,y)
+                    print('\nRank Sums test (NONparametric, n>20):  ', round(z,4),round(p,4))
+                else:
+                    u,p = mannwhitneyu(x,y)
+                    print('\nMann-Whitney U-test (NONparametric, ns<20):  ', round(u,4),round(p,4))
+
+        else:  # RELATED SAMPLES
+            if vartype[0]=='e':
+                t,p = ttest_rel(x,y,0)
+                print('\nRelated samples t-test:  ', round(t,4),round(p,4))
+            else:
+                t,p = ranksums(x,y)
+                print('\nWilcoxon T-test (NONparametric):  ', round(t,4),round(p,4))
+    else:  # CORRELATION ANALYSIS
+        corrtype = ''
+        while corrtype not in ['c','C','r','R','d','D']:
+            print('\nIs the data Continuous, Ranked, or Dichotomous (c,r,d): ', end=' ')
+            corrtype = input()
+        if corrtype in ['c','C']:
+            m,b,r,p,see = linregress(x,y)
+            print('\nLinear regression for continuous variables ...')
+            lol = [['Slope','Intercept','r','Prob','SEestimate'],[round(m,4),round(b,4),round(r,4),round(p,4),round(see,4)]]
+            pstat.printcc(lol)
+        elif corrtype in ['r','R']:
+            r,p = spearmanr(x,y)
+            print('\nCorrelation for ranked variables ...')
+            print("Spearman's r: ",round(r,4),round(p,4))
+        else: # DICHOTOMOUS
+            r,p = pointbiserialr(x,y)
+            print('\nAssuming x contains a dichotomous variable ...')
+            print('Point Biserial r: ',round(r,4),round(p,4))
+    print('\n\n')
+    return None
+
+
+ def dices(x,y):
+    """
+Calculates Dice's coefficient ... (2*number of common terms)/(number of terms in x +
+number of terms in y). Returns a value between 0 (orthogonal) and 1.
+
+Usage:  dices(x,y)
+"""
+    import sets
+    x = sets.Set(x)
+    y = sets.Set(y)
+    common = len(x.intersection(y))
+    total = float(len(x) + len(y))
+    return 2*common/total
+
+
+ def icc(x,y=None,verbose=0):
+    """
+Calculates intraclass correlation coefficients using simple, Type I sums of squares.
+If only one variable is passed, assumed it's an Nx2 matrix
+
+Usage:   icc(x,y=None,verbose=0)
+Returns: icc rho, prob ####PROB IS A GUESS BASED ON PEARSON
+"""
+    TINY = 1.0e-20
+    if y:
+        all = N.concatenate([x,y],0)
+    else:
+        all = x+0
+        x = all[:,0]
+        y = all[:,1]
+    totalss = ass(all-mean(all))
+    pairmeans = (x+y)/2.
+    withinss = ass(x-pairmeans) + ass(y-pairmeans)
+    withindf = float(len(x))
+    betwdf = float(len(x)-1)
+    withinms = withinss / withindf
+    betweenms = (totalss-withinss) / betwdf
+    rho = (betweenms-withinms)/(withinms+betweenms)
+    t = rho*math.sqrt(betwdf/((1.0-rho+TINY)*(1.0+rho+TINY)))
+    prob = abetai(0.5*betwdf,0.5,betwdf/(betwdf+t*t),verbose)
+    return rho, prob
+
+
+ def alincc(x,y):
+    """
+Calculates Lin's concordance correlation coefficient.
+
+Usage:   alincc(x,y)    where x, y are equal-length arrays
+Returns: Lin's CC
+"""
+    x = N.ravel(x)
+    y = N.ravel(y)
+    covar = acov(x,y)*(len(x)-1)/float(len(x))  # correct denom to n
+    xvar = avar(x)*(len(x)-1)/float(len(x))  # correct denom to n
+    yvar = avar(y)*(len(y)-1)/float(len(y))  # correct denom to n
+    lincc = (2 * covar) / ((xvar+yvar) +((amean(x)-amean(y))**2))
+    return lincc
+
+
+ def apearsonr(x,y,verbose=1):
+    """
+Calculates a Pearson correlation coefficient and returns p.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (2nd), p.195.
+
+Usage:   apearsonr(x,y,verbose=1)      where x,y are equal length arrays
+Returns: Pearson's r, two-tailed p-value
+"""
+    TINY = 1.0e-20
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y)
+    r_num = n*(N.add.reduce(x*y)) - N.add.reduce(x)*N.add.reduce(y)
+    r_den = math.sqrt((n*ass(x) - asquare_of_sums(x))*(n*ass(y)-asquare_of_sums(y)))
+    r = (r_num / r_den)
+    df = n-2
+    t = r*math.sqrt(df/((1.0-r+TINY)*(1.0+r+TINY)))
+    prob = abetai(0.5*df,0.5,df/(df+t*t),verbose)
+    return r,prob
+
+
+ def aspearmanr(x,y):
+    """
+Calculates a Spearman rank-order correlation coefficient.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (1st), p.192.
+
+Usage:   aspearmanr(x,y)      where x,y are equal-length arrays
+Returns: Spearman's r, two-tailed p-value
+"""
+    TINY = 1e-30
+    n = len(x)
+    rankx = rankdata(x)
+    ranky = rankdata(y)
+    dsq = N.add.reduce((rankx-ranky)**2)
+    rs = 1 - 6*dsq / float(n*(n**2-1))
+    t = rs * math.sqrt((n-2) / ((rs+1.0)*(1.0-rs)))
+    df = n-2
+    probrs = abetai(0.5*df,0.5,df/(df+t*t))
+# probability values for rs are from part 2 of the spearman function in
+# Numerical Recipies, p.510.  They close to tables, but not exact.(?)
+    return rs, probrs
+
+
+ def apointbiserialr(x,y):
+    """
+Calculates a point-biserial correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (1st), p.194.
+
+Usage:   apointbiserialr(x,y)      where x,y are equal length arrays
+Returns: Point-biserial r, two-tailed p-value
+"""
+    TINY = 1e-30
+    categories = pstat.aunique(x)
+    data = pstat.aabut(x,y)
+    if len(categories) != 2:
+        raise ValueError("Exactly 2 categories required (in x) for pointbiserialr().")
+    else:   # there are 2 categories, continue
+        codemap = pstat.aabut(categories,N.arange(2))
+        recoded = pstat.arecode(data,codemap,0)
+        x = pstat.alinexand(data,0,categories[0])
+        y = pstat.alinexand(data,0,categories[1])
+        xmean = amean(pstat.acolex(x,1))
+        ymean = amean(pstat.acolex(y,1))
+        n = len(data)
+        adjust = math.sqrt((len(x)/float(n))*(len(y)/float(n)))
+        rpb = (ymean - xmean)/asamplestdev(pstat.acolex(data,1))*adjust
+        df = n-2
+        t = rpb*math.sqrt(df/((1.0-rpb+TINY)*(1.0+rpb+TINY)))
+        prob = abetai(0.5*df,0.5,df/(df+t*t))
+        return rpb, prob
+
+
+ def akendalltau(x,y):
+    """
+Calculates Kendall's tau ... correlation of ordinal data.  Adapted
+from function kendl1 in Numerical Recipies.  Needs good test-cases.@@@
+
+Usage:   akendalltau(x,y)
+Returns: Kendall's tau, two-tailed p-value
+"""
+    n1 = 0
+    n2 = 0
+    iss = 0
+    for j in range(len(x)-1):
+        for k in range(j,len(y)):
+            a1 = x[j] - x[k]
+            a2 = y[j] - y[k]
+            aa = a1 * a2
+            if (aa):             # neither array has a tie
+                n1 = n1 + 1
+                n2 = n2 + 1
+                if aa > 0:
+                    iss = iss + 1
+                else:
+                    iss = iss -1
+            else:
+                if (a1):
+                    n1 = n1 + 1
+                else:
+                    n2 = n2 + 1
+    tau = iss / math.sqrt(n1*n2)
+    svar = (4.0*len(x)+10.0) / (9.0*len(x)*(len(x)-1))
+    z = tau / math.sqrt(svar)
+    prob = erfcc(abs(z)/1.4142136)
+    return tau, prob
+
+
+ def alinregress(*args):
+    """
+Calculates a regression line on two arrays, x and y, corresponding to x,y
+pairs.  If a single 2D array is passed, alinregress finds dim with 2 levels
+and splits data into x,y pairs along that dim.
+
+Usage:   alinregress(*args)    args=2 equal-length arrays, or one 2D array
+Returns: slope, intercept, r, two-tailed prob, sterr-of-the-estimate, n
+"""
+    TINY = 1.0e-20
+    if len(args) == 1:  # more than 1D array?
+        args = args[0]
+        if len(args) == 2:
+            x = args[0]
+            y = args[1]
+        else:
+            x = args[:,0]
+            y = args[:,1]
+    else:
+        x = args[0]
+        y = args[1]
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y)
+    r_num = n*(N.add.reduce(x*y)) - N.add.reduce(x)*N.add.reduce(y)
+    r_den = math.sqrt((n*ass(x) - asquare_of_sums(x))*(n*ass(y)-asquare_of_sums(y)))
+    r = r_num / r_den
+    z = 0.5*math.log((1.0+r+TINY)/(1.0-r+TINY))
+    df = n-2
+    t = r*math.sqrt(df/((1.0-r+TINY)*(1.0+r+TINY)))
+    prob = abetai(0.5*df,0.5,df/(df+t*t))
+    slope = r_num / (float(n)*ass(x) - asquare_of_sums(x))
+    intercept = ymean - slope*xmean
+    sterrest = math.sqrt(1-r*r)*asamplestdev(y)
+    return slope, intercept, r, prob, sterrest, n
+
+ def amasslinregress(*args):
+    """
+Calculates a regression line on one 1D array (x) and one N-D array (y).
+
+Returns: slope, intercept, r, two-tailed prob, sterr-of-the-estimate, n
+"""
+    TINY = 1.0e-20
+    if len(args) == 1:  # more than 1D array?
+        args = args[0]
+        if len(args) == 2:
+            x = N.ravel(args[0])
+            y = args[1]
+        else:
+            x = N.ravel(args[:,0])
+            y = args[:,1]
+    else:
+        x = args[0]
+        y = args[1]
+    x = x.astype(N.float_)
+    y = y.astype(N.float_)
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y,0)
+    shp = N.ones(len(y.shape))
+    shp[0] = len(x)
+    x.shape = shp
+    print(x.shape, y.shape)
+    r_num = n*(N.add.reduce(x*y,0)) - N.add.reduce(x)*N.add.reduce(y,0)
+    r_den = N.sqrt((n*ass(x) - asquare_of_sums(x))*(n*ass(y,0)-asquare_of_sums(y,0)))
+    zerodivproblem = N.equal(r_den,0)
+    r_den = N.where(zerodivproblem,1,r_den)  # avoid zero-division in 1st place
+    r = r_num / r_den  # need to do this nicely for matrix division
+    r = N.where(zerodivproblem,0.0,r)
+    z = 0.5*N.log((1.0+r+TINY)/(1.0-r+TINY))
+    df = n-2
+    t = r*N.sqrt(df/((1.0-r+TINY)*(1.0+r+TINY)))
+    prob = abetai(0.5*df,0.5,df/(df+t*t))
+
+    ss = float(n)*ass(x)-asquare_of_sums(x)
+    s_den = N.where(ss==0,1,ss)  # avoid zero-division in 1st place
+    slope = r_num / s_den
+    intercept = ymean - slope*xmean
+    sterrest = N.sqrt(1-r*r)*asamplestdev(y,0)
+    return slope, intercept, r, prob, sterrest, n
+
+
+#####################################
+#####  AINFERENTIAL STATISTICS  #####
+#####################################
+
+ def attest_1samp(a,popmean,printit=0,name='Sample',writemode='a'):
+    """
+Calculates the t-obtained for the independent samples T-test on ONE group
+of scores a, given a population mean.  If printit=1, results are printed
+to the screen.  If printit='filename', the results are output to 'filename'
+using the given writemode (default=append).  Returns t-value, and prob.
+
+Usage:   attest_1samp(a,popmean,Name='Sample',printit=0,writemode='a')
+Returns: t-value, two-tailed prob
+"""
+    if type(a) != N.ndarray:
+        a = N.array(a)
+    x = amean(a)
+    v = avar(a)
+    n = len(a)
+    df = n-1
+    svar = ((n-1)*v) / float(df)
+    t = (x-popmean)/math.sqrt(svar*(1.0/n))
+    prob = abetai(0.5*df,0.5,df/(df+t*t))
+
+    if printit != 0:
+        statname = 'Single-sample T-test.'
+        outputpairedstats(printit,writemode,
+                          'Population','--',popmean,0,0,0,
+                          name,n,x,v,N.minimum.reduce(N.ravel(a)),
+                          N.maximum.reduce(N.ravel(a)),
+                          statname,t,prob)
+    return t,prob
+
+
+ def attest_ind (a, b, dimension=None, printit=0, name1='Samp1', name2='Samp2',writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO INDEPENDENT samples of scores
+a, and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Dimension
+can equal None (ravel array first), or an integer (the dimension over
+which to operate on a and b).
+
+Usage:   attest_ind (a,b,dimension=None,printit=0,
+                     Name1='Samp1',Name2='Samp2',writemode='a')
+Returns: t-value, two-tailed p-value
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        b = N.ravel(b)
+        dimension = 0
+    x1 = amean(a,dimension)
+    x2 = amean(b,dimension)
+    v1 = avar(a,dimension)
+    v2 = avar(b,dimension)
+    n1 = a.shape[dimension]
+    n2 = b.shape[dimension]
+    df = n1+n2-2
+    svar = ((n1-1)*v1+(n2-1)*v2) / float(df)
+    zerodivproblem = N.equal(svar,0)
+    svar = N.where(zerodivproblem,1,svar)  # avoid zero-division in 1st place
+    t = (x1-x2)/N.sqrt(svar*(1.0/n1 + 1.0/n2))  # N-D COMPUTATION HERE!!!!!!
+    t = N.where(zerodivproblem,1.0,t)     # replace NaN/wrong t-values with 1.0
+    probs = abetai(0.5*df,0.5,float(df)/(df+t*t))
+
+    if type(t) == N.ndarray:
+        probs = N.reshape(probs,t.shape)
+    if probs.shape == (1,):
+        probs = probs[0]
+
+    if printit != 0:
+        if type(t) == N.ndarray:
+            t = t[0]
+        if type(probs) == N.ndarray:
+            probs = probs[0]
+        statname = 'Independent samples T-test.'
+        outputpairedstats(printit,writemode,
+                          name1,n1,x1,v1,N.minimum.reduce(N.ravel(a)),
+                          N.maximum.reduce(N.ravel(a)),
+                          name2,n2,x2,v2,N.minimum.reduce(N.ravel(b)),
+                          N.maximum.reduce(N.ravel(b)),
+                          statname,t,probs)
+        return
+    return t, probs
+
+ def ap2t(pval,df):
+    """
+Tries to compute a t-value from a p-value (or pval array) and associated df.
+SLOW for large numbers of elements(!) as it re-computes p-values 20 times
+(smaller step-sizes) at which point it decides it's done. Keeps the signs
+of the input array. Returns 1000 (or -1000) if t>100.
+
+Usage:  ap2t(pval,df)
+Returns: an array of t-values with the shape of pval
+    """
+    pval = N.array(pval)
+    signs = N.sign(pval)
+    pval = abs(pval)
+    t = N.ones(pval.shape,N.float_)*50
+    step = N.ones(pval.shape,N.float_)*25
+    print("Initial ap2t() prob calc")
+    prob = abetai(0.5*df,0.5,float(df)/(df+t*t))
+    print('ap2t() iter: ', end=' ')
+    for i in range(10):
+        print(i,' ', end=' ')
+        t = N.where(pval<prob,t+step,t-step)
+        prob = abetai(0.5*df,0.5,float(df)/(df+t*t))
+        step = step/2
+    print()
+    # since this is an ugly hack, we get ugly boundaries
+    t = N.where(t>99.9,1000,t)      # hit upper-boundary
+    t = t+signs
+    return t #, prob, pval
+
+
+ def attest_rel (a,b,dimension=None,printit=0,name1='Samp1',name2='Samp2',writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO RELATED samples of scores, a
+and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Dimension
+can equal None (ravel array first), or an integer (the dimension over
+which to operate on a and b).
+
+Usage:   attest_rel(a,b,dimension=None,printit=0,
+                    name1='Samp1',name2='Samp2',writemode='a')
+Returns: t-value, two-tailed p-value
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        b = N.ravel(b)
+        dimension = 0
+    if len(a)!=len(b):
+        raise ValueError('Unequal length arrays.')
+    x1 = amean(a,dimension)
+    x2 = amean(b,dimension)
+    v1 = avar(a,dimension)
+    v2 = avar(b,dimension)
+    n = a.shape[dimension]
+    df = float(n-1)
+    d = (a-b).astype('d')
+
+    denom = N.sqrt((n*N.add.reduce(d*d,dimension) - N.add.reduce(d,dimension)**2) /df)
+    zerodivproblem = N.equal(denom,0)
+    denom = N.where(zerodivproblem,1,denom)  # avoid zero-division in 1st place
+    t = N.add.reduce(d,dimension) / denom      # N-D COMPUTATION HERE!!!!!!
+    t = N.where(zerodivproblem,1.0,t)     # replace NaN/wrong t-values with 1.0
+    probs = abetai(0.5*df,0.5,float(df)/(df+t*t))
+    if type(t) == N.ndarray:
+        probs = N.reshape(probs,t.shape)
+    if probs.shape == (1,):
+        probs = probs[0]
+
+    if printit != 0:
+        statname = 'Related samples T-test.'
+        outputpairedstats(printit,writemode,
+                          name1,n,x1,v1,N.minimum.reduce(N.ravel(a)),
+                          N.maximum.reduce(N.ravel(a)),
+                          name2,n,x2,v2,N.minimum.reduce(N.ravel(b)),
+                          N.maximum.reduce(N.ravel(b)),
+                          statname,t,probs)
+        return
+    return t, probs
+
+
+ def achisquare(f_obs,f_exp=None):
+    """
+Calculates a one-way chi square for array of observed frequencies and returns
+the result.  If no expected frequencies are given, the total N is assumed to
+be equally distributed across all groups.
+@@@NOT RIGHT??
+
+Usage:   achisquare(f_obs, f_exp=None)   f_obs = array of observed cell freq.
+Returns: chisquare-statistic, associated p-value
+"""
+
+    k = len(f_obs)
+    if f_exp == None:
+        f_exp = N.array([sum(f_obs)/float(k)] * len(f_obs),N.float_)
+    f_exp = f_exp.astype(N.float_)
+    chisq = N.add.reduce((f_obs-f_exp)**2 / f_exp)
+    return chisq, achisqprob(chisq, k-1)
+
+
+ def aks_2samp (data1,data2):
+    """
+Computes the Kolmogorov-Smirnof statistic on 2 samples.  Modified from
+Numerical Recipies in C, page 493.  Returns KS D-value, prob.  Not ufunc-
+like.
+
+Usage:   aks_2samp(data1,data2)  where data1 and data2 are 1D arrays
+Returns: KS D-value, p-value
+"""
+    j1 = 0    # N.zeros(data1.shape[1:]) TRIED TO MAKE THIS UFUNC-LIKE
+    j2 = 0    # N.zeros(data2.shape[1:])
+    fn1 = 0.0 # N.zeros(data1.shape[1:],N.float_)
+    fn2 = 0.0 # N.zeros(data2.shape[1:],N.float_)
+    n1 = data1.shape[0]
+    n2 = data2.shape[0]
+    en1 = n1*1
+    en2 = n2*1
+    d = N.zeros(data1.shape[1:],N.float_)
+    data1 = N.sort(data1,0)
+    data2 = N.sort(data2,0)
+    while j1 < n1 and j2 < n2:
+        d1=data1[j1]
+        d2=data2[j2]
+        if d1 <= d2:
+            fn1 = (j1)/float(en1)
+            j1 = j1 + 1
+        if d2 <= d1:
+            fn2 = (j2)/float(en2)
+            j2 = j2 + 1
+        dt = (fn2-fn1)
+        if abs(dt) > abs(d):
+            d = dt
+#    try:
+    en = math.sqrt(en1*en2/float(en1+en2))
+    prob = aksprob((en+0.12+0.11/en)*N.fabs(d))
+#    except:
+#        prob = 1.0
+    return d, prob
+
+
+ def amannwhitneyu(x,y):
+    """
+Calculates a Mann-Whitney U statistic on the provided scores and
+returns the result.  Use only when the n in each condition is < 20 and
+you have 2 independent samples of ranks.  REMEMBER: Mann-Whitney U is
+significant if the u-obtained is LESS THAN or equal to the critical
+value of U.
+
+Usage:   amannwhitneyu(x,y)     where x,y are arrays of values for 2 conditions
+Returns: u-statistic, one-tailed p-value (i.e., p(z(U)))
+"""
+    n1 = len(x)
+    n2 = len(y)
+    ranked = rankdata(N.concatenate((x,y)))
+    rankx = ranked[0:n1]       # get the x-ranks
+    ranky = ranked[n1:]        # the rest are y-ranks
+    u1 = n1*n2 + (n1*(n1+1))/2.0 - sum(rankx)  # calc U for x
+    u2 = n1*n2 - u1                            # remainder is U for y
+    bigu = max(u1,u2)
+    smallu = min(u1,u2)
+    T = math.sqrt(tiecorrect(ranked))  # correction factor for tied scores
+    if T == 0:
+        raise ValueError('All numbers are identical in amannwhitneyu')
+    sd = math.sqrt(T*n1*n2*(n1+n2+1)/12.0)
+    z = abs((bigu-n1*n2/2.0) / sd)  # normal approximation for prob calc
+    return smallu, 1.0 - azprob(z)
+
+
+ def atiecorrect(rankvals):
+    """
+Tie-corrector for ties in Mann Whitney U and Kruskal Wallis H tests.
+See Siegel, S. (1956) Nonparametric Statistics for the Behavioral
+Sciences.  New York: McGraw-Hill.  Code adapted from |Stat rankind.c
+code.
+
+Usage:   atiecorrect(rankvals)
+Returns: T correction factor for U or H
+"""
+    sorted,posn = ashellsort(N.array(rankvals))
+    n = len(sorted)
+    T = 0.0
+    i = 0
+    while (i<n-1):
+        if sorted[i] == sorted[i+1]:
+            nties = 1
+            while (i<n-1) and (sorted[i] == sorted[i+1]):
+                nties = nties +1
+                i = i +1
+            T = T + nties**3 - nties
+        i = i+1
+    T = T / float(n**3-n)
+    return 1.0 - T
+
+
+ def aranksums(x,y):
+    """
+Calculates the rank sums statistic on the provided scores and returns
+the result.
+
+Usage:   aranksums(x,y)     where x,y are arrays of values for 2 conditions
+Returns: z-statistic, two-tailed p-value
+"""
+    n1 = len(x)
+    n2 = len(y)
+    alldata = N.concatenate((x,y))
+    ranked = arankdata(alldata)
+    x = ranked[:n1]
+    y = ranked[n1:]
+    s = sum(x)
+    expected = n1*(n1+n2+1) / 2.0
+    z = (s - expected) / math.sqrt(n1*n2*(n1+n2+1)/12.0)
+    prob = 2*(1.0 - azprob(abs(z)))
+    return z, prob
+
+
+ def awilcoxont(x,y):
+    """
+Calculates the Wilcoxon T-test for related samples and returns the
+result.  A non-parametric T-test.
+
+Usage:   awilcoxont(x,y)     where x,y are equal-length arrays for 2 conditions
+Returns: t-statistic, two-tailed p-value
+"""
+    if len(x) != len(y):
+        raise ValueError('Unequal N in awilcoxont.  Aborting.')
+    d = x-y
+    d = N.compress(N.not_equal(d,0),d) # Keep all non-zero differences
+    count = len(d)
+    absd = abs(d)
+    absranked = arankdata(absd)
+    r_plus = 0.0
+    r_minus = 0.0
+    for i in range(len(absd)):
+        if d[i] < 0:
+            r_minus = r_minus + absranked[i]
+        else:
+            r_plus = r_plus + absranked[i]
+    wt = min(r_plus, r_minus)
+    mn = count * (count+1) * 0.25
+    se =  math.sqrt(count*(count+1)*(2.0*count+1.0)/24.0)
+    z = math.fabs(wt-mn) / se
+    z = math.fabs(wt-mn) / se
+    prob = 2*(1.0 -zprob(abs(z)))
+    return wt, prob
+
+
+ def akruskalwallish(*args):
+    """
+The Kruskal-Wallis H-test is a non-parametric ANOVA for 3 or more
+groups, requiring at least 5 subjects in each group.  This function
+calculates the Kruskal-Wallis H and associated p-value for 3 or more
+independent samples.
+
+Usage:   akruskalwallish(*args)     args are separate arrays for 3+ conditions
+Returns: H-statistic (corrected for ties), associated p-value
+"""
+    assert len(args) == 3, "Need at least 3 groups in stats.akruskalwallish()"
+    args = list(args)
+    n = [0]*len(args)
+    n = list(map(len,args))
+    all = []
+    for i in range(len(args)):
+        all = all + args[i].tolist()
+    ranked = rankdata(all)
+    T = tiecorrect(ranked)
+    for i in range(len(args)):
+        args[i] = ranked[0:n[i]]
+        del ranked[0:n[i]]
+    rsums = []
+    for i in range(len(args)):
+        rsums.append(sum(args[i])**2)
+        rsums[i] = rsums[i] / float(n[i])
+    ssbn = sum(rsums)
+    totaln = sum(n)
+    h = 12.0 / (totaln*(totaln+1)) * ssbn - 3*(totaln+1)
+    df = len(args) - 1
+    if T == 0:
+        raise ValueError('All numbers are identical in akruskalwallish')
+    h = h / float(T)
+    return h, chisqprob(h,df)
+
+
+ def afriedmanchisquare(*args):
+    """
+Friedman Chi-Square is a non-parametric, one-way within-subjects
+ANOVA.  This function calculates the Friedman Chi-square test for
+repeated measures and returns the result, along with the associated
+probability value.  It assumes 3 or more repeated measures.  Only 3
+levels requires a minimum of 10 subjects in the study.  Four levels
+requires 5 subjects per level(??).
+
+Usage:   afriedmanchisquare(*args)   args are separate arrays for 2+ conditions
+Returns: chi-square statistic, associated p-value
+"""
+    k = len(args)
+    if k < 3:
+        raise ValueError('\nLess than 3 levels.  Friedman test not appropriate.\n')
+    n = len(args[0])
+    data = pstat.aabut(*args)
+    data = data.astype(N.float_)
+    for i in range(len(data)):
+        data[i] = arankdata(data[i])
+    ssbn = asum(asum(args,1)**2)
+    chisq = 12.0 / (k*n*(k+1)) * ssbn - 3*n*(k+1)
+    return chisq, achisqprob(chisq,k-1)
+
+
+#####################################
+####  APROBABILITY CALCULATIONS  ####
+#####################################
+
+ def achisqprob(chisq,df):
+    """
+Returns the (1-tail) probability value associated with the provided chi-square
+value and df.  Heavily modified from chisq.c in Gary Perlman's |Stat.  Can
+handle multiple dimensions.
+
+Usage:   achisqprob(chisq,df)    chisq=chisquare stat., df=degrees of freedom
+"""
+    BIG = 200.0
+    def ex(x):
+        BIG = 200.0
+        exponents = N.where(N.less(x,-BIG),-BIG,x)
+        return N.exp(exponents)
+
+    if type(chisq) == N.ndarray:
+        arrayflag = 1
+    else:
+        arrayflag = 0
+        chisq = N.array([chisq])
+    if df < 1:
+        return N.ones(chisq.shape,N.float)
+    probs = N.zeros(chisq.shape,N.float_)
+    probs = N.where(N.less_equal(chisq,0),1.0,probs)  # set prob=1 for chisq<0
+    a = 0.5 * chisq
+    if df > 1:
+        y = ex(-a)
+    if df%2 == 0:
+        even = 1
+        s = y*1
+        s2 = s*1
+    else:
+        even = 0
+        s = 2.0 * azprob(-N.sqrt(chisq))
+        s2 = s*1
+    if (df > 2):
+        chisq = 0.5 * (df - 1.0)
+        if even:
+            z = N.ones(probs.shape,N.float_)
+        else:
+            z = 0.5 *N.ones(probs.shape,N.float_)
+        if even:
+            e = N.zeros(probs.shape,N.float_)
+        else:
+            e = N.log(N.sqrt(N.pi)) *N.ones(probs.shape,N.float_)
+        c = N.log(a)
+        mask = N.zeros(probs.shape)
+        a_big = N.greater(a,BIG)
+        a_big_frozen = -1 *N.ones(probs.shape,N.float_)
+        totalelements = N.multiply.reduce(N.array(probs.shape))
+        while asum(mask)!=totalelements:
+            e = N.log(z) + e
+            s = s + ex(c*z-a-e)
+            z = z + 1.0
+#            print z, e, s
+            newmask = N.greater(z,chisq)
+            a_big_frozen = N.where(newmask*N.equal(mask,0)*a_big, s, a_big_frozen)
+            mask = N.clip(newmask+mask,0,1)
+        if even:
+            z = N.ones(probs.shape,N.float_)
+            e = N.ones(probs.shape,N.float_)
+        else:
+            z = 0.5 *N.ones(probs.shape,N.float_)
+            e = 1.0 / N.sqrt(N.pi) / N.sqrt(a) * N.ones(probs.shape,N.float_)
+        c = 0.0
+        mask = N.zeros(probs.shape)
+        a_notbig_frozen = -1 *N.ones(probs.shape,N.float_)
+        while asum(mask)!=totalelements:
+            e = e * (a/z.astype(N.float_))
+            c = c + e
+            z = z + 1.0
+#            print '#2', z, e, c, s, c*y+s2
+            newmask = N.greater(z,chisq)
+            a_notbig_frozen = N.where(newmask*N.equal(mask,0)*(1-a_big),
+                                      c*y+s2, a_notbig_frozen)
+            mask = N.clip(newmask+mask,0,1)
+        probs = N.where(N.equal(probs,1),1,
+                        N.where(N.greater(a,BIG),a_big_frozen,a_notbig_frozen))
+        return probs
+    else:
+        return s
+
+
+ def aerfcc(x):
+    """
+Returns the complementary error function erfc(x) with fractional error
+everywhere less than 1.2e-7.  Adapted from Numerical Recipies.  Can
+handle multiple dimensions.
+
+Usage:   aerfcc(x)
+"""
+    z = abs(x)
+    t = 1.0 / (1.0+0.5*z)
+    ans = t * N.exp(-z*z-1.26551223 + t*(1.00002368+t*(0.37409196+t*(0.09678418+t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+t*(-0.82215223+t*0.17087277)))))))))
+    return N.where(N.greater_equal(x,0), ans, 2.0-ans)
+
+
+ def azprob(z):
+    """
+Returns the area under the normal curve 'to the left of' the given z value.
+Thus,
+    for z<0, zprob(z) = 1-tail probability
+    for z>0, 1.0-zprob(z) = 1-tail probability
+    for any z, 2.0*(1.0-zprob(abs(z))) = 2-tail probability
+Adapted from z.c in Gary Perlman's |Stat.  Can handle multiple dimensions.
+
+Usage:   azprob(z)    where z is a z-value
+"""
+    def yfunc(y):
+        x = (((((((((((((-0.000045255659 * y
+                         +0.000152529290) * y -0.000019538132) * y
+                       -0.000676904986) * y +0.001390604284) * y
+                     -0.000794620820) * y -0.002034254874) * y
+                   +0.006549791214) * y -0.010557625006) * y
+                 +0.011630447319) * y -0.009279453341) * y
+               +0.005353579108) * y -0.002141268741) * y
+             +0.000535310849) * y +0.999936657524
+        return x
+
+    def wfunc(w):
+        x = ((((((((0.000124818987 * w
+                    -0.001075204047) * w +0.005198775019) * w
+                  -0.019198292004) * w +0.059054035642) * w
+                -0.151968751364) * w +0.319152932694) * w
+              -0.531923007300) * w +0.797884560593) * N.sqrt(w) * 2.0
+        return x
+
+    Z_MAX = 6.0    # maximum meaningful z-value
+    x = N.zeros(z.shape,N.float_) # initialize
+    y = 0.5 * N.fabs(z)
+    x = N.where(N.less(y,1.0),wfunc(y*y),yfunc(y-2.0)) # get x's
+    x = N.where(N.greater(y,Z_MAX*0.5),1.0,x)          # kill those with big Z
+    prob = N.where(N.greater(z,0),(x+1)*0.5,(1-x)*0.5)
+    return prob
+
+
+ def aksprob(alam):
+     """
+Returns the probability value for a K-S statistic computed via ks_2samp.
+Adapted from Numerical Recipies.  Can handle multiple dimensions.
+
+Usage:   aksprob(alam)
+"""
+     if type(alam) == N.ndarray:
+         frozen = -1 *N.ones(alam.shape,N.float64)
+         alam = alam.astype(N.float64)
+         arrayflag = 1
+     else:
+         frozen = N.array(-1.)
+         alam = N.array(alam,N.float64)
+         arrayflag = 1
+     mask = N.zeros(alam.shape)
+     fac = 2.0 *N.ones(alam.shape,N.float_)
+     sum = N.zeros(alam.shape,N.float_)
+     termbf = N.zeros(alam.shape,N.float_)
+     a2 = N.array(-2.0*alam*alam,N.float64)
+     totalelements = N.multiply.reduce(N.array(mask.shape))
+     for j in range(1,201):
+         if asum(mask) == totalelements:
+             break
+         exponents = (a2*j*j)
+         overflowmask = N.less(exponents,-746)
+         frozen = N.where(overflowmask,0,frozen)
+         mask = mask+overflowmask
+         term = fac*N.exp(exponents)
+         sum = sum + term
+         newmask = N.where(N.less_equal(abs(term),(0.001*termbf)) +
+                           N.less(abs(term),1.0e-8*sum), 1, 0)
+         frozen = N.where(newmask*N.equal(mask,0), sum, frozen)
+         mask = N.clip(mask+newmask,0,1)
+         fac = -fac
+         termbf = abs(term)
+     if arrayflag:
+         return N.where(N.equal(frozen,-1), 1.0, frozen)  # 1.0 if doesn't converge
+     else:
+         return N.where(N.equal(frozen,-1), 1.0, frozen)[0]  # 1.0 if doesn't converge
+
+
+ def afprob (dfnum, dfden, F):
+    """
+Returns the 1-tailed significance level (p-value) of an F statistic
+given the degrees of freedom for the numerator (dfR-dfF) and the degrees
+of freedom for the denominator (dfF).  Can handle multiple dims for F.
+
+Usage:   afprob(dfnum, dfden, F)   where usually dfnum=dfbn, dfden=dfwn
+"""
+    if type(F) == N.ndarray:
+        return abetai(0.5*dfden, 0.5*dfnum, dfden/(1.0*dfden+dfnum*F))
+    else:
+        return abetai(0.5*dfden, 0.5*dfnum, dfden/float(dfden+dfnum*F))
+
+
+ def abetacf(a,b,x,verbose=1):
+    """
+Evaluates the continued fraction form of the incomplete Beta function,
+betai.  (Adapted from: Numerical Recipies in C.)  Can handle multiple
+dimensions for x.
+
+Usage:   abetacf(a,b,x,verbose=1)
+"""
+    ITMAX = 200
+    EPS = 3.0e-7
+
+    arrayflag = 1
+    if type(x) == N.ndarray:
+        frozen = N.ones(x.shape,N.float_) *-1  #start out w/ -1s, should replace all
+    else:
+        arrayflag = 0
+        frozen = N.array([-1])
+        x = N.array([x])
+    mask = N.zeros(x.shape)
+    bm = az = am = 1.0
+    qab = a+b
+    qap = a+1.0
+    qam = a-1.0
+    bz = 1.0-qab*x/qap
+    for i in range(ITMAX+1):
+        if N.sum(N.ravel(N.equal(frozen,-1)))==0:
+            break
+        em = float(i+1)
+        tem = em + em
+        d = em*(b-em)*x/((qam+tem)*(a+tem))
+        ap = az + d*am
+        bp = bz+d*bm
+        d = -(a+em)*(qab+em)*x/((qap+tem)*(a+tem))
+        app = ap+d*az
+        bpp = bp+d*bz
+        aold = az*1
+        am = ap/bpp
+        bm = bp/bpp
+        az = app/bpp
+        bz = 1.0
+        newmask = N.less(abs(az-aold),EPS*abs(az))
+        frozen = N.where(newmask*N.equal(mask,0), az, frozen)
+        mask = N.clip(mask+newmask,0,1)
+    noconverge = asum(N.equal(frozen,-1))
+    if noconverge != 0 and verbose:
+        print('a or b too big, or ITMAX too small in Betacf for ',noconverge,' elements')
+    if arrayflag:
+        return frozen
+    else:
+        return frozen[0]
+
+
+ def agammln(xx):
+    """
+Returns the gamma function of xx.
+    Gamma(z) = Integral(0,infinity) of t^(z-1)exp(-t) dt.
+Adapted from: Numerical Recipies in C.  Can handle multiple dims ... but
+probably doesn't normally have to.
+
+Usage:   agammln(xx)
+"""
+    coeff = [76.18009173, -86.50532033, 24.01409822, -1.231739516,
+             0.120858003e-2, -0.536382e-5]
+    x = xx - 1.0
+    tmp = x + 5.5
+    tmp = tmp - (x+0.5)*N.log(tmp)
+    ser = 1.0
+    for j in range(len(coeff)):
+        x = x + 1
+        ser = ser + coeff[j]/x
+    return -tmp + N.log(2.50662827465*ser)
+
+
+ def abetai(a,b,x,verbose=1):
+    """
+Returns the incomplete beta function:
+
+    I-sub-x(a,b) = 1/B(a,b)*(Integral(0,x) of t^(a-1)(1-t)^(b-1) dt)
+
+where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma
+function of a.  The continued fraction formulation is implemented
+here, using the betacf function.  (Adapted from: Numerical Recipies in
+C.)  Can handle multiple dimensions.
+
+Usage:   abetai(a,b,x,verbose=1)
+"""
+    TINY = 1e-15
+    if type(a) == N.ndarray:
+        if asum(N.less(x,0)+N.greater(x,1)) != 0:
+            raise ValueError('Bad x in abetai')
+    x = N.where(N.equal(x,0),TINY,x)
+    x = N.where(N.equal(x,1.0),1-TINY,x)
+
+    bt = N.where(N.equal(x,0)+N.equal(x,1), 0, -1)
+    exponents = ( gammln(a+b)-gammln(a)-gammln(b)+a*N.log(x)+b*
+                  N.log(1.0-x) )
+    # 746 (below) is the MAX POSSIBLE BEFORE OVERFLOW
+    exponents = N.where(N.less(exponents,-740),-740,exponents)
+    bt = N.exp(exponents)
+    if type(x) == N.ndarray:
+        ans = N.where(N.less(x,(a+1)/(a+b+2.0)),
+                      bt*abetacf(a,b,x,verbose)/float(a),
+                      1.0-bt*abetacf(b,a,1.0-x,verbose)/float(b))
+    else:
+        if x<(a+1)/(a+b+2.0):
+            ans = bt*abetacf(a,b,x,verbose)/float(a)
+        else:
+            ans = 1.0-bt*abetacf(b,a,1.0-x,verbose)/float(b)
+    return ans
+
+
+#####################################
+#######  AANOVA CALCULATIONS  #######
+#####################################
+
+ import LinearAlgebra, operator
+ LA = LinearAlgebra
+
+ def aglm(data,para):
+    """
+Calculates a linear model fit ... anova/ancova/lin-regress/t-test/etc. Taken
+from:
+    Peterson et al. Statistical limitations in functional neuroimaging
+    I. Non-inferential methods and statistical models.  Phil Trans Royal Soc
+    Lond B 354: 1239-1260.
+
+Usage:   aglm(data,para)
+Returns: statistic, p-value ???
+"""
+    if len(para) != len(data):
+        print("data and para must be same length in aglm")
+        return
+    n = len(para)
+    p = pstat.aunique(para)
+    x = N.zeros((n,len(p)))  # design matrix
+    for l in range(len(p)):
+        x[:,l] = N.equal(para,p[l])
+    b = N.dot(N.dot(LA.inv(N.dot(N.transpose(x),x)),  # i.e., b=inv(X'X)X'Y
+                    N.transpose(x)),
+              data)
+    diffs = (data - N.dot(x,b))
+    s_sq = 1./(n-len(p)) * N.dot(N.transpose(diffs), diffs)
+
+    if len(p) == 2:  # ttest_ind
+        c = N.array([1,-1])
+        df = n-2
+        fact = asum(1.0/asum(x,0))  # i.e., 1/n1 + 1/n2 + 1/n3 ...
+        t = N.dot(c,b) / N.sqrt(s_sq*fact)
+        probs = abetai(0.5*df,0.5,float(df)/(df+t*t))
+        return t, probs
+
+
+ def aF_oneway(*args):
+    """
+Performs a 1-way ANOVA, returning an F-value and probability given
+any number of groups.  From Heiman, pp.394-7.
+
+Usage:   aF_oneway (*args)    where *args is 2 or more arrays, one per
+                                  treatment group
+Returns: f-value, probability
+"""
+    na = len(args)            # ANOVA on 'na' groups, each in it's own array
+    means = [0]*na
+    vars = [0]*na
+    ns = [0]*na
+    alldata = []
+    tmp = list(map(N.array,args))
+    means = list(map(amean,tmp))
+    vars = list(map(avar,tmp))
+    ns = list(map(len,args))
+    alldata = N.concatenate(args)
+    bign = len(alldata)
+    sstot = ass(alldata)-(asquare_of_sums(alldata)/float(bign))
+    ssbn = 0
+    for a in args:
+        ssbn = ssbn + asquare_of_sums(N.array(a))/float(len(a))
+    ssbn = ssbn - (asquare_of_sums(alldata)/float(bign))
+    sswn = sstot-ssbn
+    dfbn = na-1
+    dfwn = bign - na
+    msb = ssbn/float(dfbn)
+    msw = sswn/float(dfwn)
+    f = msb/msw
+    prob = fprob(dfbn,dfwn,f)
+    return f, prob
+
+
+ def aF_value (ER,EF,dfR,dfF):
+    """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR = degrees of freedom the Restricted model
+        dfF = degrees of freedom associated with the Restricted model
+"""
+    return ((ER-EF)/float(dfR-dfF) / (EF/float(dfF)))
+
+
+ def outputfstats(Enum, Eden, dfnum, dfden, f, prob):
+     Enum = round(Enum,3)
+     Eden = round(Eden,3)
+     dfnum = round(Enum,3)
+     dfden = round(dfden,3)
+     f = round(f,3)
+     prob = round(prob,3)
+     suffix = ''                       # for *s after the p-value
+     if  prob < 0.001:  suffix = '  ***'
+     elif prob < 0.01:  suffix = '  **'
+     elif prob < 0.05:  suffix = '  *'
+     title = [['EF/ER','DF','Mean Square','F-value','prob','']]
+     lofl = title+[[Enum, dfnum, round(Enum/float(dfnum),3), f, prob, suffix],
+                   [Eden, dfden, round(Eden/float(dfden),3),'','','']]
+     pstat.printcc(lofl)
+     return
+
+
+ def F_value_multivariate(ER, EF, dfnum, dfden):
+     """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR = degrees of freedom the Restricted model
+        dfF = degrees of freedom associated with the Restricted model
+where ER and EF are matrices from a multivariate F calculation.
+"""
+     if type(ER) in [IntType, FloatType]:
+         ER = N.array([[ER]])
+     if type(EF) in [IntType, FloatType]:
+         EF = N.array([[EF]])
+     n_um = (LA.det(ER) - LA.det(EF)) / float(dfnum)
+     d_en = LA.det(EF) / float(dfden)
+     return n_um / d_en
+
+
+#####################################
+#######  ASUPPORT FUNCTIONS  ########
+#####################################
+
+ def asign(a):
+    """
+Usage:   asign(a)
+Returns: array shape of a, with -1 where a<0 and +1 where a>=0
+"""
+    a = N.asarray(a)
+    if ((type(a) == type(1.4)) or (type(a) == type(1))):
+        return a-a-N.less(a,0)+N.greater(a,0)
+    else:
+        return N.zeros(N.shape(a))-N.less(a,0)+N.greater(a,0)
+
+
+ def asum (a, dimension=None,keepdims=0):
+     """
+An alternative to the Numeric.add.reduce function, which allows one to
+(1) collapse over multiple dimensions at once, and/or (2) to retain
+all dimensions in the original array (squashing one down to size.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  If keepdims=1, the resulting array will have as many
+dimensions as the input array.
+
+Usage:   asum(a, dimension=None, keepdims=0)
+Returns: array summed along 'dimension'(s), same _number_ of dims if keepdims=1
+"""
+     if type(a) == N.ndarray and a.dtype in [N.int_, N.short, N.ubyte]:
+         a = a.astype(N.float_)
+     if dimension == None:
+         s = N.sum(N.ravel(a))
+     elif type(dimension) in [IntType,FloatType]:
+         s = N.add.reduce(a, dimension)
+         if keepdims == 1:
+             shp = list(a.shape)
+             shp[dimension] = 1
+             s = N.reshape(s,shp)
+     else: # must be a SEQUENCE of dims to sum over
+        dims = list(dimension)
+        dims.sort()
+        dims.reverse()
+        s = a *1.0
+        for dim in dims:
+            s = N.add.reduce(s,dim)
+        if keepdims == 1:
+            shp = list(a.shape)
+            for dim in dims:
+                shp[dim] = 1
+            s = N.reshape(s,shp)
+     return s
+
+
+ def acumsum (a,dimension=None):
+    """
+Returns an array consisting of the cumulative sum of the items in the
+passed array.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions, but this last one just barely makes sense).
+
+Usage:   acumsum(a,dimension=None)
+"""
+    if dimension == None:
+        a = N.ravel(a)
+        dimension = 0
+    if type(dimension) in [ListType, TupleType, N.ndarray]:
+        dimension = list(dimension)
+        dimension.sort()
+        dimension.reverse()
+        for d in dimension:
+            a = N.add.accumulate(a,d)
+        return a
+    else:
+        return N.add.accumulate(a,dimension)
+
+
+ def ass(inarray, dimension=None, keepdims=0):
+    """
+Squares each value in the passed array, adds these squares & returns
+the result.  Unfortunate function name. :-) Defaults to ALL values in
+the array.  Dimension can equal None (ravel array first), an integer
+(the dimension over which to operate), or a sequence (operate over
+multiple dimensions).  Set keepdims=1 to maintain the original number
+of dimensions.
+
+Usage:   ass(inarray, dimension=None, keepdims=0)
+Returns: sum-along-'dimension' for (inarray*inarray)
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    return asum(inarray*inarray,dimension,keepdims)
+
+
+ def asummult (array1,array2,dimension=None,keepdims=0):
+    """
+Multiplies elements in array1 and array2, element by element, and
+returns the sum (along 'dimension') of all resulting multiplications.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  A trivial function, but included for completeness.
+
+Usage:   asummult(array1,array2,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+        array1 = N.ravel(array1)
+        array2 = N.ravel(array2)
+        dimension = 0
+    return asum(array1*array2,dimension,keepdims)
+
+
+ def asquare_of_sums(inarray, dimension=None, keepdims=0):
+    """
+Adds the values in the passed array, squares that sum, and returns the
+result.  Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  If keepdims=1, the returned array will have the same
+NUMBER of dimensions as the original.
+
+Usage:   asquare_of_sums(inarray, dimension=None, keepdims=0)
+Returns: the square of the sum over dim(s) in dimension
+"""
+    if dimension == None:
+        inarray = N.ravel(inarray)
+        dimension = 0
+    s = asum(inarray,dimension,keepdims)
+    if type(s) == N.ndarray:
+        return s.astype(N.float_)*s
+    else:
+        return float(s)*s
+
+
+ def asumdiffsquared(a,b, dimension=None, keepdims=0):
+    """
+Takes pairwise differences of the values in arrays a and b, squares
+these differences, and returns the sum of these squares.  Dimension
+can equal None (ravel array first), an integer (the dimension over
+which to operate), or a sequence (operate over multiple dimensions).
+keepdims=1 means the return shape = len(a.shape) = len(b.shape)
+
+Usage:   asumdiffsquared(a,b)
+Returns: sum[ravel(a-b)**2]
+"""
+    if dimension == None:
+        inarray = N.ravel(a)
+        dimension = 0
+    return asum((a-b)**2,dimension,keepdims)
+
+
+ def ashellsort(inarray):
+    """
+Shellsort algorithm.  Sorts a 1D-array.
+
+Usage:   ashellsort(inarray)
+Returns: sorted-inarray, sorting-index-vector (for original array)
+"""
+    n = len(inarray)
+    svec = inarray *1.0
+    ivec = list(range(n))
+    gap = n/2   # integer division needed
+    while gap >0:
+        for i in range(gap,n):
+            for j in range(i-gap,-1,-gap):
+                while j>=0 and svec[j]>svec[j+gap]:
+                    temp        = svec[j]
+                    svec[j]     = svec[j+gap]
+                    svec[j+gap] = temp
+                    itemp       = ivec[j]
+                    ivec[j]     = ivec[j+gap]
+                    ivec[j+gap] = itemp
+        gap = gap / 2  # integer division needed
+#    svec is now sorted input vector, ivec has the order svec[i] = vec[ivec[i]]
+    return svec, ivec
+
+
+ def arankdata(inarray):
+    """
+Ranks the data in inarray, dealing with ties appropritely.  Assumes
+a 1D inarray.  Adapted from Gary Perlman's |Stat ranksort.
+
+Usage:   arankdata(inarray)
+Returns: array of length equal to inarray, containing rank scores
+"""
+    n = len(inarray)
+    svec, ivec = ashellsort(inarray)
+    sumranks = 0
+    dupcount = 0
+    newarray = N.zeros(n,N.float_)
+    for i in range(n):
+        sumranks = sumranks + i
+        dupcount = dupcount + 1
+        if i==n-1 or svec[i] != svec[i+1]:
+            averank = sumranks / float(dupcount) + 1
+            for j in range(i-dupcount+1,i+1):
+                newarray[ivec[j]] = averank
+            sumranks = 0
+            dupcount = 0
+    return newarray
+
+
+ def afindwithin(data):
+    """
+Returns a binary vector, 1=within-subject factor, 0=between.  Input
+equals the entire data array (i.e., column 1=random factor, last
+column = measured values.
+
+Usage:   afindwithin(data)     data in |Stat format
+"""
+    numfact = len(data[0])-2
+    withinvec = [0]*numfact
+    for col in range(1,numfact+1):
+        rows = pstat.linexand(data,col,pstat.unique(pstat.colex(data,1))[0])  # get 1 level of this factor
+        if len(pstat.unique(pstat.colex(rows,0))) < len(rows):   # if fewer subjects than scores on this factor
+            withinvec[col-1] = 1
+    return withinvec
+
+
+ #########################################################
+ #########################################################
+ ######  RE-DEFINE DISPATCHES TO INCLUDE ARRAYS  #########
+ #########################################################
+ #########################################################
+
+## CENTRAL TENDENCY:
+ geometricmean = Dispatch ( (lgeometricmean, (ListType, TupleType)),
+                            (ageometricmean, (N.ndarray,)) )
+ harmonicmean = Dispatch ( (lharmonicmean, (ListType, TupleType)),
+                           (aharmonicmean, (N.ndarray,)) )
+ mean = Dispatch ( (lmean, (ListType, TupleType)),
+                   (amean, (N.ndarray,)) )
+ median = Dispatch ( (lmedian, (ListType, TupleType)),
+                     (amedian, (N.ndarray,)) )
+ medianscore = Dispatch ( (lmedianscore, (ListType, TupleType)),
+                          (amedianscore, (N.ndarray,)) )
+ mode = Dispatch ( (lmode, (ListType, TupleType)),
+                   (amode, (N.ndarray,)) )
+ tmean = Dispatch ( (atmean, (N.ndarray,)) )
+ tvar = Dispatch ( (atvar, (N.ndarray,)) )
+ tstdev = Dispatch ( (atstdev, (N.ndarray,)) )
+ tsem = Dispatch ( (atsem, (N.ndarray,)) )
+
+## VARIATION:
+ moment = Dispatch ( (lmoment, (ListType, TupleType)),
+                     (amoment, (N.ndarray,)) )
+ variation = Dispatch ( (lvariation, (ListType, TupleType)),
+                        (avariation, (N.ndarray,)) )
+ skew = Dispatch ( (lskew, (ListType, TupleType)),
+                   (askew, (N.ndarray,)) )
+ kurtosis = Dispatch ( (lkurtosis, (ListType, TupleType)),
+                       (akurtosis, (N.ndarray,)) )
+ describe = Dispatch ( (ldescribe, (ListType, TupleType)),
+                       (adescribe, (N.ndarray,)) )
+
+## DISTRIBUTION TESTS
+
+ skewtest = Dispatch ( (askewtest, (ListType, TupleType)),
+                       (askewtest, (N.ndarray,)) )
+ kurtosistest = Dispatch ( (akurtosistest, (ListType, TupleType)),
+                           (akurtosistest, (N.ndarray,)) )
+ normaltest = Dispatch ( (anormaltest, (ListType, TupleType)),
+                         (anormaltest, (N.ndarray,)) )
+
+## FREQUENCY STATS:
+ itemfreq = Dispatch ( (litemfreq, (ListType, TupleType)),
+                       (aitemfreq, (N.ndarray,)) )
+ scoreatpercentile = Dispatch ( (lscoreatpercentile, (ListType, TupleType)),
+                                (ascoreatpercentile, (N.ndarray,)) )
+ percentileofscore = Dispatch ( (lpercentileofscore, (ListType, TupleType)),
+                                 (apercentileofscore, (N.ndarray,)) )
+ histogram = Dispatch ( (lhistogram, (ListType, TupleType)),
+                        (ahistogram, (N.ndarray,)) )
+ cumfreq = Dispatch ( (lcumfreq, (ListType, TupleType)),
+                      (acumfreq, (N.ndarray,)) )
+ relfreq = Dispatch ( (lrelfreq, (ListType, TupleType)),
+                      (arelfreq, (N.ndarray,)) )
+
+## VARIABILITY:
+ obrientransform = Dispatch ( (lobrientransform, (ListType, TupleType)),
+                              (aobrientransform, (N.ndarray,)) )
+ samplevar = Dispatch ( (lsamplevar, (ListType, TupleType)),
+                        (asamplevar, (N.ndarray,)) )
+ samplestdev = Dispatch ( (lsamplestdev, (ListType, TupleType)),
+                          (asamplestdev, (N.ndarray,)) )
+ signaltonoise = Dispatch( (asignaltonoise, (N.ndarray,)),)
+ var = Dispatch ( (lvar, (ListType, TupleType)),
+                  (avar, (N.ndarray,)) )
+ stdev = Dispatch ( (lstdev, (ListType, TupleType)),
+                    (astdev, (N.ndarray,)) )
+ sterr = Dispatch ( (lsterr, (ListType, TupleType)),
+                    (asterr, (N.ndarray,)) )
+ sem = Dispatch ( (lsem, (ListType, TupleType)),
+                  (asem, (N.ndarray,)) )
+ z = Dispatch ( (lz, (ListType, TupleType)),
+                (az, (N.ndarray,)) )
+ zs = Dispatch ( (lzs, (ListType, TupleType)),
+                 (azs, (N.ndarray,)) )
+
+## TRIMMING FCNS:
+ threshold = Dispatch( (athreshold, (N.ndarray,)),)
+ trimboth = Dispatch ( (ltrimboth, (ListType, TupleType)),
+                       (atrimboth, (N.ndarray,)) )
+ trim1 = Dispatch ( (ltrim1, (ListType, TupleType)),
+                    (atrim1, (N.ndarray,)) )
+
+## CORRELATION FCNS:
+ paired = Dispatch ( (lpaired, (ListType, TupleType)),
+                     (apaired, (N.ndarray,)) )
+ lincc = Dispatch ( (llincc, (ListType, TupleType)),
+                       (alincc, (N.ndarray,)) )
+ pearsonr = Dispatch ( (lpearsonr, (ListType, TupleType)),
+                       (apearsonr, (N.ndarray,)) )
+ spearmanr = Dispatch ( (lspearmanr, (ListType, TupleType)),
+                        (aspearmanr, (N.ndarray,)) )
+ pointbiserialr = Dispatch ( (lpointbiserialr, (ListType, TupleType)),
+                             (apointbiserialr, (N.ndarray,)) )
+ kendalltau = Dispatch ( (lkendalltau, (ListType, TupleType)),
+                         (akendalltau, (N.ndarray,)) )
+ linregress = Dispatch ( (llinregress, (ListType, TupleType)),
+                         (alinregress, (N.ndarray,)) )
+
+## INFERENTIAL STATS:
+ ttest_1samp = Dispatch ( (lttest_1samp, (ListType, TupleType)),
+                          (attest_1samp, (N.ndarray,)) )
+ ttest_ind = Dispatch ( (lttest_ind, (ListType, TupleType)),
+                        (attest_ind, (N.ndarray,)) )
+ ttest_rel = Dispatch ( (lttest_rel, (ListType, TupleType)),
+                        (attest_rel, (N.ndarray,)) )
+ chisquare = Dispatch ( (lchisquare, (ListType, TupleType)),
+                        (achisquare, (N.ndarray,)) )
+ ks_2samp = Dispatch ( (lks_2samp, (ListType, TupleType)),
+                       (aks_2samp, (N.ndarray,)) )
+ mannwhitneyu = Dispatch ( (lmannwhitneyu, (ListType, TupleType)),
+                           (amannwhitneyu, (N.ndarray,)) )
+ tiecorrect = Dispatch ( (ltiecorrect, (ListType, TupleType)),
+                         (atiecorrect, (N.ndarray,)) )
+ ranksums = Dispatch ( (lranksums, (ListType, TupleType)),
+                       (aranksums, (N.ndarray,)) )
+ wilcoxont = Dispatch ( (lwilcoxont, (ListType, TupleType)),
+                        (awilcoxont, (N.ndarray,)) )
+ kruskalwallish = Dispatch ( (lkruskalwallish, (ListType, TupleType)),
+                             (akruskalwallish, (N.ndarray,)) )
+ friedmanchisquare = Dispatch ( (lfriedmanchisquare, (ListType, TupleType)),
+                                (afriedmanchisquare, (N.ndarray,)) )
+
+## PROBABILITY CALCS:
+ chisqprob = Dispatch ( (lchisqprob, (IntType, FloatType)),
+                        (achisqprob, (N.ndarray,)) )
+ zprob = Dispatch ( (lzprob, (IntType, FloatType)),
+                    (azprob, (N.ndarray,)) )
+ ksprob = Dispatch ( (lksprob, (IntType, FloatType)),
+                     (aksprob, (N.ndarray,)) )
+ fprob = Dispatch ( (lfprob, (IntType, FloatType)),
+                    (afprob, (N.ndarray,)) )
+ betacf = Dispatch ( (lbetacf, (IntType, FloatType)),
+                     (abetacf, (N.ndarray,)) )
+ betai = Dispatch ( (lbetai, (IntType, FloatType)),
+                    (abetai, (N.ndarray,)) )
+ erfcc = Dispatch ( (lerfcc, (IntType, FloatType)),
+                    (aerfcc, (N.ndarray,)) )
+ gammln = Dispatch ( (lgammln, (IntType, FloatType)),
+                     (agammln, (N.ndarray,)) )
+
+## ANOVA FUNCTIONS:
+ F_oneway = Dispatch ( (lF_oneway, (ListType, TupleType)),
+                       (aF_oneway, (N.ndarray,)) )
+ F_value = Dispatch ( (lF_value, (ListType, TupleType)),
+                      (aF_value, (N.ndarray,)) )
+
+## SUPPORT FUNCTIONS:
+ incr = Dispatch ( (lincr, (ListType, TupleType, N.ndarray)), )
+ sum = Dispatch ( (lsum, (ListType, TupleType)),
+                  (asum, (N.ndarray,)) )
+ cumsum = Dispatch ( (lcumsum, (ListType, TupleType)),
+                     (acumsum, (N.ndarray,)) )
+ ss = Dispatch ( (lss, (ListType, TupleType)),
+                 (ass, (N.ndarray,)) )
+ summult = Dispatch ( (lsummult, (ListType, TupleType)),
+                      (asummult, (N.ndarray,)) )
+ square_of_sums = Dispatch ( (lsquare_of_sums, (ListType, TupleType)),
+                             (asquare_of_sums, (N.ndarray,)) )
+ sumdiffsquared = Dispatch ( (lsumdiffsquared, (ListType, TupleType)),
+                             (asumdiffsquared, (N.ndarray,)) )
+ shellsort = Dispatch ( (lshellsort, (ListType, TupleType)),
+                        (ashellsort, (N.ndarray,)) )
+ rankdata = Dispatch ( (lrankdata, (ListType, TupleType)),
+                       (arankdata, (N.ndarray,)) )
+ findwithin = Dispatch ( (lfindwithin, (ListType, TupleType)),
+                         (afindwithin, (N.ndarray,)) )
+
+######################  END OF NUMERIC FUNCTION BLOCK  #####################
+
+######################  END OF STATISTICAL FUNCTIONS  ######################
+
+except ImportError:
+ pass
diff --git a/ete3/coretype/__init__.py b/ete3/coretype/__init__.py
new file mode 100644
index 0000000..23e073c
--- /dev/null
+++ b/ete3/coretype/__init__.py
@@ -0,0 +1,39 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
diff --git a/ete3/coretype/arraytable.py b/ete3/coretype/arraytable.py
new file mode 100644
index 0000000..855ee61
--- /dev/null
+++ b/ete3/coretype/arraytable.py
@@ -0,0 +1,266 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+import sys
+import re
+import math
+from os import path
+
+from .. import numpy
+from ..parser.text_arraytable import write_arraytable, read_arraytable
+import six
+from six.moves import range
+
+__all__ = ["ArrayTable"]
+
+class ArrayTable(object):
+    """This object is thought to work with matrix datasets (like
+    microarrays). It allows to load the matrix an access easily to row
+    and column vectors. """
+
+    def __repr__(self):
+        return "ArrayTable (%s)" %hex(self.__hash__())
+
+    def __str__(self):
+        return str(self.matrix)
+
+    def __init__(self, matrix_file=None, mtype="float"):
+        self.colNames  = []
+        self.rowNames  = []
+        self.colValues = {}
+        self.rowValues = {}
+        self.matrix   = None
+        self.mtype = None
+
+        # If matrix file is supplied
+        if matrix_file is not None:
+            read_arraytable(matrix_file, \
+                            mtype=mtype, \
+                            arraytable_object = self)
+
+    def get_row_vector(self,rowname):
+        """ Returns the vector associated to the given row name """
+        return self.rowValues.get(rowname,None)
+
+
+    def get_column_vector(self,colname):
+        """ Returns the vector associated to the given column name """
+        return self.colValues.get(colname,None)
+
+
+    def get_several_column_vectors(self,colnames):
+        """ Returns a list of vectors associated to several column names """
+        vectors = [self.colValues[cname] for cname in colnames]
+        return numpy.array(vectors)
+
+    def get_several_row_vectors(self,rownames):
+        """ Returns a list vectors associated to several row names """
+        vectors = [self.rowValues[rname] for rname in rownames]
+        return numpy.array(vectors)
+
+    def remove_column(self,colname):
+        """Removes the given column form the current dataset """
+        col_value = self.colValues.pop(colname, None)
+        if col_value != None:
+            new_indexes = list(range(len(self.colNames)))
+            index = self.colNames.index(colname)
+            self.colNames.pop(index)
+            new_indexes.pop(index)
+            newmatrix = self.matrix.swapaxes(0,1)
+            newmatrix = newmatrix[new_indexes].swapaxes(0,1)
+            self._link_names2matrix(newmatrix)
+
+    def merge_columns(self, groups, grouping_criterion):
+        """ Returns a new ArrayTable object in which columns are
+        merged according to a given criterion.
+
+        'groups' argument must be a dictionary in which keys are the
+        new column names, and each value is the list of current
+        column names to be merged.
+
+        'grouping_criterion' must be 'min', 'max' or 'mean', and
+        defines how numeric values will be merged.
+
+        Example:
+           my_groups = {'NewColumn':['column5', 'column6']}
+           new_Array = Array.merge_columns(my_groups, 'max')
+
+        """
+
+        if grouping_criterion == "max":
+            grouping_f = get_max_vector
+        elif grouping_criterion == "min":
+            grouping_f = get_min_vector
+        elif grouping_criterion == "mean":
+            grouping_f = get_mean_vector
+        else:
+            raise ValueError("grouping_criterion not supported. Use max|min|mean ")
+
+        grouped_array = self.__class__()
+        grouped_matrix = []
+        colNames = []
+        alltnames = set([])
+        for gname,tnames in six.iteritems(groups):
+            all_vectors=[]
+            for tn in tnames:
+                if tn not in self.colValues:
+                    raise ValueError(str(tn)+" column not found.")
+                if tn in alltnames:
+                    raise ValueError(str(tn)+" duplicated column name for merging")
+                alltnames.add(tn)
+                vector = self.get_column_vector(tn).astype(float)
+                all_vectors.append(vector)
+            # Store the group vector = max expression of all items in group
+            grouped_matrix.append(grouping_f(all_vectors))
+            # store group name
+            colNames.append(gname)
+
+        for cname in self.colNames:
+            if cname not in alltnames:
+                grouped_matrix.append(self.get_column_vector(cname))
+                colNames.append(cname)
+
+        grouped_array.rowNames= self.rowNames
+        grouped_array.colNames= colNames
+        vmatrix = numpy.array(grouped_matrix).transpose()
+        grouped_array._link_names2matrix(vmatrix)
+        return grouped_array
+
+    def transpose(self):
+        """ Returns a new ArrayTable in which current matrix is transposed. """
+
+        transposedA = self.__class__()
+        transposedM = self.matrix.transpose()
+        transposedA.colNames = list(self.rowNames)
+        transposedA.rowNames = list(self.colNames)
+        transposedA._link_names2matrix(transposedM)
+
+        # Check that everything is ok
+        # for n in self.colNames:
+        #     print self.get_column_vector(n) ==  transposedA.get_row_vector(n)
+        # for n in self.rowNames:
+        #     print self.get_row_vector(n) ==  transposedA.get_column_vector(n)
+        return transposedA
+
+    def _link_names2matrix(self, m):
+        """ Synchronize curent column and row names to the given matrix"""
+        if len(self.rowNames) != m.shape[0]:
+            raise ValueError("Expecting matrix with  %d rows" % m.size[0])
+
+        if len(self.colNames) != m.shape[1]:
+            raise ValueError("Expecting matrix with  %d columns" % m.size[1])
+
+        self.matrix = m
+        self.colValues.clear()
+        self.rowValues.clear()
+        # link columns names to vectors
+        i = 0
+        for colname in self.colNames:
+            self.colValues[colname] = self.matrix[:,i]
+            i+=1
+        # link row names to vectors
+        i = 0
+        for rowname in self.rowNames:
+            self.rowValues[rowname] = self.matrix[i,:]
+            i+=1
+
+    def write(self, fname, colnames=None):
+        write_arraytable(self, fname, colnames=colnames)
+
+
+
+def get_centroid_dist(vcenter,vlist,fdist):
+    d = 0.0
+    for v in vlist:
+        d += fdist(v,vcenter)
+    return 2*(d / len(vlist))
+
+def get_average_centroid_linkage_dist(vcenter1,vlist1,vcenter2,vlist2,fdist):
+    d1,d2 = 0.0, 0.0
+    for v in vlist1:
+        d1 += fdist(v,vcenter2)
+    for v in vlist2:
+        d2 += fdist(v,vcenter1)
+    return (d1+d2) / (len(vlist1)+len(vlist2))
+
+def safe_mean(values):
+    """ Returns mean value discarding non finite values """
+    valid_values = []
+    for v in values:
+        if numpy.isfinite(v):
+            valid_values.append(v)
+    return numpy.mean(valid_values), numpy.std(valid_values)
+
+def safe_mean_vector(vectors):
+    """ Returns mean profile discarding non finite values """
+    # if only one vector, avg = itself
+    if len(vectors)==1:
+        return vectors[0], numpy.zeros(len(vectors[0]))
+    # Takes the vector length form the first item
+    length = len(vectors[0])
+
+    safe_mean = []
+    safe_std  = []
+
+    for pos in range(length):
+        pos_mean = []
+        for v in vectors:
+            if numpy.isfinite(v[pos]):
+                pos_mean.append(v[pos])
+        safe_mean.append(numpy.mean(pos_mean))
+        safe_std.append(numpy.std(pos_mean))
+    return safe_mean, safe_std
+
+def get_mean_vector(vlist):
+    a = numpy.array(vlist)
+    return numpy.mean(a,0)
+
+def get_median_vector(vlist):
+    a = numpy.array(vlist)
+    return numpy.median(a)
+
+def get_max_vector(vlist):
+    a = numpy.array(vlist)
+    return numpy.max(a,0)
+
+def get_min_vector(vlist):
+    a = numpy.array(vlist)
+    return numpy.min(a,0)
diff --git a/ete3/coretype/seqgroup.py b/ete3/coretype/seqgroup.py
new file mode 100644
index 0000000..1477d74
--- /dev/null
+++ b/ete3/coretype/seqgroup.py
@@ -0,0 +1,166 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+"""
+The 'seqgroup' module provides methods and classes to operate with
+Multiple Sequence Files, including Multiple Sequence Alignments.
+
+Currently, Fasta, Phylip sequencial and Phylip interleaved formats are
+supported.
+"""
+from __future__ import absolute_import
+
+from ..parser.fasta import read_fasta, write_fasta
+from ..parser.paml import read_paml, write_paml
+from ..parser.phylip import read_phylip, write_phylip
+import six
+from six.moves import zip
+
+__all__ = ["SeqGroup"]
+
+class SeqGroup(object):
+    """
+    SeqGroup class can be used to store a set of sequences (aligned
+    or not).
+
+
+    :argument sequences: Path to the file containing the sequences or,
+        alternatively, the text string containing the same
+        information.
+
+    :argument fasta format: the format in which sequences are
+        encoded. Current supported formats are: ``fasta``, ``phylip``
+        (phylip sequencial) and ``iphylip`` (phylip
+        interleaved). Phylip format forces sequence names to a maximum
+        of 10 chars. To avoid this effect, you can use the relaxed
+        phylip format: ``phylip_relaxed`` and ``iphylip_relaxed``.
+
+    ::
+
+     msf = ">seq1\\nAAAAAAAAAAA\\n>seq2\\nTTTTTTTTTTTTT\\n"
+     seqs = SeqGroup(msf, format="fasta")
+     print seqs.get_seq("seq1")
+     """
+
+    def __len__(self):
+        return len(self.id2seq)
+
+    def __contains__(self, item):
+        return item in self.name2id
+
+    def __str__(self):
+        return write_fasta(self)
+
+    def __iter__(self):
+        return self.iter_entries()
+
+    def __init__(self, sequences=None , format="fasta", fix_duplicates=True, **kwargs):
+        self.parsers = {
+            "fasta": [read_fasta, write_fasta, {}],
+            "phylip": [read_phylip, write_phylip, {"interleaved":False, "relaxed":False}],
+            "iphylip": [read_phylip, write_phylip, {"interleaved":True, "relaxed":False}],
+            "phylip_relaxed": [read_phylip, write_phylip, {"interleaved":False, "relaxed":True}],
+            "iphylip_relaxed": [read_phylip, write_phylip, {"interleaved":True, "relaxed":True}],
+            "paml"   : [read_paml  , write_paml  , kwargs                   ]
+            }
+
+        self.id2name = {}
+        self.name2id = {}
+        self.id2comment= {}
+        self.id2seq = {}
+
+        if sequences is not None:
+            format = format.lower()
+            if format in self.parsers:
+                read = self.parsers[format][0]
+                args = self.parsers[format][2]
+                read(sequences, obj=self, fix_duplicates=fix_duplicates, **args)
+            else:
+                raise ValueError("Unsupported format: [%s]" %format)
+
+    def __repr__(self):
+        return "SeqGroup (%s)" %hex(self.__hash__())
+
+    def write(self, format="fasta", outfile=None):
+        """ Returns the text representation of the sequences in the
+        supplied given format (default=FASTA). If "oufile" argument is
+        used, the result is written into the given path."""
+
+        format = format.lower()
+        if format in self.parsers:
+            write = self.parsers[format][1]
+            args = self.parsers[format][2]
+            return write(self, outfile, **args)
+        else:
+            raise ValueError("Unsupported format: [%s]" %format)
+
+    def iter_entries(self):
+        """ Returns an iterator over all sequences in the
+        collection. Each item is a tuple with the sequence name,
+        sequence, and sequence comments """
+        for i, seq in six.iteritems(self.id2seq):
+            yield self.id2name[i], seq,  self.id2comment.get(i, [])
+
+    def get_seq(self, name):
+        """ Returns the sequence associated to a given entry name."""
+        return self.id2seq[self.name2id[name]]
+
+    def get_entries(self):
+        """ Returns the list of entries currently stored."""
+        keys = list(self.id2seq.keys())
+        seqs = list(self.id2seq.values())
+        comments = [self.id2comment.get(x, []) for x in  keys]
+        names = [self.id2name[x] for x in keys]
+        return list(zip(names, seqs, comments))
+
+    def set_seq(self, name, seq, comments = None):
+        """Updates or adds a sequence """
+        if comments is None:
+            comments = []
+        name = name.strip()
+        seq = seq.replace(" ", "")
+        seq = seq.replace("\t", "")
+        seq = seq.replace("\n", "")
+        seq = seq.replace("\r", "")
+        seqid = self.name2id.get(name, max([0]+list(self.name2id.values()))+1)
+        self.name2id[name] = seqid
+        self.id2name[seqid] = name
+        self.id2comment[seqid] = comments
+        self.id2seq[seqid] = seq
+
diff --git a/ete3/coretype/tree.py b/ete3/coretype/tree.py
new file mode 100644
index 0000000..d34a611
--- /dev/null
+++ b/ete3/coretype/tree.py
@@ -0,0 +1,2474 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import random
+import copy
+import itertools
+from collections import deque
+from hashlib import md5
+from functools import cmp_to_key
+
+import six
+from six.moves import (cPickle, map, range, zip)
+
+from ..parser.newick import read_newick, write_newick
+from .. import utils
+
+# the following imports are necessary to set fixed styles and faces
+try:
+    from ..treeview.main import NodeStyle, _FaceAreas, FaceContainer, FACE_POSITIONS
+    from ..treeview.faces import Face
+except ImportError:
+    TREEVIEW = False
+else:
+    TREEVIEW = True
+
+__all__ = ["Tree", "TreeNode"]
+
+DEFAULT_COMPACT = False
+DEFAULT_SHOWINTERNAL = False
+DEFAULT_DIST = 1.0
+DEFAULT_SUPPORT = 1.0
+DEFAULT_NAME = ""
+
+class TreeError(Exception):
+    """
+    A problem occurred during a TreeNode operation
+    """
+    def __init__(self, value=''):
+        self.value = value
+    def __str__(self):
+        return repr(self.value)
+
+class TreeNode(object):
+    """
+    TreeNode (Tree) class is used to store a tree structure. A tree
+    consists of a collection of TreeNode instances connected in a
+    hierarchical way. Trees can be loaded from the New Hampshire Newick
+    format (newick).
+
+    :argument newick: Path to the file containing the tree or, alternatively,
+       the text string containing the same information.
+
+    :argument 0 format: subnewick format
+
+      .. table::
+
+          ======  ==============================================
+          FORMAT  DESCRIPTION
+          ======  ==============================================
+          0        flexible with support values
+          1        flexible with internal node names
+          2        all branches + leaf names + internal supports
+          3        all branches + all names
+          4        leaf branches + leaf names
+          5        internal and leaf branches + leaf names
+          6        internal branches + leaf names
+          7        leaf branches + all names
+          8        all names
+          9        leaf names
+          100      topology only
+          ======  ==============================================
+
+    :returns: a tree node object which represents the base of the tree.
+
+    ** Examples: **
+
+    ::
+
+        t1 = Tree() # creates an empty tree
+        t2 = Tree('(A:1,(B:1,(C:1,D:1):0.5):0.5);')
+        t3 = Tree('/home/user/myNewickFile.txt')
+    """
+
+    def _get_dist(self):
+        return self._dist
+    def _set_dist(self, value):
+        try:
+            self._dist = float(value)
+        except ValueError:
+            raise TreeError('node dist must be a float number')
+
+    def _get_support(self):
+        return self._support
+    def _set_support(self, value):
+        try:
+            self._support = float(value)
+        except ValueError:
+            raise TreeError('node support must be a float number')
+
+    def _get_up(self):
+        return self._up
+    def _set_up(self, value):
+        if type(value) == type(self) or value is None:
+            self._up = value
+        else:
+            raise TreeError("bad node_up type")
+
+    def _get_children(self):
+        return self._children
+    def _set_children(self, value):
+        if type(value) == list and \
+           len(set([type(n)==type(self) for n in value]))<2:
+            self._children = value
+        else:
+            raise TreeError("Incorrect children type")
+
+    def _get_style(self):
+        if self._img_style is None:
+            self._set_style(None)
+
+        return self._img_style
+
+    def _set_style(self, value):
+        self.set_style(value)
+
+    #: Branch length distance to parent node. Default = 0.0
+    img_style = property(fget=_get_style, fset=_set_style)
+
+    #: Branch length distance to parent node. Default = 0.0
+    dist = property(fget=_get_dist, fset=_set_dist)
+    #: Branch support for current node
+    support = property(fget=_get_support, fset=_set_support)
+    #: Pointer to parent node
+    up = property(fget=_get_up, fset=_set_up)
+    #: A list of children nodes
+    children = property(fget=_get_children, fset=_set_children)
+
+    def _set_face_areas(self, value):
+        if isinstance(value, _FaceAreas):
+            self._faces = value
+        else:
+            raise ValueError("[%s] is not a valid FaceAreas instance" %type(value))
+
+    def _get_face_areas(self):
+        if not hasattr(self, "_faces"):
+            self._faces = _FaceAreas()
+        return self._faces
+
+    faces = property(fget=_get_face_areas, \
+                         fset=_set_face_areas)
+
+    def __init__(self, newick=None, format=0, dist=None, support=None,
+                 name=None):
+        self._children = []
+        self._up = None
+        self._dist = DEFAULT_DIST
+        self._support = DEFAULT_SUPPORT
+        self._img_style = None
+        self.features = set([])
+        # Add basic features
+        self.features.update(["dist", "support", "name"])
+        if dist is not None:
+            self.dist = dist
+        if support is not None:
+            self.support = support
+
+        self.name = name if name is not None else DEFAULT_NAME
+
+        # Initialize tree
+        if newick is not None:
+            self._dist = 0.0
+            read_newick(newick, root_node = self, format=format)
+
+
+    def __nonzero__(self):
+        return True
+
+    def __bool__(self):
+        """
+        Python3's equivalent of __nonzero__
+        If this is not defined bool(class_instance) will call
+        __len__ in python3
+        """
+        return True
+
+    def __repr__(self):
+        return "Tree node '%s' (%s)" %(self.name, hex(self.__hash__()))
+
+    def __and__(self, value):
+        """ This allows to execute tree&'A' to obtain the descendant node
+        whose name is A"""
+        value=str(value)
+        try:
+            first_match = next(self.iter_search_nodes(name=value))
+            return first_match
+        except StopIteration:
+            raise TreeError("Node not found")
+
+    def __add__(self, value):
+        """ This allows to sum two trees."""
+        # Should a make the sum with two copies of the original trees?
+        if type(value) == self.__class__:
+            new_root = self.__class__()
+            new_root.add_child(self)
+            new_root.add_child(value)
+            return new_root
+        else:
+            raise TreeError("Invalid node type")
+
+    def __str__(self):
+        """ Print tree in newick format. """
+        return self.get_ascii(compact=DEFAULT_COMPACT, \
+                                show_internal=DEFAULT_SHOWINTERNAL)
+
+    def __contains__(self, item):
+        """ Check if item belongs to this node. The 'item' argument must
+        be a node instance or its associated name."""
+        if isinstance(item, self.__class__):
+            return item in set(self.get_descendants())
+        elif type(item)==str:
+            return item in set([n.name for n in self.traverse()])
+
+    def __len__(self):
+        """Node len returns number of children."""
+        return len(self.get_leaves())
+
+    def __iter__(self):
+        """ Iterator over leaf nodes"""
+        return self.iter_leaves()
+
+    def add_feature(self, pr_name, pr_value):
+        """
+        Add or update a node's feature.
+        """
+        setattr(self, pr_name, pr_value)
+        self.features.add(pr_name)
+
+    def add_features(self, **features):
+        """
+        Add or update several features. """
+        for fname, fvalue in six.iteritems(features):
+            setattr(self, fname, fvalue)
+            self.features.add(fname)
+
+    def del_feature(self, pr_name):
+        """
+        Permanently deletes a node's feature.
+        """
+        if hasattr(self, pr_name):
+            delattr(self, pr_name)
+            self.features.remove(pr_name)
+
+    # Topology management
+    def add_child(self, child=None, name=None, dist=None, support=None):
+        """
+        Adds a new child to this node. If child node is not suplied
+        as an argument, a new node instance will be created.
+
+        :argument None child: the node instance to be added as a child.
+        :argument None name: the name that will be given to the child.
+        :argument None dist: the distance from the node to the child.
+        :argument None support': the support value of child partition.
+
+        :returns: The child node instance
+
+        """
+        if child is None:
+            child = self.__class__()
+
+        if name is not None:
+            child.name = name
+        if dist is not None:
+            child.dist = dist
+        if support is not None:
+            child.support = support
+
+        self.children.append(child)
+        child.up = self
+        return child
+
+    def remove_child(self, child):
+        """
+        Removes a child from this node (parent and child
+        nodes still exit but are no longer connected).
+        """
+        try:
+            self.children.remove(child)
+        except ValueError as e:
+            raise TreeError("child not found")
+        else:
+            child.up = None
+            return child
+
+    def add_sister(self, sister=None, name=None, dist=None):
+        """
+        Adds a sister to this node. If sister node is not supplied
+        as an argument, a new TreeNode instance will be created and
+        returned.
+        """
+        if self.up == None:
+            raise TreeError("A parent node is required to add a sister")
+        else:
+            return self.up.add_child(child=sister, name=name, dist=dist)
+
+    def remove_sister(self, sister=None):
+        """
+        Removes a sister node. It has the same effect as
+        **`TreeNode.up.remove_child(sister)`**
+
+        If a sister node is not supplied, the first sister will be deleted
+        and returned.
+
+        :argument sister: A node instance
+
+        :return: The node removed
+        """
+        sisters = self.get_sisters()
+        if len(sisters) > 0:
+            if sister is None:
+                sister = sisters.pop(0)
+            return self.up.remove_child(sister)
+
+    def delete(self, prevent_nondicotomic=True, preserve_branch_length=False):
+        """
+        Deletes node from the tree structure. Notice that this method
+        makes 'disappear' the node from the tree structure. This means
+        that children from the deleted node are transferred to the
+        next available parent.
+
+        :param True prevent_nondicotomic: When True (default), delete
+        function will be execute recursively to prevent single-child
+        nodes.
+
+        :param False preserve_branch_length: If True, branch lengths
+        of the deleted nodes are transferred (summed up) to its
+        parent's branch, thus keeping original distances among nodes.
+
+        **Example:**
+
+        ::
+
+                / C
+          root-|
+               |        / B
+                \--- H |
+                        \ A
+
+          > H.delete() will produce this structure:
+
+                / C
+               |
+          root-|--B
+               |
+                \ A
+
+        """
+        parent = self.up
+        if parent:
+            if preserve_branch_length:
+                if len(self.children) == 1:
+                    self.children[0].dist += self.dist
+                elif len(self.children) > 1:
+                    parent.dist += self.dist
+
+            for ch in self.children:
+                parent.add_child(ch)
+
+            parent.remove_child(self)
+
+        # Avoids parents with only one child
+        if prevent_nondicotomic and parent and\
+              len(parent.children) < 2:
+            parent.delete(prevent_nondicotomic=False,
+                          preserve_branch_length=preserve_branch_length)
+
+
+    def detach(self):
+        """
+        Detachs this node (and all its descendants) from its parent
+        and returns the referent to itself.
+
+        Detached node conserves all its structure of descendants, and can
+        be attached to another node through the 'add_child' function. This
+        mechanism can be seen as a cut and paste.
+        """
+
+        if self.up:
+            self.up.children.remove(self)
+            self.up = None
+        return self
+
+
+    def prune(self, nodes, preserve_branch_length=False):
+        """Prunes the topology of a node to conserve only the selected list of leaf
+        internal nodes. The minimum number of nodes that conserve the
+        topological relationships among the requested nodes will be
+        retained. Root node is always conserved.
+
+        :var nodes: a list of node names or node objects that should be retained
+
+        :param False preserve_branch_length: If True, branch lengths
+        of the deleted nodes are transferred (summed up) to its
+        parent's branch, thus keeping original distances among nodes.
+
+        **Examples:**
+
+        ::
+
+          t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+          t1.prune(['A', 'B'])
+
+
+          #                /-A
+          #          /D /C|
+          #       /F|      \-B
+          #      |  |
+          #    /H|   \-E
+          #   |  |                        /-A
+          #-root  \-G                 -root
+          #   |                           \-B
+          #   |   /-I
+          #    \K|
+          #       \-J
+
+
+
+          t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+          t1.prune(['A', 'B', 'C'])
+
+          #                /-A
+          #          /D /C|
+          #       /F|      \-B
+          #      |  |
+          #    /H|   \-E
+          #   |  |                              /-A
+          #-root  \-G                  -root- C|
+          #   |                                 \-B
+          #   |   /-I
+          #    \K|
+          #       \-J
+
+
+
+          t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+          t1.prune(['A', 'B', 'I'])
+
+
+          #                /-A
+          #          /D /C|
+          #       /F|      \-B
+          #      |  |
+          #    /H|   \-E                    /-I
+          #   |  |                      -root
+          #-root  \-G                      |   /-A
+          #   |                             \C|
+          #   |   /-I                          \-B
+          #    \K|
+          #       \-J
+
+          t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+          t1.prune(['A', 'B', 'F', 'H'])
+
+          #                /-A
+          #          /D /C|
+          #       /F|      \-B
+          #      |  |
+          #    /H|   \-E
+          #   |  |                              /-A
+          #-root  \-G                -root-H /F|
+          #   |                                 \-B
+          #   |   /-I
+          #    \K|
+          #       \-J
+
+        """
+        def cmp_nodes(x, y):
+            # if several nodes are in the same path of two kept nodes,
+            # only one should be maintained. This prioritize internal
+            # nodes that are already in the to_keep list and then
+            # deeper nodes (closer to the leaves).
+            if n2depth[x] > n2depth[y]:
+                return -1
+            elif n2depth[x] < n2depth[y]:
+                return 1
+            else:
+                return 0
+
+        to_keep = set(_translate_nodes(self, *nodes))
+        start, node2path = self.get_common_ancestor(to_keep, get_path=True)
+        to_keep.add(self)
+
+        # Calculate which kept nodes are visiting the same nodes in
+        # their path to the common ancestor.
+        n2count = {}
+        n2depth = {}
+        for seed, path in six.iteritems(node2path):
+            for visited_node in path:
+                if visited_node not in n2depth:
+                    depth = visited_node.get_distance(start, topology_only=True)
+                    n2depth[visited_node] = depth
+                if visited_node is not seed:
+                    n2count.setdefault(visited_node, set()).add(seed)
+
+        # if several internal nodes are in the path of exactly the same kept
+        # nodes, only one (the deepest) should be maintain.
+        visitors2nodes = {}
+        for node, visitors in six.iteritems(n2count):
+            # keep nodes connection at least two other nodes
+            if len(visitors)>1:
+                visitor_key = frozenset(visitors)
+                visitors2nodes.setdefault(visitor_key, set()).add(node)
+
+        for visitors, nodes in six.iteritems(visitors2nodes):
+            if not (to_keep & nodes):
+                sorted_nodes = sorted(nodes, key=cmp_to_key(cmp_nodes))
+                to_keep.add(sorted_nodes[0])
+
+        for n in self.get_descendants('postorder'):
+            if n not in to_keep:
+                if preserve_branch_length:
+                    if len(n.children) == 1:
+                        n.children[0].dist += n.dist
+                    elif len(n.children) > 1 and n.up:
+                        n.up.dist += n.dist
+
+                n.delete(prevent_nondicotomic=False)
+
+
+    def swap_children(self):
+        """
+        Swaps current children order.
+        """
+        if len(self.children)>1:
+            self.children.reverse()
+
+
+    # #####################
+    # Tree traversing
+    # #####################
+
+
+    def get_children(self):
+        """
+        Returns an independent list of node's children.
+        """
+        return [ch for ch in self.children]
+
+    def get_sisters(self):
+        """
+        Returns an indepent list of sister nodes.
+        """
+        if self.up!=None:
+            return [ch for ch in self.up.children if ch!=self]
+        else:
+            return []
+
+    def iter_leaves(self, is_leaf_fn=None):
+        """
+        Returns an iterator over the leaves under this node.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        for n in self.traverse(strategy="preorder", is_leaf_fn=is_leaf_fn):
+            if not is_leaf_fn:
+                if n.is_leaf():
+                    yield n
+            else:
+                if is_leaf_fn(n):
+                    yield n
+
+    def get_leaves(self, is_leaf_fn=None):
+        """
+        Returns the list of terminal nodes (leaves) under this node.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        return [n for n in self.iter_leaves(is_leaf_fn=is_leaf_fn)]
+
+    def iter_leaf_names(self, is_leaf_fn=None):
+        """
+        Returns an iterator over the leaf names under this node.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        for n in self.iter_leaves(is_leaf_fn=is_leaf_fn):
+            yield n.name
+
+    def get_leaf_names(self, is_leaf_fn=None):
+        """
+        Returns the list of terminal node names under the current
+        node.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        return [name for name in self.iter_leaf_names(is_leaf_fn=is_leaf_fn)]
+
+    def iter_descendants(self, strategy="levelorder", is_leaf_fn=None):
+        """
+        Returns an iterator over all descendant nodes.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        for n in self.traverse(strategy=strategy, is_leaf_fn=is_leaf_fn):
+            if n is not self:
+                yield n
+
+    def get_descendants(self, strategy="levelorder", is_leaf_fn=None):
+        """
+        Returns a list of all (leaves and internal) descendant nodes.
+
+        :argument None is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+        """
+        return [n for n in self.iter_descendants(strategy=strategy, \
+                                                 is_leaf_fn=is_leaf_fn)]
+
+    def traverse(self, strategy="levelorder", is_leaf_fn=None):
+        """
+        Returns an iterator to traverse the tree structure under this
+        node.
+
+        :argument "levelorder" strategy: set the way in which tree
+           will be traversed. Possible values are: "preorder" (first
+           parent and then children) 'postorder' (first children and
+           the parent) and "levelorder" (nodes are visited in order
+           from root to leaves)
+
+        :argument None is_leaf_fn: If supplied, ``is_leaf_fn``
+           function will be used to interrogate nodes about if they
+           are terminal or internal. ``is_leaf_fn`` function should
+           receive a node instance as first argument and return True
+           or False. Use this argument to traverse a tree by
+           dynamically collapsing internal nodes matching
+           ``is_leaf_fn``.
+        """
+        if strategy=="preorder":
+            return self._iter_descendants_preorder(is_leaf_fn=is_leaf_fn)
+        elif strategy=="levelorder":
+            return self._iter_descendants_levelorder(is_leaf_fn=is_leaf_fn)
+        elif strategy=="postorder":
+            return self._iter_descendants_postorder(is_leaf_fn=is_leaf_fn)
+
+    def iter_prepostorder(self, is_leaf_fn=None):
+        """
+        Iterate over all nodes in a tree yielding every node in both
+        pre and post order. Each iteration returns a postorder flag
+        (True if node is being visited in postorder) and a node
+        instance.
+        """
+        to_visit = [self]
+        if is_leaf_fn is not None:
+            _leaf = is_leaf_fn
+        else:
+            _leaf = self.__class__.is_leaf
+
+        while to_visit:
+            node = to_visit.pop(-1)
+            try:
+                node = node[1]
+            except TypeError:
+                # PREORDER ACTIONS
+                yield (False, node)
+                if not _leaf(node):
+                    # ADD CHILDREN
+                    to_visit.extend(reversed(node.children + [[1, node]]))
+            else:
+                #POSTORDER ACTIONS
+                yield (True, node)
+
+    def _iter_descendants_postorder(self, is_leaf_fn=None):
+        to_visit = [self]
+        if is_leaf_fn is not None:
+            _leaf = is_leaf_fn
+        else:
+            _leaf = self.__class__.is_leaf
+
+        while to_visit:
+            node = to_visit.pop(-1)
+            try:
+                node = node[1]
+            except TypeError:
+                # PREORDER ACTIONS
+                if not _leaf(node):
+                    # ADD CHILDREN
+                    to_visit.extend(reversed(node.children + [[1, node]]))
+                else:
+                    yield node
+            else:
+                #POSTORDER ACTIONS
+                yield node
+
+    def _iter_descendants_levelorder(self, is_leaf_fn=None):
+        """
+        Iterate over all desdecendant nodes.
+        """
+        tovisit = deque([self])
+        while len(tovisit)>0:
+            node = tovisit.popleft()
+            yield node
+            if not is_leaf_fn or not is_leaf_fn(node):
+                tovisit.extend(node.children)
+
+    def _iter_descendants_preorder(self, is_leaf_fn=None):
+        """
+        Iterator over all descendant nodes.
+        """
+        to_visit = deque()
+        node = self
+        while node is not None:
+            yield node
+            if not is_leaf_fn or not is_leaf_fn(node):
+                to_visit.extendleft(reversed(node.children))
+            try:
+                node = to_visit.popleft()
+            except:
+                node = None
+
+    def iter_ancestors(self):
+        '''versionadded: 2.2
+
+        Iterates over the list of all ancestor nodes from current node
+        to the current tree root.
+
+        '''
+        node = self
+        while node.up is not None:
+            yield node.up
+            node = node.up
+
+    def get_ancestors(self):
+        '''versionadded: 2.2
+
+        Returns the list of all ancestor nodes from current node to
+        the current tree root.
+
+        '''
+        return [n for n in self.iter_ancestors()]
+
+    def describe(self):
+        """
+        Prints general information about this node and its
+        connections.
+        """
+        if len(self.get_tree_root().children)==2:
+            rooting = "Yes"
+        elif len(self.get_tree_root().children)>2:
+            rooting = "No"
+        else:
+            rooting = "No children"
+        max_node, max_dist = self.get_farthest_leaf()
+        cached_content = self.get_cached_content()
+        print("Number of leaf nodes:\t%d" % len(cached_content[self]))
+        print("Total number of nodes:\t%d" % len(cached_content))
+        print("Rooted:\t%s" %rooting)
+        print("Most distant node:\t%s" %max_node.name)
+        print("Max. distance:\t%f" %max_dist)
+
+    def write(self, features=None, outfile=None, format=0, is_leaf_fn=None,
+              format_root_node=False, dist_formatter=None, support_formatter=None,
+              name_formatter=None):
+        """
+        Returns the newick representation of current node. Several
+        arguments control the way in which extra data is shown for
+        every node:
+
+        :argument features: a list of feature names to be exported
+          using the Extended Newick Format (i.e. features=["name",
+          "dist"]). Use an empty list to export all available features
+          in each node (features=[])
+
+        :argument outfile: writes the output to a given file
+
+        :argument format: defines the newick standard used to encode the
+          tree. See tutorial for details.
+
+        :argument False format_root_node: If True, it allows features
+          and branch information from root node to be exported as a
+          part of the newick text string. For newick compatibility
+          reasons, this is False by default.
+
+        :argument is_leaf_fn: See :func:`TreeNode.traverse` for
+          documentation.
+
+        **Example:**
+
+        ::
+
+             t.get_newick(features=["species","name"], format=1)
+
+        """
+
+        nw = write_newick(self, features=features,
+                          format=format,
+                          is_leaf_fn=is_leaf_fn,
+                          format_root_node=format_root_node,
+                          dist_formatter=dist_formatter,
+                          support_formatter=support_formatter,
+                          name_formatter=name_formatter)
+
+        if outfile is not None:
+            with open(outfile, "w") as OUT:
+                OUT.write(nw)
+        else:
+            return nw
+
+    def get_tree_root(self):
+        """
+        Returns the absolute root node of current tree structure.
+        """
+        root = self
+        while root.up is not None:
+            root = root.up
+        return root
+
+    def get_common_ancestor(self, *target_nodes, **kargs):
+        """
+        Returns the first common ancestor between this node and a given
+        list of 'target_nodes'.
+
+        **Examples:**
+
+        ::
+
+          t = tree.Tree("(((A:0.1, B:0.01):0.001, C:0.0001):1.0[&&NHX:name=common], (D:0.00001):0.000001):2.0[&&NHX:name=root];")
+          A = t.get_descendants_by_name("A")[0]
+          C = t.get_descendants_by_name("C")[0]
+          common =  A.get_common_ancestor(C)
+          print common.name
+
+        """
+
+        get_path = kargs.get("get_path", False)
+
+        if len(target_nodes) == 1 and type(target_nodes[0]) \
+                in set([set, tuple, list, frozenset]):
+            target_nodes = target_nodes[0]
+
+        # Convert node names into node instances
+        target_nodes = _translate_nodes(self, *target_nodes)
+
+        # If only one node is provided, use self as the second target
+        if type(target_nodes) != list:
+            target_nodes = [target_nodes, self]
+
+
+        n2path = {}
+        reference = []
+        ref_node = None
+        for n in target_nodes:
+            current = n
+            while current:
+                n2path.setdefault(n, set()).add(current)
+                if not ref_node:
+                    reference.append(current)
+                current = current.up
+            if not ref_node:
+                ref_node = n
+
+        common = None
+        for n in reference:
+            broken = False
+            for node, path in six.iteritems(n2path):
+                if node is not ref_node and n not in path:
+                    broken = True
+                    break
+
+            if not broken:
+                common = n
+                break
+        if not common:
+            raise TreeError("Nodes are not connected!")
+
+        if get_path:
+            return common, n2path
+        else:
+            return common
+
+    def iter_search_nodes(self, **conditions):
+        """
+        Search nodes in an interative way. Matches are being yield as
+        they are being found. This avoids to scan the full tree
+        topology before returning the first matches. Useful when
+        dealing with huge trees.
+        """
+
+        for n in self.traverse():
+            conditions_passed = 0
+            for key, value in six.iteritems(conditions):
+                if hasattr(n, key) and getattr(n, key) == value:
+                    conditions_passed +=1
+            if conditions_passed == len(conditions):
+                yield n
+
+    def search_nodes(self, **conditions):
+        """
+        Returns the list of nodes matching a given set of conditions.
+
+        **Example:**
+
+        ::
+
+          tree.search_nodes(dist=0.0, name="human")
+
+        """
+        matching_nodes = []
+        for n in self.iter_search_nodes(**conditions):
+            matching_nodes.append(n)
+        return matching_nodes
+
+    def get_leaves_by_name(self, name):
+        """
+        Returns a list of leaf nodes matching a given name.
+        """
+        return self.search_nodes(name=name, children=[])
+
+    def is_leaf(self):
+        """
+        Return True if current node is a leaf.
+        """
+        return len(self.children) == 0
+
+    def is_root(self):
+        """
+        Returns True if current node has no parent
+        """
+        if self.up is None:
+            return True
+        else:
+            return False
+
+    # ###########################
+    # Distance related functions
+    # ###########################
+    def get_distance(self, target, target2=None, topology_only=False):
+        """
+        Returns the distance between two nodes. If only one target is
+        specified, it returns the distance bewtween the target and the
+        current node.
+
+        :argument target: a node within the same tree structure.
+
+        :argument target2: a node within the same tree structure. If
+          not specified, current node is used as target2.
+
+        :argument False topology_only: If set to True, distance will
+          refer to the number of nodes between target and target2.
+
+        :returns: branch length distance between target and
+          target2. If topology_only flag is True, returns the number
+          of nodes between target and target2.
+
+        """
+
+        if target2 is None:
+            target2 = self
+            root = self.get_tree_root()
+        else:
+            # is target node under current node?
+            root = self
+
+        target, target2 = _translate_nodes(root, target, target2)
+        ancestor = root.get_common_ancestor(target, target2)
+
+        dist = 0.0
+        for n in [target2, target]:
+            current = n
+            while current != ancestor:
+                if topology_only:
+                    if  current!=target:
+                        dist += 1
+                else:
+                    dist += current.dist
+                current = current.up
+        return dist
+
+    def get_farthest_node(self, topology_only=False):
+        """
+        Returns the node's farthest descendant or ancestor node, and the
+        distance to it.
+
+        :argument False topology_only: If set to True, distance
+          between nodes will be referred to the number of nodes
+          between them. In other words, topological distance will be
+          used instead of branch length distances.
+
+        :return: A tuple containing the farthest node referred to the
+          current node and the distance to it.
+
+        """
+        # Init fasthest node to current farthest leaf
+        farthest_node, farthest_dist = self.get_farthest_leaf(topology_only=topology_only)
+
+        prev = self
+        cdist = 0.0 if topology_only else prev.dist
+        current = prev.up
+        while current is not None:
+            for ch in current.children:
+                if ch != prev:
+                    if not ch.is_leaf():
+                        fnode, fdist = ch.get_farthest_leaf(topology_only=topology_only)
+                    else:
+                        fnode = ch
+                        fdist = 0
+                    if topology_only:
+                        fdist += 1.0
+                    else:
+                        fdist += ch.dist
+                    if cdist+fdist > farthest_dist:
+                        farthest_dist = cdist + fdist
+                        farthest_node = fnode
+            prev = current
+            if topology_only:
+                cdist += 1
+            else:
+                cdist  += prev.dist
+            current = prev.up
+        return farthest_node, farthest_dist
+
+    def _get_farthest_and_closest_leaves(self, topology_only=False, is_leaf_fn=None):
+        # if called from a leaf node, no necessary to compute
+        if (is_leaf_fn and is_leaf_fn(self)) or self.is_leaf():
+            return self, 0.0, self, 0.0
+
+        min_dist = None
+        min_node = None
+        max_dist = None
+        max_node = None
+        d = 0.0
+        for post, n in self.iter_prepostorder(is_leaf_fn=is_leaf_fn):
+            if n is self:
+                continue
+            if post:
+                d -= n.dist if not topology_only else 1.0
+            else:
+                if (is_leaf_fn and is_leaf_fn(n)) or n.is_leaf():
+                    total_d = d + n.dist if not topology_only else d
+                    if min_dist is None or total_d < min_dist:
+                        min_dist = total_d
+                        min_node = n
+                    if max_dist is None or total_d > max_dist:
+                        max_dist = total_d
+                        max_node = n
+                else:
+                    d += n.dist if not topology_only else 1.0
+        return min_node, min_dist, max_node, max_dist
+
+
+    def get_farthest_leaf(self, topology_only=False, is_leaf_fn=None):
+        """
+        Returns node's farthest descendant node (which is always a leaf), and the
+        distance to it.
+
+        :argument False topology_only: If set to True, distance
+          between nodes will be referred to the number of nodes
+          between them. In other words, topological distance will be
+          used instead of branch length distances.
+
+        :return: A tuple containing the farthest leaf referred to the
+          current node and the distance to it.
+        """
+        min_node, min_dist, max_node, max_dist = self._get_farthest_and_closest_leaves(
+        topology_only=topology_only, is_leaf_fn=is_leaf_fn)
+        return max_node, max_dist
+
+    def get_closest_leaf(self, topology_only=False, is_leaf_fn=None):
+        """Returns node's closest descendant leaf and the distance to
+        it.
+
+        :argument False topology_only: If set to True, distance
+          between nodes will be referred to the number of nodes
+          between them. In other words, topological distance will be
+          used instead of branch length distances.
+
+        :return: A tuple containing the closest leaf referred to the
+          current node and the distance to it.
+
+        """
+        min_node, min_dist, max_node, max_dist = self._get_farthest_and_closest_leaves(
+            topology_only=topology_only, is_leaf_fn=is_leaf_fn)
+
+        return min_node, min_dist
+
+
+    def get_midpoint_outgroup(self):
+        """
+        Returns the node that divides the current tree into two distance-balanced
+        partitions.
+        """
+        # Gets the farthest node to the current root
+        root = self.get_tree_root()
+        nA, r2A_dist = root.get_farthest_leaf()
+        nB, A2B_dist = nA.get_farthest_node()
+
+        outgroup = nA
+        middist  = A2B_dist / 2.0
+        cdist = 0
+        current = nA
+        while current is not None:
+            cdist += current.dist
+            if cdist > (middist): # Deja de subir cuando se pasa del maximo
+                break
+            else:
+                current = current.up
+        return current
+
+    def populate(self, size, names_library=None, reuse_names=False,
+                 random_branches=False, branch_range=(0,1),
+                 support_range=(0,1)):
+        """
+        Generates a random topology by populating current node.
+
+        :argument None names_library: If provided, names library
+          (list, set, dict, etc.) will be used to name nodes.
+
+        :argument False reuse_names: If True, node names will not be
+          necessarily unique, which makes the process a bit more
+          efficient.
+
+        :argument False random_branches: If True, branch distances and support
+          values will be randomized.
+
+        :argument (0,1) branch_range: If random_branches is True, this
+        range of values will be used to generate random distances.
+
+        :argument (0,1) support_range: If random_branches is True,
+        this range of values will be used to generate random branch
+        support values.
+
+        """
+        NewNode = self.__class__
+
+        if len(self.children) > 1:
+            connector = NewNode()
+            for ch in self.get_children():
+                ch.detach()
+                connector.add_child(child = ch)
+            root = NewNode()
+            self.add_child(child = connector)
+            self.add_child(child = root)
+        else:
+            root = self
+
+        next_deq = deque([root])
+        for i in range(size-1):
+            if random.randint(0, 1):
+                p = next_deq.pop()
+            else:
+                p = next_deq.popleft()
+
+            c1 = p.add_child()
+            c2 = p.add_child()
+            next_deq.extend([c1, c2])
+            if random_branches:
+                c1.dist = random.uniform(*branch_range)
+                c2.dist = random.uniform(*branch_range)
+                c1.support = random.uniform(*branch_range)
+                c2.support = random.uniform(*branch_range)
+            else:
+                c1.dist = 1.0
+                c2.dist = 1.0
+                c1.support = 1.0
+                c2.support = 1.0
+
+        # next contains leaf nodes
+        charset =  "abcdefghijklmnopqrstuvwxyz"
+        if names_library:
+            names_library = deque(names_library)
+        else:
+            avail_names = itertools.combinations_with_replacement(charset, 10)
+        for n in next_deq:
+            if names_library:
+                if reuse_names:
+                    tname = random.sample(names_library, 1)[0]
+                else:
+                    tname = names_library.pop()
+            else:
+                tname = ''.join(next(avail_names))
+            n.name = tname
+
+
+    def set_outgroup(self, outgroup):
+        """
+        Sets a descendant node as the outgroup of a tree.  This function
+        can be used to root a tree or even an internal node.
+
+        :argument outgroup: a node instance within the same tree
+          structure that will be used as a basal node.
+
+        """
+
+        outgroup = _translate_nodes(self, outgroup)
+
+        if self == outgroup:
+            raise TreeError("Cannot set myself as outgroup")
+
+        parent_outgroup = outgroup.up
+
+        # Detects (sub)tree root
+        n = outgroup
+        while n.up is not self:
+            n = n.up
+
+        # If outgroup is a child from root, but with more than one
+        # sister nodes, creates a new node to group them
+
+        self.children.remove(n)
+        if len(self.children) != 1:
+            down_branch_connector = self.__class__()
+            down_branch_connector.dist = 0.0
+            down_branch_connector.support = n.support
+            for ch in self.get_children():
+                down_branch_connector.children.append(ch)
+                ch.up = down_branch_connector
+                self.children.remove(ch)
+        else:
+            down_branch_connector = self.children[0]
+
+        # Connects down branch to myself or to outgroup
+        quien_va_ser_padre = parent_outgroup
+        if quien_va_ser_padre is not self:
+            # Parent-child swapping
+            quien_va_ser_hijo = quien_va_ser_padre.up
+            quien_fue_padre = None
+            buffered_dist = quien_va_ser_padre.dist
+            buffered_support = quien_va_ser_padre.support
+
+            while quien_va_ser_hijo is not self:
+                quien_va_ser_padre.children.append(quien_va_ser_hijo)
+                quien_va_ser_hijo.children.remove(quien_va_ser_padre)
+
+                buffered_dist2 = quien_va_ser_hijo.dist
+                buffered_support2 = quien_va_ser_hijo.support
+                quien_va_ser_hijo.dist = buffered_dist
+                quien_va_ser_hijo.support = buffered_support
+                buffered_dist = buffered_dist2
+                buffered_support = buffered_support2
+
+                quien_va_ser_padre.up = quien_fue_padre
+                quien_fue_padre = quien_va_ser_padre
+
+                quien_va_ser_padre = quien_va_ser_hijo
+                quien_va_ser_hijo = quien_va_ser_padre.up
+
+            quien_va_ser_padre.children.append(down_branch_connector)
+            down_branch_connector.up = quien_va_ser_padre
+            quien_va_ser_padre.up = quien_fue_padre
+
+            down_branch_connector.dist += buffered_dist
+            outgroup2 = parent_outgroup
+            parent_outgroup.children.remove(outgroup)
+            outgroup2.dist = 0
+
+        else:
+            outgroup2 = down_branch_connector
+
+        outgroup.up = self
+        outgroup2.up = self
+        # outgroup is always the first children. Some function my
+        # trust on this fact, so do no change this.
+        self.children = [outgroup,outgroup2]
+        middist = (outgroup2.dist + outgroup.dist)/2
+        outgroup.dist = middist
+        outgroup2.dist = middist
+        outgroup2.support = outgroup.support
+
+    def unroot(self):
+        """
+        Unroots current node. This function is expected to be used on
+        the absolute tree root node, but it can be also be applied to
+        any other internal node. It will convert a split into a
+        multifurcation.
+        """
+        if len(self.children)==2:
+            if not self.children[0].is_leaf():
+                self.children[0].delete()
+            elif not self.children[1].is_leaf():
+                self.children[1].delete()
+            else:
+                raise TreeError("Cannot unroot a tree with only two leaves")
+
+    def show(self, layout=None, tree_style=None, name="ETE"):
+        """
+        Starts an interative session to visualize current node
+        structure using provided layout and TreeStyle.
+
+        """
+        from ..treeview import drawer
+        drawer.show_tree(self, layout=layout,
+                         tree_style=tree_style, win_name=name)
+
+    def render(self, file_name, layout=None, w=None, h=None, \
+                       tree_style=None, units="px", dpi=90):
+        """
+        Renders the node structure as an image.
+
+        :var file_name: path to the output image file. valid
+          extensions are .SVG, .PDF, .PNG
+
+        :var layout: a layout function or a valid layout function name
+
+        :var tree_style: a `TreeStyle` instance containing the image
+          properties
+
+        :var px units: "px": pixels, "mm": millimeters, "in": inches
+        :var None h: height of the image in :attr:`units`
+        :var None w: width of the image in :attr:`units`
+        :var 300 dpi: dots per inches.
+
+        """
+
+        from ..treeview import drawer
+        if file_name == '%%return':
+            return drawer.get_img(self, w=w, h=h,
+                                  layout=layout, tree_style=tree_style,
+                                  units=units, dpi=dpi)
+        else:
+            return drawer.render_tree(self, file_name, w=w, h=h,
+                                    layout=layout, tree_style=tree_style,
+                                      units=units, dpi=dpi)
+
+    def copy(self, method="cpickle"):
+        """.. versionadded: 2.1
+
+        Returns a copy of the current node.
+
+        :var cpickle method: Protocol used to copy the node
+        structure. The following values are accepted:
+
+           - "newick": Tree topology, node names, branch lengths and
+             branch support values will be copied by as represented in
+             the newick string (copy by newick string serialisation).
+
+           - "newick-extended": Tree topology and all node features
+             will be copied based on the extended newick format
+             representation. Only node features will be copied, thus
+             excluding other node attributes. As this method is also
+             based on newick serialisation, features will be converted
+             into text strings when making the copy.
+
+           - "cpickle": The whole node structure and its content is
+             cloned based on cPickle object serialisation (slower, but
+             recommended for full tree copying)
+
+           - "deepcopy": The whole node structure and its content is
+             copied based on the standard "copy" Python functionality
+             (this is the slowest method but it allows to copy complex
+             objects even if attributes point to lambda functions,
+             etc.)
+
+        """
+        method = method.lower()
+        if method=="newick":
+            new_node = self.__class__(self.write(features=["name"], format_root_node=True))
+        elif method=="newick-extended":
+            self.write(features=[], format_root_node=True)
+            new_node = self.__class__(self.write(features=[]))
+        elif method == "deepcopy":
+            parent = self.up
+            self.up = None
+            new_node = copy.deepcopy(self)
+            self.up = parent
+        elif method == "cpickle":
+            parent = self.up
+            self.up = None
+            new_node = six.moves.cPickle.loads(six.moves.cPickle.dumps(self, 2))
+            self.up = parent
+        else:
+            raise TreeError("Invalid copy method")
+
+        return new_node
+
+    def _asciiArt(self, char1='-', show_internal=True, compact=False, attributes=None):
+        """
+        Returns the ASCII representation of the tree.
+
+        Code based on the PyCogent GPL project.
+        """
+        if not attributes:
+            attributes = ["name"]
+        node_name = ', '.join(map(str, [getattr(self, v) for v in attributes if hasattr(self, v)]))
+
+        LEN = max(3, len(node_name) if not self.children or show_internal else 3)
+        PAD = ' ' * LEN
+        PA = ' ' * (LEN-1)
+        if not self.is_leaf():
+            mids = []
+            result = []
+            for c in self.children:
+                if len(self.children) == 1:
+                    char2 = '/'
+                elif c is self.children[0]:
+                    char2 = '/'
+                elif c is self.children[-1]:
+                    char2 = '\\'
+                else:
+                    char2 = '-'
+                (clines, mid) = c._asciiArt(char2, show_internal, compact, attributes)
+                mids.append(mid+len(result))
+                result.extend(clines)
+                if not compact:
+                    result.append('')
+            if not compact:
+                result.pop()
+            (lo, hi, end) = (mids[0], mids[-1], len(result))
+            prefixes = [PAD] * (lo+1) + [PA+'|'] * (hi-lo-1) + [PAD] * (end-hi)
+            mid = int((lo + hi) / 2)
+            prefixes[mid] = char1 + '-'*(LEN-2) + prefixes[mid][-1]
+            result = [p+l for (p,l) in zip(prefixes, result)]
+            if show_internal:
+                stem = result[mid]
+                result[mid] = stem[0] + node_name + stem[len(node_name)+1:]
+            return (result, mid)
+        else:
+            return ([char1 + '-' + node_name], 0)
+
+    def get_ascii(self, show_internal=True, compact=False, attributes=None):
+        """
+        Returns a string containing an ascii drawing of the tree.
+
+        :argument show_internal: includes internal edge names.
+        :argument compact: use exactly one line per tip.
+
+        :param attributes: A list of node attributes to shown in the
+            ASCII representation.
+
+        """
+        (lines, mid) = self._asciiArt(show_internal=show_internal,
+                                      compact=compact, attributes=attributes)
+        return '\n'+'\n'.join(lines)
+
+
+    def ladderize(self, direction=0):
+        """
+        .. versionadded: 2.1
+
+        Sort the branches of a given tree (swapping children nodes)
+        according to the size of each partition.
+
+        ::
+
+           t =  Tree("(f,((d, ((a,b),c)),e));")
+
+           print t
+
+           #
+           #      /-f
+           #     |
+           #     |          /-d
+           # ----|         |
+           #     |     /---|          /-a
+           #     |    |    |     /---|
+           #     |    |     \---|     \-b
+           #      \---|         |
+           #          |          \-c
+           #          |
+           #           \-e
+
+           t.ladderize()
+           print t
+
+           #      /-f
+           # ----|
+           #     |     /-e
+           #      \---|
+           #          |     /-d
+           #           \---|
+           #               |     /-c
+           #                \---|
+           #                    |     /-a
+           #                     \---|
+           #                          \-b
+
+        """
+
+        if not self.is_leaf():
+            n2s = {}
+            for n in self.get_children():
+                s = n.ladderize(direction=direction)
+                n2s[n] = s
+
+            self.children.sort(key=lambda x: n2s[x])
+            if direction == 1:
+                self.children.reverse()
+            size = sum(n2s.values())
+        else:
+            size = 1
+
+        return size
+
+    def sort_descendants(self, attr="name"):
+        """
+        .. versionadded: 2.1
+
+        This function sort the branches of a given tree by
+        considerening node names. After the tree is sorted, nodes are
+        labeled using ascendent numbers.  This can be used to ensure
+        that nodes in a tree with the same node names are always
+        labeled in the same way. Note that if duplicated names are
+        present, extra criteria should be added to sort nodes.
+
+        Unique id is stored as a node._nid attribute
+
+        """
+
+        node2content = self.get_cached_content(store_attr=attr, container_type=list)
+
+        for n in self.traverse():
+            if not n.is_leaf():
+                n.children.sort(key=lambda x: str(sorted(node2content[x])))
+
+    def get_cached_content(self, store_attr=None, container_type=set, _store=None):
+        """
+        .. versionadded: 2.2
+
+        Returns a dictionary pointing to the preloaded content of each
+        internal node under this tree. Such a dictionary is intended
+        to work as a cache for operations that require many traversal
+        operations.
+
+        :param None store_attr: Specifies the node attribute that
+        should be cached (i.e. name, distance, etc.). When none, the
+        whole node instance is cached.
+
+        :param _store: (internal use)
+
+        """
+        if _store is None:
+            _store = {}
+
+        for ch in self.children:
+            ch.get_cached_content(store_attr=store_attr,
+                                  container_type=container_type,
+                                  _store=_store)
+        if self.children:
+            val = container_type()
+            for ch in self.children:
+                if type(val) == list:
+                    val.extend(_store[ch])
+                if type(val) == set:
+                    val.update(_store[ch])
+            _store[self] = val
+        else:
+            if store_attr is None:
+                val = self
+            else:
+                val = getattr(self, store_attr)
+            _store[self] = container_type([val])
+        return _store
+
+    def robinson_foulds(self, t2, attr_t1="name", attr_t2="name",
+                        unrooted_trees=False, expand_polytomies=False,
+                        polytomy_size_limit=5, skip_large_polytomies=False,
+                        correct_by_polytomy_size=False, min_support_t1=0.0,
+                        min_support_t2=0.0):
+        """
+        .. versionadded: 2.2
+
+        Returns the Robinson-Foulds symmetric distance between current
+        tree and a different tree instance.
+
+        :param t2: reference tree
+
+        :param name attr_t1: Compare trees using a custom node
+                              attribute as a node name.
+
+        :param name attr_t2: Compare trees using a custom node
+                              attribute as a node name in target tree.
+
+        :param False attr_t2: If True, consider trees as unrooted.
+
+        :param False expand_polytomies: If True, all polytomies in the reference
+           and target tree will be expanded into all possible binary
+           trees. Robinson-foulds distance will be calculated between all
+           tree combinations and the minimum value will be returned.
+           See also, :func:`NodeTree.expand_polytomy`.
+
+        :returns: (rf, rf_max, common_attrs, names, edges_t1, edges_t2,  discarded_edges_t1, discarded_edges_t2)
+
+        """
+        ref_t = self
+        target_t = t2
+        if not unrooted_trees and (len(ref_t.children) > 2 or len(target_t.children) > 2):
+            raise TreeError("Unrooted tree found! You may want to activate the unrooted_trees flag.")
+
+        if expand_polytomies and correct_by_polytomy_size:
+            raise TreeError("expand_polytomies and correct_by_polytomy_size are mutually exclusive.")
+
+        if expand_polytomies and unrooted_trees:
+            raise TreeError("expand_polytomies and unrooted_trees arguments cannot be enabled at the same time")
+
+
+        attrs_t1 = set([getattr(n, attr_t1) for n in ref_t.iter_leaves() if hasattr(n, attr_t1)])
+        attrs_t2 = set([getattr(n, attr_t2) for n in target_t.iter_leaves() if hasattr(n, attr_t2)])
+        common_attrs = attrs_t1 & attrs_t2
+        # release mem
+        attrs_t1, attrs_t2 = None, None
+
+        # Check for duplicated items (is it necessary? can we optimize? what's the impact in performance?')
+        size1 = len([True for n in ref_t.iter_leaves() if getattr(n, attr_t1, None) in common_attrs])
+        size2 = len([True for n in target_t.iter_leaves() if getattr(n, attr_t2, None) in common_attrs])
+        if size1 > len(common_attrs):
+            raise TreeError('Duplicated items found in source tree')
+        if size2 > len(common_attrs):
+            raise TreeError('Duplicated items found in reference tree')
+
+        if expand_polytomies:
+            ref_trees = [Tree(nw) for nw in
+                         ref_t.expand_polytomies(map_attr=attr_t1,
+                                                 polytomy_size_limit=polytomy_size_limit,
+                                                 skip_large_polytomies=skip_large_polytomies)]
+            target_trees = [Tree(nw) for nw in
+                            target_t.expand_polytomies(map_attr=attr_t2,
+                                                       polytomy_size_limit=polytomy_size_limit,
+                                                       skip_large_polytomies=skip_large_polytomies)]
+            attr_t1, attr_t2 = "name", "name"
+        else:
+            ref_trees = [ref_t]
+            target_trees = [target_t]
+
+        polytomy_correction = 0
+        if correct_by_polytomy_size:
+            corr1 = sum([0]+[len(n.children) - 2 for n in ref_t.traverse() if len(n.children) > 2])
+            corr2 = sum([0]+[len(n.children) - 2 for n in target_t.traverse() if len(n.children) > 2])
+            if corr1 and corr2:
+                raise TreeError("Both trees contain polytomies! Try expand_polytomies=True instead")
+            else:
+                polytomy_correction = max([corr1, corr2])
+
+        min_comparison = None
+        for t1 in ref_trees:
+            t1_content = t1.get_cached_content()
+            t1_leaves = t1_content[t1]
+            if unrooted_trees:
+                edges1 = set([
+                        tuple(sorted([tuple(sorted([getattr(n, attr_t1) for n in content if hasattr(n, attr_t1) and getattr(n, attr_t1) in common_attrs])),
+                                      tuple(sorted([getattr(n, attr_t1) for n in t1_leaves-content if hasattr(n, attr_t1) and getattr(n, attr_t1) in common_attrs]))]))
+                        for content in six.itervalues(t1_content)])
+                edges1.discard(((),()))
+            else:
+                edges1 = set([
+                        tuple(sorted([getattr(n, attr_t1) for n in content if hasattr(n, attr_t1) and getattr(n, attr_t1) in common_attrs]))
+                        for content in six.itervalues(t1_content)])
+                edges1.discard(())
+
+            if min_support_t1:
+                support_t1 = dict([
+                        (tuple(sorted([getattr(n, attr_t1) for n in content if hasattr(n, attr_t1) and getattr(n, attr_t1) in common_attrs])), branch.support)
+                        for branch, content in six.iteritems(t1_content)])
+
+            for t2 in target_trees:
+                t2_content = t2.get_cached_content()
+                t2_leaves = t2_content[t2]
+                if unrooted_trees:
+                    edges2 = set([
+                            tuple(sorted([
+                                        tuple(sorted([getattr(n, attr_t2) for n in content if hasattr(n, attr_t2) and getattr(n, attr_t2) in common_attrs])),
+                                        tuple(sorted([getattr(n, attr_t2) for n in t2_leaves-content if hasattr(n, attr_t2) and getattr(n, attr_t2) in common_attrs]))]))
+                            for content in six.itervalues(t2_content)])
+                    edges2.discard(((),()))
+                else:
+                    edges2 = set([
+                            tuple(sorted([getattr(n, attr_t2) for n in content if hasattr(n, attr_t2) and getattr(n, attr_t2) in common_attrs]))
+                            for content in six.itervalues(t2_content)])
+                    edges2.discard(())
+
+                if min_support_t2:
+                    support_t2 = dict([
+                        (tuple(sorted(([getattr(n, attr_t2) for n in content if hasattr(n, attr_t2) and getattr(n, attr_t2) in common_attrs]))), branch.support)
+                        for branch, content in six.iteritems(t2_content)])
+
+
+                # if a support value is passed as a constraint, discard lowly supported branches from the analysis
+                discard_t1, discard_t2 = set(), set()
+                if min_support_t1 and unrooted_trees:
+                    discard_t1 = set([p for p in edges1 if support_t1.get(p[0], support_t1.get(p[1], 999999999)) < min_support_t1])
+                elif min_support_t1:
+                    discard_t1 = set([p for p in edges1 if support_t1[p] < min_support_t1])
+
+                if min_support_t2 and unrooted_trees:
+                    discard_t2 = set([p for p in edges2 if support_t2.get(p[0], support_t2.get(p[1], 999999999)) < min_support_t2])
+                elif min_support_t2:
+                    discard_t2 = set([p for p in edges2 if support_t2[p] < min_support_t2])
+
+
+                #rf = len(edges1 ^ edges2) - (len(discard_t1) + len(discard_t2)) - polytomy_correction # poly_corr is 0 if the flag is not enabled
+                #rf = len((edges1-discard_t1) ^ (edges2-discard_t2)) - polytomy_correction
+
+                # the two root edges are never counted here, as they are always
+                # present in both trees because of the common attr filters
+                rf = len(((edges1 ^ edges2) - discard_t2) - discard_t1) - polytomy_correction
+
+                if unrooted_trees:
+                    # thought this may work, but it does not, still I don't see why
+                    #max_parts = (len(common_attrs)*2) - 6 - len(discard_t1) - len(discard_t2)
+                    max_parts = (len([p for p in edges1 - discard_t1 if len(p[0])>1 and len(p[1])>1]) +
+                                 len([p for p in edges2 - discard_t2 if len(p[0])>1 and len(p[1])>1]))
+                else:
+                    # thought this may work, but it does not, still I don't see why
+                    #max_parts = (len(common_attrs)*2) - 4 - len(discard_t1) - len(discard_t2)
+
+                    # Otherwise we need to count the actual number of valid
+                    # partitions in each tree -2 is to avoid counting the root
+                    # partition of the two trees (only needed in rooted trees)
+                    max_parts = (len([p for p in edges1 - discard_t1 if len(p)>1]) +
+                                 len([p for p in edges2 - discard_t2 if len(p)>1])) - 2
+
+                    # print max_parts
+
+                if not min_comparison or min_comparison[0] > rf:
+                    min_comparison = [rf, max_parts, common_attrs, edges1, edges2, discard_t1, discard_t2]
+
+        return min_comparison
+
+
+
+    def compare(self, ref_tree, use_collateral=False, min_support_source=0.0, min_support_ref=0.0,
+                has_duplications=False, expand_polytomies=False, unrooted=False,
+                max_treeko_splits_to_be_artifact=1000, ref_tree_attr='name', source_tree_attr='name'):
+
+        """compare this tree with another using robinson foulds symmetric difference
+        and number of shared edges. Trees of different sizes and with duplicated
+        items allowed.
+
+        returns: a Python dictionary with results
+
+        """
+        source_tree = self
+
+        def _safe_div(a, b):
+            if a != 0:
+                return a / float(b)
+            else: return 0.0
+
+        def _compare(src_tree, ref_tree):
+            # calculate partitions and rf distances
+            rf, maxrf, common, ref_p, src_p, ref_disc, src_disc  = ref_tree.robinson_foulds(src_tree,
+                                                                                            expand_polytomies=expand_polytomies,
+                                                                                            unrooted_trees=unrooted,
+                                                                                            attr_t1=ref_tree_attr,
+                                                                                            attr_t2=source_tree_attr,
+                                                                                            min_support_t2=min_support_source,
+                                                                                            min_support_t1=min_support_ref)
+
+            # if trees share leaves, count their distances
+            if len(common) > 0 and src_p and ref_p:
+                if unrooted:
+                    valid_ref_edges = set([p for p in (ref_p - ref_disc) if len(p[0])>1 and len(p[1])>0])
+                    valid_src_edges = set([p for p in (src_p - src_disc) if len(p[0])>1 and len(p[1])>0])
+                    common_edges = valid_ref_edges & valid_src_edges
+                else:
+                    
+                    valid_ref_edges = set([p for p in (ref_p - ref_disc) if len(p)>1])
+                    valid_src_edges = set([p for p in (src_p - src_disc) if len(p)>1])
+                    common_edges = valid_ref_edges & valid_src_edges
+                    
+            else:
+                valid_ref_edges = set()
+                valid_src_edges = set()
+                common_edges = set()
+
+                # # % of ref edges found in tree
+                # ref_found.append(float(len(p2 & p1)) / reftree_edges)
+
+                # # valid edges in target, discard also leaves
+                # p2bis = set([p for p in (p2-d2) if len(p[0])>1 and len(p[1])>1])
+                # if p2bis:
+                #     incompatible_target_branches = float(len((p2-d2) - p1))
+                #     target_found.append(1 - (incompatible_target_branches / (len(p2-d2))))
+
+            return rf, maxrf, len(common), valid_ref_edges, valid_src_edges, common_edges
+
+
+        total_valid_ref_edges = len([n for n in ref_tree.traverse() if n.children and n.support > min_support_ref])
+        result = {}
+        if has_duplications:
+            orig_target_size = len(source_tree)
+            ntrees, ndups, sp_trees = source_tree.get_speciation_trees(
+                autodetect_duplications=True, newick_only=True,
+                target_attr=source_tree_attr, map_features=[source_tree_attr, "support"])
+
+            if ntrees < max_treeko_splits_to_be_artifact:
+                all_rf = []
+                ref_found = []
+                src_found = []
+                tree_sizes = []
+                all_max_rf = []
+                common_names = 0
+
+                for subtree_nw in sp_trees:
+
+                    #if seedid and not use_collateral and (seedid not in subtree_nw):
+                    #    continue
+                    subtree = source_tree.__class__(subtree_nw, sp_naming_function = source_tree._speciesFunction)
+                    if not subtree.children:
+                        continue
+
+                    # only necessary if rf function is going to filter by support
+                    # value.  It slows downs the analysis, obviously, as it has to
+                    # find the support for each node in the treeko tree from the
+                    # original one.
+                    if min_support_source > 0:
+                        subtree_content = subtree.get_cached_content(store_attr='name')
+                        for n in subtree.traverse():
+                            if n.children:
+                                n.support = source_tree.get_common_ancestor(subtree_content[n]).support
+
+                    total_rf, max_rf, ncommon, valid_ref_edges, valid_src_edges, common_edges = _compare(subtree, ref_tree)
+
+                    all_rf.append(total_rf)
+                    all_max_rf.append(max_rf)
+                    tree_sizes.append(ncommon)
+
+                    if unrooted:
+                        ref_found_in_src = len(common_edges)/float(len(valid_ref_edges)) if valid_ref_edges else None
+                        src_found_in_ref = len(common_edges)/float(len(valid_src_edges)) if valid_src_edges else None
+                    else:
+                        # in rooted trees, we want to discount the root edge
+                        # from the percentage of congruence. Otherwise we will never see a 0%
+                        # congruence for totally different trees
+                        ref_found_in_src = (len(common_edges)-1)/float(len(valid_ref_edges)-1) if len(valid_ref_edges)>1 else None
+                        src_found_in_ref = (len(common_edges)-1)/float(len(valid_src_edges)-1) if len(valid_src_edges)>1 else None
+                        
+                    if ref_found_in_src is not None:
+                        ref_found.append(ref_found_in_src)
+                        
+                    if src_found_in_ref is not None:
+                        src_found.append(src_found_in_ref)
+
+                if all_rf:
+                    # Treeko speciation distance
+                    alld = [_safe_div(all_rf[i], float(all_max_rf[i])) for i in range(len(all_rf))]
+                    a = sum([alld[i] * tree_sizes[i] for i in range(len(all_rf))])
+                    b = float(sum(tree_sizes))
+                    treeko_d = a/b if a else 0.0
+                    result["treeko_dist"] = treeko_d
+
+                    result["rf"] = utils.mean(all_rf)
+                    result["max_rf"] = max(all_max_rf)
+                    result["effective_tree_size"] = utils.mean(tree_sizes)
+                    result["norm_rf"] = utils.mean([_safe_div(all_rf[i], float(all_max_rf[i])) for i in range(len(all_rf))])
+
+                    result["ref_edges_in_source"] = utils.mean(ref_found)
+                    result["source_edges_in_ref"] = utils.mean(src_found)
+                    
+                    result["source_subtrees"] = len(all_rf)
+                    result["common_edges"] = set()
+                    result["source_edges"] = set()
+                    result["ref_edges"] = set()
+        else:
+            total_rf, max_rf, ncommon, valid_ref_edges, valid_src_edges, common_edges = _compare(source_tree, ref_tree)
+
+            result["rf"] = float(total_rf) if max_rf else "NA"
+            result["max_rf"] = float(max_rf)
+            if unrooted:
+                result["ref_edges_in_source"] = len(common_edges)/float(len(valid_ref_edges)) if valid_ref_edges else "NA"
+                result["source_edges_in_ref"] = len(common_edges)/float(len(valid_src_edges)) if valid_src_edges else "NA"
+            else:
+                # in rooted trees, we want to discount the root edge from the
+                # percentage of congruence. Otherwise we will never see a 0%
+                # congruence for totally different trees
+                result["ref_edges_in_source"] = (len(common_edges)-1)/float(len(valid_ref_edges)-1) if len(valid_ref_edges)>1 else "NA"
+                result["source_edges_in_ref"] = (len(common_edges)-1)/float(len(valid_src_edges)-1) if len(valid_src_edges)>1 else "NA"
+
+            result["effective_tree_size"] = ncommon
+            result["norm_rf"] = total_rf/float(max_rf) if max_rf else "NA"
+            result["treeko_dist"] = "NA"
+            result["source_subtrees"] = 1
+            result["common_edges"] = common_edges
+            result["source_edges"] = valid_src_edges
+            result["ref_edges"] = valid_ref_edges
+        return result
+
+    def _diff(self, t2, output='topology', attr_t1='name', attr_t2='name', color=True):
+        """
+        .. versionadded:: 2.3
+
+        Show or return the difference between two tree topologies.
+
+        :param [raw|table|topology|diffs|diffs_tab] output: Output type
+
+        """
+        from ..tools import ete_diff
+        difftable = ete_diff.treediff(self, t2, attr1=attr_t1, attr2=attr_t2)
+        if output == "topology":
+            ete_diff.show_difftable_topo(difftable, attr_t1, attr_t2, usecolor=color)
+        elif output == "diffs":
+            ete_diff.show_difftable(difftable)
+        elif output == "diffs_tab":
+            ete_diff.show_difftable_tab(difftable)
+        elif output == 'table':
+            rf, rf_max, _, _, _, _, _ = self.robinson_foulds(t2, attr_t1=attr_t1, attr_t2=attr_t2)[:2]
+            ete_diff.show_difftable_summary(difftable, rf, rf_max)
+        else:
+            return difftable
+
+    def iter_edges(self, cached_content = None):
+        '''
+        .. versionadded:: 2.3
+
+        Iterate over the list of edges of a tree. Each egde is represented as a
+        tuple of two elements, each containing the list of nodes separated by
+        the edge.
+        '''
+
+        if not cached_content:
+            cached_content = self.get_cached_content()
+        all_leaves = cached_content[self]
+        for n, side1 in six.iteritems(cached_content):
+            yield (side1, all_leaves-side1)
+
+    def get_edges(self, cached_content = None):
+        '''
+        .. versionadded:: 2.3
+
+        Returns the list of edges of a tree. Each egde is represented as a
+        tuple of two elements, each containing the list of nodes separated by
+        the edge.
+        '''
+
+        return [edge for edge in self.iter_edges(cached_content)]
+
+    def standardize(self, delete_orphan=True, preserve_branch_length=True):
+        """
+        .. versionadded:: 2.3
+
+        process current tree structure to produce a standardized topology: nodes
+        with only one child are removed and multifurcations are automatically resolved.
+
+
+        """
+        self.resolve_polytomy()
+
+        for n in self.get_descendants():
+            if len(n.children) == 1:
+                n.delete(prevent_nondicotomic=True,
+                         preserve_branch_length=preserve_branch_length)
+
+
+    def get_topology_id(self, attr="name"):
+        '''
+        .. versionadded:: 2.3
+
+        Returns the unique ID representing the topology of the current tree. Two
+        trees with the same topology will produce the same id. If trees are
+        unrooted, make sure that the root node is not binary or use the
+        tree.unroot() function before generating the topology id.
+
+        This is useful to detect the number of unique topologies over a bunch of
+        trees, without requiring full distance methods.
+
+        The id is, by default, calculated based on the terminal node's names. Any
+        other node attribute could be used instead.
+
+
+        '''
+        edge_keys = []
+        for s1, s2 in self.get_edges():
+            k1 = sorted([getattr(e, attr) for e in s1])
+            k2 = sorted([getattr(e, attr) for e in s2])
+            edge_keys.append(sorted([k1, k2]))
+        return md5(str(sorted(edge_keys)).encode('utf-8')).hexdigest()
+
+    # def get_partitions(self):
+    #     """
+    #     .. versionadded: 2.1
+
+    #     It returns the set of all possible partitions under a
+    #     node. Note that current implementation is quite inefficient
+    #     when used in very large trees.
+
+    #     t = Tree("((a, b), e);")
+    #     partitions = t.get_partitions()
+
+    #     # Will return:
+    #     # a,b,e
+    #     # a,e
+    #     # b,e
+    #     # a,b
+    #     # e
+    #     # b
+    #     # a
+    #     """
+    #     all_leaves = frozenset(self.get_leaf_names())
+    #     all_partitions = set([all_leaves])
+    #     for n in self.iter_descendants():
+    #         p1 = frozenset(n.get_leaf_names())
+    #         p2 = frozenset(all_leaves - p1)
+    #         all_partitions.add(p1)
+    #         all_partitions.add(p2)
+    #     return all_partitions
+
+    def convert_to_ultrametric(self, tree_length=None, strategy='balanced'):
+        """
+        .. versionadded: 2.1
+
+        Converts a tree into ultrametric topology (all leaves must have
+        the same distance to root). Note that, for visual inspection
+        of ultrametric trees, node.img_style["size"] should be set to
+        0.
+        """
+
+        # Could something like this replace the old algorithm?
+        #most_distant_leaf, tree_length = self.get_farthest_leaf()
+        #for leaf in self:
+        #    d = leaf.get_distance(self)
+        #    leaf.dist += (tree_length - d)
+        #return
+
+
+
+        # pre-calculate how many splits remain under each node
+        node2max_depth = {}
+        for node in self.traverse("postorder"):
+            if not node.is_leaf():
+                max_depth = max([node2max_depth[c] for c in node.children]) + 1
+                node2max_depth[node] = max_depth
+            else:
+                node2max_depth[node] = 1
+        node2dist = {self: 0.0}
+        if not tree_length:
+            most_distant_leaf, tree_length = self.get_farthest_leaf()
+        else:
+            tree_length = float(tree_length)
+
+
+        step = tree_length / node2max_depth[self]
+        for node in self.iter_descendants("levelorder"):
+            if strategy == "balanced":
+                node.dist = (tree_length - node2dist[node.up]) / node2max_depth[node]
+                node2dist[node] =  node.dist + node2dist[node.up]
+            elif strategy == "fixed":
+                if not node.is_leaf():
+                    node.dist = step
+                else:
+                    node.dist = tree_length - ((node2dist[node.up]) * step)
+                node2dist[node] = node2dist[node.up] + 1
+            node.dist = node.dist
+
+    def check_monophyly(self, values, target_attr, ignore_missing=False,
+                        unrooted=False):
+        """
+        .. versionadded: 2.2
+
+        Returns True if a given target attribute is monophyletic under
+        this node for the provided set of values.
+
+        If not all values are represented in the current tree
+        structure, a ValueError exception will be raised to warn that
+        strict monophyly could never be reached (this behaviour can be
+        avoided by enabling the `ignore_missing` flag.
+
+        :param values: a set of values for which monophyly is
+            expected.
+
+        :param target_attr: node attribute being used to check
+            monophyly (i.e. species for species trees, names for gene
+            family trees, or any custom feature present in the tree).
+
+        :param False ignore_missing: Avoid raising an Exception when
+            missing attributes are found.
+
+
+        .. versionchanged: 2.3
+
+        :param False unrooted: If True, tree will be treated as unrooted, thus
+          allowing to find monophyly even when current outgroup is spliting a
+          monophyletic group.
+
+        :returns: the following tuple
+                  IsMonophyletic (boolean),
+                  clade type ('monophyletic', 'paraphyletic' or 'polyphyletic'),
+                  leaves breaking the monophyly (set)
+
+        """
+
+        if type(values) != set:
+            values = set(values)
+
+        # This is the only time I traverse the tree, then I use cached
+        # leaf content
+        n2leaves = self.get_cached_content()
+
+        # Raise an error if requested attribute values are not even present
+        if ignore_missing:
+            found_values = set([getattr(n, target_attr) for n in n2leaves[self]])
+            missing_values = values - found_values
+            values = values & found_values
+
+        # Locate leaves matching requested attribute values
+        targets = set([leaf for leaf in n2leaves[self]
+                   if getattr(leaf, target_attr) in values])
+        if not ignore_missing:
+            if values - set([getattr(leaf, target_attr) for leaf in targets]):
+                raise ValueError('The monophyly of the provided values could never be reached, as not all of them exist in the tree.'
+                                 ' Please check your target attribute and values, or set the ignore_missing flag to True')
+
+        if unrooted:
+            smallest = None
+            for side1, side2 in self.iter_edges(cached_content=n2leaves):
+                if targets.issubset(side1) and (not smallest or len(side1) < len(smallest)):
+                    smallest = side1
+                elif targets.issubset(side2) and (not smallest or len(side2) < len(smallest)):
+                        smallest = side2
+                if smallest is not None and len(smallest) == len(targets):
+                    break
+            foreign_leaves = smallest - targets
+        else:
+            # Check monophyly with get_common_ancestor. Note that this
+            # step does not require traversing the tree again because
+            # targets are node instances instead of node names, and
+            # get_common_ancestor function is smart enough to detect it
+            # and avoid unnecessary traversing.
+            common = self.get_common_ancestor(targets)
+            observed = n2leaves[common]
+            foreign_leaves = set([leaf for leaf in observed
+                              if getattr(leaf, target_attr) not in values])
+
+        if not foreign_leaves:
+            return True, "monophyletic", foreign_leaves
+        else:
+            # if the requested attribute is not monophyletic in this
+            # node, let's differentiate between poly and paraphyly.
+            poly_common = self.get_common_ancestor(foreign_leaves)
+            # if the common ancestor of all foreign leaves is self
+            # contained, we have a paraphyly. Otherwise, polyphyly.
+            polyphyletic = [leaf for leaf in poly_common if
+                            getattr(leaf, target_attr) in values]
+            if polyphyletic:
+                return False, "polyphyletic", foreign_leaves
+            else:
+                return False, "paraphyletic", foreign_leaves
+
+    def get_monophyletic(self, values, target_attr):
+        """
+        .. versionadded:: 2.2
+
+        Returns a list of nodes matching the provided monophyly
+        criteria. For a node to be considered a match, all
+        `target_attr` values within and node, and exclusively them,
+        should be grouped.
+
+        :param values: a set of values for which monophyly is
+            expected.
+
+        :param target_attr: node attribute being used to check
+            monophyly (i.e. species for species trees, names for gene
+            family trees).
+
+        """
+
+        if type(values) != set:
+            values = set(values)
+
+        n2values = self.get_cached_content(store_attr=target_attr)
+
+        is_monophyletic = lambda node: n2values[node] == values
+        for match in self.iter_leaves(is_leaf_fn=is_monophyletic):
+            if is_monophyletic(match):
+                yield match
+
+    def expand_polytomies(self, map_attr="name", polytomy_size_limit=5,
+                          skip_large_polytomies=False):
+        '''
+        .. versionadded:: 2.3
+
+        Given a tree with one or more polytomies, this functions returns the
+        list of all trees (in newick format) resulting from the combination of
+        all possible solutions of the multifurcated nodes.
+
+        .. warning:
+
+           Please note that the number of of possible binary trees grows
+           exponentially with the number and size of polytomies. Using this
+           function with large multifurcations is not feasible:
+
+           polytomy size: 3 number of binary trees: 3
+           polytomy size: 4 number of binary trees: 15
+           polytomy size: 5 number of binary trees: 105
+           polytomy size: 6 number of binary trees: 945
+           polytomy size: 7 number of binary trees: 10395
+           polytomy size: 8 number of binary trees: 135135
+           polytomy size: 9 number of binary trees: 2027025
+
+        http://ajmonline.org/2010/darwin.php
+        '''
+
+        class TipTuple(tuple):
+            pass
+
+        def add_leaf(tree, label):
+          yield (label, tree)
+          if not isinstance(tree, TipTuple) and isinstance(tree, tuple):
+            for left in add_leaf(tree[0], label):
+              yield (left, tree[1])
+            for right in add_leaf(tree[1], label):
+              yield (tree[0], right)
+
+        def enum_unordered(labels):
+          if len(labels) == 1:
+            yield labels[0]
+          else:
+            for tree in enum_unordered(labels[1:]):
+              for new_tree in add_leaf(tree, labels[0]):
+                yield new_tree
+
+        n2subtrees = {}
+        for n in self.traverse("postorder"):
+            if n.is_leaf():
+                subtrees = [getattr(n, map_attr)]
+            else:
+                subtrees = []
+                if len(n.children) > polytomy_size_limit:
+                    if skip_large_polytomies:
+                        for childtrees in itertools.product(*[n2subtrees[ch] for ch in n.children]):
+                            subtrees.append(TipTuple(childtrees))
+                    else:
+                        raise TreeError("Found polytomy larger than current limit: %s" %n)
+                else:
+                    for childtrees in itertools.product(*[n2subtrees[ch] for ch in n.children]):
+                        subtrees.extend([TipTuple(subtree) for subtree in enum_unordered(childtrees)])
+
+            n2subtrees[n] = subtrees
+        return ["%s;"%str(nw) for nw in n2subtrees[self]] # tuples are in newick format ^_^
+
+    def resolve_polytomy(self, default_dist=0.0, default_support=0.0,
+                         recursive=True):
+        """
+        .. versionadded: 2.2
+
+        Resolve all polytomies under current node by creating an
+        arbitrary dicotomic structure among the affected nodes. This
+        function randomly modifies current tree topology and should
+        only be used for compatibility reasons (i.e. programs
+        rejecting multifurcated node in the newick representation).
+
+        :param 0.0 default_dist: artificial branch distance of new
+            nodes.
+
+        :param 0.0 default_support: artificial branch support of new
+            nodes.
+
+        :param True recursive: Resolve any polytomy under this
+             node. When False, only current node will be checked and fixed.
+        """
+
+
+        def _resolve(node):
+            if len(node.children) > 2:
+                children = list(node.children)
+                node.children = []
+                next_node = root = node
+                for i in range(len(children)-2):
+                    next_node = next_node.add_child()
+                    next_node.dist = default_dist
+                    next_node.support = default_support
+
+                next_node = root
+                for ch in children:
+                    next_node.add_child(ch)
+                    if ch != children[-2]:
+                        next_node = next_node.children[0]
+        target = [self]
+        if recursive:
+            target.extend([n for n in self.get_descendants()])
+        for n in target:
+            _resolve(n)
+
+
+    def add_face(self, face, column, position="branch-right"):
+        """
+        .. versionadded: 2.1
+
+        Add a fixed face to the node.  This type of faces will be
+        always attached to nodes, independently of the layout
+        function.
+
+        :argument face: a Face or inherited instance
+        :argument column: An integer number starting from 0
+        :argument "branch-right" position: Posible values are:
+          "branch-right", "branch-top", "branch-bottom", "float",
+          "aligned"
+        """
+
+        if not hasattr(self, "_faces"):
+            self._faces = _FaceAreas()
+
+        if position not in FACE_POSITIONS:
+            raise ValueError("face position not in %s" %FACE_POSITIONS)
+
+        if isinstance(face, Face):
+            getattr(self._faces, position).add_face(face, column=column)
+        else:
+            raise ValueError("not a Face instance")
+
+    def set_style(self, node_style):
+        """
+        .. versionadded: 2.1
+
+        Set 'node_style' as the fixed style for the current node.
+        """
+        if TREEVIEW:
+            if node_style is None:
+                node_style = NodeStyle()
+            if type(node_style) is NodeStyle:
+                self._img_style = node_style
+        else:
+            raise ValueError("Treeview module is disabled")
+
+    @staticmethod
+    def from_parent_child_table(parent_child_table):
+        """Converts a parent-child table into an ETE Tree instance. 
+        
+        :argument parent_child_table: a list of tuples containing parent-child
+           relationsships. For example: [("A", "B", 0.1), ("A", "C", 0.2), ("C",
+           "D", 1), ("C", "E", 1.5)]. Where each tuple represents: [parent, child,
+           child-parent-dist]
+        
+        :returns: A new Tree instance 
+
+        :example:
+
+        >>> tree = Tree.from_parent_child_table([("A", "B", 0.1), ("A", "C", 0.2), ("C", "D", 1), ("C", "E", 1.5)])
+        >>> print tree
+
+        """
+
+        
+        def get_node(nodename, dist=None):
+            if nodename not in nodes_by_name:
+                nodes_by_name[nodename] = Tree(name=nodename, dist=dist)
+            node = nodes_by_name[nodename]
+            if dist is not None:
+                node.dist = dist
+            node.name = nodename
+            return nodes_by_name[nodename]
+    
+        nodes_by_name = {}
+        for columns in parent_child_table:
+            if len(columns) == 3:
+                parent_name, child_name, distance = columns
+                dist = float(distance)
+            else:
+                parent_name, child_name = columns
+                dist = None
+            parent = get_node(parent_name)
+            parent.add_child(get_node(child_name, dist=dist))
+    
+        root = parent.get_tree_root()
+        return root
+        
+    @staticmethod
+    def from_skbio(skbio_tree, map_attributes=None):
+        """Converts a scikit-bio TreeNode object into ETE Tree object. 
+        
+        :argument skbio_tree: a scikit bio TreeNode instance 
+
+        :argument None map_attributes: A list of attribute nanes in the
+           scikit-bio tree that should be mapped into the ETE tree
+           instance. (name, id and branch length are always mapped)
+
+        :returns: A new Tree instance 
+
+        :example:
+
+        >>> tree = Tree.from_skibio(skbioTree, map_attributes=["value"])
+        
+        """        
+        from skbio import TreeNode as skbioTreeNode
+        
+        def get_ete_node(skbio_node):
+            ete_node = all_nodes.get(skbio_node, Tree())
+            if skbio_node.length is not None:
+                ete_node.dist = float(skbio_node.length)
+            ete_node.name = skbio_node.name            
+            ete_node.add_features(id=skbio_node.id)
+            if map_attributes:
+                for a in map_attributes:
+                    ete_node.add_feature(a, getattr(skbio_node, a, None))
+            return ete_node
+        
+        all_nodes = {}
+        if isinstance(skbio_tree, skbioTreeNode):
+            for node in skbio_tree.preorder(include_self=True):
+                all_nodes[node] = get_ete_node(node)
+                ete_node = all_nodes[node]
+                for ch in node.children:
+                    ete_ch = get_ete_node(ch)
+                    ete_node.add_child(ete_ch)
+                    all_nodes[ch] = ete_ch
+            return ete_ch.get_tree_root()
+        
+    def phonehome(self):
+        from .. import _ph
+        _ph.call()
+        
+
+def _translate_nodes(root, *nodes):
+    name2node = dict([ [n, None] for n in nodes if type(n) is str])
+    for n in root.traverse():
+        if n.name in name2node:
+            if name2node[n.name] is not None:
+                raise TreeError("Ambiguous node name: "+str(n.name))
+            else:
+                name2node[n.name] = n
+
+    if None in list(name2node.values()):
+        notfound = [key for key, value in six.iteritems(name2node) if value is None]
+        raise ValueError("Node names not found: "+str(notfound))
+
+    valid_nodes = []
+    for n in nodes:
+        if type(n) is not str:
+            if type(n) is not root.__class__ :
+                raise TreeError("Invalid target node: "+str(n))
+            else:
+                valid_nodes.append(n)
+
+    valid_nodes.extend(list(name2node.values()))
+    if len(valid_nodes) == 1:
+        return valid_nodes[0]
+    else:
+        return valid_nodes
+
+# Alias
+#: .. currentmodule:: ete3
+Tree = TreeNode
+
+
+
+
+
diff --git a/ete3/evol/__init__.py b/ete3/evol/__init__.py
new file mode 100644
index 0000000..7c2a5cb
--- /dev/null
+++ b/ete3/evol/__init__.py
@@ -0,0 +1,59 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+06 Nov 2010
+
+init of evol plugin
+"""
+from __future__ import absolute_import
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+from .parser.codemlparser import *
+from .evoltree            import *
+from .model               import Model
+__all__ = evoltree.__all__
+
+
+
diff --git a/ete3/evol/control.py b/ete3/evol/control.py
new file mode 100644
index 0000000..d67a468
--- /dev/null
+++ b/ete3/evol/control.py
@@ -0,0 +1,313 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+Parameters for running codeml
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+PARAMS = {
+    'seqfile'      : 'algn',
+    'treefile'     : 'tree',
+    'outfile'      : 'out',
+    'noisy'        : 0,
+    'verbose'      : 2,
+    'runmode'      : 0,
+    'seqtype'      : 1,
+    'CodonFreq'    : 2,
+    'clock'        : 0,
+    'aaDist'       : 0,
+    'model'        : 0,
+    'NSsites'      : 2,
+    'icode'        : 0,
+    'Mgene'        : 0,
+    'fix_kappa'    : 0,
+    'kappa'        : 2,
+    'ndata'        : '*10',
+    'fix_omega'    : 0,
+    'omega'        : 0.7,
+    'fix_alpha'    : 1,
+    'alpha'        : 0.,  # if 0 -> infinity
+    'Malpha'       : 0,
+    'ncatG'        : 8,
+    'getSE'        : 0,
+    'RateAncestor' : 0,
+    'fix_blength'  : 0,
+    'Small_Diff'   : '1e-6',
+    'cleandata'    : 0,
+    'method'       : 0
+    }
+
+
+PARAMS_DESCRIPTION = {
+    'CodonFreq'    : '0:1/61 each, 1:F1X4, 2:F3X4, 3:codon table. The equilibrium codon frequencies in codon substitution model. Can be assumed to be equal (1/61 each for the standard genetic code, CodonFreq = 0), calculated from the average nucleotide frequencies (CodonFreq = 1), from the average nucleotide frequencies at the three codon positions (CodonFreq = 2), or used as free parameters (CodonFreq = 3). The number of parameters involved in those models of codon frequencies is 0, 3,  [...]
+    'aaDist'       : '0:equal, +:geometric; -:linear, 1-6:G1974,Miyata,c,p,v,a 7:AAClasses. Specifies whether equal amino acid distances are assumed (= 0) or Grantham\'s matrix is used (= 1) (Yang et al. 1998).',
+    'alpha'        : 'initial or fixed alpha, 0:infinity (constant rate). For codon models, the pair fix_alpha and alpha specify the model of gamma rates for sites, in which the relative rate for a site varies among codons according to the gamma distribution, but the omega ratio stays the same over all sites.',
+    'cleandata'    : '1 means sites involving ambiguity characters (undetermined nucleotides such as N, ?, W, R, Y, etc. anything other than the four nucleotides) or alignment gaps are removed from all sequences. This leads to faster calculation. cleaddata = 0 (default) uses those sites',
+    'clock'        : '0:no clock, 1:clock; 2:local clock. Specifies models concerning rate constancy or variation among lineages. clock = 0 means no clock and rates are entirely free to vary from branch to branch. An unrooted tree should be used under this model. clock = 1 means the global clock, and all branches have the same rate. The option clock = 3 is for combined analysis of multiple-gene or multiple-partition data, allowing the branch rates to vary in different ways among the data [...]
+    'fix_alpha'    : '0: estimate gamma shape parameter; 1: fix it at alpha. For codon models, the pair fix_alpha and alpha specify the model of gamma rates for sites, in which the relative rate for a site varies among codons according to the gamma distribution, but the omega ratio stays the same over all sites.',
+    'fix_blength'  : '0: ignore, -1: random, 1: initial, 2: fixed. This tells the program what to do if the tree has branch lengths. Use 0 if you want to ignore the branch lengths. Use -1 if you want the program to start from random starting points. This might be useful if there are multiple local optima. Use 1 if you want to use the branch lengths as initial values for the ML iteration. Use 2 if you want the branch lengths to be fixed at those given in the tree file (rather than estimat [...]
+    'fix_kappa'    : '1: kappa fixed, 0: kappa to be estimated. Specifies whether kappa in K80, F84, or HKY85 is given at a fixed value or is to be estimated by iteration from the data. If fix_kappa = 1, the value of another variable, kappa , is the given value, and otherwise the value of kappa is used as the initial estimate for iteration. The variables fix_kappa and kappa have no effect with JC69 or F81 which does not involve such a parameter, or with TN93 and REV which have two and fi [...]
+    'fix_omega'    : '1: omega or omega_1 fixed, 0: estimate',
+    'getSE'        : '0: don\'t want them, 1: want S.E.s of estimates. Tells whether we want estimates of the standard errors of estimated parameters.',
+    'icode'        : 'specifies the genetic code. Eleven genetic code tables are implemented using icode = 0 to 10 corresponding to transl_table 1 to 11 in GenBank. These are 0 for the universal code; 1 for the mammalian mitochondrial code; 3 for mold mt., 4 for invertebrate mt.; 5 for ciliate nuclear code; 6 for echinoderm mt.; 7 for euplotid mt.; 8 for alternative yeast nuclear; 9 for ascidian mt.; and 10 for blepharisma nuclear. There is also an additional code, called Yang\'s regular [...]
+    'kappa'        : '0: estimate gamma shape parameter; 1: fix it at alpha. Initial or fixed kappa',
+    'Malpha'       : 'different alphas for genes. Specifies whether one gamma distribution will be applied across all sites (Malpha = 0) or a different gamma distribution is used for each gene (or codon position).',
+    'method'       : '0: simultaneous; 1: one branch at a time. This variable controls the iteration algorithm for estimating branch lengths under a model of no clock. method = 0 implements the old algorithm in PAML, which updates all parameters including branch lengths simultaneously. method = 1 specifies an algorithm newly implemented in PAML, which updates branch lengths one by one. method = 1 does not work under the clock models (clock = 1, 2, 3).',
+    'Mgene'        : '0:rates, 1:separate. In combination with option G in the sequence data file, specifies partition models (Yang and Swanson 2002)',
+    'model'        : 'specifies the branch models (Yang 1998; Yang and Nielsen 1998). model = 0 means one omega ratio for all branches; 1 means one ratio for each branch (the free-ratio model); and 2 means an arbitrary number of ratios (such as the 2-ratios or 3-ratios models). When model = 2, you have to group branches on the tree into branch groups using the symbols # or $ in the tree. With model = 2, the variable fix_omega fixes the last omega ratio ( omega(k-1) if you have k ratios i [...]
+    'ncatG'        : 'is then the number of categories for the discrete-gamma model ( baseml ). Values such as 5, 4, 8, or 10 are reasonable. Note that the discrete gamma model has one parameter (alpha), like the continuous gamma model, and the number of categories is not a parameter.',
+    'ndata'        : 'specifies the number of separate data sets in the file.',
+    'noisy'        : '0,1,2,3,9: how much rubbish on the screen.',
+    'NSsites'      : '0:one w; 1:neutral; 2:selection; 3:discrete; 4:freqs; 5:gamma; 6:2gamma; 7:beta; 8:beta&w; 9:betaγ 10:beta&gamma+1; 11:beta&normal>1; 12:0&2normal>1; 13:3normal>0. Specifies the site models, with NSsites = m corresponds to model Mm in Yang et al. (2000b). The variable ncatG is used to specify the number of categories in the omega distribution under some models. In Yang et al. (2000b), this is 3 for M3 (discrete), 5 for M4 (freq), 10 for the continuous distribu [...]
+    'omega'        : 'initial or fixed omega, for codons or codon-based AAs',
+    'outfile'      : 'specifies the names of the sequence data file, main result file, and the tree structure file, respectively. You should not have spaces inside a file name. In general try to avoid special characters in a file name as they might have special meanings under the OS.',
+    'RateAncestor' : 'Usually use 0. The value 1 forces the program to do two additional analyses, which you can ignore if you don\'t need the results. First under a model of variable rates across sites such as the gamma, RateAncestor = 1 forces the program to calculate rates for individual sites along the sequence (output in the file rates ), using the empirical Bayes procedure (Yang and Wang 1995).',
+    'runmode'      : '0: user tree; 1: semi-automatic; 2: automatic 3: StepwiseAddition; (4,5):PerturbationNNI; -2: pairwise.',
+    'seqfile'      : 'specifies the names of the sequence data file, main result file, and the tree structure file, respectively. You should not have spaces inside a file name. In general try to avoid special characters in a file name as they might have special meanings under the OS.',
+    'seqtype'      : '1:codons; 2:AAs; 3:codons-->AAs',
+    'Small_Diff'   : 'is a small value used in the difference approximation of derivatives. Use a value between 1e-8 and 1e-5 and check that the results are not sensitive to the value used.',
+    'treefile'     : 'specifies the names of the sequence data file, main result file, and the tree structure file, respectively. You should not have spaces inside a file name. In general try to avoid special characters in a file name as they might have special meanings under the OS.',
+    'verbose'      : '1: detailed output, 0: concise output',
+    }
+
+AVAIL = {
+    'XX'    :  {'typ': 'Unknown'       , 'evol': 'User defined',
+                'exec': 'codeml',
+                'allow_mark': True,
+                'changes': []},
+    'M0'    :  {'typ': 'null'       , 'evol': 'negative-selection',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 0),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M1'    :  {'typ': 'site'       , 'evol': 'relaxation',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 1),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M2'    :  {'typ': 'site'       , 'evol': 'positive-selection',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 2),
+                            ('omega'       , 1.7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M3'    :  {'typ': 'site'       , 'evol': 'discrete',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 3),
+                            ('omega'       , .7),
+                            ('ncatG'       , 3),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M4'    :  {'typ': 'site'       , 'evol': 'frequencies',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 4),
+                            ('omega'       , .7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M5'    :  {'typ': 'site'       , 'evol': 'gamma',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 5),
+                            ('omega'       , .7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M6'    :  {'typ': 'site'       , 'evol': '2 gamma',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 5),
+                            ('omega'       , .7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M7'    :  {'typ': 'site'       , 'evol': 'relaxation',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M8a'   :  {'typ': 'site'       , 'evol': 'relaxation',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 8),
+                            ('fix_omega'   , 1),
+                            ('omega'       , 1),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M8'    :  {'typ': 'site'       , 'evol': 'positive-selection',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 8),
+                            ('omega'       , 1.7),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M9'    :  {'typ': 'site'       , 'evol': 'beta and gamma',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 9),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M10'   :  {'typ': 'site'       , 'evol': 'beta and gamma + 1',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 10),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M11'   :  {'typ': 'site'       , 'evol': 'beta and normal > 1',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 11),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M12'   :  {'typ': 'site'       , 'evol': '0 and 2 normal > 2',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 12),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'M13'   :  {'typ': 'site'       , 'evol': '3 normal > 0',
+                'exec': 'codeml',
+                'allow_mark': False,
+                'changes': [('NSsites'     , 13),
+                            ('alpha'       , '*'),
+                            ('method'      , '*'),
+                            ('Malpha'      , '*'),
+                            ('fix_alpha'   , '*')]},
+    'fb'    :  {'typ': 'branch'     , 'evol': 'free-ratios',
+                'exec': 'codeml',
+                'allow_mark': False ,
+                'changes': [('model'       , 1),
+                            ('NSsites'     , 0)]},
+    'fb_anc':  {'typ': 'branch_ancestor'   , 'evol': 'free-ratios',
+                'exec': 'codeml',
+                'allow_mark': False ,
+                'changes': [('model'       , 1),
+                            ('RateAncestor', 1),
+                            ('NSsites'     , 0)]},
+    'b_free':  {'typ': 'branch'     , 'evol': 'positive-selection',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 2),
+                            ('NSsites'     , 0)]},
+    'b_neut':  {'typ': 'branch'     , 'evol': 'relaxation',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 2),
+                            ('NSsites'     , 0),
+                            ('fix_omega'   , 1),
+                            ('omega'       , 1)]},
+    'bsA1'  :  {'typ': 'branch-site', 'evol': 'relaxation',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 2),
+                            ('NSsites'     , 2),
+                            ('fix_omega'   , 1),
+                            ('omega'       , 1),
+                            ('ncatG'       , '*')]},
+    'bsA'   :  {'typ': 'branch-site', 'evol': 'positive-selection',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 2),
+                            ('NSsites'     , 2),
+                            ('omega'       , 1.7),
+                            ('ncatG'       , '*')]},
+    'bsB'   :  {'typ': 'branch-site', 'evol': 'positive-selection',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 2),
+                            ('NSsites'     , 3),
+                            ('omega'       , 1.7),
+                            ('ncatG'       , '*')]},
+    'bsC'   :  {'typ': 'branch-site', 'evol': 'different-ratios',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 3),
+                            ('NSsites'     , 2),
+                            ('ncatG'       , 3)]},
+    'bsD'   :  {'typ': 'branch-site', 'evol': 'different-ratios',
+                'exec': 'codeml',
+                'allow_mark': True ,
+                'changes': [('model'       , 3),
+                            ('NSsites'     , 3),
+                            ('ncatG'       , 3)]},
+    'SLR'   :  {'typ' : 'site', 'evol': 'positive/negative selection',
+                'exec': 'Slr',
+                'sep' : '= ',
+                'allow_mark': False ,
+                'changes': [(x[0], '*') for x in [x for x in list(PARAMS.items()) if 'file' not in x[0]]] + \
+                [('positive_only', '0')]}
+    }
+
diff --git a/ete3/evol/evoltree.py b/ete3/evol/evoltree.py
new file mode 100644
index 0000000..28b5011
--- /dev/null
+++ b/ete3/evol/evoltree.py
@@ -0,0 +1,552 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+this module defines the EvolNode dataytype to manage evolutionary
+variables and integrate them within phylogenetic trees. It inheritates
+the coretype PhyloNode and add some speciall features to the the node
+instances.
+"""
+from __future__ import absolute_import
+from six.moves import map
+
+__author__     = "Francois-Jose Serra"
+__email__      = "francois at barrabin.org"
+__licence__    = "GPLv3"
+__version__    = "0.0"
+__references__ = '''
+Yang, Z., Nielsen, R., Goldman, N., & Pedersen, A. M. 2000.
+    Codon-substitution models for heterogeneous selection pressure at amino acid sites.
+    Genetics 155: 431-49.
+    Retrieved from http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1461088&tool=pmcentrez&rendertype=abstract
+Yang, Z., & Nielsen, R. 2002.
+    Codon-substitution models for detecting molecular adaptation at individual sites along specific lineages.
+    Molecular biology and evolution 19: 908-17.
+    Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/12032247
+Bielawski, J. P., & Yang, Z. 2004.
+    A maximum likelihood method for detecting functional divergence at individual codon sites, with application to gene family evolution.
+    Journal of molecular evolution 59: 121-32.
+    Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/15383915
+Zhang, J., Nielsen, R., & Yang, Z. 2005.
+    Evaluation of an improved branch-site likelihood method for detecting positive selection at the molecular level.
+    Molecular biology and evolution 22: 2472-9.
+    Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/16107592
+Yang, Z. 2007.
+    PAML 4: phylogenetic analysis by maximum likelihood.
+    Molecular biology and evolution 24: 1586-91.
+    Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/17483113
+'''
+
+import os
+from warnings import warn
+
+from .. import PhyloNode, SeqGroup
+from ..parser.newick import write_newick
+from .model import Model, PARAMS, AVAIL
+from .utils import translate, chi_high
+
+try:
+    from ..treeview import TreeStyle
+except ImportError:
+    TREEVIEW = False
+else:
+    TREEVIEW = True
+
+__all__ = ["EvolNode", "EvolTree"]
+
+def _parse_species(name):
+    '''
+    just to return specie name from fasta description
+    '''
+    return name[:3]
+
+class EvolNode(PhyloNode):
+    """ Re-implementation of the standart TreeNode instance. It adds
+    attributes and methods to work with phylogentic trees.
+
+    :argument newick: path to tree in newick format, can also be a string
+    :argument alignment: path to alignment, can also be a string.
+    :argument fasta alg_format: alignment format.
+    :argument sp_naming_function: function to infer species name.
+    :argument format: type of newick format
+    :argument binpath: path to binaries, in case codeml or SLR are not in global path.
+
+    """
+
+    def __init__(self, newick=None, alignment=None, alg_format="fasta",
+                 sp_naming_function=_parse_species, format=0,
+                  binpath='', **kwargs):
+        '''
+        freebranch: path to find codeml output of freebranch model.
+        '''
+        # _update names?
+        self.workdir = '/tmp/ete3-tmp/'
+        self.execpath = binpath
+        self._models = {}
+        self.__gui_mark_mode = False
+
+        PhyloNode.__init__(self, newick=newick, format=format,
+                           sp_naming_function=sp_naming_function, **kwargs)
+
+        if newick:
+            self._label_as_paml()
+        # initialize node marks
+        self.mark_tree([])
+
+    def _set_mark_mode(self, val):
+        self.__gui_mark_mode = val
+
+    def _is_mark_mode(self):
+        return self.__gui_mark_mode
+
+    def _label_internal_nodes(self, nid=None):
+        """
+        nid needs to be a list in order to keep count through recursivity
+        """
+        for node in self.get_children():
+            if node.is_leaf():
+                continue
+            nid[0] += 1
+            node.add_feature('node_id', nid[0])
+            node._label_internal_nodes(nid)
+
+    def _label_as_paml(self):
+        '''
+        to label tree as paml, nearly walking man over the tree algorithm
+        WARNING: sorted names in same order that sequence
+        WARNING: depends on tree topology conformation, not the same after a swap
+        activates the function get_descendants_by_pamlid
+        '''
+        nid = 1
+        # check we do not have dupplicated names in tree
+        if (len(self)) != len(set(self.get_leaf_names())):
+            duplis = [n for n in self.get_leaf_names() if self.get_leaf_names().count(n)>1]
+            raise Exception('EvolTree require unique names for leaves', duplis)
+        # put ids
+        for leaf in sorted(self, key=lambda x: x.name):
+            leaf.add_feature ('node_id', nid)
+            nid += 1
+        self.add_feature('node_id', nid)
+        self._label_internal_nodes([nid])
+
+    def get_descendant_by_node_id(self, idname):
+        '''
+        returns node list corresponding to a given idname
+        '''
+        try:
+            for n in self.iter_descendants():
+                if n.node_id == idname:
+                    return n
+            if self.node_id == idname:
+                return self
+        except AttributeError:
+            warn('Should be first labelled as paml ' + \
+                 '(automatically done when alignemnt is loaded)')
+
+    def _write_algn(self, fullpath):
+        """
+        to write algn in paml format
+        """
+        seq_group = SeqGroup()
+        for n in self:
+            seq_group.id2seq  [n.node_id] = n.nt_sequence
+            seq_group.id2name [n.node_id] = n.name
+            seq_group.name2id [n.name   ] = n.node_id
+        seq_group.write(outfile=fullpath, format='paml')
+
+
+    def run_model(self, model_name, ctrl_string='', keep=True, **kwargs):
+        '''
+        To compute evolutionnary models.     e.g.: b_free_lala.vs.lele, will launch one free branch model, and store
+        it in "WORK_DIR/b_free_lala.vs.lele" directory
+
+        WARNING: this functionality needs to create a working directory in "rep"
+
+        WARNING: you need to have codeml and/or SLR in your path
+
+        The models available are:
+
+        =========== ============================= ==================
+        Model name  Description                   Model kind
+        =========== ============================= ==================\n%s
+        =========== ============================= ==================\n
+
+        :argument model_name: a string like "model-name[.some-secondary-name]" (e.g.: "fb.my_first_try", or just "fb")
+                              * model-name is compulsory, is the name of the model (see table above for the full list)
+                              * the second part is accessory, it is to avoid over-writing models with the same name.
+        :argument ctrl_string: list of parameters that can be used as control file.
+        :argument kwargs: extra parameters should be one of: %s.
+        '''
+        from subprocess import Popen, PIPE
+        model_obj = Model(model_name, self, **kwargs)
+        fullpath = os.path.join (self.workdir, model_obj.name)
+        os.system("mkdir -p %s" %fullpath)
+        # write tree file
+        self._write_algn(fullpath + '/algn')
+        if model_obj.properties['exec'] == 'Slr':
+            self.write(outfile=fullpath+'/tree', format = (11))
+        else:
+            self.write(outfile=fullpath+'/tree',
+                       format = (10 if model_obj.properties['allow_mark'] else 9))
+        # write algn file
+        ## MODEL MODEL MDE
+        if ctrl_string == '':
+            ctrl_string = model_obj.get_ctrl_string(fullpath+'/tmp.ctl')
+        else:
+            open(fullpath+'/tmp.ctl', 'w').write(ctrl_string)
+        hlddir = os.getcwd()
+        os.chdir(fullpath)
+        bin = os.path.join(self.execpath, model_obj.properties['exec'])
+        try:
+            proc = Popen([bin, 'tmp.ctl'], stdout=PIPE, stdin=PIPE)
+            proc.stdin.write('\n') # in case codeml/slr asks something
+        except OSError:
+            raise Exception(('ERROR: {} not installed, ' +
+                             'or wrong path to binary\n').format(bin))
+        run, err = proc.communicate()
+        if err is not None:
+            warn("ERROR: codeml not found!!!\n" +
+                 "       define your variable EvolTree.execpath")
+            return 1
+        if b'error' in run or b'Error' in run:
+            warn("ERROR: inside codeml!!\n" + run)
+            return 1
+        os.chdir(hlddir)
+        if keep:
+            setattr(model_obj, 'run', run)
+            self.link_to_evol_model(os.path.join(fullpath,'out'), model_obj)
+    sep = '\n'
+    run_model.__doc__ = run_model.__doc__ % \
+                        (sep.join(['          %-8s   %-27s   %-15s  ' % \
+                                      ('%s' % (x), AVAIL[x]['evol'], AVAIL[x]['typ']) for x in sorted (sorted (AVAIL.keys()), key=lambda x: \
+                                              AVAIL[x]['typ'],
+                                              reverse=True)]),
+                         ', '.join(list(PARAMS.keys())))
+
+
+    #def test_codon_model(self):
+    #    for c_frq in range(4):
+    #        self.run_model('M0.model_test-'+str(c_frq), CodonFreq=c_frq)
+    #    if self.get_most_likely('M0.model_test-1', 'M0.model_test-0') > 0.05:
+    #
+    #    self.get_most_likely('M0.model_test-2', 'M0.model_test-0')
+    #    self.get_most_likely('M0.model_test-3', 'M0.model_test-0')
+    #    self.get_most_likely('M0.model_test-2', 'M0.model_test-1')
+    #    self.get_most_likely('M0.model_test-3', 'M0.model_test-1')
+    #    self.get_most_likely('M0.model_test-3', 'M0.model_test-2')
+
+    def link_to_alignment(self, alignment, alg_format="paml",
+                           nucleotides=True, **kwargs):
+        '''
+        same function as for phyloTree, but translate sequences if nucleotides
+        nucleotidic sequence is kept under node.nt_sequence
+
+        :argument alignment: path to alignment or string
+        :argument alg_format: one of fasta phylip or paml
+        :argument True alignment: set to False in case we want to keep it untranslated
+
+        '''
+        super(EvolTree, self).link_to_alignment(alignment,
+                                                alg_format=alg_format, **kwargs)
+        check_len = 0
+        for leaf in self.iter_leaves():
+            seq_len = len(str(leaf.sequence))
+            if check_len and check_len != seq_len:
+                warn('WARNING: sequences with different lengths found!')
+            check_len = seq_len
+            leaf.nt_sequence = str(leaf.sequence)
+            if nucleotides:
+                leaf.sequence = translate(leaf.nt_sequence)
+
+    def show(self, layout=None, tree_style=None, histfaces=None):
+        '''
+        call super show of PhyloTree
+        histface should be a list of models to be displayes as histfaces
+
+        :argument layout: a layout function
+        :argument None tree_style: tree_style object
+        :argument Nonehistface: an histogram face function. This is only to plot selective pressure among sites
+
+        '''
+        if TREEVIEW:
+            if not tree_style:
+                ts = TreeStyle()
+            else:
+                ts = tree_style
+            if histfaces:
+                for hist in histfaces:
+                    try:
+                        mdl = self.get_evol_model(hist)
+                    except AttributeError:
+                        warn('model %s not computed' % (hist))
+                    if not 'histface' in mdl.properties:
+                        if len(histfaces)>1 and histfaces.index(hist)!=0:
+                            mdl.set_histface(up=False)
+                        else:
+                            mdl.set_histface()
+                    if mdl.properties ['histface'].up:
+                        ts.aligned_header.add_face(
+                            mdl.properties['histface'], 1)
+                    else:
+                        ts.aligned_foot.add_face(
+                            mdl.properties['histface'], 1)
+            super(EvolTree, self).show(layout=layout, tree_style=ts)
+        else:
+            raise ValueError("Treeview module is disabled")
+
+
+    def render(self, file_name, layout=None, w=None, h=None,
+               tree_style=None, header=None, histfaces=None):
+        '''
+        call super show adding up and down faces
+
+        :argument layout: a layout function
+        :argument None tree_style: tree_style object
+        :argument Nonehistface: an histogram face function. This is only to plot selective pressure among sites
+
+        '''
+        if TREEVIEW:
+            if not tree_style:
+                ts = TreeStyle()
+            else:
+                ts = tree_style
+            if histfaces:
+                for hist in histfaces:
+                    try:
+                        mdl = self.get_evol_model(hist)
+                    except AttributeError:
+                        warn('model %s not computed' % (hist))
+                    if not 'histface' in mdl.properties:
+                        if len(histfaces)>1 and histfaces.index(hist)!=0:
+                            mdl.set_histface(up=False)
+                        else:
+                            mdl.set_histface()
+                    if mdl.properties ['histface'].up:
+                        ts.aligned_header.add_face(
+                            mdl.properties['histface'], 1)
+                    else:
+                        ts.aligned_foot.add_face(
+                            mdl.properties['histface'], 1)
+            return super(EvolTree, self).render(file_name, layout=layout,
+                                                tree_style=ts,
+                                                w=w, h=h)
+        else:
+            raise ValueError("Treeview module is disabled")
+
+
+    def mark_tree(self, node_ids, verbose=False, **kargs):
+        '''
+        function to mark branches on tree in order that paml could interpret it.
+        takes a "marks" argument that should be a list of #1,#1,#2
+        e.g.:
+        ::
+
+          t=Tree.mark_tree([2,3], marks=["#1","#2"])
+
+        :argument node_ids: list of node ids (have a look to node.node_id)
+        :argument False verbose: warn if marks do not correspond to codeml standard
+        :argument kargs: mainly for the marks key-word which needs a list of marks (marks=['#1', '#2'])
+
+        '''
+        from re import match
+        node_ids = list(map(int , node_ids))
+        if 'marks' in kargs:
+            marks = list(kargs['marks'])
+        else:
+            marks = ['#1']*len (node_ids)
+        for node in self.traverse():
+            if not hasattr(node, 'node_id'):
+                continue
+            if node.node_id in node_ids:
+                if ('.' in marks[node_ids.index(node.node_id)] or
+                    match('#[0-9]+',
+                          marks[node_ids.index(node.node_id)]) == None) and verbose:
+                    warn('WARNING: marks should be "#" sign directly ' +
+                         'followed by integer\n' + self.mark_tree.__doc__)
+                node.add_feature('mark', ' '+marks[node_ids.index(node.node_id)])
+            elif not 'mark' in node.features:
+                node.add_feature('mark', '')
+                
+
+    def link_to_evol_model(self, path, model):
+        '''
+        link EvolTree to evolutionary model
+          * free-branch model ("fb") will append evol values to tree
+          * Site models (M0, M1, M2, M7, M8) will give evol values by site
+            and likelihood
+
+        :argument path: path to outfile containing model computation result
+        :argument model: either the name of a model, or a Model object (usually empty)
+
+        '''
+        if type(model) == str :
+            model = Model(model, self, path)
+        else:
+            model._load(path)
+        # new entry in _models dict
+        while model.name in self._models:
+            model.name = model.name.split('__')[0] + str(
+                (int(model.name.split('__')[1])
+                 +1)  if '__' in model.name else 0)
+        self._models[model.name] = model
+        if not os.path.isfile(path):
+            warn("ERROR: not a file: " + path)
+            return 1
+        if len(self._models) == 1 and model.properties['exec']=='codeml':
+            self.change_dist_to_evol('bL', model, fill=True)
+
+    def get_evol_model(self, modelname):
+        '''
+        returns one precomputed model
+
+        :argument modelname: string of the name of a model object stored
+        :returns: Model object
+        '''
+        try:
+            return self._models[modelname]
+        except KeyError:
+            warn("Model %s not found." % (modelname))
+
+
+    def write(self, features=None, outfile=None, format=10):
+        """
+        Inherits from Tree but adds the tenth format, that allows to display marks for CodeML.
+        TODO: internal writting format need to be something like 0
+        """
+        from re import sub
+        if int(format)==11:
+            nwk = ' %s 1\n' % (len(self))
+            nwk += sub('\[&&NHX:mark=([ #0-9.]*)\]', r'\1', \
+                       write_newick(self, features=['mark'],format=9))
+        elif int(format)==10:
+            nwk = sub('\[&&NHX:mark=([ #0-9.]*)\]', r'\1', \
+                      write_newick(self, features=['mark'],format=9))
+        else:
+            nwk = write_newick(self, features=features,format=format)
+        if outfile is not None:
+            open(outfile, "w").write(nwk)
+            return nwk
+        else:
+            return nwk
+    write.__doc__ += super(PhyloNode, PhyloNode()).write.__doc__.replace(
+        'argument format', 'argument 10 format')
+
+
+    def get_most_likely(self, altn, null):
+        '''
+        Returns pvalue of LRT between alternative model and null model.
+
+        usual comparison are:
+
+        ============ ======= ===========================================
+         Alternative  Null    Test
+        ============ ======= ===========================================
+          M2          M1      PS on sites (M2 prone to miss some sites)
+                              (Yang 2000)
+          M3          M0      test of variability among sites
+          M8          M7      PS on sites
+                              (Yang 2000)
+          M8          M8a     RX on sites?? think so....
+          bsA         bsA1    PS on sites on specific branch
+                              (Zhang 2005)
+          bsA         M1      RX on sites on specific branch
+                              (Zhang 2005)
+          bsC         M1      different omegas on clades branches sites
+                              ref: Yang Nielsen 2002
+          bsD         M3      different omegas on clades branches sites
+                              (Yang Nielsen 2002, Bielawski 2004)
+          b_free      b_neut  foreground branch not neutral (w != 1)
+                               - RX if P<0.05 (means that w on frg=1)
+                               - PS if P>0.05 and wfrg>1
+                               - CN if P>0.05 and wfrg>1
+                               (Yang Nielsen 2002)
+          b_free      M0      different ratio on branches
+                              (Yang Nielsen 2002)
+        ============ ======= ===========================================
+
+        :argument altn: model with higher number of parameters (np)
+        :argument null: model with lower number of parameters (np)
+
+        '''
+        altn = self.get_evol_model(altn)
+        null = self.get_evol_model(null)
+        if null.np > altn.np:
+            warn("first model should be the alternative, change the order")
+            return 1.0
+        try:
+            if hasattr(altn, 'lnL') and hasattr(null, 'lnL'):
+                if  null.lnL - altn.lnL < 0:
+                    return chi_high(2 * abs(altn.lnL - null.lnL),
+                                    df=float(altn.np - null.np))
+                else:
+                    warn("\nWARNING: Likelihood of the alternative model is "
+                         "smaller than null's (%f - %f = %f)" % (
+                             null.lnL, altn.lnL, null.lnL - altn.lnL) +
+                         "\nLarge differences (> 0.1) may indicate mistaken "
+                         "assigantion of null and alternative models")
+                    return 1
+        except KeyError:
+            warn("at least one of %s or %s, was not calculated" % (altn.name,
+                                                                   null.name))
+            exit(self.get_most_likely.__doc__)
+
+    def change_dist_to_evol(self, evol, model, fill=False):
+        '''
+        change dist/branch length of the tree to a given evolutionary
+        variable (dN, dS, w or bL), default is bL.
+
+        :argument evol: evolutionary variable
+        :argument model: Model object from which to retrieve evolutionary variables
+        :argument False fill: do not affects only dist parameter, each node will be annotated with all evolutionary variables (nodel.dN, node.w...).
+        '''
+        # branch-site outfiles do not give specific branch info
+        if not model.branches:
+            return
+        for node in self.iter_descendants():
+            if not evol in model.branches[node.node_id]:
+                continue
+            node.dist = model.branches[node.node_id][evol]
+            if fill:
+                for e in ['dN', 'dS', 'w', 'bL']:
+                    node.add_feature(e, model.branches [node.node_id][e])
+
+
+# cosmetic alias
+EvolTree = EvolNode
+
diff --git a/ete3/evol/model.py b/ete3/evol/model.py
new file mode 100644
index 0000000..f71c475
--- /dev/null
+++ b/ete3/evol/model.py
@@ -0,0 +1,379 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+this module defines the evolutionary Model that can be linked
+to phylogeny, and computed by one of codeml, gerp, slr.
+"""
+from __future__ import absolute_import
+import six
+from six.moves import range
+from re       import sub
+from warnings import warn
+
+from ..evol.control import PARAMS, AVAIL
+from ..evol.parser  import parse_paml, parse_rst, get_ancestor, parse_slr
+try:
+    from ..treeview.faces import SequencePlotFace
+except ImportError:
+    TREEVIEW = False
+else:
+    TREEVIEW = True
+
+class Model:
+    '''Evolutionary model.
+    "omega" stands for starting value of omega, in the computation. As
+    Zihen Yang says, it is good to try with different starting values...
+    model linked to tree by _tree variable
+    results of calculation are stored in dictionaries:
+     * branches: w dN dS bL by mean of their node_id
+     * sites   : values at each site.
+     * classes : classes of sites and proportions
+     * stats   : lnL number of parameters kappa value and codon frequencies stored here.
+
+    available models are:
+        =========== ============================= ==================
+        Model name  Description                   Model kind
+        =========== ============================= ==================\n%s
+        =========== ============================= ==================\n
+
+    :argument model_name: string with model name. Add a dot followed by anything at the end of the string in order to extend the name of the model and avoid overwriting.
+    :argument None tree: a Tree object
+    :argument None path: path to outfile, were model computation output can be found.
+
+    '''
+    def __init__(self, model_name, tree=None, path=None, **kwargs):
+        self._tree      = tree
+        self.name, args = check_name(model_name)
+        self.sites      = None
+        self.classes    = None
+        self.n_classes  = None
+        self.branches   = {}
+        self.stats      = {}
+        self.properties = {}
+        for a, b in list(args.items()):
+            self.properties [a] = b
+        params = dict(list(PARAMS.items()))
+        for key, arg in list(kwargs.items()):
+            if key not in params:
+                warn('WARNING: unknown param %s, can cause problems...'% (key))
+            if key == 'gappy':
+                arg = not arg
+            params[key] = arg
+        self._change_params(params)
+        self.__check_marks()
+        if path:
+            self._load(path)
+
+    def __str__(self):
+        '''
+        to print nice info
+        '''
+        str_mark = ''
+        str_line = '\n        mark:%-5s, omega: %-10s, node_ids: %-4s, name: %s'
+        for i, node in enumerate(self._tree.traverse()):
+            if node.is_root():
+                str_mark += str_line % (self.branches[node.node_id]['mark'],
+                                        'None',
+                                        node.node_id, node.name or 'ROOT')
+            else:
+                str_mark += str_line % (self.branches[node.node_id]['mark'],
+                                        self.branches[node.node_id].get('w',
+                                                                        'None'),
+                                        node.node_id, node.name or 'EDGE')
+        str_site = ''
+        str_line = '\n        %-12s: %s '
+        if self.classes:
+            for t in [t for t in sorted(self.classes)]:
+                str_site += str_line % (t, ' '.join(['%s%s=%-9s' % (t[0], j, i)\
+                                                     for j, i in \
+                                                     enumerate(self.classes[t])]
+                                                ))
+        return ''' Evolutionary Model %s:
+        log likelihood       : %s
+        number of parameters : %s
+        sites inference      : %s
+        sites classes        : %s
+        branches             : %s
+        ''' % (self.name,
+               self.lnL if 'lnL' in self.stats else 'None',
+               self.np  if 'np'  in self.stats else 'None',
+               ', '.join(sorted(list(self.sites.keys())))  if self.sites else 'None',
+               str_site if self.classes else 'None',
+               str_mark if self.branches else 'None'
+           )
+
+
+    def __check_marks(self):
+        """
+        checks if tree is marked and if model allows marks.
+        fill up branches dict with marks
+        """
+        has_mark = any([n.mark for n in self._tree.iter_descendants()])
+        for i, node in enumerate(self._tree.traverse()):
+            #if node.is_root(): continue
+            if has_mark and self.properties['allow_mark']:
+                self.branches[node.node_id] = {'mark': node.mark or ' #0'}
+            elif 'branch' in self.properties['typ']:
+                self.branches[node.node_id] = {'mark': ' #'+str(i)}
+            else:
+                self.branches[node.node_id] = {'mark': ''}
+
+    def _load(self, path):
+        '''
+        parse outfiles and load in model object
+        '''
+        if self.properties['exec'] == 'codeml':
+            parse_paml(path, self)
+            # parse rst file if site or branch-site model
+            if 'site' in self.properties['typ']:
+                # sites and classes attr
+                for key, val in six.iteritems(parse_rst(path)):
+                    setattr(self, key, val)
+            if 'ancestor' in self.properties['typ']:
+                get_ancestor(path, self)
+            vars(self) ['lnL'] = self.stats ['lnL']
+            vars(self) ['np']  = self.stats ['np']
+        elif self.properties['exec'] == 'Slr':
+            for key, val in six.iteritems(parse_slr (path)):
+                setattr (self, key, val)
+            vars(self) ['lnL'] = 0
+            vars(self) ['np']  = 0
+
+    def _change_params(self, params):
+        '''
+        change model specific values
+        '''
+        for key, change in self.properties ['changes']:
+            params[key] = change
+        self.properties ['params'] = params
+
+    def set_histface(self, up=True, hlines=(1.0, 0.3), kind='bar',
+                      errors=False, colors=None, **kwargs):
+        """
+        To add histogram face for a given site mdl (M1, M2, M7, M8)
+        can choose to put it up or down the tree.
+        2 types are available:
+           * stick: to draw histogram.
+           * curve: to draw plot.
+        You can define color scheme by passing a diccionary, default is:
+            col = {'NS' : 'grey'  ,
+                   'RX' : 'green' ,
+                   'RX+': 'green' ,
+                   'CN' : 'cyan'  ,
+                   'CN+': 'blue'  ,
+                   'PS' : 'orange',
+                   'PS+': 'red'    }
+        """
+        if self.sites == None:
+            warn("WARNING: model %s not computed." % (self.name))
+            return None
+        if not 'header' in kwargs:
+            kwargs['header'] = 'Omega value for sites under %s model' % \
+                               (self.name)
+        if 'BEB' in self.sites:
+            val = 'BEB'
+        elif 'NEB' in self.sites:
+            val = 'NEB'
+        else:
+            val = 'SLR'
+        colors = self.colorize_rst(val, col=colors)
+        if not 'ylim' in kwargs:
+            kwargs['ylim'] = (0, 2)
+        if errors:
+            errors = self.sites[val]['se'] if 'se' in self.sites[val]\
+                     else None
+        if TREEVIEW:
+            try:
+                hist = SequencePlotFace(self.sites[val]['w'], hlines=hlines,
+                                        colors=colors, errors=errors,
+                                        ylabel=u'Omega (\u03c9)', kind=kind,
+                                        **kwargs)
+            except KeyError:
+                raise Exception('ERROR: no sites to display, only available ' +
+                                'histfaces for site models\n')
+            if up:
+                setattr(hist, 'up', True)
+            else:
+                setattr(hist, 'up', False)
+        else:
+            hist = None
+        self.properties['histface'] = hist
+
+
+    def get_ctrl_string(self, outfile=None):
+        '''
+        generate ctrl string to write to a file, if file is given,
+        write it, otherwise returns the string
+
+        :argument None outfile: if a path is given here, write control string into it.
+
+        :returns: the control string
+
+        '''
+        string = ''
+        if 'sep' in self.properties:
+            sep = self.properties ['sep']
+        else:
+            sep = ' = '
+        for prm in ['seqfile', 'treefile', 'outfile']:
+            string += '%15s%s%s\n' % (prm, sep,
+                                      str(self.properties['params'][prm]))
+        string += '\n'
+        for prm in sorted(list(self.properties ['params'].keys()), key=lambda x:
+                          sub('fix_', '', x.lower())):
+            if prm in ['seqfile', 'treefile', 'outfile']:
+                continue
+            if str(self.properties ['params'][prm]).startswith('*'):
+                continue
+                #string += ' *'+'%13s = %s\n' \
+                #          % (p, str(self.properties ['params'][p])[1:])
+            else:
+                string += '%15s%s%s\n' % (prm, sep,
+                                          str(self.properties ['params'][prm]))
+        if outfile == None:
+            return string
+        else:
+            open(outfile, 'w').write(string)
+
+    def colorize_rst(self, val, col=None):
+        '''
+        Colorize function, that take in argument a list of values
+        corresponding to a list of classes and returns a list of
+        colors to paint histogram.
+
+        :param val: type of estimation, can be BEB or NEB (only
+           positive-selection models have BEB)
+        :param None col: a dictionary of colors that by default is:
+           {"NS" : "grey",
+            "RX" : "green",
+            "RX+": "green",
+            "CN" : "cyan",
+            "CN+": "blue",
+            "PS" : "orange",
+            "PS+": "red"}
+        
+        :returns: a list of colors dependending categories of sites that are among:
+          - CN+ > 0.99 probabylity of beloging to conserved class of site
+          - CN  > 0.95 probabylity of beloging to conserved class of site
+          - NS  not significant
+          - RX+ > 0.99 probabylity of beloging to relaxed class of site
+          - RX  > 0.95 probabylity of beloging to relaxed class of site
+          - PS+ > 0.99 probabylity of beloging to positively-selected class of site
+          - PS  > 0.95 probabylity of beloging to positively-selected class of site
+        '''
+        col = col or {'NS' : 'grey',
+                      'RX' : 'green',
+                      'RX+': 'green',
+                      'CN' : 'cyan',
+                      'CN+': 'blue',
+                      'PS' : 'orange',
+                      'PS+': 'red'}
+        if not 'site' in self.properties['typ']:
+            raise Exception('ERROR: histogram are only for site and '
+                            'branch-site models.')
+        categories = self.significance_by_site(val)
+        return [col[cat] for cat in categories]
+
+    def significance_by_site(self, val):
+        '''
+        Summarize significance of site models.
+
+        :param val: type of estimation, can be BEB or NEB (only
+           positive-selection models have BEB)
+        
+        :returns: a list of categories among:
+          - CN+ > 0.99 probabylity of beloging to conserved class of site
+          - CN  > 0.95 probabylity of beloging to conserved class of site
+          - NS  not significant
+          - RX+ > 0.99 probabylity of beloging to relaxed class of site
+          - RX  > 0.95 probabylity of beloging to relaxed class of site
+          - PS+ > 0.99 probabylity of beloging to positively-selected class of site
+          - PS  > 0.95 probabylity of beloging to positively-selected class of site
+        '''
+        if not 'site' in self.properties['typ']:
+            raise Exception('ERROR: only for site and '
+                            'branch-site models.')
+        ps_model = 'positive' in self.properties['evol']
+        categories = []
+        for pval, curr_class in zip(self.sites[val]['pv'],
+                                    self.sites[val]['class']):
+            if pval < 0.95:
+                categories.append('NS')
+            elif curr_class != self.n_classes[val] and not ps_model:
+                if pval < 0.99:
+                    categories.append('RX')
+                else:
+                    categories.append('RX+')
+            elif curr_class == 1:
+                if pval < 0.99:
+                    categories.append('CN')
+                else:
+                    categories.append('CN+')
+            elif curr_class >= self.n_classes[val] and ps_model:
+                if pval < 0.99:
+                    categories.append('PS')
+                else:
+                    categories.append('PS+')
+            elif curr_class == self.n_classes[val]:
+                if pval < 0.99:
+                    categories.append('RX')
+                else:
+                    categories.append('RX+')
+            else:
+                categories.append('NS')
+        return categories
+
+
+def check_name(model):
+    '''
+    check that model name corresponds to one of the available
+    '''
+    if sub('\..*', '', model) in AVAIL:
+        return model, AVAIL [sub('\..*', '', model)]
+
+
+
+Model.__doc__ = Model.__doc__ % \
+                ('\n'.join([ '          %-8s   %-27s   %-15s  ' % \
+                             ('%s' % (x), AVAIL[x]['evol'], AVAIL[x]['typ']) \
+                             for x in sorted(sorted(AVAIL.keys()),key=lambda x: \
+                                AVAIL[x]['typ'],
+                                reverse=True)]))
+
diff --git a/ete3/evol/parser/__init__.py b/ete3/evol/parser/__init__.py
new file mode 100644
index 0000000..67b0f51
--- /dev/null
+++ b/ete3/evol/parser/__init__.py
@@ -0,0 +1,45 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+#        Author: Francois-Jose Serra
+# Creation Date: 2010/11/03 21:20:05
+
+from .codemlparser import *
+from .slrparser import *
diff --git a/ete3/evol/parser/codemlparser.py b/ete3/evol/parser/codemlparser.py
new file mode 100644
index 0000000..b6ea6ea
--- /dev/null
+++ b/ete3/evol/parser/codemlparser.py
@@ -0,0 +1,347 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+ugly parsers for outfiles of codeml, rst file for sites,
+and main outfile
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+from six.moves import map
+from six.moves import filter
+from six.moves import range
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+import re
+from warnings import warn
+
+def parse_rst(path):
+    '''
+    parse rst files from codeml, all site, branch-site models.
+    return 2 dicts "classes" of sites, and values at each site "sites"
+    '''
+    typ       = None
+    classes   = {}
+    sites     = {}
+    n_classes = {}
+    k         = 0
+    i         = 0
+    bsa       = False
+    path = '/'.join(path.split('/')[:-1]) + '/rst'
+    for line in open(path):
+        # get number of classes of sites
+        if line.startswith ('dN/dS '):
+            k = int(re.sub ('.* \(K=([0-9]+)\)\n', '\\1', line))
+            continue
+        # get values of omega and proportions
+        if typ is None and \
+           re.match ('^[a-z]+.*(\d+\.\d{5} *){'+ str(k) +'}', line):
+            var = re.sub (':', '', line.split('  ')[0])
+            if var.startswith ('p'):
+                var = 'proportions'
+            classes[var] = [float(v) for v in re.findall('\d+\.\d{5}', line)]
+            continue
+        # parse NEB and BEB tables
+        if '(BEB)' in line :
+            k = int(re.sub('.*for (\d+) classes.*\n', '\\1', line))
+            typ = 'BEB'
+            sites[typ] = {}
+            n_classes[typ] = k
+            continue
+        if '(NEB)' in line :
+            k = int(re.sub('.*for (\d+) classes.*\n', '\\1', line))
+            typ = 'NEB'
+            sites[typ] = {}
+            n_classes[typ] = k
+            continue
+        # at the end of some BEB/NEB tables:
+        if line.startswith ('Positively '):
+            typ = None
+        # continue if we are not in table
+        if not re.match ('^ *[0-9]+ [A-Z*-] ', line) or typ == None:
+            continue
+        # line to list
+        line = line.replace(' +- ', ' ')
+        line = re.sub ('[()]', '', line.strip()).split()
+        # get amino-acid
+        sites[typ].setdefault ('aa', []).append (line[1])
+        # get site class probability
+        probs = []
+        for i in range (k):
+            probs.append (float (line[2+i]))
+            sites [typ].setdefault ('p'+str(i), []).append (float (line[2+i]))
+        sites [typ].setdefault ('pv', []).append (max (probs))
+        # get most likely site class
+        classe = int (line [3 + i])
+        sites[typ].setdefault ('class', []).append (classe)
+        # if there, get omega and error
+        try:
+            sites [typ].setdefault ('w' , []).append (float (line [4 + i]))
+        except IndexError:
+            # in this case we are with branch-site A or A1 and we should sum
+            # probabilities of categories 2a and 2b
+            probs = probs[:-2] + [sum(probs[-2:])]
+            sites[typ]['pv'][-1] = max(probs)
+            bsa = True
+            try:
+                sites[typ].setdefault('w' , []).append(
+                    classes['foreground w'][classe - 1])
+            except KeyError: # clade models
+                del (sites [typ]['w'])
+        try:
+            sites [typ].setdefault ('se', []).append (float (line [5 + i]))
+        except IndexError:
+            del (sites [typ]['se'])
+    return {'classes': classes,
+            'sites' :sites,
+            'n_classes': dict([(k, n_classes[k] - bsa) for k in n_classes])}
+
+
+def divide_data(pamout, model):
+    '''
+    for multiple dataset, divide outfile.
+    '''
+    for num in range (1, int (model.properties['params']['ndata'])):
+        model.name = model.name + '_' + str(num)
+        out = open (pamout + '_' + str(num), 'w')
+        copy = False
+        for line in open (pamout):
+            if copy == False and \
+                   line.startswith('Data set '+ str (num) + '\n'):
+                copy = True
+                continue
+            if copy == True and \
+                   line.startswith('Data set '+ str (num+1) + '\n'):
+                break
+            if copy == True:
+                out.write(line)
+        out.close()
+        if copy == False:
+            warn ('WARNING: seems that you have no multiple dataset here...'\
+                  + '\n    trying as with only one dataset')
+        if model.typ == 'site':
+            rst = '/'.join (pamout.split('/')[:-1])+'/rst'
+            rstout = open (rst + '_' + str(num), 'w')
+            copy = False
+            for line in open(rst):
+                if copy == False and \
+                       re.match('\t' + str (num)+'\n', line) != None:
+                    copy = True
+                    continue
+                if copy == True and \
+                       re.match('\t' + str (num + 1)+'\n', line) != None:
+                    copy = False
+                if copy == True:
+                    rstout.write(line)
+            rstout.close()
+            setattr (model, 'data_' + str (num),
+                     parse_paml (pamout + '_' + str(num), model))
+        else:
+            setattr (model, 'data_' + str (num),
+                     parse_paml (pamout + '_' + str(num), model))
+
+
+def get_ancestor (pamout, model):
+    '''
+    only for fb_ancestor model, retrieves ancestral sequences also
+    from rst file.
+    '''
+    for line in open ('/'.join (pamout.split('/')[:-1])+'/rst'):
+        if line.startswith ('node #'):
+            pamlid, seq = re.sub ('node#([0-9]+)([A-Z]*)\n', '\\1\t\\2',
+                                  re.sub (' ', '', line)).split ('\t')
+            n = model._tree.get_descendant_by_node_id (int (pamlid))
+            n.add_feature ('nt_sequence', seq)
+        elif line.startswith ('Node #'):
+            pamlid, seq = re.sub ('Node#([0-9]+)([A-Z]*)\n', '\\1\t\\2',
+                                  re.sub (' ', '', line)).split ('\t')
+            n = model._tree.get_descendant_by_node_id (int (pamlid))
+            n.add_feature ('sequence', seq)
+        elif line.startswith ('Counts of changes at sites'):
+            break
+
+def parse_paml (pamout, model):
+    '''
+    parser function for codeml files,
+    with values of w,dN,dS etc... dependending of the model
+    tested.
+    '''
+    # if multiple dataset in same file we divide the outfile and model.name+x
+    if not '*' in str (model.properties['params']['ndata']):
+        divide_data (pamout, model)
+        return
+    all_lines = open (pamout).readlines()
+    # if we do not have tree, load it
+    if model._tree == None:
+        from ..evol import EvolTree
+        model._tree = EvolTree (re.findall ('\(.*\);', ''.join(all_lines))[2])
+        model._tree._label_as_paml()
+    # starts parsing
+    for i, line in enumerate (all_lines):
+        if line is '\n':
+            continue
+        # codon frequency
+        if line.startswith('Codon frequencies under model'):
+            model.stats ['codonFreq'] = []
+            for j in range (16):
+                line = list(map (float, re.findall ('\d\.\d+', all_lines [i+j+1])))
+                model.stats ['codonFreq'] += [line]
+            continue
+        if line.startswith('Nei & Gojobori 1986'):
+            model.stats ['codonFreq'] = []
+        if 'codonFreq' not in model.stats:
+            continue
+        ######################
+        # start serious staff
+        line = line.rstrip()
+        # lnL and number of parameters
+        if line.startswith ('lnL'):
+            try:
+                line = re.sub ('.* np: *(\d+)\): +(-\d+\.\d+).*',
+                               '\\1 \\2', line)
+                model.stats ['np' ] = int   (line.split()[0])
+                model.stats ['lnL'] = float (line.split()[1])
+            except ValueError:
+                line = re.sub ('.* np: *(\d+)\): +(nan).*',
+                               '\\1 \\2', line)
+                model.stats ['np' ] = int   (line.split()[0])
+                model.stats ['lnL'] = float ('-inf')
+            continue
+        # get labels of internal branches
+        if line.count('..') >= 2:
+            labels = re.findall ('\d+\.\.\d+', line + ' ')
+            _check_paml_labels (model._tree, labels, pamout, model)
+            continue
+        # retrieve kappa
+        if line.startswith ('kappa '):
+            try:
+                model.stats ['kappa'] = float (re.sub ('.*(\d+\.\d+).*',
+                                                       '\\1', line))
+            except ValueError:
+                model.stats ['kappa'] = 'nan'
+        # retrieve dS dN t w N S and if present, errors. from summary table
+        if line.count('..') == 1 and line.startswith (' '):
+            if not re.match (' +\d+\.\.\d+ +\d+\.\d+ ', line):
+                if re.match (' +( +\d+\.\d+){8}', all_lines [i+1]):
+                    _get_values (model, line.split ()[0]+'  '+all_lines [i+1])
+                continue
+            _get_values (model, line)
+            continue
+
+def _get_values(model, line):
+    '''
+    just to ligther main parser
+    '''
+    vals = line.split()
+    # store values under paml_id
+    paml_id = int (vals[0].split('..')[1])
+    model.branches[paml_id].update({
+        'bL'  : float (vals [1]),
+        'N'   : float (vals [2]),
+        'S'   : float (vals [3]),
+        'w'   : float (vals [4]),
+        'dN'  : float (vals [5]),
+        'dS'  : float (vals [6]),
+        'SEdN': float (vals[vals.index ('dN') + 4]) if 'dN' in line else None,
+        'SEdS': float (vals[vals.index ('dS') + 4]) if 'dS' in line else None
+        })
+
+def _check_paml_labels (tree, paml_labels, pamout, model):
+    '''
+     * check paml labels
+    Should not be necessary if all codeml is run through ETE.
+    '''
+    try:
+        relations = sorted ([list(map( int, x.split('..'))) for x in paml_labels],
+                            key=lambda x: x[1])
+    except IndexError:
+        return
+    # check that labelling corresponds with paml...
+    for rel in relations:
+        try:
+            node = tree.get_descendant_by_node_id(rel[1])
+            if int (node.up.node_id) != int (rel[0]):
+                warn('WARNING: labelling does not correspond (bad tree?)!!\n' + \
+                     '         Getting them from ' + pamout)
+                _get_labels_from_paml(tree, relations, pamout, model)
+                break
+        except IndexError:
+            # if unable to find one node, relabel the whole tree
+            print(rel)
+            warn ('ERROR: labelling does not correspond!!\n' + \
+                  '       Getting them from ' + pamout)
+            _get_labels_from_paml(tree, relations, pamout, model)
+
+def _get_labels_from_paml (tree, relations, pamout, model):
+    '''
+    in case problem in labelling... and of course it is not my fault...
+    retrieve node_ids from outfile... from relations line.
+    This may occur when loading a model that was run outside ETE.
+    '''
+    from copy import copy
+    old2new = {}
+    # label leaves
+    for line in open (pamout, 'r').readlines():
+        if re.search ('^#[0-9][0-9]*:', line):
+            nam, paml_id = re.sub ('#([0-9]+): (.*)', '\\2 \\1',
+                                   line.strip()).split()
+            node = (tree & nam)
+            old2new[node.node_id] = int(paml_id)
+            node.add_feature ('node_id', int(paml_id))
+        if line.startswith ('Sums of codon'):
+            break
+    # label the root
+    tree.add_feature ('node_id', int (len (tree) + 1))
+    # label other internal nodes
+    for node in tree.traverse(strategy='postorder'):
+        if node.is_root(): continue
+        paml_id = next(filter(lambda x: x[1]==node.node_id, relations))[0]
+        old2new[node.up.node_id] = paml_id
+        node.up.node_id = paml_id
+    ### change keys in branches dict of model
+    branches = copy(model.branches)
+    for b in model.branches:
+        model.branches[b] = branches[old2new[b]]
+
+
+
diff --git a/ete3/evol/parser/slrparser.py b/ete3/evol/parser/slrparser.py
new file mode 100644
index 0000000..02c215b
--- /dev/null
+++ b/ete3/evol/parser/slrparser.py
@@ -0,0 +1,93 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+"""
+06 Feb 2011
+
+parser for slr outfile
+"""
+from __future__ import absolute_import
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+from re import match
+
+def parse_slr (slrout):
+    SLR = {'pv':[],'w':[],'se':[], 'class':[],'note':[]}
+    w   = ''
+    apv = ''
+    seP = ''
+    seN = ''
+    res = ''
+    note= ''
+    for line in open (slrout):
+        if line.startswith('#'):
+            w   = line.strip().split().index('Omega')-1
+            apv = line.strip().split().index('Adj.Pval')-1
+            res = line.strip().split().index('Result')-1
+            note= line.strip().split().index('Note')-1
+            try:
+                seP = line.strip().split().index('upper')-1
+                seN = line.strip().split().index('lower')-1
+            except:
+                continue
+            continue
+        SLR['pv' ].append(1-float (line.split()[apv]))
+        SLR['w'  ].append(line.split()[w])
+        corr = 0
+        try:
+            if not match('[-+]',line.split()[res]) == None:
+                SLR['class'  ].append (5 - line.split()[res].count ('-') + line.split()[res].count ('+'))
+            else:
+                SLR['class'  ].append(5)
+                corr = 1
+        except IndexError:
+            SLR['class'  ].append(5)
+        try:
+            SLR['note'  ].append(line.split()[note-corr])
+        except IndexError:
+            SLR['note'  ].append('')
+        if not seN == '':
+            SLR['se'].append ([float (SLR['w'][-1]) - float (line.split()[seN]),
+                               float (line.split()[seP]) - float (SLR['w'][-1])])
+    return {'sites': {'SLR': SLR},
+            'n_classes': {'SLR': 8}}
diff --git a/ete3/evol/utils.py b/ete3/evol/utils.py
new file mode 100644
index 0000000..9a72903
--- /dev/null
+++ b/ete3/evol/utils.py
@@ -0,0 +1,464 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+#        Author: Francois-Jose Serra
+# Creation Date: 2010/04/22 16:05:46
+
+
+# from __future__ import division # unnecessary?
+from .. import Tree
+from math import log, exp
+from six.moves import range
+
+def get_rooting(tol, seed_species, agename = False):
+    '''
+    returns dict of species age for a given TOL and a given seed
+
+    **Example:**
+
+    ::
+
+      tol  = "((((((((Drosophila melanogaster,(Drosophila simulans,Drosophila secchellia)),(Drosophila yakuba,Drosophila erecta))[&&NHX:name=melanogaster subgroup],Drosophila ananassae)[&&NHX:name=melanogaster group],(Drosophila pseudoobscura,Drosophila persimilis)[&&NHX:name=obscura group])[&&NHX:name=Sophophora Old World],Drosophila willistoni)[&&NHX:name=subgenus Sophophora],(Drosophila grimshawi,(Drosophila virilis,Drosophila mojavensis))[&&NHX:name=subgenus Drosophila])[&&NHX:name=g [...]
+      seed = "Drosophila melanogaster"
+      ROOTING, age2name = get_rooting (tol, seed, True)
+
+      ROOTING == {"Aedes aegypti"           : 7,
+                  "Anopheles gambiae"       : 7,
+                  "Caenorhabditis elegans"  : 8,
+                  "Drosophila ananassae"    : 3,
+                  "Drosophila erecta"       : 2,
+                  "Drosophila grimshawi"    : 6,
+                  "Drosophila melanogaster" : 1,
+                  "Drosophila mojavensis"   : 6,
+                  "Drosophila persimilis"   : 4,
+                  "Drosophila pseudoobscura": 4,
+                  "Drosophila secchellia"   : 1,
+                  "Drosophila simulans"     : 1,
+                  "Drosophila virilis"      : 6,
+                  "Drosophila willistoni"   : 5,
+                  "Drosophila yakuba"       : 2}
+
+      age2name == {1: "Drosophila melanogaster. Drosophila simulans. Drosophila secchellia",
+                   2: "melanogaster subgroup",
+                   3: "melanogaster group",
+                   4: "Sophophora Old World",
+                   5: "subgenus Sophophora",
+                   6: "genus Drosophila",
+                   7: "Arthropoda",
+                   8: "Animalia"}
+
+    :argument seed_species: species name
+    :argument False agename: if True, also returns the inverse dictionary
+
+    :returns: ROOTING dictionary with age of each species
+
+    '''
+
+    tol = Tree (tol)
+    try:
+        node = tol.search_nodes (name=seed_species)[0]
+    except IndexError:
+        exit ('ERROR: Seed species not found in tree\n')
+    age = 1
+    ROOTING = {}
+    if agename:
+        age2name = {}
+    while not node.is_root():
+        node = node.up
+        for leaf in node.get_leaf_names():
+            if agename:
+                if node.name == 'NoName':
+                    nam = '.'.join (node.get_leaf_names())
+                else:
+                    nam = node.name
+                age2name.setdefault (age, nam)
+            ROOTING.setdefault (leaf, age)
+        age += 1
+    if agename:
+        return ROOTING, age2name
+    return ROOTING
+
+
+def translate(sequence):
+    '''
+    little function to translate DNA to protein...
+    from: http://python.genedrift.org/
+    TODO : inseqgroup functions?
+
+    :argument sequence: string
+
+    :returns: translated sequence
+    '''
+    #dictionary with the genetic code
+    gencode = {
+    'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',
+    'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T',
+    'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',
+    'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',
+    'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',
+    'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',
+    'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',
+    'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',
+    'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',
+    'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',
+    'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',
+    'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',
+    'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',
+    'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',
+    'TAC':'Y', 'TAT':'Y', 'TAA':'.', 'TAG':'.',
+    'TGC':'C', 'TGT':'C', 'TGA':'.', 'TGG':'W',
+    '---':'-', 'nnn':'x', 'NNN':'X'
+    }
+    ambig = {'Y':['A', 'G'], 'R':['C', 'T'], 'M':['G', 'T'], 'K':['A', 'C'], \
+             'S':['G', 'C'],'W':['A', 'T'], 'V':['C', 'G', 'T'], \
+             'H':['A', 'G', 'T'], 'D':['A', 'C', 'T'], 'B':['A', 'C', 'G'], \
+             'N':['A', 'C', 'G', 'T']}
+    proteinseq = ''
+    #loop to read DNA sequence in codons, 3 nucleotides at a time
+    sequence = sequence.upper()
+    for n in range(0, len(sequence), 3):
+        #checking to see if the dictionary has the key
+        try:
+            proteinseq += gencode[sequence[n:n+3]]
+        except KeyError:
+            newcod = []
+            for nt in sequence[n:n+3]:
+                if nt in ambig:
+                    newcod.append(ambig[nt])
+                else :
+                    newcod.append(list (nt))
+            aa = ''
+            for nt1 in newcod[0]:
+                for nt2 in newcod[1]:
+                    for nt3 in newcod[2]:
+                        try:
+                            if aa == '':
+                                aa  = gencode[nt1+nt2+nt3]
+                            elif gencode[nt1+nt2+nt3] != aa:
+                                aa = 'X'
+                                break
+                        except KeyError:
+                            aa = 'X'
+                            break
+            proteinseq += aa
+    return proteinseq
+
+
+# reused from pycogent
+ROUND_ERROR = 1e-14
+MAXLOG =  7.09782712893383996843E2
+big = 4.503599627370496e15
+biginv =  2.22044604925031308085e-16
+MACHEP =  1.11022302462515654042E-16
+
+def chi_high(x, df):
+    """Returns right-hand tail of chi-square distribution (x to infinity).
+
+    df, the degrees of freedom, ranges from 1 to infinity (assume integers).
+    Typically, df is (r-1)*(c-1) for a r by c table.
+
+    Result ranges from 0 to 1.
+
+    See Cephes docs for details.
+    """
+    x = fix_rounding_error(x)
+
+    if x < 0:
+        raise ValueError("chi_high: x must be >= 0 (got %s)." % x)
+    if df < 1:
+        raise ValueError("chi_high: df must be >= 1 (got %s)." % df)
+    return igamc(float(df)/2, x/2)
+
+def fix_rounding_error(x):
+    """If x is almost in the range 0-1, fixes it.
+
+    Specifically, if x is between -ROUND_ERROR and 0, returns 0.
+    If x is between 1 and 1+ROUND_ERROR, returns 1.
+    """
+    if -ROUND_ERROR < x < 0:
+        return 0
+    elif 1 < x < 1+ROUND_ERROR:
+        return 1
+    else:
+        return x
+
+def igamc(a,x):
+    """Complemented incomplete Gamma integral: see Cephes docs."""
+    if x <= 0 or a <= 0:
+        return 1
+    if x < 1 or x < a:
+        return 1 - igam(a, x)
+    ax = a * log(x) - x - lgam(a)
+    if ax < -MAXLOG:    #underflow
+        return 0
+    ax = exp(ax)
+    #continued fraction
+    y = 1 - a
+    z = x + y + 1
+    c = 0
+    pkm2 = 1
+    qkm2 = x
+    pkm1 = x + 1
+    qkm1 = z * x
+    ans = pkm1/qkm1
+
+    while 1:
+        c += 1
+        y += 1
+        z += 2
+        yc = y * c
+        pk = pkm1 * z - pkm2 * yc
+        qk = qkm1 * z - qkm2 * yc
+        if qk != 0:
+            r = pk/qk
+            t = abs((ans-r)/r)
+            ans = r
+        else:
+            t = 1
+        pkm2 = pkm1
+        pkm1 = pk
+        qkm2 = qkm1
+        qkm1 = qk
+        if abs(pk) > big:
+            pkm2 *= biginv
+            pkm1 *= biginv
+            qkm2 *= biginv
+            qkm1 *= biginv
+        if t <= MACHEP:
+            break
+    return ans * ax
+
+def lgam(x):
+    """Natural log of the gamma fuction: see Cephes docs for details"""
+    sgngam = 1
+    if x < -34:
+        q = -x
+        w = lgam(q)
+        p = floor(q)
+        if p == q:
+            raise OverflowError("lgam returned infinity.")
+        i = p
+        if i & 1 == 0:
+            sgngam = -1
+        else:
+            sgngam = 1
+        z = q - p
+        if z > 0.5:
+            p += 1
+            z = p - q
+        z = q * sin(PI * z)
+        if z == 0:
+            raise OverflowError("lgam returned infinity.")
+        z = LOGPI - log(z) - w
+        return z
+    if x < 13:
+        z = 1
+        p = 0
+        u = x
+        while u >= 3:
+            p -= 1
+            u = x + p
+            z *= u
+        while u < 2:
+            if u == 0:
+                raise OverflowError("lgam returned infinity.")
+            z /= u
+            p += 1
+            u = x + p
+        if z < 0:
+            sgngam = -1
+            z = -z
+        else:
+            sgngam = 1
+        if u == 2:
+            return log(z)
+        p -= 2
+        x = x + p
+        p = x * polevl(x, GB)/polevl(x,GC)
+        return log(z) + p
+    if x > MAXLGM:
+        raise OverflowError("Too large a value of x in lgam.")
+    q = (x - 0.5) * log(x) - x + LS2PI
+    if x > 1.0e8:
+        return q
+    p = 1/(x*x)
+    if x >= 1000:
+        q += ((  7.9365079365079365079365e-4 * p
+                -2.7777777777777777777778e-3) *p
+                + 0.0833333333333333333333) / x
+    else:
+        q += polevl(p, GA)/x
+    return q
+
+def polevl(x, coef):
+    """evaluates a polynomial y = C_0 + C_1x + C_2x^2 + ... + C_Nx^N
+
+    Coefficients are stored in reverse order, i.e. coef[0] = C_N
+    """
+    result = 0
+    for c in coef:
+        result = result * x + c
+    return result
+
+
+
+def igamc(a,x):
+    """Complemented incomplete Gamma integral: see Cephes docs."""
+    if x <= 0 or a <= 0:
+        return 1
+    if x < 1 or x < a:
+        return 1 - igam(a, x)
+    ax = a * log(x) - x - lgam(a)
+    if ax < -MAXLOG:    #underflow
+        return 0
+    ax = exp(ax)
+    #continued fraction
+    y = 1 - a
+    z = x + y + 1
+    c = 0
+    pkm2 = 1
+    qkm2 = x
+    pkm1 = x + 1
+    qkm1 = z * x
+    ans = pkm1/qkm1
+
+    while 1:
+        c += 1
+        y += 1
+        z += 2
+        yc = y * c
+        pk = pkm1 * z - pkm2 * yc
+        qk = qkm1 * z - qkm2 * yc
+        if qk != 0:
+            r = pk/qk
+            t = abs((ans-r)/r)
+            ans = r
+        else:
+            t = 1
+        pkm2 = pkm1
+        pkm1 = pk
+        qkm2 = qkm1
+        qkm1 = qk
+        if abs(pk) > big:
+            pkm2 *= biginv
+            pkm1 *= biginv
+            qkm2 *= biginv
+            qkm1 *= biginv
+        if t <= MACHEP:
+            break
+    return ans * ax
+
+def igam(a, x):
+    """Left tail of incomplete gamma function: see Cephes docs for details"""
+    if x <= 0 or a <= 0:
+        return 0
+    if x > 1 and x > a:
+        return 1 - igamc(a,x)
+
+    #Compute x**a * exp(x) / Gamma(a)
+
+    ax = a * log(x) - x - lgam(a)
+    if ax < -MAXLOG:    #underflow
+        return 0.0
+    ax = exp(ax)
+
+    #power series
+    r = a
+    c = 1
+    ans = 1
+    while 1:
+        r += 1
+        c *= x/r
+        ans += c
+        if c/ans <= MACHEP:
+            break
+
+    return ans * ax / a
+
+#Coefficients for Gamma follow:
+GA = [
+        8.11614167470508450300E-4,
+        -5.95061904284301438324E-4,
+        7.93650340457716943945E-4,
+        -2.77777777730099687205E-3,
+        8.33333333333331927722E-2,
+    ]
+
+GB = [
+        -1.37825152569120859100E3,
+        -3.88016315134637840924E4,
+        -3.31612992738871184744E5,
+        -1.16237097492762307383E6,
+        -1.72173700820839662146E6,
+        -8.53555664245765465627E5,
+    ]
+
+GC = [
+        1.00000000000000000000E0,
+        -3.51815701436523470549E2,
+        -1.70642106651881159223E4,
+        -2.20528590553854454839E5,
+        -1.13933444367982507207E6,
+        -2.53252307177582951285E6,
+        -2.01889141433532773231E6,
+    ]
+
+GP = [
+        1.60119522476751861407E-4,
+        1.19135147006586384913E-3,
+        1.04213797561761569935E-2,
+        4.76367800457137231464E-2,
+        2.07448227648435975150E-1,
+        4.94214826801497100753E-1,
+        9.99999999999999996796E-1,
+    ]
+
+GQ = [
+        -2.31581873324120129819E-5,
+        5.39605580493303397842E-4,
+        -4.45641913851797240494E-3,
+        1.18139785222060435552E-2,
+        3.58236398605498653373E-2,
+        -2.34591795718243348568E-1,
+        7.14304917030273074085E-2,
+        1.00000000000000000320E0,
+    ]
+
+biginv =  2.22044604925031308085e-16
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/.gitignore b/ete3/ncbi_taxonomy/SQLite-Levenshtein/.gitignore
new file mode 100644
index 0000000..04062bc
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/.gitignore
@@ -0,0 +1 @@
+levenshtein.sqlext
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/EXAMPLE b/ete3/ncbi_taxonomy/SQLite-Levenshtein/EXAMPLE
new file mode 100644
index 0000000..18f9dd7
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/EXAMPLE
@@ -0,0 +1,10 @@
+$ sqlite3 
+SQLite version 3.6.22
+Enter ".help" for instructions
+Enter SQL statements terminated with a ";"
+sqlite> .load ./levenshtein.sqlext 
+sqlite> SELECT LEVENSHTEIN( 'This is not correct', 'This is correct' );
+4
+sqlite> SELECT LEVENSHTEIN( NULL, 'aaa' ) IS NULL;
+1
+
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/Makefile b/ete3/ncbi_taxonomy/SQLite-Levenshtein/Makefile
new file mode 100644
index 0000000..147a0aa
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/Makefile
@@ -0,0 +1,7 @@
+CC = gcc
+
+levenshtein.sqlext: src/levenshtein.c
+	$(CC) -Wall -shared -fPIC -Isqlite3 -o levenshtein.sqlext src/levenshtein.c
+
+clean:
+	rm levenshtein.sqlext
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/README b/ete3/ncbi_taxonomy/SQLite-Levenshtein/README
new file mode 100644
index 0000000..17d6d8b
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/README
@@ -0,0 +1,5 @@
+Author: Mateusz Adamowski
+
+License: public domain
+
+Source repository: https://github.com/mateusza/SQLite-Levenshtein
\ No newline at end of file
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/src/levenshtein.c b/ete3/ncbi_taxonomy/SQLite-Levenshtein/src/levenshtein.c
new file mode 100644
index 0000000..88adfd7
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/src/levenshtein.c
@@ -0,0 +1,87 @@
+#include <sqlite3ext.h>
+#include <string.h>
+#include <stdlib.h>
+#include <malloc.h>
+
+#define LEVENSHTEIN_MAX_STRLEN 1024
+// O(n*m) !!!
+
+
+#define ___MIN___(a,b) (((a)<(b))?(a):(b))
+
+SQLITE_EXTENSION_INIT1
+
+int levenshtein_distance(char*, char*);
+
+static void levenFunc(
+	sqlite3_context *context,
+	int argc,
+	sqlite3_value **argv
+){
+	int result;
+
+	if ( sqlite3_value_type( argv[0] ) == SQLITE_NULL || sqlite3_value_type( argv[1] ) == SQLITE_NULL ){
+		sqlite3_result_null( context );
+		return;
+	}
+
+	result = levenshtein_distance(
+		(char*) sqlite3_value_text( argv[0] ),
+		(char*) sqlite3_value_text( argv[1] )
+	);
+
+	if ( result == -1 ){
+		// one argument too long
+		sqlite3_result_null( context );
+                return;
+	}
+
+	sqlite3_result_int( context, result );
+}
+
+int sqlite3_extension_init(
+	sqlite3 *db,
+	char **pzErrMsg,
+	const sqlite3_api_routines *pApi
+){
+	SQLITE_EXTENSION_INIT2(pApi)
+	sqlite3_create_function(db, "levenshtein", 2, SQLITE_ANY, 0, levenFunc, 0, 0);
+	return 0;
+}
+
+
+int levenshtein_distance( char* s1, char* s2 ) {
+	int k,i,j,n,m,cost,*d,result;
+	n=strlen(s1); 
+	m=strlen(s2);
+
+	if ( n > LEVENSHTEIN_MAX_STRLEN || m > LEVENSHTEIN_MAX_STRLEN ){
+		return -1;
+	}
+
+	if( n !=0 && m != 0){
+		d=malloc((sizeof(int))*(++m)*(++n));
+		for(k=0;k<n;k++){
+			d[k]=k;
+		}
+		for(k=0;k<m;k++){
+			d[k*n]=k;
+		}
+		for(i=1;i<n;i++){
+			for(j=1;j<m;j++){
+				if(s1[i-1]==s2[j-1])
+					cost=0;
+				else
+					cost=1;
+				d[j*n+i]=___MIN___( ___MIN___( d[(j-1)*n+i]+1, d[j*n+i-1]+1 ), d[(j-1)*n+i-1]+cost );
+			}
+		}
+		result=d[n*m-1];
+		free(d);
+		return result;
+	}
+	else {
+		return (n>m)?n:m;
+	}
+}
+
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/README b/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/README
new file mode 100644
index 0000000..93c14fc
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/README
@@ -0,0 +1,18 @@
+$ time sqlite3 < levenshtein-test.sql 
+description                result    
+-------------------------  ----------
+Empty strings 0 distance:  passed    
+'Asia' and 'Kasia' -> 2:   passed    
+NULL handled correctly (1  passed    
+NULL handled correctly (2  passed    
+NULL handled correctly (b  passed    
+Maximum length strings:    passed    
+Too long strings:          passed    
+Random text and zero leng  passed    
+Random text and zero leng  passed    
+4096 tests:                passed    
+
+real    3m8.456s
+user    2m40.302s
+sys     0m26.474s
+
diff --git a/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/levenshtein-test.sql b/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/levenshtein-test.sql
new file mode 100644
index 0000000..3b3fc56
--- /dev/null
+++ b/ete3/ncbi_taxonomy/SQLite-Levenshtein/tests/levenshtein-test.sql
@@ -0,0 +1,67 @@
+.load ./levenshtein.sqlext
+.mode column
+.head on
+
+SELECT
+	desc || ':' AS description,
+	CASE
+		WHEN pass IS NULL THEN 'error'
+		WHEN pass = 1 THEN 'passed'
+		WHEN pass = 0 THEN 'failed'
+	END AS result
+FROM (
+SELECT
+	'Empty strings 0 distance' AS desc,
+	LEVENSHTEIN( '','' ) == 0 AS pass
+UNION ALL
+SELECT
+	'''Asia'' and ''Kasia'' -> 2',
+	LEVENSHTEIN( 'Asia', 'Kasia' ) == 2
+UNION ALL
+SELECT
+	'NULL handled correctly (1st)',
+	LEVENSHTEIN( NULL, 'any' ) IS NULL
+UNION ALL
+SELECT
+	'NULL handled correctly (2nd)',
+	LEVENSHTEIN( 'any', NULL ) IS NULL
+UNION ALL
+SELECT
+	'NULL handled correctly (both)',
+	LEVENSHTEIN( NULL, NULL ) IS NULL
+UNION ALL
+SELECT
+	'Maximum length strings',
+	LEVENSHTEIN( HEX(RANDOMBLOB(512)), HEX(RANDOMBLOB(512)) ) > 0
+UNION ALL
+SELECT
+	'Too long strings',
+	LEVENSHTEIN( HEX(RANDOMBLOB(513)), 'any' ) IS NULL
+UNION ALL
+SELECT	
+	'Random text and zero length text',
+	LEVENSHTEIN( HEX(RANDOMBLOB(10)), '' ) = 20
+UNION ALL
+SELECT	
+	'Random text and zero length text',
+	LEVENSHTEIN( '', HEX(RANDOMBLOB(10)) ) = 20
+UNION ALL
+SELECT
+	'4096 tests',
+	( SELECT
+		count(leven)
+		FROM
+		( SELECT
+			LEVENSHTEIN( HEX( RANDOMBLOB( 512 ) ), HEX( RANDOMBLOB( 512 ) ) ) AS leven
+		  FROM
+			( SELECT 0 AS a0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 ) AS gen0
+		  CROSS JOIN
+			( SELECT 0 AS a1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 ) AS gen1
+		  CROSS JOIN
+			( SELECT 0 AS a2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 ) AS gen2
+		  CROSS JOIN
+			( SELECT 0 AS a3 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 ) AS gen3
+		)
+	) = 4096
+) AS tests;
+
diff --git a/ete3/ncbi_taxonomy/__init__.py b/ete3/ncbi_taxonomy/__init__.py
new file mode 100644
index 0000000..f9b9e9f
--- /dev/null
+++ b/ete3/ncbi_taxonomy/__init__.py
@@ -0,0 +1,40 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from .ncbiquery import *
diff --git a/ete3/ncbi_taxonomy/ncbiquery.py b/ete3/ncbi_taxonomy/ncbiquery.py
new file mode 100644
index 0000000..5978064
--- /dev/null
+++ b/ete3/ncbi_taxonomy/ncbiquery.py
@@ -0,0 +1,811 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+import os
+try:
+    import cPickle as pickle
+except ImportError:
+    # python 3 support
+    import pickle
+
+from collections import defaultdict, Counter
+
+import sqlite3
+import math
+import tarfile
+import six
+from six.moves import map
+import warnings
+
+
+c = None
+
+__all__ = ["NCBITaxa"]
+
+DB_VERSION = 2
+
+class NCBITaxa(object):
+    """
+    versionadded: 2.3
+
+    Provides a local transparent connector to the NCBI taxonomy database.
+    """
+
+    def __init__(self, dbfile=None):
+
+        if not dbfile:
+            self.dbfile = os.path.join(os.environ.get('HOME', '/'), '.etetoolkit', 'taxa.sqlite')
+        else:
+            self.dbfile = dbfile
+
+        if dbfile is None and not os.path.exists(self.dbfile):
+            print('NCBI database not present yet (first time used?)', file=sys.stderr)
+            self.update_taxonomy_database()
+
+        if not os.path.exists(self.dbfile):
+            raise ValueError("Cannot open taxonomy database: %s" %self.dbfile)
+
+        self.db = None
+        self._connect()
+
+        if self.__get_db_version() != DB_VERSION:
+            print('NCBI database format is outdated. Upgrading', file=sys.stderr)
+            self.update_taxonomy_database()
+
+    def __get_db_version(self):
+        try:
+            r = self.db.execute('select version from stats;')
+        except Exception:
+            return None
+        else:
+            return r.fetchone()[0]
+
+    def update_taxonomy_database(self, taxdump_file=None):
+        """Updates the ncbi taxonomy database by downloading and parsing the latest
+        taxdump.tar.gz file from the NCBI FTP site.
+
+        :param None taxdump_file: an alternative location of the taxdump.tax.gz file.
+        """
+        if not taxdump_file:
+            update_db(self.dbfile)
+        else:
+            update_db(self.dbfile, taxdump_file)
+
+    def _connect(self):
+        self.db = sqlite3.connect(self.dbfile)
+
+    def _translate_merged(self, all_taxids):
+        conv_all_taxids = set((list(map(int, all_taxids))))
+        cmd = 'select taxid_old, taxid_new FROM merged WHERE taxid_old IN (%s)' %','.join(map(str, all_taxids))
+
+        result = self.db.execute(cmd)
+        conversion = {}
+        for old, new in result.fetchall():
+            conv_all_taxids.discard(int(old))
+            conv_all_taxids.add(int(new))
+            conversion[int(old)] = int(new)
+        return conv_all_taxids, conversion
+
+
+    def get_fuzzy_name_translation(self, name, sim=0.9):
+        '''
+        Given an inexact species name, returns the best match in the NCBI database of taxa names.
+
+        :argument 0.9 sim: Min word similarity to report a match (from 0 to 1).
+
+        :return: taxid, species-name-match, match-score
+        '''
+
+
+        import sqlite3.dbapi2 as dbapi2
+        _db = dbapi2.connect(self.dbfile)
+        _db.enable_load_extension(True)
+        module_path = os.path.split(os.path.realpath(__file__))[0]
+        _db.execute("select load_extension('%s')" % os.path.join(module_path,
+                                                                 "SQLite-Levenshtein/levenshtein.sqlext"))
+
+        print("Trying fuzzy search for %s" % name)
+        maxdiffs = math.ceil(len(name) * (1-sim))
+        cmd = 'SELECT taxid, spname, LEVENSHTEIN(spname, "%s") AS sim  FROM species WHERE sim<=%s ORDER BY sim LIMIT 1;' % (name, maxdiffs)
+        taxid, spname, score = None, None, len(name)
+        result = _db.execute(cmd)
+        try:
+            taxid, spname, score = result.fetchone()
+        except TypeError:
+            cmd = 'SELECT taxid, spname, LEVENSHTEIN(spname, "%s") AS sim  FROM synonym WHERE sim<=%s ORDER BY sim LIMIT 1;' % (name, maxdiffs)
+            result = _db.execute(cmd)
+            try:
+                taxid, spname, score = result.fetchone()
+            except:
+                pass
+            else:
+                taxid = int(taxid)
+        else:
+            taxid = int(taxid)
+
+        norm_score = 1 - (float(score)/len(name))
+        if taxid:
+            print("FOUND!    %s taxid:%s score:%s (%s)" %(spname, taxid, score, norm_score))
+
+        return taxid, spname, norm_score
+
+    def get_rank(self, taxids):
+        'return a dictionary converting a list of taxids into their corresponding NCBI taxonomy rank'
+
+        all_ids = set(taxids)
+        all_ids.discard(None)
+        all_ids.discard("")
+        query = ','.join(['"%s"' %v for v in all_ids])
+        cmd = "select taxid, rank FROM species WHERE taxid IN (%s);" %query
+        result = self.db.execute(cmd)
+        id2rank = {}
+        for tax, spname in result.fetchall():
+            id2rank[tax] = spname
+        return id2rank
+
+    def get_lineage_translator(self, taxids):
+        """Given a valid taxid number, return its corresponding lineage track as a
+        hierarchically sorted list of parent taxids.
+        """
+        all_ids = set(taxids)
+        all_ids.discard(None)
+        all_ids.discard("")
+        query = ','.join(['"%s"' %v for v in all_ids])
+        result = self.db.execute('SELECT taxid, track FROM species WHERE taxid IN (%s);' %query)
+        id2lineages = {}
+        for tax, track in result.fetchall():
+            id2lineages[tax] = list(map(int, reversed(track.split(","))))
+
+        return id2lineages
+
+    
+    def get_lineage(self, taxid):
+        """Given a valid taxid number, return its corresponding lineage track as a
+        hierarchically sorted list of parent taxids.
+        """
+        if not taxid:
+            return None
+        result = self.db.execute('SELECT track FROM species WHERE taxid=%s' %taxid)
+        raw_track = result.fetchone()
+        if not raw_track:
+            #perhaps is an obsolete taxid
+            _, merged_conversion = self._translate_merged([taxid])
+            if taxid in merged_conversion:
+                result = self.db.execute('SELECT track FROM species WHERE taxid=%s' %merged_conversion[taxid])
+                raw_track = result.fetchone()
+            # if not raise error
+            if not raw_track:
+                #raw_track = ["1"]
+                raise ValueError("%s taxid not found" %taxid)
+            else:
+                warnings.warn("taxid %s was translated into %s" %(taxid, merged_conversion[taxid]))
+                
+        track = list(map(int, raw_track[0].split(",")))
+        return list(reversed(track))
+
+    def get_common_names(self, taxids):
+        query = ','.join(['"%s"' %v for v in taxids])
+        cmd = "select taxid, common FROM species WHERE taxid IN (%s);" %query
+        result = self.db.execute(cmd)
+        id2name = {}
+        for tax, common_name in result.fetchall():
+            if common_name:
+                id2name[tax] = common_name
+        return id2name
+
+    def get_taxid_translator(self, taxids, try_synonyms=True):
+        """Given a list of taxids, returns a dictionary with their corresponding
+        scientific names.
+        """
+
+        all_ids = set(map(int, taxids))
+        all_ids.discard(None)
+        all_ids.discard("")
+        query = ','.join(['"%s"' %v for v in all_ids])
+        cmd = "select taxid, spname FROM species WHERE taxid IN (%s);" %query
+        result = self.db.execute(cmd)
+        id2name = {}
+        for tax, spname in result.fetchall():
+            id2name[tax] = spname
+
+        # any taxid without translation? lets tray in the merged table
+        if len(all_ids) != len(id2name) and try_synonyms:
+            not_found_taxids = all_ids - set(id2name.keys())
+            taxids, old2new = self._translate_merged(not_found_taxids)
+            new2old = dict([(v,k) for k,v in six.iteritems(old2new)])
+
+            if old2new:
+                query = ','.join(['"%s"' %v for v in new2old])
+                cmd = "select taxid, spname FROM species WHERE taxid IN (%s);" %query
+                result = self.db.execute(cmd)
+                for tax, spname in result.fetchall():
+                    id2name[new2old[tax]] = spname
+
+        return id2name
+
+    def get_name_translator(self, names):
+        """
+        Given a list of taxid scientific names, returns a dictionary translating them into their corresponding taxids.
+
+        Exact name match is required for translation.
+        """
+
+        name2id = {}
+        #name2realname = {}
+        name2origname = {}
+        for n in names:
+            name2origname[n.lower()] = n
+
+        names = set(name2origname.keys())
+
+        query = ','.join(['"%s"' %n for n in six.iterkeys(name2origname)])
+        cmd = 'select spname, taxid from species where spname IN (%s)' %query
+        result = self.db.execute('select spname, taxid from species where spname IN (%s)' %query)
+        for sp, taxid in result.fetchall():
+            oname = name2origname[sp.lower()]
+            name2id.setdefault(oname, []).append(taxid)
+            #name2realname[oname] = sp
+        missing =  names - set([n.lower() for n in name2id.keys()])
+        if missing:
+            query = ','.join(['"%s"' %n for n in missing])
+            result = self.db.execute('select spname, taxid from synonym where spname IN (%s)' %query)
+            for sp, taxid in result.fetchall():
+                oname = name2origname[sp.lower()]
+                name2id.setdefault(oname, []).append(taxid)
+                #name2realname[oname] = sp
+        return name2id
+
+    def translate_to_names(self, taxids):
+        """
+        Given a list of taxid numbers, returns another list with their corresponding scientific names.
+        """
+        id2name = self.get_taxid_translator(taxids)
+        names = []
+        for sp in taxids:
+            names.append(id2name.get(sp, sp))
+        return names
+                                
+
+    def get_descendant_taxa(self, parent, intermediate_nodes=False, rank_limit=None, collapse_subspecies=False, return_tree=False):
+        """
+        given a parent taxid or scientific species name, returns a list of all its descendants taxids.
+        If intermediate_nodes is set to True, internal nodes will also be dumped.
+
+        """
+        try:
+            taxid = int(parent)
+        except ValueError:
+            try:
+                taxid = self.get_name_translator([parent])[parent][0]
+            except KeyError:
+                raise ValueError('%s not found!' %parent)
+
+        with open(self.dbfile+".traverse.pkl", "rb") as CACHED_TRAVERSE:
+            prepostorder = pickle.load(CACHED_TRAVERSE)
+        descendants = {}
+        found = 0
+        for tid in prepostorder:
+            if tid == taxid:
+                found += 1
+            elif found == 1:
+                descendants[tid] = descendants.get(tid, 0) + 1
+            elif found == 2:
+                break
+            
+        if not found:
+            raise ValueError("taxid not found:%s" %taxid)
+        elif found == 1:
+            return [taxid]        
+            
+        if rank_limit or collapse_subspecies or return_tree:
+            tree = self.get_topology(list(descendants.keys()), intermediate_nodes=intermediate_nodes, collapse_subspecies=collapse_subspecies, rank_limit=rank_limit)
+            if return_tree:
+                return tree
+            elif intermediate_nodes:
+                return list(map(int, [n.name for n in tree.get_descendants()]))
+            else:
+                return map(int, [n.name for n in tree])
+                
+        elif intermediate_nodes:
+            return [tid for tid, count in six.iteritems(descendants)]
+        else:
+            return [tid for tid, count in six.iteritems(descendants) if count == 1]
+
+    def get_topology(self, taxids, intermediate_nodes=False, rank_limit=None, collapse_subspecies=False, annotate=True):
+        """Given a list of taxid numbers, return the minimal pruned NCBI taxonomy tree
+        containing all of them.
+
+        :param False intermediate_nodes: If True, single child nodes
+        representing the complete lineage of leaf nodes are kept. Otherwise, the
+        tree is pruned to contain the first common ancestor of each group.
+
+        :param None rank_limit: If valid NCBI rank name is provided, the tree is
+        pruned at that given level. For instance, use rank="species" to get rid
+        of sub-species or strain leaf nodes.
+
+        :param False collapse_subspecies: If True, any item under the species
+        rank will be collapsed into the species upper node.
+
+        """
+        from .. import PhyloTree
+        taxids, merged_conversion = self._translate_merged(taxids)        
+        if len(taxids) == 1:
+            root_taxid = int(list(taxids)[0])
+            with open(self.dbfile+".traverse.pkl", "rb") as CACHED_TRAVERSE:
+                prepostorder = pickle.load(CACHED_TRAVERSE)
+            descendants = {}
+            found = 0
+            nodes = {}
+            hit = 0
+            visited = set()            
+            start = prepostorder.index(root_taxid)
+            try:
+            	end = prepostorder.index(root_taxid, start+1)
+            	subtree = prepostorder[start:end+1]
+            except ValueError:
+                # If root taxid is not found in postorder, must be a tip node
+            	subtree = [root_taxid]
+            leaves = set([v for v, count in Counter(subtree).items() if count == 1])
+            nodes[root_taxid] = PhyloTree(name=str(root_taxid))
+            current_parent = nodes[root_taxid]
+            for tid in subtree:
+                if tid in visited:
+                    current_parent = nodes[tid].up
+                else:
+                    visited.add(tid)
+                    nodes[tid] = PhyloTree(name=str(tid))
+                    current_parent.add_child(nodes[tid])
+                    if tid not in leaves:
+                        current_parent = nodes[tid]
+            root = nodes[root_taxid]
+        else:
+            taxids = set(map(int, taxids))
+            sp2track = {}
+            elem2node = {}
+            id2lineage = self.get_lineage_translator(taxids)
+            all_taxids = set()
+            for lineage in id2lineage.values():
+                all_taxids.update(lineage)                
+            id2rank = self.get_rank(all_taxids)
+            for sp in taxids:
+                track = []
+                lineage = id2lineage[sp]
+
+                for elem in lineage:
+                    if elem not in elem2node:
+                        node = elem2node.setdefault(elem, PhyloTree())
+                        node.name = str(elem)
+                        node.taxid = elem
+                        node.add_feature("rank", str(id2rank.get(int(elem), "no rank")))
+                    else:
+                        node = elem2node[elem]
+                    track.append(node)
+                sp2track[sp] = track
+            # generate parent child relationships
+            for sp, track in six.iteritems(sp2track):
+                parent = None
+                for elem in track:
+                    if parent and elem not in parent.children:
+                        parent.add_child(elem)
+                    if rank_limit and elem.rank == rank_limit:
+                        break
+                    parent = elem
+            root = elem2node[1]
+
+        #remove onechild-nodes
+        if not intermediate_nodes:
+            for n in root.get_descendants():
+                if len(n.children) == 1 and int(n.name) not in taxids:
+                    n.delete(prevent_nondicotomic=False)
+
+        if len(root.children) == 1:
+            tree = root.children[0].detach()
+        else:
+            tree = root
+
+        if collapse_subspecies:
+            to_detach = []
+            for node in tree.traverse():
+                if node.rank == "species":
+                    to_detach.extend(node.children)
+            for n in to_detach:
+                n.detach()
+
+        if annotate:
+            self.annotate_tree(tree)
+
+        return tree
+
+
+    def annotate_tree(self, t, taxid_attr="name", tax2name=None, tax2track=None, tax2rank=None):
+        """Annotate a tree containing taxids as leaf names by adding the  'taxid',
+        'sci_name', 'lineage', 'named_lineage' and 'rank' additional attributes.
+
+        :param t: a Tree (or Tree derived) instance.
+
+        :param name taxid_attr: Allows to set a custom node attribute containing
+        the taxid number associated to each node (i.e. species in PhyloTree instances).
+
+        :param tax2name,tax2track,tax2rank: Use these arguments to provide
+        pre-calculated dictionaries providing translation from taxid number and
+        names,track lineages and ranks.
+        """
+
+        taxids = set()
+        for n in t.traverse():
+            try:
+                tid = int(getattr(n, taxid_attr))
+            except (ValueError,AttributeError):
+                pass
+            else:
+                taxids.add(tid)
+        merged_conversion = {}
+
+        taxids, merged_conversion = self._translate_merged(taxids)
+        
+        if not tax2name or taxids - set(map(int, list(tax2name.keys()))):
+            tax2name = self.get_taxid_translator(taxids)
+        if not tax2track or taxids - set(map(int, list(tax2track.keys()))):
+            tax2track = self.get_lineage_translator(taxids)
+
+        all_taxid_codes = set([_tax for _lin in list(tax2track.values()) for _tax in _lin])
+        extra_tax2name = self.get_taxid_translator(list(all_taxid_codes - set(tax2name.keys())))
+        tax2name.update(extra_tax2name)
+
+        tax2common_name = self.get_common_names(tax2name.keys())
+
+        if not tax2rank:
+            tax2rank = self.get_rank(list(tax2name.keys()))
+
+        n2leaves = t.get_cached_content()
+
+        for n in t.traverse('postorder'):
+            try:
+                node_taxid = int(getattr(n, taxid_attr))
+            except (ValueError, AttributeError):
+                node_taxid = None
+
+            n.add_features(taxid = node_taxid)
+            if node_taxid:
+                if node_taxid in merged_conversion:
+                    node_taxid = merged_conversion[node_taxid]
+                n.add_features(sci_name = tax2name.get(node_taxid, getattr(n, taxid_attr, '')),
+                               common_name = tax2common_name.get(node_taxid, ''),
+                               lineage = tax2track[node_taxid],
+                               rank = tax2rank.get(node_taxid, 'Unknown'),                               
+                               named_lineage = [tax2name.get(tax, str(tax)) for tax in tax2track[node_taxid]])
+            elif n.is_leaf():
+                n.add_features(sci_name = getattr(n, taxid_attr, 'NA'),
+                               common_name = '',
+                               lineage = [],
+                               rank = 'Unknown',
+                               named_lineage = [])
+            else:
+                lineage = self._common_lineage([lf.lineage for lf in n2leaves[n]])
+                ancestor = lineage[-1]
+                n.add_features(sci_name = tax2name.get(ancestor, str(ancestor)),
+                               common_name = tax2common_name.get(ancestor, ''),
+                               taxid = ancestor,
+                               lineage = lineage,
+                               rank = tax2rank.get(ancestor, 'Unknown'),
+                               named_lineage = [tax2name.get(tax, str(tax)) for tax in lineage])
+
+        return tax2name, tax2track, tax2rank
+
+    def _common_lineage(self, vectors):
+        occurrence = defaultdict(int)
+        pos = defaultdict(set)
+        for v in vectors:
+            for i, taxid in enumerate(v):
+                occurrence[taxid] += 1
+                pos[taxid].add(i)
+
+        common = [taxid for taxid, ocu in six.iteritems(occurrence) if ocu == len(vectors)]
+        if not common:
+            return [""]
+        else:
+            sorted_lineage = sorted(common, key=lambda x: min(pos[x]))
+            return sorted_lineage
+
+        # OLD APPROACH:
+
+        # visited = defaultdict(int)
+        # for index, name in [(ei, e) for v in vectors for ei, e in enumerate(v)]:
+        #     visited[(name, index)] += 1
+
+        # def _sort(a, b):
+        #     if a[1] > b[1]:
+        #         return 1
+        #     elif a[1] < b[1]:
+        #         return -1
+        #     else:
+        #         if a[0][1] > b[0][1]:
+        #             return 1
+        #         elif a[0][1] < b[0][1]:
+        #             return -1
+        #     return 0
+
+        # matches = sorted(visited.items(), _sort)
+
+        # if matches:
+        #     best_match = matches[-1]
+        # else:
+        #     return "", set()
+
+        # if best_match[1] != len(vectors):
+        #     return "", set()
+        # else:
+        #     return best_match[0][0], [m[0][0] for m in matches if m[1] == len(vectors)]
+
+
+    def get_broken_branches(self, t, taxa_lineages, n2content=None):
+        """Returns a list of NCBI lineage names that are not monophyletic in the
+        provided tree, as well as the list of affected branches and their size.
+
+        CURRENTLY EXPERIMENTAL
+
+        """
+        if not n2content:
+            n2content = t.get_cached_content()
+
+        tax2node = defaultdict(set)
+
+        unknown = set()
+        for leaf in t.iter_leaves():
+            if leaf.sci_name.lower() != "unknown":
+                lineage = taxa_lineages[leaf.taxid]
+                for index, tax in enumerate(lineage):
+                    tax2node[tax].add(leaf)
+            else:
+                unknown.add(leaf)
+
+        broken_branches = defaultdict(set)
+        broken_clades = set()
+        for tax, leaves in six.iteritems(tax2node):
+            if len(leaves) > 1:
+                common = t.get_common_ancestor(leaves)
+            else:
+                common = list(leaves)[0]
+            if (leaves ^ set(n2content[common])) - unknown:
+                broken_branches[common].add(tax)
+                broken_clades.add(tax)
+
+        broken_clade_sizes = [len(tax2node[tax]) for tax in broken_clades]
+        return broken_branches, broken_clades, broken_clade_sizes
+
+
+    # def annotate_tree_with_taxa(self, t, name2taxa_file, tax2name=None, tax2track=None, attr_name="name"):
+    #     if name2taxa_file:
+    #         names2taxid = dict([map(strip, line.split("\t"))
+    #                             for line in open(name2taxa_file)])
+    #     else:
+    #         names2taxid = dict([(n.name, getattr(n, attr_name)) for n in t.iter_leaves()])
+
+    #     not_found = 0
+    #     for n in t.iter_leaves():
+    #         n.add_features(taxid=names2taxid.get(n.name, 0))
+    #         n.add_features(species=n.taxid)
+    #         if n.taxid == 0:
+    #             not_found += 1
+    #     if not_found:
+    #         print >>sys.stderr, "WARNING: %s nodes where not found within NCBI taxonomy!!" %not_found
+
+    #     return self.annotate_tree(t, tax2name, tax2track, attr_name="taxid")
+
+
+def load_ncbi_tree_from_dump(tar):
+    from .. import Tree
+    # Download: ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz
+    parent2child = {}
+    name2node = {}
+    node2taxname = {}
+    synonyms = set()
+    name2rank = {}
+    node2common = {}
+    print("Loading node names...")
+    for line in tar.extractfile("names.dmp"):
+        line = str(line.decode())
+        fields =  [_f.strip() for _f in line.split("|")]
+        nodename = fields[0]
+        name_type = fields[3].lower()
+        taxname = fields[1]
+        if name_type == "scientific name":
+            node2taxname[nodename] = taxname
+        if name_type == "genbank common name":
+            node2common[nodename] = taxname
+        elif name_type in set(["synonym", "equivalent name", "genbank equivalent name",
+                               "anamorph", "genbank synonym", "genbank anamorph", "teleomorph"]):
+            synonyms.add( (nodename, taxname) )
+    print(len(node2taxname), "names loaded.")
+    print(len(synonyms), "synonyms loaded.")
+
+    print("Loading nodes...")
+    for line in tar.extractfile("nodes.dmp"):
+        line = str(line.decode())
+        fields =  line.split("|")
+        nodename = fields[0].strip()
+        parentname = fields[1].strip()
+        n = Tree()
+        n.name = nodename
+        n.taxname = node2taxname[nodename]
+        if nodename in node2common:
+            n.common_name = node2common[nodename]
+        n.rank = fields[2].strip()
+        parent2child[nodename] = parentname
+        name2node[nodename] = n
+    print(len(name2node), "nodes loaded.")
+
+    print("Linking nodes...")
+    for node in name2node:
+       if node == "1":
+           t = name2node[node]
+       else:
+           parent = parent2child[node]
+           parent_node = name2node[parent]
+           parent_node.add_child(name2node[node])
+    print("Tree is loaded.")
+    return t, synonyms
+
+def generate_table(t):
+    OUT = open("taxa.tab", "w")
+    for j, n in enumerate(t.traverse()):
+        if j%1000 == 0:
+            print("\r",j,"generating entries...", end=' ')
+        temp_node = n
+        track = []
+        while temp_node:
+            track.append(temp_node.name)
+            temp_node = temp_node.up
+        if n.up:
+            print('\t'.join([n.name, n.up.name, n.taxname, getattr(n, "common_name", ""), n.rank, ','.join(track)]), file=OUT)
+        else:
+            print('\t'.join([n.name, "", n.taxname, getattr(n, "common_name", ""), n.rank, ','.join(track)]), file=OUT)
+    OUT.close()
+
+def update_db(dbfile, targz_file=None):
+    basepath = os.path.split(dbfile)[0]
+    if basepath and not os.path.exists(basepath):
+        os.mkdir(basepath)
+
+    if not targz_file:
+        try:
+            from urllib import urlretrieve
+        except ImportError:
+            from urllib.request import urlretrieve
+
+        print('Downloading taxdump.tar.gz from NCBI FTP site...', file=sys.stderr)
+        urlretrieve("ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz", "taxdump.tar.gz")
+        print('Done. Parsing...', file=sys.stderr)
+        targz_file = "taxdump.tar.gz"
+
+    tar = tarfile.open(targz_file, 'r')
+    t, synonyms = load_ncbi_tree_from_dump(tar)
+    prepostorder = [int(node.name) for post, node in t.iter_prepostorder()]
+    pickle.dump(prepostorder, open(dbfile+'.traverse.pkl', "wb"), 2)
+
+    print("Updating database: %s ..." %dbfile)
+    generate_table(t)
+
+    open("syn.tab", "w").write('\n'.join(["%s\t%s" %(v[0],v[1]) for v in synonyms]))
+
+    with open("merged.tab", "w") as merged:
+        for line in tar.extractfile("merged.dmp"):
+            line = str(line.decode())
+            out_line = '\t'.join([_f.strip() for _f in line.split('|')[:2]])
+            merged.write(out_line+'\n')
+    try:
+        upload_data(dbfile)
+    except:
+        raise
+    else:
+        os.system("rm syn.tab merged.tab taxa.tab taxdump.tar.gz")
+
+def upload_data(dbfile):
+    print()
+    print('Uploading to', dbfile)
+    basepath = os.path.split(dbfile)[0]
+    if basepath and not os.path.exists(basepath):
+        os.mkdir(basepath)
+
+    db = sqlite3.connect(dbfile)
+
+    create_cmd = """
+    DROP TABLE IF EXISTS stats;
+    DROP TABLE IF EXISTS species;
+    DROP TABLE IF EXISTS synonym;
+    DROP TABLE IF EXISTS merged;
+    CREATE TABLE stats (version INT PRIMARY KEY);
+    CREATE TABLE species (taxid INT PRIMARY KEY, parent INT, spname VARCHAR(50) COLLATE NOCASE, common VARCHAR(50) COLLATE NOCASE, rank VARCHAR(50), track TEXT);
+    CREATE TABLE synonym (taxid INT,spname VARCHAR(50) COLLATE NOCASE, PRIMARY KEY (spname, taxid));
+    CREATE TABLE merged (taxid_old INT, taxid_new INT);
+    CREATE INDEX spname1 ON species (spname COLLATE NOCASE);
+    CREATE INDEX spname2 ON synonym (spname COLLATE NOCASE);
+    """
+    for cmd in create_cmd.split(';'):
+        db.execute(cmd)
+    print()
+
+    db.execute("INSERT INTO stats (version) VALUES (%d);" %DB_VERSION)
+    db.commit()
+
+    for i, line in enumerate(open("syn.tab")):
+        if i%5000 == 0 :
+            print('\rInserting synonyms:     % 6d' %i, end=' ', file=sys.stderr)
+            sys.stderr.flush()
+        taxid, spname = line.strip('\n').split('\t')
+        db.execute("INSERT INTO synonym (taxid, spname) VALUES (?, ?);", (taxid, spname))
+    print()
+    db.commit()
+    for i, line in enumerate(open("merged.tab")):
+        if i%5000 == 0 :
+            print('\rInserting taxid merges: % 6d' %i, end=' ', file=sys.stderr)
+            sys.stderr.flush()
+        taxid_old, taxid_new = line.strip('\n').split('\t')
+        db.execute("INSERT INTO merged (taxid_old, taxid_new) VALUES (?, ?);", (taxid_old, taxid_new))
+    print()
+    db.commit()
+    for i, line in enumerate(open("taxa.tab")):
+        if i%5000 == 0 :
+            print('\rInserting taxids:      % 6d' %i, end=' ', file=sys.stderr)
+            sys.stderr.flush()
+        taxid, parentid, spname, common, rank, lineage = line.strip('\n').split('\t')
+        db.execute("INSERT INTO species (taxid, parent, spname, common, rank, track) VALUES (?, ?, ?, ?, ?, ?);", (taxid, parentid, spname, common, rank, lineage))
+    print()
+    db.commit()
+
+if __name__ == "__main__":
+    ncbi = NCBITaxa()
+
+    a = ncbi.get_descendant_taxa("hominidae")
+    print(a)
+    print(ncbi.get_common_names(a))
+    print(ncbi.get_topology(a))
+    b = ncbi.get_descendant_taxa("homo", intermediate_nodes=True, collapse_subspecies=True)
+    print(ncbi.get_taxid_translator(b))
+
+    print(ncbi.get_common_names(b))
+    #ncbi.update_taxonomy_database()
+
diff --git a/ete3/nexml/__init__.py b/ete3/nexml/__init__.py
new file mode 100644
index 0000000..ffadf9d
--- /dev/null
+++ b/ete3/nexml/__init__.py
@@ -0,0 +1,90 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from sys import stdout
+from . import _nexml
+from ._nexml import *
+from ._nexml_tree import NexmlTree
+
+#_nexml.AbstractTree.subclass = NexmlTree
+_nexml.FloatTree.subclass = NexmlTree
+_nexml.IntTree.subclass = NexmlTree
+
+class Nexml(_nexml.Nexml):
+    """ Creates a new nexml project. """
+    def __repr__(self):
+        return "NeXML project <%s>" %hex(hash(self))
+
+    def __init__(self, *args, **kargs):
+        _nexml.Nexml.__init__(self, *args, **kargs)
+
+    def build_from_file(self, fname, index_otus=True):
+        """ Populate Nexml project with data in a nexml file. """
+        doc = _nexml.parsexml_(fname)
+        rootNode = doc.getroot()
+        rootTag, rootClass = _nexml.get_root_tag(rootNode)
+        if rootClass is None:
+            rootTag = 'Nexml'
+            rootClass = self.__class__
+        #rootObj = rootClass.factory()
+        self.build(rootNode)
+
+        # This keeps a pointer from all trees to the parent nexml
+        # project. This way I can access other parts, such as otus,
+        # etc...
+        if index_otus:
+            id2taxa = {}
+            for taxa in self.get_otus():
+                id2taxon = {}
+                for taxon in taxa.otu:
+                    id2taxon[taxon.id] = taxon
+                id2taxa[taxa.id] = [taxa, id2taxon]
+
+            for trees in self.get_trees():
+                for t in trees.get_tree():
+                    t.set_nexml_project(self)
+                    if trees.otus in id2taxa:
+                        t.nexml_otus = id2taxa[trees.otus][0]
+
+    def export(self, outfile=stdout, level=0):
+        namespace='xmlns:nex="http://www.nexml.org/2009"'
+        return super(Nexml, self).export(outfile=outfile, level=level, namespacedef_=namespace)
+
+
+__all__ = _nexml.__all__ + ["Nexml", "NexmlTree"]
diff --git a/ete3/nexml/_nexml.py b/ete3/nexml/_nexml.py
new file mode 100644
index 0000000..e51f383
--- /dev/null
+++ b/ete3/nexml/_nexml.py
@@ -0,0 +1,16157 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#
+# Generated Mon Jun 27 10:13:44 2011 by generateDS.py version 2.5b.
+#
+
+import sys
+import getopt
+import re as re_
+import six
+from six.moves import range
+
+etree_ = None
+Verbose_import_ = False
+(   XMLParser_import_none, XMLParser_import_lxml,
+    XMLParser_import_elementtree
+    ) = list(range(3))
+XMLParser_import_library = None
+try:
+    # lxml
+    from lxml import etree as etree_
+    XMLParser_import_library = XMLParser_import_lxml
+    if Verbose_import_:
+        print("running with lxml.etree")
+except ImportError:
+    try:
+        # cElementTree from Python 2.5+
+        import xml.etree.cElementTree as etree_
+        XMLParser_import_library = XMLParser_import_elementtree
+        if Verbose_import_:
+            print("running with cElementTree on Python 2.5+")
+    except ImportError:
+        try:
+            # ElementTree from Python 2.5+
+            import xml.etree.ElementTree as etree_
+            XMLParser_import_library = XMLParser_import_elementtree
+            if Verbose_import_:
+                print("running with ElementTree on Python 2.5+")
+        except ImportError:
+            try:
+                # normal cElementTree install
+                import cElementTree as etree_
+                XMLParser_import_library = XMLParser_import_elementtree
+                if Verbose_import_:
+                    print("running with cElementTree")
+            except ImportError:
+                try:
+                    # normal ElementTree install
+                    import elementtree.ElementTree as etree_
+                    XMLParser_import_library = XMLParser_import_elementtree
+                    if Verbose_import_:
+                        print("running with ElementTree")
+                except ImportError:
+                    raise ImportError("Failed to import ElementTree from any known place")
+
+def parsexml_(*args, **kwargs):
+    if (XMLParser_import_library == XMLParser_import_lxml and
+        'parser' not in kwargs):
+        # Use the lxml ElementTree compatible parser so that, e.g.,
+        #   we ignore comments.
+        kwargs['parser'] = etree_.ETCompatXMLParser()
+    doc = etree_.parse(*args, **kwargs)
+    return doc
+
+#
+# User methods
+#
+# Calls to the methods in these classes are generated by generateDS.py.
+# You can replace these methods by re-implementing the following class
+#   in a module named generatedssuper.py.
+
+try:
+    from generatedssuper import GeneratedsSuper
+except ImportError as exp:
+
+    class GeneratedsSuper(object):
+        def gds_format_string(self, input_data, input_name=''):
+            return input_data
+        def gds_validate_string(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer(self, input_data, input_name=''):
+            return '%d' % input_data
+        def gds_validate_integer(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_integer_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of integers')
+            return input_data
+        def gds_format_float(self, input_data, input_name=''):
+            return '%f' % input_data
+        def gds_validate_float(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_float_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_float_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of floats')
+            return input_data
+        def gds_format_double(self, input_data, input_name=''):
+            return '%e' % input_data
+        def gds_validate_double(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_double_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_double_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of doubles')
+            return input_data
+        def gds_format_boolean(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_boolean_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                if value not in ('true', '1', 'false', '0', ):
+                    raise_parse_error(node, 'Requires sequence of booleans ("true", "1", "false", "0")')
+            return input_data
+        def gds_str_lower(self, instring):
+            return instring.lower()
+        def get_path_(self, node):
+            path_list = []
+            self.get_path_list_(node, path_list)
+            path_list.reverse()
+            path = '/'.join(path_list)
+            return path
+        Tag_strip_pattern_ = re_.compile(r'\{.*\}')
+        def get_path_list_(self, node, path_list):
+            if node is None:
+                return
+            tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
+            if tag:
+                path_list.append(tag)
+            self.get_path_list_(node.getparent(), path_list)
+
+
+#
+# If you have installed IPython you can uncomment and use the following.
+# IPython is available from http://ipython.scipy.org/.
+#
+
+## from IPython.Shell import IPShellEmbed
+## args = ''
+## ipshell = IPShellEmbed(args,
+##     banner = 'Dropping into IPython',
+##     exit_msg = 'Leaving Interpreter, back to program.')
+
+# Then use the following line where and when you want to drop into the
+# IPython shell:
+#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
+
+#
+# Globals
+#
+
+ExternalEncoding = 'utf-8'
+Tag_pattern_ = re_.compile(r'({.*})?(.*)')
+STRING_CLEANUP_PAT = re_.compile(r"[\n\r\s]+")
+
+#
+# Support/utility functions.
+#
+
+def showIndent(outfile, level):
+    for idx in range(level):
+        outfile.write('    ')
+
+def quote_xml(inStr):
+    if not inStr:
+        return ''
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    return s1
+
+def quote_attrib(inStr):
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    if '"' in s1:
+        if "'" in s1:
+            s1 = '"%s"' % s1.replace('"', """)
+        else:
+            s1 = "'%s'" % s1
+    else:
+        s1 = '"%s"' % s1
+    return s1
+
+def quote_python(inStr):
+    s1 = inStr
+    if s1.find("'") == -1:
+        if s1.find('\n') == -1:
+            return "'%s'" % s1
+        else:
+            return "'''%s'''" % s1
+    else:
+        if s1.find('"') != -1:
+            s1 = s1.replace('"', '\\"')
+        if s1.find('\n') == -1:
+            return '"%s"' % s1
+        else:
+            return '"""%s"""' % s1
+
+def get_all_text_(node):
+    if node.text is not None:
+        text = node.text
+    else:
+        text = ''
+    for child in node:
+        if child.tail is not None:
+            text += child.tail
+    return text
+
+def find_attr_value_(attr_name, node):
+    attrs = node.attrib
+    # First try with no namespace.
+    value = attrs.get(attr_name)
+    if value is None:
+        # Now try the other possible namespaces.
+        namespaces = six.itervalues(node.nsmap)
+        for namespace in namespaces:
+            value = attrs.get('{%s}%s' % (namespace, attr_name, ))
+            if value is not None:
+                break
+    return value
+
+
+class GDSParseError(Exception):
+    pass
+
+def raise_parse_error(node, msg):
+    if XMLParser_import_library == XMLParser_import_lxml:
+        msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
+    else:
+        msg = '%s (element %s)' % (msg, node.tag, )
+    raise GDSParseError(msg)
+
+
+class MixedContainer:
+    # Constants for category:
+    CategoryNone = 0
+    CategoryText = 1
+    CategorySimple = 2
+    CategoryComplex = 3
+    # Constants for content_type:
+    TypeNone = 0
+    TypeText = 1
+    TypeString = 2
+    TypeInteger = 3
+    TypeFloat = 4
+    TypeDecimal = 5
+    TypeDouble = 6
+    TypeBoolean = 7
+    def __init__(self, category, content_type, name, value):
+        self.category = category
+        self.content_type = content_type
+        self.name = name
+        self.value = value
+    def getCategory(self):
+        return self.category
+    def getContenttype(self, content_type):
+        return self.content_type
+    def getValue(self):
+        return self.value
+    def getName(self):
+        return self.name
+    def export(self, outfile, level, name, namespace):
+        if self.category == MixedContainer.CategoryText:
+            # Prevent exporting empty content as empty lines.
+            if self.value.strip():
+                outfile.write(self.value)
+        elif self.category == MixedContainer.CategorySimple:
+            self.exportSimple(outfile, level, name)
+        else:    # category == MixedContainer.CategoryComplex
+            self.value.export(outfile, level, namespace,name)
+    def exportSimple(self, outfile, level, name):
+        if self.content_type == MixedContainer.TypeString:
+            outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeInteger or \
+                self.content_type == MixedContainer.TypeBoolean:
+            outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeFloat or \
+                self.content_type == MixedContainer.TypeDecimal:
+            outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeDouble:
+            outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
+    def exportLiteral(self, outfile, level, name):
+        if self.category == MixedContainer.CategoryText:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        elif self.category == MixedContainer.CategorySimple:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        else:    # category == MixedContainer.CategoryComplex
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s",\n' % \
+                (self.category, self.content_type, self.name,))
+            self.value.exportLiteral(outfile, level + 1)
+            showIndent(outfile, level)
+            outfile.write(')\n')
+
+
+class MemberSpec_(object):
+    def __init__(self, name='', data_type='', container=0):
+        self.name = name
+        self.data_type = data_type
+        self.container = container
+    def set_name(self, name): self.name = name
+    def get_name(self): return self.name
+    def set_data_type(self, data_type): self.data_type = data_type
+    def get_data_type_chain(self): return self.data_type
+    def get_data_type(self):
+        if isinstance(self.data_type, list):
+            if len(self.data_type) > 0:
+                return self.data_type[-1]
+            else:
+                return 'xs:string'
+        else:
+            return self.data_type
+    def set_container(self, container): self.container = container
+    def get_container(self): return self.container
+
+def _cast(typ, value):
+    if typ is None or value is None:
+        return value
+    return typ(value)
+
+#
+# Data representation classes.
+#
+
+class Base(GeneratedsSuper):
+    """The base type for all complexType definitions in the nexml schema.
+    This type allows a number of special attributes: xml:lang - for
+    languages codes xml:base - see http://www.w3.org/TR/xmlbase/
+    xml:id - see http://www.w3.org/TR/xml-id/ xml:space - for
+    whitespace handling xlink:href - for links Also see
+    http://www.w3.org/2001/xml.xsd for more information on the xml
+    and xlink attributes."""
+    subclass = None
+    superclass = None
+    def __init__(self, valueOf_=None):
+        self.anyAttributes_ = {}
+    def factory(*args_, **kwargs_):
+        if Base.subclass:
+            return Base.subclass(*args_, **kwargs_)
+        else:
+            return Base(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_anyAttributes_(self): return self.anyAttributes_
+    def set_anyAttributes_(self, anyAttributes_): self.anyAttributes_ = anyAttributes_
+    def export(self, outfile, level, namespace_='', name_='Base', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Base')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Base'):
+        for name, value in list(self.anyAttributes_.items()):
+            xsinamespaceprefix = 'xsi'
+            xsinamespace1 = 'http://www.w3.org/2001/XMLSchema-instance'
+            xsinamespace2 = '{%s}' % (xsinamespace1, )
+            if name.startswith(xsinamespace2):
+                name1 = name[len(xsinamespace2):]
+                name2 = '%s:%s' % (xsinamespaceprefix, name1, )
+                if name2 not in already_processed:
+                    already_processed.append(name2)
+                    outfile.write(' %s=%s' % (name2, quote_attrib(value), ))
+            else:
+                if name not in already_processed:
+                    already_processed.append(name)
+                    outfile.write(' %s=%s' % (name, quote_attrib(value), ))
+        pass
+    def exportChildren(self, outfile, level, namespace_='', name_='Base', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Base'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        for name, value in list(self.anyAttributes_.items()):
+            showIndent(outfile, level)
+            outfile.write('%s = "%s",\n' % (name, value,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        self.anyAttributes_ = {}
+        for name, value in list(attrs.items()):
+            if name not in already_processed:
+                self.anyAttributes_[name] = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class Base
+
+
+class Meta(Base):
+    subclass = None
+    superclass = Base
+    def __init__(self, valueOf_=None):
+        super(Meta, self).__init__()
+        pass
+    def factory(*args_, **kwargs_):
+        if Meta.subclass:
+            return Meta.subclass(*args_, **kwargs_)
+        else:
+            return Meta(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='Meta', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Meta')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Meta"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Meta'):
+        super(Meta, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Meta')
+    def exportChildren(self, outfile, level, namespace_='', name_='Meta', fromsubclass_=False):
+        super(Meta, self).exportChildren(outfile, level, namespace_, name_, True)
+        pass
+    def hasContent_(self):
+        if (
+            super(Meta, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Meta'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(Meta, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Meta, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(Meta, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(Meta, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class Meta
+
+
+class ResourceMeta(Meta):
+    """Metadata annotations in which the object is a resource. If this
+    element contains meta elements as children, then the object of
+    this annotation is a "blank node"."""
+    subclass = None
+    superclass = Meta
+    def __init__(self, href=None, rel=None, meta=None, valueOf_=None):
+        super(ResourceMeta, self).__init__()
+        self.href = _cast(None, href)
+        self.rel = _cast(None, rel)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if ResourceMeta.subclass:
+            return ResourceMeta.subclass(*args_, **kwargs_)
+        else:
+            return ResourceMeta(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_href(self): return self.href
+    def set_href(self, href): self.href = href
+    def get_rel(self): return self.rel
+    def set_rel(self, rel): self.rel = rel
+    def export(self, outfile, level, namespace_='', name_='ResourceMeta', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ResourceMeta')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="ResourceMeta"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ResourceMeta'):
+        super(ResourceMeta, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ResourceMeta')
+        if self.href is not None and 'href' not in already_processed:
+            already_processed.append('href')
+            outfile.write(' href=%s' % (quote_attrib(self.href), ))
+        if self.rel is not None and 'rel' not in already_processed:
+            already_processed.append('rel')
+            outfile.write(' rel=%s' % (quote_attrib(self.rel), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='ResourceMeta', fromsubclass_=False):
+        super(ResourceMeta, self).exportChildren(outfile, level, namespace_, name_, True)
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(ResourceMeta, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ResourceMeta'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.href is not None and 'href' not in already_processed:
+            already_processed.append('href')
+            showIndent(outfile, level)
+            outfile.write('href = %s,\n' % (self.href,))
+        if self.rel is not None and 'rel' not in already_processed:
+            already_processed.append('rel')
+            showIndent(outfile, level)
+            outfile.write('rel = %s,\n' % (self.rel,))
+        super(ResourceMeta, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ResourceMeta, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('href', node)
+        if value is not None and 'href' not in already_processed:
+            already_processed.append('href')
+            self.href = value
+        value = find_attr_value_('rel', node)
+        if value is not None and 'rel' not in already_processed:
+            already_processed.append('rel')
+            self.rel = value
+        super(ResourceMeta, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        super(ResourceMeta, self).buildChildren(child_, node, nodeName_, True)
+# end class ResourceMeta
+
+
+class LiteralMeta(Meta):
+    """Metadata annotations in which the object is a literal value. If the
+    @content attribute is used, then the element should contain no
+    children."""
+    subclass = None
+    superclass = Meta
+    def __init__(self, datatype=None, content=None, property=None, valueOf_=None):
+        super(LiteralMeta, self).__init__()
+        self.datatype = _cast(None, datatype)
+        self.content = _cast(None, content)
+        self.property = _cast(None, property)
+        pass
+    def factory(*args_, **kwargs_):
+        if LiteralMeta.subclass:
+            return LiteralMeta.subclass(*args_, **kwargs_)
+        else:
+            return LiteralMeta(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_datatype(self): return self.datatype
+    def set_datatype(self, datatype): self.datatype = datatype
+    def get_content(self): return self.content
+    def set_content(self, content): self.content = content
+    def get_property(self): return self.property
+    def set_property(self, property): self.property = property
+    def export(self, outfile, level, namespace_='', name_='LiteralMeta', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='LiteralMeta')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="LiteralMeta"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='LiteralMeta'):
+        super(LiteralMeta, self).exportAttributes(outfile, level, already_processed, namespace_, name_='LiteralMeta')
+        if self.datatype is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            outfile.write(' datatype=%s' % (quote_attrib(self.datatype), ))
+        if self.content is not None and 'content' not in already_processed:
+            already_processed.append('content')
+            outfile.write(' content=%s' % (self.gds_format_string(quote_attrib(self.content).encode(ExternalEncoding), input_name='content'), ))
+        if self.property is not None and 'property' not in already_processed:
+            already_processed.append('property')
+            outfile.write(' property=%s' % (quote_attrib(self.property), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='LiteralMeta', fromsubclass_=False):
+        super(LiteralMeta, self).exportChildren(outfile, level, namespace_, name_, True)
+        pass
+    def hasContent_(self):
+        if (
+            super(LiteralMeta, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='LiteralMeta'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.datatype is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            showIndent(outfile, level)
+            outfile.write('datatype = %s,\n' % (self.datatype,))
+        if self.content is not None and 'content' not in already_processed:
+            already_processed.append('content')
+            showIndent(outfile, level)
+            outfile.write('content = "%s",\n' % (self.content,))
+        if self.property is not None and 'property' not in already_processed:
+            already_processed.append('property')
+            showIndent(outfile, level)
+            outfile.write('property = %s,\n' % (self.property,))
+        super(LiteralMeta, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(LiteralMeta, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('datatype', node)
+        if value is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            self.datatype = value
+        value = find_attr_value_('content', node)
+        if value is not None and 'content' not in already_processed:
+            already_processed.append('content')
+            self.content = value
+        value = find_attr_value_('property', node)
+        if value is not None and 'property' not in already_processed:
+            already_processed.append('property')
+            self.property = value
+        super(LiteralMeta, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(LiteralMeta, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class LiteralMeta
+
+
+class attrExtensions(GeneratedsSuper):
+    """This element is for use in WSDL 1.1 only. It does not apply to WSDL
+    2.0 documents. Use in WSDL 2.0 documents is invalid."""
+    subclass = None
+    superclass = None
+    def __init__(self, valueOf_=None):
+        self.anyAttributes_ = {}
+    def factory(*args_, **kwargs_):
+        if attrExtensions.subclass:
+            return attrExtensions.subclass(*args_, **kwargs_)
+        else:
+            return attrExtensions(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_anyAttributes_(self): return self.anyAttributes_
+    def set_anyAttributes_(self, anyAttributes_): self.anyAttributes_ = anyAttributes_
+    def export(self, outfile, level, namespace_='', name_='attrExtensions', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='attrExtensions')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='attrExtensions'):
+        for name, value in list(self.anyAttributes_.items()):
+            xsinamespaceprefix = 'xsi'
+            xsinamespace1 = 'http://www.w3.org/2001/XMLSchema-instance'
+            xsinamespace2 = '{%s}' % (xsinamespace1, )
+            if name.startswith(xsinamespace2):
+                name1 = name[len(xsinamespace2):]
+                name2 = '%s:%s' % (xsinamespaceprefix, name1, )
+                if name2 not in already_processed:
+                    already_processed.append(name2)
+                    outfile.write(' %s=%s' % (name2, quote_attrib(value), ))
+            else:
+                if name not in already_processed:
+                    already_processed.append(name)
+                    outfile.write(' %s=%s' % (name, quote_attrib(value), ))
+        pass
+    def exportChildren(self, outfile, level, namespace_='', name_='attrExtensions', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='attrExtensions'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        for name, value in list(self.anyAttributes_.items()):
+            showIndent(outfile, level)
+            outfile.write('%s = "%s",\n' % (name, value,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        self.anyAttributes_ = {}
+        for name, value in list(attrs.items()):
+            if name not in already_processed:
+                self.anyAttributes_[name] = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class attrExtensions
+
+
+class AbstractMapping(Base):
+    """The AbstractMapping type is the superclass for an ambiguity mapping.
+    In an instance document, a subclass of this type will look like
+    <member state="st1"/>, i.e. an element called "member" with an
+    attribute called "state" whose value is an id reference that
+    refers to an element that subclasses AbstractState. The purpose
+    of AbstractMapping is to specify which other states may be
+    implied, e.g. a nucleotide symbol "N" would have mappings to
+    "A", "C", "G" and "T"."""
+    subclass = None
+    superclass = Base
+    def __init__(self, state=None, valueOf_=None):
+        super(AbstractMapping, self).__init__()
+        self.state = _cast(None, state)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractMapping.subclass:
+            return AbstractMapping.subclass(*args_, **kwargs_)
+        else:
+            return AbstractMapping(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='AbstractMapping', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractMapping')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractMapping"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractMapping'):
+        super(AbstractMapping, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractMapping')
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractMapping', fromsubclass_=False):
+        super(AbstractMapping, self).exportChildren(outfile, level, namespace_, name_, True)
+        pass
+    def hasContent_(self):
+        if (
+            super(AbstractMapping, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractMapping'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(AbstractMapping, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractMapping, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(AbstractMapping, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractMapping, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractMapping
+
+
+class DNAMapping(AbstractMapping):
+    """An IUPAC ambiguity mapping."""
+    subclass = None
+    superclass = AbstractMapping
+    def __init__(self, state=None, valueOf_=None):
+        super(DNAMapping, self).__init__(state, )
+        pass
+    def factory(*args_, **kwargs_):
+        if DNAMapping.subclass:
+            return DNAMapping.subclass(*args_, **kwargs_)
+        else:
+            return DNAMapping(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='DNAMapping', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMapping')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAMapping'):
+        super(DNAMapping, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMapping')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAMapping', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(DNAMapping, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAMapping'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAMapping, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAMapping, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAMapping, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class DNAMapping
+
+
+class AAMapping(AbstractMapping):
+    """An IUPAC ambiguity mapping."""
+    subclass = None
+    superclass = AbstractMapping
+    def __init__(self, state=None, valueOf_=None):
+        super(AAMapping, self).__init__(state, )
+        pass
+    def factory(*args_, **kwargs_):
+        if AAMapping.subclass:
+            return AAMapping.subclass(*args_, **kwargs_)
+        else:
+            return AAMapping(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='AAMapping', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAMapping')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAMapping'):
+        super(AAMapping, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAMapping')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAMapping', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(AAMapping, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAMapping'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAMapping, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAMapping, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAMapping, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class AAMapping
+
+
+class RNAMapping(AbstractMapping):
+    """An IUPAC RNA ambiguity mapping."""
+    subclass = None
+    superclass = AbstractMapping
+    def __init__(self, state=None, valueOf_=None):
+        super(RNAMapping, self).__init__(state, )
+        pass
+    def factory(*args_, **kwargs_):
+        if RNAMapping.subclass:
+            return RNAMapping.subclass(*args_, **kwargs_)
+        else:
+            return RNAMapping(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='RNAMapping', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMapping')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAMapping'):
+        super(RNAMapping, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMapping')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAMapping', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(RNAMapping, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAMapping'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAMapping, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAMapping, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAMapping, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class RNAMapping
+
+
+class StandardMapping(AbstractMapping):
+    """A standard character ambiguity mapping."""
+    subclass = None
+    superclass = AbstractMapping
+    def __init__(self, state=None, valueOf_=None):
+        super(StandardMapping, self).__init__(state, )
+        pass
+    def factory(*args_, **kwargs_):
+        if StandardMapping.subclass:
+            return StandardMapping.subclass(*args_, **kwargs_)
+        else:
+            return StandardMapping(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='StandardMapping', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMapping')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardMapping'):
+        super(StandardMapping, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMapping')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardMapping', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(StandardMapping, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardMapping'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardMapping, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardMapping, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardMapping, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class StandardMapping
+
+
+class Annotated(Base):
+    """The Annotated complexType is a super class for objects that
+    optionally have metadata annotations of type Meta."""
+    subclass = None
+    superclass = Base
+    def __init__(self, about=None, meta=None, valueOf_=None):
+        super(Annotated, self).__init__()
+        self.about = _cast(None, about)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if Annotated.subclass:
+            return Annotated.subclass(*args_, **kwargs_)
+        else:
+            return Annotated(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_about(self): return self.about
+    def set_about(self, about): self.about = about
+    def export(self, outfile, level, namespace_='', name_='Annotated', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Annotated')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Annotated"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Annotated'):
+        super(Annotated, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Annotated')
+        if self.about is not None and 'about' not in already_processed:
+            already_processed.append('about')
+            outfile.write(' about=%s' % (quote_attrib(self.about), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='Annotated', fromsubclass_=False):
+        super(Annotated, self).exportChildren(outfile, level, namespace_, name_, True)
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(Annotated, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Annotated'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.about is not None and 'about' not in already_processed:
+            already_processed.append('about')
+            showIndent(outfile, level)
+            outfile.write('about = %s,\n' % (self.about,))
+        super(Annotated, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Annotated, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('about', node)
+        if value is not None and 'about' not in already_processed:
+            already_processed.append('about')
+            self.about = value
+        super(Annotated, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        super(Annotated, self).buildChildren(child_, node, nodeName_, True)
+# end class Annotated
+
+
+class Nexml(Annotated):
+    """The root element for nexml."""
+    subclass = None
+    superclass = Annotated
+    def __init__(self, about=None, meta=None, version=None, generator=None, otus=None, characters=None, trees=None, valueOf_=None):
+        super(Nexml, self).__init__(about, meta, )
+        self.version = _cast(None, version)
+        self.generator = _cast(None, generator)
+        if otus is None:
+            self.otus = []
+        else:
+            self.otus = otus
+        if characters is None:
+            self.characters = []
+        else:
+            self.characters = characters
+        if trees is None:
+            self.trees = []
+        else:
+            self.trees = trees
+    def factory(*args_, **kwargs_):
+        if Nexml.subclass:
+            return Nexml.subclass(*args_, **kwargs_)
+        else:
+            return Nexml(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otus(self): return self.otus
+    def set_otus(self, otus): self.otus = otus
+    def add_otus(self, value): self.otus.append(value)
+    def insert_otus(self, index, value): self.otus[index] = value
+    def get_characters(self): return self.characters
+    def set_characters(self, characters): self.characters = characters
+    def add_characters(self, value): self.characters.append(value)
+    def insert_characters(self, index, value): self.characters[index] = value
+    def get_trees(self): return self.trees
+    def set_trees(self, trees): self.trees = trees
+    def add_trees(self, value): self.trees.append(value)
+    def insert_trees(self, index, value): self.trees[index] = value
+    def get_version(self): return self.version
+    def set_version(self, version): self.version = version
+    def validate_Nexml1_0(self, value):
+        # Validate type Nexml1_0, a restriction on xs:decimal.
+        pass
+    def get_generator(self): return self.generator
+    def set_generator(self, generator): self.generator = generator
+    def export(self, outfile, level, namespace_='', name_='Nexml', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Nexml')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Nexml"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Nexml'):
+        super(Nexml, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Nexml')
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            outfile.write(' version=%s' % (quote_attrib(self.version), ))
+        if self.generator is not None and 'generator' not in already_processed:
+            already_processed.append('generator')
+            outfile.write(' generator=%s' % (self.gds_format_string(quote_attrib(self.generator).encode(ExternalEncoding), input_name='generator'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='Nexml', fromsubclass_=False):
+        super(Nexml, self).exportChildren(outfile, level, namespace_, name_, True)
+        for otus_ in self.otus:
+            otus_.export(outfile, level, namespace_, name_='otus')
+        for characters_ in self.get_characters():
+            characters_.export(outfile, level, namespace_, name_='characters')
+        for trees_ in self.trees:
+            trees_.export(outfile, level, namespace_, name_='trees')
+    def hasContent_(self):
+        if (
+            self.otus or
+            self.characters or
+            self.trees or
+            super(Nexml, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Nexml'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            showIndent(outfile, level)
+            outfile.write('version = %f,\n' % (self.version,))
+        if self.generator is not None and 'generator' not in already_processed:
+            already_processed.append('generator')
+            showIndent(outfile, level)
+            outfile.write('generator = "%s",\n' % (self.generator,))
+        super(Nexml, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Nexml, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('otus=[\n')
+        level += 1
+        for otus_ in self.otus:
+            showIndent(outfile, level)
+            outfile.write('model_.Taxa(\n')
+            otus_.exportLiteral(outfile, level, name_='Taxa')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('characters=[\n')
+        level += 1
+        for characters_ in self.characters:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractBlock(\n')
+            characters_.exportLiteral(outfile, level, name_='AbstractBlock')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('trees=[\n')
+        level += 1
+        for trees_ in self.trees:
+            showIndent(outfile, level)
+            outfile.write('model_.Trees(\n')
+            trees_.exportLiteral(outfile, level, name_='Trees')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('version', node)
+        if value is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            try:
+                self.version = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (version): %s' % exp)
+            self.validate_Nexml1_0(self.version)    # validate type Nexml1_0
+        value = find_attr_value_('generator', node)
+        if value is not None and 'generator' not in already_processed:
+            already_processed.append('generator')
+            self.generator = value
+        super(Nexml, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'otus':
+            obj_ = Taxa.factory()
+            obj_.build(child_)
+            self.otus.append(obj_)
+        elif nodeName_ == 'characters':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <characters> element')
+            self.characters.append(obj_)
+        elif nodeName_ == 'trees':
+            obj_ = Trees.factory()
+            obj_.build(child_)
+            self.trees.append(obj_)
+        super(Nexml, self).buildChildren(child_, node, nodeName_, True)
+# end class Nexml
+
+
+class AbstractObsMatrix(Annotated):
+    """The AbstractObsMatrix super class is the abstract type for a
+    <matrix> element that contains rows which hold granular state
+    observations."""
+    subclass = None
+    superclass = Annotated
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(AbstractObsMatrix, self).__init__(about, meta, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractObsMatrix.subclass:
+            return AbstractObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return AbstractObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObsMatrix')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractObsMatrix"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractObsMatrix'):
+        super(AbstractObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractObsMatrix', fromsubclass_=False):
+        super(AbstractObsMatrix, self).exportChildren(outfile, level, namespace_, name_, True)
+        for row_ in self.get_row():
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(AbstractObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='AbstractObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <row> element')
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractObsMatrix, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractObsMatrix
+
+
+class AbstractSeqMatrix(Annotated):
+    """The AbstractSeqMatrix super class is the abstract type for a
+    <matrix> element that contains rows which hold raw character
+    sequences."""
+    subclass = None
+    superclass = Annotated
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(AbstractSeqMatrix, self).__init__(about, meta, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractSeqMatrix.subclass:
+            return AbstractSeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return AbstractSeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractSeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqMatrix')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractSeqMatrix"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractSeqMatrix'):
+        super(AbstractSeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractSeqMatrix', fromsubclass_=False):
+        super(AbstractSeqMatrix, self).exportChildren(outfile, level, namespace_, name_, True)
+        for row_ in self.get_row():
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(AbstractSeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractSeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractSeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractSeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='AbstractSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractSeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <row> element')
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractSeqMatrix, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractSeqMatrix
+
+
+class AbstractFormat(Annotated):
+    """The AbstractFormat type is the superclass for the element that
+    defines the allowed characters and states in a matrix, and their
+    ambiguity mapping. It may enclose AbstractStates elements that
+    define states and their mappings, and AbstractChar elements that
+    specify which AbstractStates apply to which matrix columns."""
+    subclass = None
+    superclass = Annotated
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(AbstractFormat, self).__init__(about, meta, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractFormat.subclass:
+            return AbstractFormat.subclass(*args_, **kwargs_)
+        else:
+            return AbstractFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractFormat')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractFormat"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractFormat'):
+        super(AbstractFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractFormat', fromsubclass_=False):
+        super(AbstractFormat, self).exportChildren(outfile, level, namespace_, name_, True)
+        for states_ in self.get_states():
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.get_char():
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(AbstractFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractStates(\n')
+            states_.exportLiteral(outfile, level, name_='AbstractStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractChar(\n')
+            char_.exportLiteral(outfile, level, name_='AbstractChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <states> element')
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <char> element')
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractFormat, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractFormat
+
+
+class ContinuousObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(ContinuousObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if ContinuousObsMatrix.subclass:
+            return ContinuousObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='ContinuousObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousObsMatrix'):
+        super(ContinuousObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(ContinuousObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.ContinuousMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='ContinuousMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = ContinuousMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class ContinuousObsMatrix
+
+
+class ContinuousSeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with seq strings of type continuous."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(ContinuousSeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if ContinuousSeqMatrix.subclass:
+            return ContinuousSeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousSeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='ContinuousSeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousSeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousSeqMatrix'):
+        super(ContinuousSeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousSeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousSeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(ContinuousSeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousSeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousSeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousSeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.ContinuousMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='ContinuousMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousSeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = ContinuousMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class ContinuousSeqMatrix
+
+
+class ContinuousFormat(AbstractFormat):
+    """The ContinuousFormat class is the container of continuous column
+    definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(ContinuousFormat, self).__init__(about, meta, states, char, set, )
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if ContinuousFormat.subclass:
+            return ContinuousFormat.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='ContinuousFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousFormat'):
+        super(ContinuousFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousFormat', fromsubclass_=False):
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.char or
+            self.set or
+            super(ContinuousFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.ContinuousChar(\n')
+            char_.exportLiteral(outfile, level, name_='ContinuousChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'char':
+            obj_ = ContinuousChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class ContinuousFormat
+
+
+class Labelled(Annotated):
+    """The Labelled complexType is a super class for objects that
+    optionally have label attributes to use as a (non-unique) name
+    of type xs:string."""
+    subclass = None
+    superclass = Annotated
+    def __init__(self, about=None, meta=None, label=None, valueOf_=None):
+        super(Labelled, self).__init__(about, meta, )
+        self.label = _cast(None, label)
+        pass
+    def factory(*args_, **kwargs_):
+        if Labelled.subclass:
+            return Labelled.subclass(*args_, **kwargs_)
+        else:
+            return Labelled(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_label(self): return self.label
+    def set_label(self, label): self.label = label
+    def export(self, outfile, level, namespace_='', name_='Labelled', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Labelled')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Labelled"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Labelled'):
+        super(Labelled, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Labelled')
+        if self.label is not None and 'label' not in already_processed:
+            already_processed.append('label')
+            outfile.write(' label=%s' % (self.gds_format_string(quote_attrib(self.label).encode(ExternalEncoding), input_name='label'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='Labelled', fromsubclass_=False):
+        super(Labelled, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(Labelled, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Labelled'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.label is not None and 'label' not in already_processed:
+            already_processed.append('label')
+            showIndent(outfile, level)
+            outfile.write('label = "%s",\n' % (self.label,))
+        super(Labelled, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Labelled, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('label', node)
+        if value is not None and 'label' not in already_processed:
+            already_processed.append('label')
+            self.label = value
+        super(Labelled, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(Labelled, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class Labelled
+
+
+class StandardObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(StandardObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if StandardObsMatrix.subclass:
+            return StandardObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return StandardObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardObsMatrix'):
+        super(StandardObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(StandardObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='StandardMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = StandardMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class StandardObsMatrix
+
+
+class StandardSeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with seq strings of type standard."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(StandardSeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if StandardSeqMatrix.subclass:
+            return StandardSeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return StandardSeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardSeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardSeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardSeqMatrix'):
+        super(StandardSeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardSeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardSeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(StandardSeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardSeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardSeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardSeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='StandardMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardSeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = StandardMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class StandardSeqMatrix
+
+
+class StandardFormat(AbstractFormat):
+    """The StandardFormat class is the container of standard column
+    definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(StandardFormat, self).__init__(about, meta, states, char, set, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if StandardFormat.subclass:
+            return StandardFormat.subclass(*args_, **kwargs_)
+        else:
+            return StandardFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardFormat'):
+        super(StandardFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardFormat', fromsubclass_=False):
+        for states_ in self.states:
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(StandardFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardStates(\n')
+            states_.exportLiteral(outfile, level, name_='StandardStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardChar(\n')
+            char_.exportLiteral(outfile, level, name_='StandardChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            obj_ = StandardStates.factory()
+            obj_.build(child_)
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            obj_ = StandardChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class StandardFormat
+
+
+class RNAObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(RNAObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RNAObsMatrix.subclass:
+            return RNAObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return RNAObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RNAObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAObsMatrix'):
+        super(RNAObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(RNAObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='RNAMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = RNAMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RNAObsMatrix
+
+
+class RNASeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with seq strings of type RNA."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(RNASeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RNASeqMatrix.subclass:
+            return RNASeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return RNASeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RNASeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNASeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNASeqMatrix'):
+        super(RNASeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNASeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNASeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(RNASeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNASeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNASeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNASeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='RNAMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNASeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = RNAMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RNASeqMatrix
+
+
+class RNAFormat(AbstractFormat):
+    """The RNAFormat class is the container of RNA column definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(RNAFormat, self).__init__(about, meta, states, char, set, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RNAFormat.subclass:
+            return RNAFormat.subclass(*args_, **kwargs_)
+        else:
+            return RNAFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RNAFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAFormat'):
+        super(RNAFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAFormat', fromsubclass_=False):
+        for states_ in self.states:
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(RNAFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAStates(\n')
+            states_.exportLiteral(outfile, level, name_='RNAStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAChar(\n')
+            char_.exportLiteral(outfile, level, name_='RNAChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            obj_ = RNAStates.factory()
+            obj_.build(child_)
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            obj_ = RNAChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RNAFormat
+
+
+class RestrictionObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(RestrictionObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RestrictionObsMatrix.subclass:
+            return RestrictionObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RestrictionObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionObsMatrix'):
+        super(RestrictionObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(RestrictionObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='RestrictionMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = RestrictionMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RestrictionObsMatrix
+
+
+class RestrictionSeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with seq strings of type restriction."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(RestrictionSeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RestrictionSeqMatrix.subclass:
+            return RestrictionSeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionSeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RestrictionSeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionSeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionSeqMatrix'):
+        super(RestrictionSeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionSeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionSeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(RestrictionSeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionSeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionSeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionSeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='RestrictionMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionSeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = RestrictionMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RestrictionSeqMatrix
+
+
+class RestrictionFormat(AbstractFormat):
+    """The RestrictionFormat class is the container of restriction column
+    definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(RestrictionFormat, self).__init__(about, meta, states, char, set, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RestrictionFormat.subclass:
+            return RestrictionFormat.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RestrictionFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionFormat'):
+        super(RestrictionFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionFormat', fromsubclass_=False):
+        for states_ in self.states:
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(RestrictionFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionStates(\n')
+            states_.exportLiteral(outfile, level, name_='RestrictionStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionChar(\n')
+            char_.exportLiteral(outfile, level, name_='RestrictionChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            obj_ = RestrictionStates.factory()
+            obj_.build(child_)
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            obj_ = RestrictionChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RestrictionFormat
+
+
+class AAObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(AAObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AAObsMatrix.subclass:
+            return AAObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return AAObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AAObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAObsMatrix'):
+        super(AAObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(AAObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.AAMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='AAMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = AAMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class AAObsMatrix
+
+
+class AASeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with amino acid data as sequence strings."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(AASeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AASeqMatrix.subclass:
+            return AASeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return AASeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AASeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AASeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AASeqMatrix'):
+        super(AASeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AASeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='AASeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(AASeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AASeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AASeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AASeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.AAMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='AAMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AASeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = AAMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class AASeqMatrix
+
+
+class AAFormat(AbstractFormat):
+    """The AAFormat class is the container of amino acid column
+    definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(AAFormat, self).__init__(about, meta, states, char, set, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AAFormat.subclass:
+            return AAFormat.subclass(*args_, **kwargs_)
+        else:
+            return AAFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AAFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAFormat'):
+        super(AAFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAFormat', fromsubclass_=False):
+        for states_ in self.states:
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(AAFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.AAStates(\n')
+            states_.exportLiteral(outfile, level, name_='AAStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.AAChar(\n')
+            char_.exportLiteral(outfile, level, name_='AAChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            obj_ = AAStates.factory()
+            obj_.build(child_)
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            obj_ = AAChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class AAFormat
+
+
+class DNAObsMatrix(AbstractObsMatrix):
+    """A matrix of rows with single character observations."""
+    subclass = None
+    superclass = AbstractObsMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(DNAObsMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if DNAObsMatrix.subclass:
+            return DNAObsMatrix.subclass(*args_, **kwargs_)
+        else:
+            return DNAObsMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='DNAObsMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAObsMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAObsMatrix'):
+        super(DNAObsMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAObsMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAObsMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(DNAObsMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAObsMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAObsMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAObsMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAMatrixObsRow(\n')
+            row_.exportLiteral(outfile, level, name_='DNAMatrixObsRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAObsMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = DNAMatrixObsRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class DNAObsMatrix
+
+
+class DNASeqMatrix(AbstractSeqMatrix):
+    """A matrix of rows with seq strings of type DNA."""
+    subclass = None
+    superclass = AbstractSeqMatrix
+    def __init__(self, about=None, meta=None, row=None, set=None, valueOf_=None):
+        super(DNASeqMatrix, self).__init__(about, meta, row, set, )
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if DNASeqMatrix.subclass:
+            return DNASeqMatrix.subclass(*args_, **kwargs_)
+        else:
+            return DNASeqMatrix(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='DNASeqMatrix', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNASeqMatrix')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNASeqMatrix'):
+        super(DNASeqMatrix, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNASeqMatrix')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNASeqMatrix', fromsubclass_=False):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.row or
+            self.set or
+            super(DNASeqMatrix, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNASeqMatrix'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNASeqMatrix, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNASeqMatrix, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row_ in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAMatrixSeqRow(\n')
+            row_.exportLiteral(outfile, level, name_='DNAMatrixSeqRow')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.RowSet(\n')
+            set_.exportLiteral(outfile, level, name_='RowSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNASeqMatrix, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'row':
+            obj_ = DNAMatrixSeqRow.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = RowSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class DNASeqMatrix
+
+
+class DNAFormat(AbstractFormat):
+    """The DNAFormat class is the container of DNA column definitions."""
+    subclass = None
+    superclass = AbstractFormat
+    def __init__(self, about=None, meta=None, states=None, char=None, set=None, valueOf_=None):
+        super(DNAFormat, self).__init__(about, meta, states, char, set, )
+        if states is None:
+            self.states = []
+        else:
+            self.states = states
+        if char is None:
+            self.char = []
+        else:
+            self.char = char
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if DNAFormat.subclass:
+            return DNAFormat.subclass(*args_, **kwargs_)
+        else:
+            return DNAFormat(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def add_states(self, value): self.states.append(value)
+    def insert_states(self, index, value): self.states[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def add_char(self, value): self.char.append(value)
+    def insert_char(self, index, value): self.char[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='DNAFormat', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAFormat')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAFormat'):
+        super(DNAFormat, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAFormat')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAFormat', fromsubclass_=False):
+        for states_ in self.states:
+            states_.export(outfile, level, namespace_, name_='states')
+        for char_ in self.char:
+            char_.export(outfile, level, namespace_, name_='char')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.states or
+            self.char or
+            self.set or
+            super(DNAFormat, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAFormat'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAFormat, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAFormat, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('states=[\n')
+        level += 1
+        for states_ in self.states:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAStates(\n')
+            states_.exportLiteral(outfile, level, name_='DNAStates')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('char=[\n')
+        level += 1
+        for char_ in self.char:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAChar(\n')
+            char_.exportLiteral(outfile, level, name_='DNAChar')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CharSet(\n')
+            set_.exportLiteral(outfile, level, name_='CharSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAFormat, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'states':
+            obj_ = DNAStates.factory()
+            obj_.build(child_)
+            self.states.append(obj_)
+        elif nodeName_ == 'char':
+            obj_ = DNAChar.factory()
+            obj_.build(child_)
+            self.char.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CharSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class DNAFormat
+
+
+class AbstractObs(Labelled):
+    """The AbstractObs type is the superclass for single observations, i.e.
+    cells in a matrix. A concrete instance of AbstractObs has a
+    "char" attribute that refers to an explicitly defined character
+    (e.g. in categorical matrices), and a "state" attribute that
+    either holds a reference to an explicitly defined state, or a
+    raw state value (a continuous value)."""
+    subclass = None
+    superclass = Labelled
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(AbstractObs, self).__init__(about, meta, label, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractObs.subclass:
+            return AbstractObs.subclass(*args_, **kwargs_)
+        else:
+            return AbstractObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='AbstractObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObs')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractObs"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractObs'):
+        super(AbstractObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (quote_attrib(self.char), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (quote_attrib(self.state), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractObs', fromsubclass_=False):
+        super(AbstractObs, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = %s,\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = %s,\n' % (self.state,))
+        super(AbstractObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractObs, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(AbstractObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractObs, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractObs
+
+
+class ContinuousObs(AbstractObs):
+    """This is a single cell in a matrix containing a continuous
+    observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(ContinuousObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if ContinuousObs.subclass:
+            return ContinuousObs.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def validate_ContinuousToken(self, value):
+        # Validate type ContinuousToken, a restriction on xs:double.
+        pass
+    def export(self, outfile, level, namespace_='', name_='ContinuousObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousObs'):
+        super(ContinuousObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (quote_attrib(self.state), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(ContinuousObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = %e,\n' % (self.state,))
+        super(ContinuousObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            try:
+                self.state = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (state): %s' % exp)
+            self.validate_ContinuousToken(self.state)    # validate type ContinuousToken
+        super(ContinuousObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class ContinuousObs
+
+
+class IDTagged(Labelled):
+    """The IDTagged complexType is a super class for objects that require
+    unique id attributes of type xs:ID. The id must be unique within
+    the XML document."""
+    subclass = None
+    superclass = Labelled
+    def __init__(self, about=None, meta=None, label=None, id=None, valueOf_=None):
+        super(IDTagged, self).__init__(about, meta, label, )
+        self.id = _cast(None, id)
+        pass
+    def factory(*args_, **kwargs_):
+        if IDTagged.subclass:
+            return IDTagged.subclass(*args_, **kwargs_)
+        else:
+            return IDTagged(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='IDTagged', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='IDTagged')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="IDTagged"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='IDTagged'):
+        super(IDTagged, self).exportAttributes(outfile, level, already_processed, namespace_, name_='IDTagged')
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='IDTagged', fromsubclass_=False):
+        super(IDTagged, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(IDTagged, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='IDTagged'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(IDTagged, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(IDTagged, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(IDTagged, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(IDTagged, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class IDTagged
+
+
+class Taxa(IDTagged):
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, set=None, valueOf_=None):
+        super(Taxa, self).__init__(about, meta, label, id, )
+        if otu is None:
+            self.otu = []
+        else:
+            self.otu = otu
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if Taxa.subclass:
+            return Taxa.subclass(*args_, **kwargs_)
+        else:
+            return Taxa(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otu(self): return self.otu
+    def set_otu(self, otu): self.otu = otu
+    def add_otu(self, value): self.otu.append(value)
+    def insert_otu(self, index, value): self.otu[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='Taxa', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Taxa')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Taxa"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Taxa'):
+        super(Taxa, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Taxa')
+    def exportChildren(self, outfile, level, namespace_='', name_='Taxa', fromsubclass_=False):
+        super(Taxa, self).exportChildren(outfile, level, namespace_, name_, True)
+        for otu_ in self.otu:
+            otu_.export(outfile, level, namespace_, name_='otu')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.otu or
+            self.set or
+            super(Taxa, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Taxa'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(Taxa, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Taxa, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('otu=[\n')
+        level += 1
+        for otu_ in self.otu:
+            showIndent(outfile, level)
+            outfile.write('model_.Taxon(\n')
+            otu_.exportLiteral(outfile, level, name_='Taxon')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.TaxonSet(\n')
+            set_.exportLiteral(outfile, level, name_='TaxonSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(Taxa, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'otu':
+            obj_ = Taxon.factory()
+            obj_.build(child_)
+            self.otu.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = TaxonSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(Taxa, self).buildChildren(child_, node, nodeName_, True)
+# end class Taxa
+
+
+class Taxon(IDTagged):
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, valueOf_=None):
+        super(Taxon, self).__init__(about, meta, label, id, )
+        pass
+    def factory(*args_, **kwargs_):
+        if Taxon.subclass:
+            return Taxon.subclass(*args_, **kwargs_)
+        else:
+            return Taxon(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='Taxon', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Taxon')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Taxon"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Taxon'):
+        super(Taxon, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Taxon')
+    def exportChildren(self, outfile, level, namespace_='', name_='Taxon', fromsubclass_=False):
+        super(Taxon, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(Taxon, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Taxon'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(Taxon, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Taxon, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(Taxon, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(Taxon, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class Taxon
+
+
+class AbstractTrees(IDTagged):
+    """The AbstractTrees superclass is what concrete trees inherit from."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, network=None, tree=None, set=None, valueOf_=None):
+        super(AbstractTrees, self).__init__(about, meta, label, id, )
+        if network is None:
+            self.network = []
+        else:
+            self.network = network
+        if tree is None:
+            self.tree = []
+        else:
+            self.tree = tree
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractTrees.subclass:
+            return AbstractTrees.subclass(*args_, **kwargs_)
+        else:
+            return AbstractTrees(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_network(self): return self.network
+    def set_network(self, network): self.network = network
+    def add_network(self, value): self.network.append(value)
+    def insert_network(self, index, value): self.network[index] = value
+    def get_tree(self): return self.tree
+    def set_tree(self, tree): self.tree = tree
+    def add_tree(self, value): self.tree.append(value)
+    def insert_tree(self, index, value): self.tree[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractTrees', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractTrees')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractTrees"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractTrees'):
+        super(AbstractTrees, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractTrees')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractTrees', fromsubclass_=False):
+        super(AbstractTrees, self).exportChildren(outfile, level, namespace_, name_, True)
+        for network_ in self.get_network():
+            network_.export(outfile, level, namespace_, name_='network')
+        for tree_ in self.get_tree():
+            tree_.export(outfile, level, namespace_, name_='tree')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.network or
+            self.tree or
+            self.set or
+            super(AbstractTrees, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractTrees'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractTrees, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractTrees, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('network=[\n')
+        level += 1
+        for network_ in self.network:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractNetwork(\n')
+            network_.exportLiteral(outfile, level, name_='AbstractNetwork')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('tree=[\n')
+        level += 1
+        for tree_ in self.tree:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractTree(\n')
+            tree_.exportLiteral(outfile, level, name_='AbstractTree')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeAndNetworkSet(\n')
+            set_.exportLiteral(outfile, level, name_='TreeAndNetworkSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractTrees, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'network':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <network> element')
+            self.network.append(obj_)
+        elif nodeName_ == 'tree':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <tree> element')
+            self.tree.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = TreeAndNetworkSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractTrees, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractTrees
+
+
+class AbstractNetwork(IDTagged):
+    """The AbstractNetwork superclass is what a concrete network inherits
+    from."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, edge=None, set=None, valueOf_=None):
+        super(AbstractNetwork, self).__init__(about, meta, label, id, )
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractNetwork.subclass:
+            return AbstractNetwork.subclass(*args_, **kwargs_)
+        else:
+            return AbstractNetwork(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractNetwork', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractNetwork')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractNetwork"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractNetwork'):
+        super(AbstractNetwork, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractNetwork')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractNetwork', fromsubclass_=False):
+        super(AbstractNetwork, self).exportChildren(outfile, level, namespace_, name_, True)
+        for node_ in self.get_node():
+            node_.export(outfile, level, namespace_, name_='node')
+        for edge_ in self.get_edge():
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.node or
+            self.edge or
+            self.set or
+            super(AbstractNetwork, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractNetwork'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractNetwork, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractNetwork, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractNode(\n')
+            node_.exportLiteral(outfile, level, name_='AbstractNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='AbstractEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractNetwork, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'node':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <node> element')
+            self.node.append(obj_)
+        elif nodeName_ == 'edge':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <edge> element')
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractNetwork, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractNetwork
+
+
+class AbstractTree(IDTagged):
+    """The AbstractTree superclass is what a concrete tree inherits from."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, rootedge=None, edge=None, set=None, valueOf_=None):
+        super(AbstractTree, self).__init__(about, meta, label, id, )
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        self.rootedge = rootedge
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractTree.subclass:
+            return AbstractTree.subclass(*args_, **kwargs_)
+        else:
+            return AbstractTree(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_rootedge(self): return self.rootedge
+    def set_rootedge(self, rootedge): self.rootedge = rootedge
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractTree', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractTree')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractTree"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractTree'):
+        super(AbstractTree, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractTree')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractTree', fromsubclass_=False):
+        super(AbstractTree, self).exportChildren(outfile, level, namespace_, name_, True)
+        for node_ in self.get_node():
+            node_.export(outfile, level, namespace_, name_='node')
+        rootedge_.export(outfile, level, namespace_, name_='rootedge')
+        for edge_ in self.get_edge():
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.node or
+            self.rootedge is not None or
+            self.edge or
+            self.set or
+            super(AbstractTree, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractTree'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractTree, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractTree, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractNode(\n')
+            node_.exportLiteral(outfile, level, name_='AbstractNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.AbstractRootEdge is not None:
+            showIndent(outfile, level)
+            outfile.write('AbstractRootEdge=model_.AbstractRootEdge(\n')
+            self.AbstractRootEdge.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='AbstractEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractTree, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'node':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <node> element')
+            self.node.append(obj_)
+        elif nodeName_ == 'rootedge':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <rootedge> element')
+            self.set_rootedge(obj_)
+        elif nodeName_ == 'edge':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <edge> element')
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractTree, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractTree
+
+
+class AbstractRootEdge(IDTagged):
+    """The AbstractRootEdge complex type is a superclass for the edge that
+    leads into a root, i.e. an edge with only a target attribute,
+    but no source attribute. This type of edge is used for
+    coalescent trees, where the initial lineage has a certain length
+    before things start splitting up."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, length=None, target=None, valueOf_=None):
+        super(AbstractRootEdge, self).__init__(about, meta, label, id, )
+        self.length = _cast(None, length)
+        self.target = _cast(None, target)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractRootEdge.subclass:
+            return AbstractRootEdge.subclass(*args_, **kwargs_)
+        else:
+            return AbstractRootEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def get_target(self): return self.target
+    def set_target(self, target): self.target = target
+    def export(self, outfile, level, namespace_='', name_='AbstractRootEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractRootEdge')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractRootEdge"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractRootEdge'):
+        super(AbstractRootEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractRootEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length=%s' % (quote_attrib(self.length), ))
+        if self.target is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            outfile.write(' target=%s' % (self.gds_format_string(quote_attrib(self.target).encode(ExternalEncoding), input_name='target'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractRootEdge', fromsubclass_=False):
+        super(AbstractRootEdge, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractRootEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractRootEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %s,\n' % (self.length,))
+        if self.target is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            showIndent(outfile, level)
+            outfile.write('target = "%s",\n' % (self.target,))
+        super(AbstractRootEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractRootEdge, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            self.length = value
+        value = find_attr_value_('target', node)
+        if value is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            self.target = value
+        super(AbstractRootEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractRootEdge, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractRootEdge
+
+
+class AbstractEdge(IDTagged):
+    """The AbstractEdge superclass is what concrete edges inherit from by
+    restriction. It represents an edge element much like that of
+    GraphML, i.e. an element that connects node elements."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, source=None, length=None, target=None, valueOf_=None):
+        super(AbstractEdge, self).__init__(about, meta, label, id, )
+        self.source = _cast(None, source)
+        self.length = _cast(None, length)
+        self.target = _cast(None, target)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractEdge.subclass:
+            return AbstractEdge.subclass(*args_, **kwargs_)
+        else:
+            return AbstractEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_source(self): return self.source
+    def set_source(self, source): self.source = source
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def get_target(self): return self.target
+    def set_target(self, target): self.target = target
+    def export(self, outfile, level, namespace_='', name_='AbstractEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractEdge')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractEdge"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractEdge'):
+        super(AbstractEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractEdge')
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            outfile.write(' source=%s' % (self.gds_format_string(quote_attrib(self.source).encode(ExternalEncoding), input_name='source'), ))
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length=%s' % (quote_attrib(self.length), ))
+        if self.target is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            outfile.write(' target=%s' % (self.gds_format_string(quote_attrib(self.target).encode(ExternalEncoding), input_name='target'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractEdge', fromsubclass_=False):
+        super(AbstractEdge, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            showIndent(outfile, level)
+            outfile.write('source = "%s",\n' % (self.source,))
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %s,\n' % (self.length,))
+        if self.target is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            showIndent(outfile, level)
+            outfile.write('target = "%s",\n' % (self.target,))
+        super(AbstractEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractEdge, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('source', node)
+        if value is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            self.source = value
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            self.length = value
+        value = find_attr_value_('target', node)
+        if value is not None and 'target' not in already_processed:
+            already_processed.append('target')
+            self.target = value
+        super(AbstractEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractEdge, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractEdge
+
+
+class IntTree(AbstractTree):
+    """A concrete tree implementation, with integer edge lengths."""
+    subclass = None
+    superclass = AbstractTree
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, rootedge=None, edge=None, set=None, valueOf_=None):
+        super(IntTree, self).__init__(about, meta, label, id, node, rootedge, edge, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        self.rootedge = rootedge
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if IntTree.subclass:
+            return IntTree.subclass(*args_, **kwargs_)
+        else:
+            return IntTree(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_rootedge(self): return self.rootedge
+    def set_rootedge(self, rootedge): self.rootedge = rootedge
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='IntTree', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='IntTree')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='IntTree'):
+        super(IntTree, self).exportAttributes(outfile, level, already_processed, namespace_, name_='IntTree')
+    def exportChildren(self, outfile, level, namespace_='', name_='IntTree', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for node_ in self.node:
+            node_.export(outfile, level, namespace_, name_='node')
+        if self.rootedge:
+            self.rootedge.export(outfile, level, namespace_, name_='rootedge')
+        for edge_ in self.edge:
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.node or
+            self.rootedge is not None or
+            self.edge or
+            self.set or
+            super(IntTree, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='IntTree'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(IntTree, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(IntTree, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeNode(\n')
+            node_.exportLiteral(outfile, level, name_='TreeNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.rootedge is not None:
+            showIndent(outfile, level)
+            outfile.write('rootedge=model_.TreeIntRootEdge(\n')
+            self.rootedge.exportLiteral(outfile, level, name_='rootedge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeIntEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='TreeIntEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(IntTree, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'node':
+            obj_ = TreeNode.factory()
+            obj_.build(child_)
+            self.node.append(obj_)
+        elif nodeName_ == 'rootedge':
+            obj_ = TreeIntRootEdge.factory()
+            obj_.build(child_)
+            self.set_rootedge(obj_)
+        elif nodeName_ == 'edge':
+            obj_ = TreeIntEdge.factory()
+            obj_.build(child_)
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class IntTree
+
+
+class FloatTree(AbstractTree):
+    """A concrete tree implementation, with floating point edge lengths."""
+    subclass = None
+    superclass = AbstractTree
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, rootedge=None, edge=None, set=None, valueOf_=None):
+        super(FloatTree, self).__init__(about, meta, label, id, node, rootedge, edge, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        self.rootedge = rootedge
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if FloatTree.subclass:
+            return FloatTree.subclass(*args_, **kwargs_)
+        else:
+            return FloatTree(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_rootedge(self): return self.rootedge
+    def set_rootedge(self, rootedge): self.rootedge = rootedge
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='FloatTree', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='FloatTree')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='FloatTree'):
+        super(FloatTree, self).exportAttributes(outfile, level, already_processed, namespace_, name_='FloatTree')
+    def exportChildren(self, outfile, level, namespace_='', name_='FloatTree', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for node_ in self.node:
+            node_.export(outfile, level, namespace_, name_='node')
+        if self.rootedge:
+            self.rootedge.export(outfile, level, namespace_, name_='rootedge')
+        for edge_ in self.edge:
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.node or
+            self.rootedge is not None or
+            self.edge or
+            self.set or
+            super(FloatTree, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='FloatTree'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(FloatTree, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(FloatTree, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeNode(\n')
+            node_.exportLiteral(outfile, level, name_='TreeNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.rootedge is not None:
+            showIndent(outfile, level)
+            outfile.write('rootedge=model_.TreeFloatRootEdge(\n')
+            self.rootedge.exportLiteral(outfile, level, name_='rootedge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeFloatEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='TreeFloatEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(FloatTree, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'node':
+            obj_ = TreeNode.factory()
+            obj_.build(child_)
+            self.node.append(obj_)
+        elif nodeName_ == 'rootedge':
+            obj_ = TreeFloatRootEdge.factory()
+            obj_.build(child_)
+            self.set_rootedge(obj_)
+        elif nodeName_ == 'edge':
+            obj_ = TreeFloatEdge.factory()
+            obj_.build(child_)
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class FloatTree
+
+
+class TreeIntRootEdge(AbstractRootEdge):
+    """A concrete root edge implementation, with int length."""
+    subclass = None
+    superclass = AbstractRootEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, length=None, target=None, valueOf_=None):
+        super(TreeIntRootEdge, self).__init__(about, meta, label, id, length, target, )
+        self.length = _cast(int, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if TreeIntRootEdge.subclass:
+            return TreeIntRootEdge.subclass(*args_, **kwargs_)
+        else:
+            return TreeIntRootEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='TreeIntRootEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeIntRootEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeIntRootEdge'):
+        super(TreeIntRootEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeIntRootEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_integer(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeIntRootEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(TreeIntRootEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeIntRootEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %d,\n' % (self.length,))
+        super(TreeIntRootEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeIntRootEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+        super(TreeIntRootEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class TreeIntRootEdge
+
+
+class TreeIntEdge(AbstractEdge):
+    """A concrete edge implementation, with int length."""
+    subclass = None
+    superclass = AbstractEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, source=None, length=None, target=None, valueOf_=None):
+        super(TreeIntEdge, self).__init__(about, meta, label, id, source, length, target, )
+        self.length = _cast(int, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if TreeIntEdge.subclass:
+            return TreeIntEdge.subclass(*args_, **kwargs_)
+        else:
+            return TreeIntEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='TreeIntEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeIntEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeIntEdge'):
+        super(TreeIntEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeIntEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_integer(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeIntEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(TreeIntEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeIntEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %d,\n' % (self.length,))
+        super(TreeIntEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeIntEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+        super(TreeIntEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class TreeIntEdge
+
+
+class TreeFloatRootEdge(AbstractRootEdge):
+    """A concrete root edge implementation, with float length."""
+    subclass = None
+    superclass = AbstractRootEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, length=None, target=None, valueOf_=None):
+        super(TreeFloatRootEdge, self).__init__(about, meta, label, id, length, target, )
+        self.length = _cast(float, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if TreeFloatRootEdge.subclass:
+            return TreeFloatRootEdge.subclass(*args_, **kwargs_)
+        else:
+            return TreeFloatRootEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='TreeFloatRootEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeFloatRootEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeFloatRootEdge'):
+        super(TreeFloatRootEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeFloatRootEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_double(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeFloatRootEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(TreeFloatRootEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeFloatRootEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %e,\n' % (self.length,))
+        super(TreeFloatRootEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeFloatRootEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (length): %s' % exp)
+        super(TreeFloatRootEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class TreeFloatRootEdge
+
+
+class TreeFloatEdge(AbstractEdge):
+    """A concrete edge implementation, with float length."""
+    subclass = None
+    superclass = AbstractEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, source=None, length=None, target=None, valueOf_=None):
+        super(TreeFloatEdge, self).__init__(about, meta, label, id, source, length, target, )
+        self.length = _cast(float, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if TreeFloatEdge.subclass:
+            return TreeFloatEdge.subclass(*args_, **kwargs_)
+        else:
+            return TreeFloatEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='TreeFloatEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeFloatEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeFloatEdge'):
+        super(TreeFloatEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeFloatEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_double(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeFloatEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(TreeFloatEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeFloatEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %e,\n' % (self.length,))
+        super(TreeFloatEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeFloatEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (length): %s' % exp)
+        super(TreeFloatEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class TreeFloatEdge
+
+
+class StandardObs(AbstractObs):
+    """This is a single cell in a matrix containing a standard observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(StandardObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if StandardObs.subclass:
+            return StandardObs.subclass(*args_, **kwargs_)
+        else:
+            return StandardObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='StandardObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardObs'):
+        super(StandardObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(StandardObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(StandardObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(StandardObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class StandardObs
+
+
+class RNAObs(AbstractObs):
+    """This is a single cell in a matrix containing an RNA nucleotide
+    observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(RNAObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if RNAObs.subclass:
+            return RNAObs.subclass(*args_, **kwargs_)
+        else:
+            return RNAObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='RNAObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAObs'):
+        super(RNAObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(RNAObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(RNAObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(RNAObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class RNAObs
+
+
+class RestrictionObs(AbstractObs):
+    """This is a single cell in a matrix containing a restriction site
+    observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(RestrictionObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if RestrictionObs.subclass:
+            return RestrictionObs.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='RestrictionObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionObs'):
+        super(RestrictionObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(RestrictionObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(RestrictionObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(RestrictionObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class RestrictionObs
+
+
+class AAObs(AbstractObs):
+    """This is a single cell in a matrix containing an amino acid
+    observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(AAObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if AAObs.subclass:
+            return AAObs.subclass(*args_, **kwargs_)
+        else:
+            return AAObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='AAObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAObs'):
+        super(AAObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AAObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(AAObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(AAObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(AAObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class AAObs
+
+
+class DNAObs(AbstractObs):
+    """This is a single cell in a matrix containing a nucleotide
+    observation."""
+    subclass = None
+    superclass = AbstractObs
+    def __init__(self, about=None, meta=None, label=None, char=None, state=None, valueOf_=None):
+        super(DNAObs, self).__init__(about, meta, label, char, state, )
+        self.char = _cast(None, char)
+        self.state = _cast(None, state)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if DNAObs.subclass:
+            return DNAObs.subclass(*args_, **kwargs_)
+        else:
+            return DNAObs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def export(self, outfile, level, namespace_='', name_='DNAObs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAObs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAObs'):
+        super(DNAObs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAObs')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAObs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(DNAObs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAObs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        super(DNAObs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAObs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        super(DNAObs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class DNAObs
+
+
+class AbstractChar(IDTagged):
+    """The AbstractChar type is the superclass for a column definition,
+    which may have a "states" attribute that refers to an
+    AbstractStates element, a codon attribute of type CodonPosition
+    and an id attribute that may be an actual id (e.g. for
+    categorical matrices where observations explicitly refer to a
+    column definition) or an integer for sequence matrices."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(AbstractChar, self).__init__(about, meta, label, id, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractChar.subclass:
+            return AbstractChar.subclass(*args_, **kwargs_)
+        else:
+            return AbstractChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def export(self, outfile, level, namespace_='', name_='AbstractChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractChar')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractChar"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractChar'):
+        super(AbstractChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractChar', fromsubclass_=False):
+        super(AbstractChar, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        super(AbstractChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractChar, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        super(AbstractChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractChar, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractChar
+
+
+class AbstractStates(IDTagged):
+    """A container for a set of AbstractState elements."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(AbstractStates, self).__init__(about, meta, label, id, )
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if polymorphic_state_set is None:
+            self.polymorphic_state_set = []
+        else:
+            self.polymorphic_state_set = polymorphic_state_set
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractStates.subclass:
+            return AbstractStates.subclass(*args_, **kwargs_)
+        else:
+            return AbstractStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def add_polymorphic_state_set(self, value): self.polymorphic_state_set.append(value)
+    def insert_polymorphic_state_set(self, index, value): self.polymorphic_state_set[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractStates')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractStates"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractStates'):
+        super(AbstractStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractStates', fromsubclass_=False):
+        super(AbstractStates, self).exportChildren(outfile, level, namespace_, name_, True)
+        for state_ in self.get_state():
+            state_.export(outfile, level, namespace_, name_='state')
+        for polymorphic_state_set_ in self.get_polymorphic_state_set():
+            polymorphic_state_set_.export(outfile, level, namespace_, name_='polymorphic_state_set')
+        for uncertain_state_set_ in self.get_uncertain_state_set():
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.state or
+            self.polymorphic_state_set or
+            self.uncertain_state_set or
+            self.set or
+            super(AbstractStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractState(\n')
+            state_.exportLiteral(outfile, level, name_='AbstractState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polymorphic_state_set=[\n')
+        level += 1
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractPolymorphicStateSet(\n')
+            polymorphic_state_set_.exportLiteral(outfile, level, name_='AbstractPolymorphicStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='AbstractUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'state':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <state> element')
+            self.state.append(obj_)
+        elif nodeName_ == 'polymorphic_state_set':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <polymorphic_state_set> element')
+            self.polymorphic_state_set.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <uncertain_state_set> element')
+            self.uncertain_state_set.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractStates, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractStates
+
+
+class AbstractState(IDTagged):
+    """The AbstractState type is the super-class for a state definition.
+    The element has a required symbol attribute that in restricted
+    concrete subclasses must be of a sensible type such as a single
+    IUPAC character. It may enclose zero or more AbstractMapping
+    elements to resolve ambiguities."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(AbstractState, self).__init__(about, meta, label, id, )
+        self.symbol = _cast(None, symbol)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractState.subclass:
+            return AbstractState.subclass(*args_, **kwargs_)
+        else:
+            return AbstractState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def export(self, outfile, level, namespace_='', name_='AbstractState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractState')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractState"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractState'):
+        super(AbstractState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractState', fromsubclass_=False):
+        super(AbstractState, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = %s,\n' % (self.symbol,))
+        super(AbstractState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractState, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+        super(AbstractState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractState, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractState
+
+
+class ContinuousChar(AbstractChar):
+    """A concrete implementation of the char element, which requires only
+    an id attribute."""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(ContinuousChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.states = _cast(None, states)
+        self.tokens = _cast(None, tokens)
+        self.codon = _cast(None, codon)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if ContinuousChar.subclass:
+            return ContinuousChar.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def export(self, outfile, level, namespace_='', name_='ContinuousChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousChar'):
+        super(ContinuousChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousChar')
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(ContinuousChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        super(ContinuousChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        super(ContinuousChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class ContinuousChar
+
+
+class AbstractSet(IDTagged):
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, valueOf_=None):
+        super(AbstractSet, self).__init__(about, meta, label, id, )
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractSet.subclass:
+            return AbstractSet.subclass(*args_, **kwargs_)
+        else:
+            return AbstractSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def export(self, outfile, level, namespace_='', name_='AbstractSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractSet'):
+        super(AbstractSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSet')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractSet', fromsubclass_=False):
+        super(AbstractSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractSet
+
+
+class TaxaLinked(IDTagged):
+    """The TaxaLinked complexType is a super class for objects that that
+    require an otus id reference."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, valueOf_=None):
+        super(TaxaLinked, self).__init__(about, meta, label, id, )
+        self.otus = _cast(None, otus)
+        pass
+    def factory(*args_, **kwargs_):
+        if TaxaLinked.subclass:
+            return TaxaLinked.subclass(*args_, **kwargs_)
+        else:
+            return TaxaLinked(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otus(self): return self.otus
+    def set_otus(self, otus): self.otus = otus
+    def export(self, outfile, level, namespace_='', name_='TaxaLinked', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TaxaLinked')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="TaxaLinked"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TaxaLinked'):
+        super(TaxaLinked, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TaxaLinked')
+        if self.otus is not None and 'otus' not in already_processed:
+            already_processed.append('otus')
+            outfile.write(' otus=%s' % (self.gds_format_string(quote_attrib(self.otus).encode(ExternalEncoding), input_name='otus'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='TaxaLinked', fromsubclass_=False):
+        super(TaxaLinked, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(TaxaLinked, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TaxaLinked'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.otus is not None and 'otus' not in already_processed:
+            already_processed.append('otus')
+            showIndent(outfile, level)
+            outfile.write('otus = "%s",\n' % (self.otus,))
+        super(TaxaLinked, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TaxaLinked, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('otus', node)
+        if value is not None and 'otus' not in already_processed:
+            already_processed.append('otus')
+            self.otus = value
+        super(TaxaLinked, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(TaxaLinked, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class TaxaLinked
+
+
+class OptionalTaxonLinked(IDTagged):
+    """The OptionalOTULinked complexType is a super class for objects that
+    that optionally have an otu id reference."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, valueOf_=None):
+        super(OptionalTaxonLinked, self).__init__(about, meta, label, id, )
+        self.otu = _cast(None, otu)
+        pass
+    def factory(*args_, **kwargs_):
+        if OptionalTaxonLinked.subclass:
+            return OptionalTaxonLinked.subclass(*args_, **kwargs_)
+        else:
+            return OptionalTaxonLinked(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otu(self): return self.otu
+    def set_otu(self, otu): self.otu = otu
+    def export(self, outfile, level, namespace_='', name_='OptionalTaxonLinked', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='OptionalTaxonLinked')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="OptionalTaxonLinked"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='OptionalTaxonLinked'):
+        super(OptionalTaxonLinked, self).exportAttributes(outfile, level, already_processed, namespace_, name_='OptionalTaxonLinked')
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            outfile.write(' otu=%s' % (self.gds_format_string(quote_attrib(self.otu).encode(ExternalEncoding), input_name='otu'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='OptionalTaxonLinked', fromsubclass_=False):
+        super(OptionalTaxonLinked, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(OptionalTaxonLinked, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='OptionalTaxonLinked'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            showIndent(outfile, level)
+            outfile.write('otu = "%s",\n' % (self.otu,))
+        super(OptionalTaxonLinked, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(OptionalTaxonLinked, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('otu', node)
+        if value is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            self.otu = value
+        super(OptionalTaxonLinked, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(OptionalTaxonLinked, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class OptionalTaxonLinked
+
+
+class TaxonLinked(IDTagged):
+    """The TaxonLinked complexType is a super class for objects that
+    require a taxon id reference."""
+    subclass = None
+    superclass = IDTagged
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, valueOf_=None):
+        super(TaxonLinked, self).__init__(about, meta, label, id, )
+        self.otu = _cast(None, otu)
+        pass
+    def factory(*args_, **kwargs_):
+        if TaxonLinked.subclass:
+            return TaxonLinked.subclass(*args_, **kwargs_)
+        else:
+            return TaxonLinked(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otu(self): return self.otu
+    def set_otu(self, otu): self.otu = otu
+    def export(self, outfile, level, namespace_='', name_='TaxonLinked', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TaxonLinked')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="TaxonLinked"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TaxonLinked'):
+        super(TaxonLinked, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TaxonLinked')
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            outfile.write(' otu=%s' % (self.gds_format_string(quote_attrib(self.otu).encode(ExternalEncoding), input_name='otu'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='TaxonLinked', fromsubclass_=False):
+        super(TaxonLinked, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(TaxonLinked, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TaxonLinked'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            showIndent(outfile, level)
+            outfile.write('otu = "%s",\n' % (self.otu,))
+        super(TaxonLinked, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TaxonLinked, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('otu', node)
+        if value is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            self.otu = value
+        super(TaxonLinked, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(TaxonLinked, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class TaxonLinked
+
+
+class IntNetwork(AbstractNetwork):
+    """A concrete network implementation, with integer edge lengths."""
+    subclass = None
+    superclass = AbstractNetwork
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, edge=None, set=None, valueOf_=None):
+        super(IntNetwork, self).__init__(about, meta, label, id, node, edge, set, )
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if IntNetwork.subclass:
+            return IntNetwork.subclass(*args_, **kwargs_)
+        else:
+            return IntNetwork(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='IntNetwork', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='IntNetwork')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='IntNetwork'):
+        super(IntNetwork, self).exportAttributes(outfile, level, already_processed, namespace_, name_='IntNetwork')
+    def exportChildren(self, outfile, level, namespace_='', name_='IntNetwork', fromsubclass_=False):
+        for node_ in self.node:
+            node_.export(outfile, level, namespace_, name_='node')
+        for edge_ in self.edge:
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.node or
+            self.edge or
+            self.set or
+            super(IntNetwork, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='IntNetwork'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(IntNetwork, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(IntNetwork, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.NetworkNode(\n')
+            node_.exportLiteral(outfile, level, name_='NetworkNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.NetworkIntEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='NetworkIntEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(IntNetwork, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'node':
+            obj_ = NetworkNode.factory()
+            obj_.build(child_)
+            self.node.append(obj_)
+        elif nodeName_ == 'edge':
+            obj_ = NetworkIntEdge.factory()
+            obj_.build(child_)
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class IntNetwork
+
+
+class FloatNetwork(AbstractNetwork):
+    """A concrete network implementation, with floating point edge lengths."""
+    subclass = None
+    superclass = AbstractNetwork
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, edge=None, set=None, valueOf_=None):
+        super(FloatNetwork, self).__init__(about, meta, label, id, node, edge, set, )
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+        if edge is None:
+            self.edge = []
+        else:
+            self.edge = edge
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if FloatNetwork.subclass:
+            return FloatNetwork.subclass(*args_, **kwargs_)
+        else:
+            return FloatNetwork(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def add_edge(self, value): self.edge.append(value)
+    def insert_edge(self, index, value): self.edge[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='FloatNetwork', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='FloatNetwork')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='FloatNetwork'):
+        super(FloatNetwork, self).exportAttributes(outfile, level, already_processed, namespace_, name_='FloatNetwork')
+    def exportChildren(self, outfile, level, namespace_='', name_='FloatNetwork', fromsubclass_=False):
+        for node_ in self.node:
+            node_.export(outfile, level, namespace_, name_='node')
+        for edge_ in self.edge:
+            edge_.export(outfile, level, namespace_, name_='edge')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.node or
+            self.edge or
+            self.set or
+            super(FloatNetwork, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='FloatNetwork'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(FloatNetwork, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(FloatNetwork, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node_ in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.NetworkNode(\n')
+            node_.exportLiteral(outfile, level, name_='NetworkNode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('edge=[\n')
+        level += 1
+        for edge_ in self.edge:
+            showIndent(outfile, level)
+            outfile.write('model_.NetworkFloatEdge(\n')
+            edge_.exportLiteral(outfile, level, name_='NetworkFloatEdge')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.NodeAndRootEdgeAndEdgeSet(\n')
+            set_.exportLiteral(outfile, level, name_='NodeAndRootEdgeAndEdgeSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(FloatNetwork, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'node':
+            obj_ = NetworkNode.factory()
+            obj_.build(child_)
+            self.node.append(obj_)
+        elif nodeName_ == 'edge':
+            obj_ = NetworkFloatEdge.factory()
+            obj_.build(child_)
+            self.edge.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = NodeAndRootEdgeAndEdgeSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class FloatNetwork
+
+
+class NetworkIntEdge(AbstractEdge):
+    """A concrete network edge implementation, with int edge."""
+    subclass = None
+    superclass = AbstractEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, source=None, length=None, target=None, valueOf_=None):
+        super(NetworkIntEdge, self).__init__(about, meta, label, id, source, length, target, )
+        self.length = _cast(int, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if NetworkIntEdge.subclass:
+            return NetworkIntEdge.subclass(*args_, **kwargs_)
+        else:
+            return NetworkIntEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='NetworkIntEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkIntEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='NetworkIntEdge'):
+        super(NetworkIntEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkIntEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_integer(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='NetworkIntEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(NetworkIntEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='NetworkIntEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %d,\n' % (self.length,))
+        super(NetworkIntEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(NetworkIntEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+        super(NetworkIntEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class NetworkIntEdge
+
+
+class NetworkFloatEdge(AbstractEdge):
+    """A concrete network edge implementation, with float edge."""
+    subclass = None
+    superclass = AbstractEdge
+    def __init__(self, about=None, meta=None, label=None, id=None, source=None, length=None, target=None, valueOf_=None):
+        super(NetworkFloatEdge, self).__init__(about, meta, label, id, source, length, target, )
+        self.length = _cast(float, length)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if NetworkFloatEdge.subclass:
+            return NetworkFloatEdge.subclass(*args_, **kwargs_)
+        else:
+            return NetworkFloatEdge(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='', name_='NetworkFloatEdge', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkFloatEdge')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='NetworkFloatEdge'):
+        super(NetworkFloatEdge, self).exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkFloatEdge')
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_double(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='', name_='NetworkFloatEdge', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(NetworkFloatEdge, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='NetworkFloatEdge'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %e,\n' % (self.length,))
+        super(NetworkFloatEdge, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(NetworkFloatEdge, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (length): %s' % exp)
+        super(NetworkFloatEdge, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class NetworkFloatEdge
+
+
+class AbstractNode(OptionalTaxonLinked):
+    """The AbstractNode superclass is what concrete nodes inherit from by
+    restriction. It represents a node element much like that of
+    GraphML, i.e. an element that is connected into a tree by edge
+    elements."""
+    subclass = None
+    superclass = OptionalTaxonLinked
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, root=False, valueOf_=None):
+        super(AbstractNode, self).__init__(about, meta, label, id, otu, )
+        self.root = _cast(bool, root)
+        pass
+    def factory(*args_, **kwargs_):
+        if AbstractNode.subclass:
+            return AbstractNode.subclass(*args_, **kwargs_)
+        else:
+            return AbstractNode(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_root(self): return self.root
+    def set_root(self, root): self.root = root
+    def export(self, outfile, level, namespace_='', name_='AbstractNode', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractNode')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractNode"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractNode'):
+        super(AbstractNode, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractNode')
+        if self.root is not None and 'root' not in already_processed:
+            already_processed.append('root')
+            outfile.write(' root="%s"' % self.gds_format_boolean(self.gds_str_lower(str(self.root)), input_name='root'))
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractNode', fromsubclass_=False):
+        super(AbstractNode, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(AbstractNode, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractNode'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.root is not None and 'root' not in already_processed:
+            already_processed.append('root')
+            showIndent(outfile, level)
+            outfile.write('root = %s,\n' % (self.root,))
+        super(AbstractNode, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractNode, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('root', node)
+        if value is not None and 'root' not in already_processed:
+            already_processed.append('root')
+            if value in ('true', '1'):
+                self.root = True
+            elif value in ('false', '0'):
+                self.root = False
+            else:
+                raise_parse_error(node, 'Bad boolean attribute')
+        super(AbstractNode, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(AbstractNode, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class AbstractNode
+
+
+class TreeNode(AbstractNode):
+    """A concrete node implementation."""
+    subclass = None
+    superclass = AbstractNode
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, root=False, valueOf_=None):
+        super(TreeNode, self).__init__(about, meta, label, id, otu, root, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if TreeNode.subclass:
+            return TreeNode.subclass(*args_, **kwargs_)
+        else:
+            return TreeNode(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def export(self, outfile, level, namespace_='', name_='TreeNode', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeNode')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeNode'):
+        super(TreeNode, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeNode')
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeNode', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(TreeNode, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeNode'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(TreeNode, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeNode, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(TreeNode, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class TreeNode
+
+
+class Trees(TaxaLinked):
+    """A concrete container for tree objects."""
+    subclass = None
+    superclass = TaxaLinked
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, network=None, tree=None, set=None, valueOf_=None):
+        super(Trees, self).__init__(about, meta, label, id, otus, )
+        if network is None:
+            self.network = []
+        else:
+            self.network = network
+        if tree is None:
+            self.tree = []
+        else:
+            self.tree = tree
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if Trees.subclass:
+            return Trees.subclass(*args_, **kwargs_)
+        else:
+            return Trees(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_network(self): return self.network
+    def set_network(self, network): self.network = network
+    def add_network(self, value): self.network.append(value)
+    def insert_network(self, index, value): self.network[index] = value
+    def get_tree(self): return self.tree
+    def set_tree(self, tree): self.tree = tree
+    def add_tree(self, value): self.tree.append(value)
+    def insert_tree(self, index, value): self.tree[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='Trees', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Trees')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="Trees"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='Trees'):
+        super(Trees, self).exportAttributes(outfile, level, already_processed, namespace_, name_='Trees')
+    def exportChildren(self, outfile, level, namespace_='', name_='Trees', fromsubclass_=False):
+        super(Trees, self).exportChildren(outfile, level, namespace_, name_, True)
+        for network_ in self.get_network():
+            network_.export(outfile, level, namespace_, name_='network')
+        for tree_ in self.get_tree():
+            tree_.export(outfile, level, namespace_, name_='tree')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.network or
+            self.tree or
+            self.set or
+            super(Trees, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Trees'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(Trees, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(Trees, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('network=[\n')
+        level += 1
+        for network_ in self.network:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractNetwork(\n')
+            network_.exportLiteral(outfile, level, name_='AbstractNetwork')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('tree=[\n')
+        level += 1
+        for tree_ in self.tree:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractTree(\n')
+            tree_.exportLiteral(outfile, level, name_='AbstractTree')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.TreeAndNetworkSet(\n')
+            set_.exportLiteral(outfile, level, name_='TreeAndNetworkSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(Trees, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'network':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <network> element')
+            self.network.append(obj_)
+        elif nodeName_ == 'tree':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <tree> element')
+            self.tree.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = TreeAndNetworkSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(Trees, self).buildChildren(child_, node, nodeName_, True)
+# end class Trees
+
+
+class StandardChar(AbstractChar):
+    """A concrete implementation of the char element, which requires a
+    states attribute to refer to a set of defined states"""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(StandardChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        self.id = _cast(None, id)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if StandardChar.subclass:
+            return StandardChar.subclass(*args_, **kwargs_)
+        else:
+            return StandardChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='StandardChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardChar'):
+        super(StandardChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(StandardChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(StandardChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(StandardChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class StandardChar
+
+
+class StandardStates(AbstractStates):
+    """A container for a set of states."""
+    subclass = None
+    superclass = AbstractStates
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(StandardStates, self).__init__(about, meta, label, id, state, polymorphic_state_set, uncertain_state_set, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if polymorphic_state_set is None:
+            self.polymorphic_state_set = []
+        else:
+            self.polymorphic_state_set = polymorphic_state_set
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if StandardStates.subclass:
+            return StandardStates.subclass(*args_, **kwargs_)
+        else:
+            return StandardStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def add_polymorphic_state_set(self, value): self.polymorphic_state_set.append(value)
+    def insert_polymorphic_state_set(self, index, value): self.polymorphic_state_set[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardStates')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardStates'):
+        super(StandardStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardStates', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for state_ in self.state:
+            state_.export(outfile, level, namespace_, name_='state')
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            polymorphic_state_set_.export(outfile, level, namespace_, name_='polymorphic_state_set')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.state or
+            self.polymorphic_state_set or
+            self.uncertain_state_set or
+            self.set or
+            super(StandardStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardState(\n')
+            state_.exportLiteral(outfile, level, name_='StandardState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polymorphic_state_set=[\n')
+        level += 1
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardPolymorphicStateSet(\n')
+            polymorphic_state_set_.exportLiteral(outfile, level, name_='StandardPolymorphicStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='StandardUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'state':
+            obj_ = StandardState.factory()
+            obj_.build(child_)
+            self.state.append(obj_)
+        elif nodeName_ == 'polymorphic_state_set':
+            obj_ = StandardPolymorphicStateSet.factory()
+            obj_.build(child_)
+            self.polymorphic_state_set.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = StandardUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class StandardStates
+
+
+class StandardState(AbstractState):
+    """This is a concrete implementation of the state element, which
+    requires a symbol element, in this case restricted to integers,
+    and optional mapping elements to refer to other states."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(StandardState, self).__init__(about, meta, label, id, symbol, )
+        self.symbol = _cast(None, symbol)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if StandardState.subclass:
+            return StandardState.subclass(*args_, **kwargs_)
+        else:
+            return StandardState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_StandardToken(self, value):
+        # Validate type StandardToken, a restriction on xs:integer.
+        pass
+    def export(self, outfile, level, namespace_='', name_='StandardState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardState')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardState'):
+        super(StandardState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardState', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(StandardState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = %d,\n' % (self.symbol,))
+        super(StandardState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardState, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            try:
+                self.symbol = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            self.validate_StandardToken(self.symbol)    # validate type StandardToken
+        super(StandardState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class StandardState
+
+
+class RNAChar(AbstractChar):
+    """A concrete implementation of the AbstractChar element, i.e. a single
+    column in an alignment."""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(RNAChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        self.id = _cast(None, id)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if RNAChar.subclass:
+            return RNAChar.subclass(*args_, **kwargs_)
+        else:
+            return RNAChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='RNAChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAChar'):
+        super(RNAChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(RNAChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(RNAChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(RNAChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class RNAChar
+
+
+class RNAStates(AbstractStates):
+    """A container for a set of states."""
+    subclass = None
+    superclass = AbstractStates
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(RNAStates, self).__init__(about, meta, label, id, state, polymorphic_state_set, uncertain_state_set, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if polymorphic_state_set is None:
+            self.polymorphic_state_set = []
+        else:
+            self.polymorphic_state_set = polymorphic_state_set
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RNAStates.subclass:
+            return RNAStates.subclass(*args_, **kwargs_)
+        else:
+            return RNAStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def add_polymorphic_state_set(self, value): self.polymorphic_state_set.append(value)
+    def insert_polymorphic_state_set(self, index, value): self.polymorphic_state_set[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RNAStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAStates')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAStates'):
+        super(RNAStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAStates', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for state_ in self.state:
+            state_.export(outfile, level, namespace_, name_='state')
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            polymorphic_state_set_.export(outfile, level, namespace_, name_='polymorphic_state_set')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.state or
+            self.polymorphic_state_set or
+            self.uncertain_state_set or
+            self.set or
+            super(RNAStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAState(\n')
+            state_.exportLiteral(outfile, level, name_='RNAState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polymorphic_state_set=[\n')
+        level += 1
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAPolymorphicStateSet(\n')
+            polymorphic_state_set_.exportLiteral(outfile, level, name_='RNAPolymorphicStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='RNAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'state':
+            obj_ = RNAState.factory()
+            obj_.build(child_)
+            self.state.append(obj_)
+        elif nodeName_ == 'polymorphic_state_set':
+            obj_ = RNAPolymorphicStateSet.factory()
+            obj_.build(child_)
+            self.polymorphic_state_set.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = RNAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RNAStates
+
+
+class RNAState(AbstractState):
+    """This is a concrete implementation of the state element, which
+    requires a symbol attribute, in this case restricted to
+    RNAToken, i.e. a single IUPAC nucleotide symbol, and optional
+    mapping elements to refer to other states."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(RNAState, self).__init__(about, meta, label, id, symbol, )
+        self.symbol = _cast(None, symbol)
+        pass
+    def factory(*args_, **kwargs_):
+        if RNAState.subclass:
+            return RNAState.subclass(*args_, **kwargs_)
+        else:
+            return RNAState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_RNAToken(self, value):
+        # Validate type RNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RNAState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAState')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAState'):
+        super(RNAState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAState', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(RNAState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(RNAState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAState, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_RNAToken(self.symbol)    # validate type RNAToken
+        super(RNAState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class RNAState
+
+
+class RestrictionChar(AbstractChar):
+    """A concrete implementation of the char element, which requires a
+    unique identifier and a state set reference."""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(RestrictionChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        self.id = _cast(None, id)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if RestrictionChar.subclass:
+            return RestrictionChar.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='RestrictionChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionChar'):
+        super(RestrictionChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(RestrictionChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(RestrictionChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(RestrictionChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class RestrictionChar
+
+
+class RestrictionStates(AbstractStates):
+    """A container for a set of states."""
+    subclass = None
+    superclass = AbstractStates
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(RestrictionStates, self).__init__(about, meta, label, id, state, polymorphic_state_set, uncertain_state_set, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RestrictionStates.subclass:
+            return RestrictionStates.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RestrictionStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionStates')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionStates'):
+        super(RestrictionStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionStates', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for state_ in self.state:
+            state_.export(outfile, level, namespace_, name_='state')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.state or
+            self.set or
+            super(RestrictionStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionState(\n')
+            state_.exportLiteral(outfile, level, name_='RestrictionState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'state':
+            obj_ = RestrictionState.factory()
+            obj_.build(child_)
+            self.state.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RestrictionStates
+
+
+class RestrictionState(AbstractState):
+    """This is a concrete implementation of the state element, which
+    requires a symbol element, in this case restricted to 0/1."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(RestrictionState, self).__init__(about, meta, label, id, symbol, )
+        self.symbol = _cast(None, symbol)
+        pass
+    def factory(*args_, **kwargs_):
+        if RestrictionState.subclass:
+            return RestrictionState.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_RestrictionToken(self, value):
+        # Validate type RestrictionToken, a restriction on xs:integer.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RestrictionState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionState')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionState'):
+        super(RestrictionState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionState', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(RestrictionState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = %d,\n' % (self.symbol,))
+        super(RestrictionState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionState, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            try:
+                self.symbol = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            self.validate_RestrictionToken(self.symbol)    # validate type RestrictionToken
+        super(RestrictionState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class RestrictionState
+
+
+class AAState(AbstractState):
+    """This is a concrete implementation of the state element, which
+    requires a symbol element, in this case restricted to AAToken,
+    i.e. a single IUPAC amino acid symbol, and optional mapping
+    elements to refer to other states."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(AAState, self).__init__(about, meta, label, id, symbol, )
+        self.symbol = _cast(None, symbol)
+        pass
+    def factory(*args_, **kwargs_):
+        if AAState.subclass:
+            return AAState.subclass(*args_, **kwargs_)
+        else:
+            return AAState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_AAToken(self, value):
+        # Validate type AAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='AAState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAState')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAState'):
+        super(AAState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AAState', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(AAState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(AAState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAState, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_AAToken(self.symbol)    # validate type AAToken
+        super(AAState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class AAState
+
+
+class AAStates(AbstractStates):
+    """A container for a set of states."""
+    subclass = None
+    superclass = AbstractStates
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(AAStates, self).__init__(about, meta, label, id, state, polymorphic_state_set, uncertain_state_set, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if polymorphic_state_set is None:
+            self.polymorphic_state_set = []
+        else:
+            self.polymorphic_state_set = polymorphic_state_set
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AAStates.subclass:
+            return AAStates.subclass(*args_, **kwargs_)
+        else:
+            return AAStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def add_polymorphic_state_set(self, value): self.polymorphic_state_set.append(value)
+    def insert_polymorphic_state_set(self, index, value): self.polymorphic_state_set[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AAStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAStates')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAStates'):
+        super(AAStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAStates', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for state_ in self.state:
+            state_.export(outfile, level, namespace_, name_='state')
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            polymorphic_state_set_.export(outfile, level, namespace_, name_='polymorphic_state_set')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.state or
+            self.polymorphic_state_set or
+            self.uncertain_state_set or
+            self.set or
+            super(AAStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.AAState(\n')
+            state_.exportLiteral(outfile, level, name_='AAState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polymorphic_state_set=[\n')
+        level += 1
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AAPolymorphicStateSet(\n')
+            polymorphic_state_set_.exportLiteral(outfile, level, name_='AAPolymorphicStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='AAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'state':
+            obj_ = AAState.factory()
+            obj_.build(child_)
+            self.state.append(obj_)
+        elif nodeName_ == 'polymorphic_state_set':
+            obj_ = AAPolymorphicStateSet.factory()
+            obj_.build(child_)
+            self.polymorphic_state_set.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = AAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class AAStates
+
+
+class AAChar(AbstractChar):
+    """A concrete implementation of the AbstractChar element."""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(AAChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        self.id = _cast(None, id)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if AAChar.subclass:
+            return AAChar.subclass(*args_, **kwargs_)
+        else:
+            return AAChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='AAChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAChar'):
+        super(AAChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AAChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(AAChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(AAChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(AAChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class AAChar
+
+
+class DNAChar(AbstractChar):
+    """A concrete implementation of the AbstractChar element."""
+    subclass = None
+    superclass = AbstractChar
+    def __init__(self, about=None, meta=None, label=None, id=None, tokens=None, states=None, codon=None, valueOf_=None):
+        super(DNAChar, self).__init__(about, meta, label, id, tokens, states, codon, )
+        self.tokens = _cast(None, tokens)
+        self.states = _cast(None, states)
+        self.codon = _cast(None, codon)
+        self.id = _cast(None, id)
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if DNAChar.subclass:
+            return DNAChar.subclass(*args_, **kwargs_)
+        else:
+            return DNAChar(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_tokens(self): return self.tokens
+    def set_tokens(self, tokens): self.tokens = tokens
+    def validate_MSTokenLength(self, value):
+        # Validate type MSTokenLength, a restriction on xs:positiveInteger.
+        pass
+    def get_states(self): return self.states
+    def set_states(self, states): self.states = states
+    def get_codon(self): return self.codon
+    def set_codon(self, codon): self.codon = codon
+    def validate_CodonPosition(self, value):
+        # Validate type CodonPosition, a restriction on xs:nonNegativeInteger.
+        pass
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='', name_='DNAChar', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAChar')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAChar'):
+        super(DNAChar, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAChar')
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            outfile.write(' tokens=%s' % (quote_attrib(self.tokens), ))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            outfile.write(' states=%s' % (self.gds_format_string(quote_attrib(self.states).encode(ExternalEncoding), input_name='states'), ))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            outfile.write(' codon=%s' % (quote_attrib(self.codon), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAChar', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(DNAChar, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAChar'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tokens is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            showIndent(outfile, level)
+            outfile.write('tokens = %d,\n' % (self.tokens,))
+        if self.states is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            showIndent(outfile, level)
+            outfile.write('states = "%s",\n' % (self.states,))
+        if self.codon is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            showIndent(outfile, level)
+            outfile.write('codon = %d,\n' % (self.codon,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        super(DNAChar, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAChar, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tokens', node)
+        if value is not None and 'tokens' not in already_processed:
+            already_processed.append('tokens')
+            try:
+                self.tokens = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.tokens <= 0:
+                raise_parse_error(node, 'Invalid PositiveInteger')
+            self.validate_MSTokenLength(self.tokens)    # validate type MSTokenLength
+        value = find_attr_value_('states', node)
+        if value is not None and 'states' not in already_processed:
+            already_processed.append('states')
+            self.states = value
+        value = find_attr_value_('codon', node)
+        if value is not None and 'codon' not in already_processed:
+            already_processed.append('codon')
+            try:
+                self.codon = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.codon < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+            self.validate_CodonPosition(self.codon)    # validate type CodonPosition
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        super(DNAChar, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class DNAChar
+
+
+class DNAStates(AbstractStates):
+    """A container for a set of states."""
+    subclass = None
+    superclass = AbstractStates
+    def __init__(self, about=None, meta=None, label=None, id=None, state=None, polymorphic_state_set=None, uncertain_state_set=None, set=None, valueOf_=None):
+        super(DNAStates, self).__init__(about, meta, label, id, state, polymorphic_state_set, uncertain_state_set, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if state is None:
+            self.state = []
+        else:
+            self.state = state
+        if polymorphic_state_set is None:
+            self.polymorphic_state_set = []
+        else:
+            self.polymorphic_state_set = polymorphic_state_set
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if DNAStates.subclass:
+            return DNAStates.subclass(*args_, **kwargs_)
+        else:
+            return DNAStates(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def add_state(self, value): self.state.append(value)
+    def insert_state(self, index, value): self.state[index] = value
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def add_polymorphic_state_set(self, value): self.polymorphic_state_set.append(value)
+    def insert_polymorphic_state_set(self, index, value): self.polymorphic_state_set[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='DNAStates', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAStates')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAStates'):
+        super(DNAStates, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAStates')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAStates', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for state_ in self.state:
+            state_.export(outfile, level, namespace_, name_='state')
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            polymorphic_state_set_.export(outfile, level, namespace_, name_='polymorphic_state_set')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.state or
+            self.polymorphic_state_set or
+            self.uncertain_state_set or
+            self.set or
+            super(DNAStates, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAStates'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAStates, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAStates, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('state=[\n')
+        level += 1
+        for state_ in self.state:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAState(\n')
+            state_.exportLiteral(outfile, level, name_='DNAState')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polymorphic_state_set=[\n')
+        level += 1
+        for polymorphic_state_set_ in self.polymorphic_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAPolymorphicStateSet(\n')
+            polymorphic_state_set_.exportLiteral(outfile, level, name_='DNAPolymorphicStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='DNAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.StateSet(\n')
+            set_.exportLiteral(outfile, level, name_='StateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAStates, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'state':
+            obj_ = DNAState.factory()
+            obj_.build(child_)
+            self.state.append(obj_)
+        elif nodeName_ == 'polymorphic_state_set':
+            obj_ = DNAPolymorphicStateSet.factory()
+            obj_.build(child_)
+            self.polymorphic_state_set.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = DNAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = StateSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class DNAStates
+
+
+class DNAState(AbstractState):
+    """This is a concrete implementation of the state element, which
+    requires a symbol element, in this case restricted to DNAToken,
+    i.e. a single IUPAC nucleotide symbol, and optional mapping
+    elements to refer to other states."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, valueOf_=None):
+        super(DNAState, self).__init__(about, meta, label, id, symbol, )
+        self.symbol = _cast(None, symbol)
+        pass
+    def factory(*args_, **kwargs_):
+        if DNAState.subclass:
+            return DNAState.subclass(*args_, **kwargs_)
+        else:
+            return DNAState(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_DNAToken(self, value):
+        # Validate type DNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='DNAState', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAState')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAState'):
+        super(DNAState, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAState')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAState', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            super(DNAState, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAState'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(DNAState, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAState, self).exportLiteralChildren(outfile, level, name_)
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_DNAToken(self.symbol)    # validate type DNAToken
+        super(DNAState, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class DNAState
+
+
+class AbstractBlock(TaxaLinked):
+    """The AbstractBlock is the superclass for blocks that contain an
+    element structure of type AbstractFormat."""
+    subclass = None
+    superclass = TaxaLinked
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, valueOf_=None):
+        super(AbstractBlock, self).__init__(about, meta, label, id, otus, )
+        self.format = format
+    def factory(*args_, **kwargs_):
+        if AbstractBlock.subclass:
+            return AbstractBlock.subclass(*args_, **kwargs_)
+        else:
+            return AbstractBlock(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def export(self, outfile, level, namespace_='', name_='AbstractBlock', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractBlock')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractBlock"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractBlock'):
+        super(AbstractBlock, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractBlock')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractBlock', fromsubclass_=False):
+        super(AbstractBlock, self).exportChildren(outfile, level, namespace_, name_, True)
+        format_.export(outfile, level, namespace_, name_='format')
+    def hasContent_(self):
+        if (
+            self.format is not None or
+            super(AbstractBlock, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractBlock'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractBlock, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractBlock, self).exportLiteralChildren(outfile, level, name_)
+        if self.AbstractFormat is not None:
+            showIndent(outfile, level)
+            outfile.write('AbstractFormat=model_.AbstractFormat(\n')
+            self.AbstractFormat.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractBlock, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'format':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <format> element')
+            self.set_format(obj_)
+        super(AbstractBlock, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractBlock
+
+
+class AbstractObsRow(TaxonLinked):
+    """The AbstractObsRow represents a single row in a matrix. The row must
+    refer to a previously declared otu element by its id attribute
+    (and must have an id itself, may have a label, and may have meta
+    attachments). The row contains multiple cell elements."""
+    subclass = None
+    superclass = TaxonLinked
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(AbstractObsRow, self).__init__(about, meta, label, id, otu, )
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AbstractObsRow.subclass:
+            return AbstractObsRow.subclass(*args_, **kwargs_)
+        else:
+            return AbstractObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObsRow')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractObsRow"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractObsRow'):
+        super(AbstractObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractObsRow', fromsubclass_=False):
+        super(AbstractObsRow, self).exportChildren(outfile, level, namespace_, name_, True)
+        for cell_ in self.get_cell():
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.cell or
+            self.set or
+            super(AbstractObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractObs(\n')
+            cell_.exportLiteral(outfile, level, name_='AbstractObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'cell':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <cell> element')
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+        super(AbstractObsRow, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractObsRow
+
+
+class AbstractSeqRow(TaxonLinked):
+    """The AbstractSeqRow represents a single row in a matrix. The row must
+    refer to a previously declared otu element by its id attribute
+    (and must have an id itself, may have a label, and may have meta
+    attachments). The row contains a single seq element with raw
+    character data."""
+    subclass = None
+    superclass = TaxonLinked
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(AbstractSeqRow, self).__init__(about, meta, label, id, otu, )
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if AbstractSeqRow.subclass:
+            return AbstractSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return AbstractSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def export(self, outfile, level, namespace_='', name_='AbstractSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqRow')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractSeqRow"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractSeqRow'):
+        super(AbstractSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractSeqRow', fromsubclass_=False):
+        super(AbstractSeqRow, self).exportChildren(outfile, level, namespace_, name_, True)
+        if self.seq:
+            self.seq.export(outfile, level, namespace_, name_='seq', )
+    def hasContent_(self):
+        if (
+            self.seq is not None or
+            super(AbstractSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=model_.xs_anySimpleType(\n')
+            self.seq.exportLiteral(outfile, level, name_='seq')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'seq':
+            obj_ = xs_anySimpleType.factory()
+            obj_.build(child_)
+            self.set_seq(obj_)
+        super(AbstractSeqRow, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractSeqRow
+
+
+class AbstractUncertainStateSet(AbstractState):
+    """The AbstractUncertainStateSet type is the super-class for an
+    uncertain state set definition. The element has a required
+    AbstractSymbol attribute that in restricted concrete subclasses
+    must be of a sensible type such as a single IUPAC character. It
+    may enclose zero or more AbstractMapping elements to resolve
+    ambiguities."""
+    subclass = None
+    superclass = AbstractState
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, valueOf_=None):
+        super(AbstractUncertainStateSet, self).__init__(about, meta, label, id, symbol, )
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+    def factory(*args_, **kwargs_):
+        if AbstractUncertainStateSet.subclass:
+            return AbstractUncertainStateSet.subclass(*args_, **kwargs_)
+        else:
+            return AbstractUncertainStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractUncertainStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractUncertainStateSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractUncertainStateSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractUncertainStateSet'):
+        super(AbstractUncertainStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractUncertainStateSet')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractUncertainStateSet', fromsubclass_=False):
+        super(AbstractUncertainStateSet, self).exportChildren(outfile, level, namespace_, name_, True)
+        for member_ in self.get_member():
+            member_.export(outfile, level, namespace_, name_='member')
+    def hasContent_(self):
+        if (
+            self.member or
+            super(AbstractUncertainStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractUncertainStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractUncertainStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractUncertainStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractMapping(\n')
+            member_.exportLiteral(outfile, level, name_='AbstractMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractUncertainStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <member> element')
+            self.member.append(obj_)
+        super(AbstractUncertainStateSet, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractUncertainStateSet
+
+
+class ContinuousMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of continuous data as granular
+    obervations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(ContinuousMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if ContinuousMatrixObsRow.subclass:
+            return ContinuousMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='ContinuousMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousMatrixObsRow'):
+        super(ContinuousMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(ContinuousMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.ContinuousObs(\n')
+            cell_.exportLiteral(outfile, level, name_='ContinuousObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = ContinuousObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class ContinuousMatrixObsRow
+
+
+class ContinuousMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of continuous data as character sequences."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(ContinuousMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if ContinuousMatrixSeqRow.subclass:
+            return ContinuousMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_ContinuousSeq(self, value):
+        # Validate type ContinuousSeq, a restriction on AbstractTokenList.
+        pass
+    def export(self, outfile, level, namespace_='', name_='ContinuousMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousMatrixSeqRow'):
+        super(ContinuousMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_double_list(self.seq, input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(ContinuousMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%e,\n' % self.seq)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_double_list(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_ContinuousSeq(self.seq)    # validate type ContinuousSeq
+# end class ContinuousMatrixSeqRow
+
+
+class NodeAndRootEdgeAndEdgeSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, node=None, edge=None, rootedge=None, valueOf_=None):
+        super(NodeAndRootEdgeAndEdgeSet, self).__init__(about, meta, label, id, )
+        self.node = _cast(None, node)
+        self.edge = _cast(None, edge)
+        self.rootedge = _cast(None, rootedge)
+        pass
+    def factory(*args_, **kwargs_):
+        if NodeAndRootEdgeAndEdgeSet.subclass:
+            return NodeAndRootEdgeAndEdgeSet.subclass(*args_, **kwargs_)
+        else:
+            return NodeAndRootEdgeAndEdgeSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def get_edge(self): return self.edge
+    def set_edge(self, edge): self.edge = edge
+    def get_rootedge(self): return self.rootedge
+    def set_rootedge(self, rootedge): self.rootedge = rootedge
+    def export(self, outfile, level, namespace_='', name_='NodeAndRootEdgeAndEdgeSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='NodeAndRootEdgeAndEdgeSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="NodeAndRootEdgeAndEdgeSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='NodeAndRootEdgeAndEdgeSet'):
+        super(NodeAndRootEdgeAndEdgeSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='NodeAndRootEdgeAndEdgeSet')
+        if self.node is not None and 'node' not in already_processed:
+            already_processed.append('node')
+            outfile.write(' node=%s' % (self.gds_format_string(quote_attrib(self.node).encode(ExternalEncoding), input_name='node'), ))
+        if self.edge is not None and 'edge' not in already_processed:
+            already_processed.append('edge')
+            outfile.write(' edge=%s' % (self.gds_format_string(quote_attrib(self.edge).encode(ExternalEncoding), input_name='edge'), ))
+        if self.rootedge is not None and 'rootedge' not in already_processed:
+            already_processed.append('rootedge')
+            outfile.write(' rootedge=%s' % (self.gds_format_string(quote_attrib(self.rootedge).encode(ExternalEncoding), input_name='rootedge'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='NodeAndRootEdgeAndEdgeSet', fromsubclass_=False):
+        super(NodeAndRootEdgeAndEdgeSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(NodeAndRootEdgeAndEdgeSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='NodeAndRootEdgeAndEdgeSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.node is not None and 'node' not in already_processed:
+            already_processed.append('node')
+            showIndent(outfile, level)
+            outfile.write('node = "%s",\n' % (self.node,))
+        if self.edge is not None and 'edge' not in already_processed:
+            already_processed.append('edge')
+            showIndent(outfile, level)
+            outfile.write('edge = "%s",\n' % (self.edge,))
+        if self.rootedge is not None and 'rootedge' not in already_processed:
+            already_processed.append('rootedge')
+            showIndent(outfile, level)
+            outfile.write('rootedge = "%s",\n' % (self.rootedge,))
+        super(NodeAndRootEdgeAndEdgeSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(NodeAndRootEdgeAndEdgeSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('node', node)
+        if value is not None and 'node' not in already_processed:
+            already_processed.append('node')
+            self.node = value
+        value = find_attr_value_('edge', node)
+        if value is not None and 'edge' not in already_processed:
+            already_processed.append('edge')
+            self.edge = value
+        value = find_attr_value_('rootedge', node)
+        if value is not None and 'rootedge' not in already_processed:
+            already_processed.append('rootedge')
+            self.rootedge = value
+        super(NodeAndRootEdgeAndEdgeSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(NodeAndRootEdgeAndEdgeSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class NodeAndRootEdgeAndEdgeSet
+
+
+class TreeAndNetworkSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, tree=None, network=None, valueOf_=None):
+        super(TreeAndNetworkSet, self).__init__(about, meta, label, id, )
+        self.tree = _cast(None, tree)
+        self.network = _cast(None, network)
+        pass
+    def factory(*args_, **kwargs_):
+        if TreeAndNetworkSet.subclass:
+            return TreeAndNetworkSet.subclass(*args_, **kwargs_)
+        else:
+            return TreeAndNetworkSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_tree(self): return self.tree
+    def set_tree(self, tree): self.tree = tree
+    def get_network(self): return self.network
+    def set_network(self, network): self.network = network
+    def export(self, outfile, level, namespace_='', name_='TreeAndNetworkSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TreeAndNetworkSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="TreeAndNetworkSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TreeAndNetworkSet'):
+        super(TreeAndNetworkSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TreeAndNetworkSet')
+        if self.tree is not None and 'tree' not in already_processed:
+            already_processed.append('tree')
+            outfile.write(' tree=%s' % (self.gds_format_string(quote_attrib(self.tree).encode(ExternalEncoding), input_name='tree'), ))
+        if self.network is not None and 'network' not in already_processed:
+            already_processed.append('network')
+            outfile.write(' network=%s' % (self.gds_format_string(quote_attrib(self.network).encode(ExternalEncoding), input_name='network'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='TreeAndNetworkSet', fromsubclass_=False):
+        super(TreeAndNetworkSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(TreeAndNetworkSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TreeAndNetworkSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.tree is not None and 'tree' not in already_processed:
+            already_processed.append('tree')
+            showIndent(outfile, level)
+            outfile.write('tree = "%s",\n' % (self.tree,))
+        if self.network is not None and 'network' not in already_processed:
+            already_processed.append('network')
+            showIndent(outfile, level)
+            outfile.write('network = "%s",\n' % (self.network,))
+        super(TreeAndNetworkSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TreeAndNetworkSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('tree', node)
+        if value is not None and 'tree' not in already_processed:
+            already_processed.append('tree')
+            self.tree = value
+        value = find_attr_value_('network', node)
+        if value is not None and 'network' not in already_processed:
+            already_processed.append('network')
+            self.network = value
+        super(TreeAndNetworkSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(TreeAndNetworkSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class TreeAndNetworkSet
+
+
+class CellSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, cell=None, valueOf_=None):
+        super(CellSet, self).__init__(about, meta, label, id, )
+        self.cell = _cast(None, cell)
+        pass
+    def factory(*args_, **kwargs_):
+        if CellSet.subclass:
+            return CellSet.subclass(*args_, **kwargs_)
+        else:
+            return CellSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def export(self, outfile, level, namespace_='', name_='CellSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='CellSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="CellSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='CellSet'):
+        super(CellSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='CellSet')
+        if self.cell is not None and 'cell' not in already_processed:
+            already_processed.append('cell')
+            outfile.write(' cell=%s' % (self.gds_format_string(quote_attrib(self.cell).encode(ExternalEncoding), input_name='cell'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='CellSet', fromsubclass_=False):
+        super(CellSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(CellSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='CellSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.cell is not None and 'cell' not in already_processed:
+            already_processed.append('cell')
+            showIndent(outfile, level)
+            outfile.write('cell = "%s",\n' % (self.cell,))
+        super(CellSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(CellSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('cell', node)
+        if value is not None and 'cell' not in already_processed:
+            already_processed.append('cell')
+            self.cell = value
+        super(CellSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(CellSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class CellSet
+
+
+class RowSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, row=None, valueOf_=None):
+        super(RowSet, self).__init__(about, meta, label, id, )
+        self.row = _cast(None, row)
+        pass
+    def factory(*args_, **kwargs_):
+        if RowSet.subclass:
+            return RowSet.subclass(*args_, **kwargs_)
+        else:
+            return RowSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def export(self, outfile, level, namespace_='', name_='RowSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RowSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="RowSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RowSet'):
+        super(RowSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RowSet')
+        if self.row is not None and 'row' not in already_processed:
+            already_processed.append('row')
+            outfile.write(' row=%s' % (self.gds_format_string(quote_attrib(self.row).encode(ExternalEncoding), input_name='row'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RowSet', fromsubclass_=False):
+        super(RowSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(RowSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RowSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.row is not None and 'row' not in already_processed:
+            already_processed.append('row')
+            showIndent(outfile, level)
+            outfile.write('row = "%s",\n' % (self.row,))
+        super(RowSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RowSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('row', node)
+        if value is not None and 'row' not in already_processed:
+            already_processed.append('row')
+            self.row = value
+        super(RowSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(RowSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class RowSet
+
+
+class CharSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, char=None, valueOf_=None):
+        super(CharSet, self).__init__(about, meta, label, id, )
+        self.char = _cast(None, char)
+        pass
+    def factory(*args_, **kwargs_):
+        if CharSet.subclass:
+            return CharSet.subclass(*args_, **kwargs_)
+        else:
+            return CharSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def export(self, outfile, level, namespace_='', name_='CharSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='CharSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="CharSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='CharSet'):
+        super(CharSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='CharSet')
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            outfile.write(' char=%s' % (self.gds_format_string(quote_attrib(self.char).encode(ExternalEncoding), input_name='char'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='CharSet', fromsubclass_=False):
+        super(CharSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(CharSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='CharSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.char is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+        super(CharSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(CharSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('char', node)
+        if value is not None and 'char' not in already_processed:
+            already_processed.append('char')
+            self.char = value
+        super(CharSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(CharSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class CharSet
+
+
+class StateSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, uncertain_state_set=None, state=None, polymorphic_state_set=None, valueOf_=None):
+        super(StateSet, self).__init__(about, meta, label, id, )
+        self.uncertain_state_set = _cast(None, uncertain_state_set)
+        self.state = _cast(None, state)
+        self.polymorphic_state_set = _cast(None, polymorphic_state_set)
+        pass
+    def factory(*args_, **kwargs_):
+        if StateSet.subclass:
+            return StateSet.subclass(*args_, **kwargs_)
+        else:
+            return StateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def get_state(self): return self.state
+    def set_state(self, state): self.state = state
+    def get_polymorphic_state_set(self): return self.polymorphic_state_set
+    def set_polymorphic_state_set(self, polymorphic_state_set): self.polymorphic_state_set = polymorphic_state_set
+    def export(self, outfile, level, namespace_='', name_='StateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StateSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="StateSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StateSet'):
+        super(StateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StateSet')
+        if self.uncertain_state_set is not None and 'uncertain_state_set' not in already_processed:
+            already_processed.append('uncertain_state_set')
+            outfile.write(' uncertain_state_set=%s' % (self.gds_format_string(quote_attrib(self.uncertain_state_set).encode(ExternalEncoding), input_name='uncertain_state_set'), ))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            outfile.write(' state=%s' % (self.gds_format_string(quote_attrib(self.state).encode(ExternalEncoding), input_name='state'), ))
+        if self.polymorphic_state_set is not None and 'polymorphic_state_set' not in already_processed:
+            already_processed.append('polymorphic_state_set')
+            outfile.write(' polymorphic_state_set=%s' % (self.gds_format_string(quote_attrib(self.polymorphic_state_set).encode(ExternalEncoding), input_name='polymorphic_state_set'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='StateSet', fromsubclass_=False):
+        super(StateSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(StateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.uncertain_state_set is not None and 'uncertain_state_set' not in already_processed:
+            already_processed.append('uncertain_state_set')
+            showIndent(outfile, level)
+            outfile.write('uncertain_state_set = "%s",\n' % (self.uncertain_state_set,))
+        if self.state is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            showIndent(outfile, level)
+            outfile.write('state = "%s",\n' % (self.state,))
+        if self.polymorphic_state_set is not None and 'polymorphic_state_set' not in already_processed:
+            already_processed.append('polymorphic_state_set')
+            showIndent(outfile, level)
+            outfile.write('polymorphic_state_set = "%s",\n' % (self.polymorphic_state_set,))
+        super(StateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StateSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('uncertain_state_set', node)
+        if value is not None and 'uncertain_state_set' not in already_processed:
+            already_processed.append('uncertain_state_set')
+            self.uncertain_state_set = value
+        value = find_attr_value_('state', node)
+        if value is not None and 'state' not in already_processed:
+            already_processed.append('state')
+            self.state = value
+        value = find_attr_value_('polymorphic_state_set', node)
+        if value is not None and 'polymorphic_state_set' not in already_processed:
+            already_processed.append('polymorphic_state_set')
+            self.polymorphic_state_set = value
+        super(StateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(StateSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class StateSet
+
+
+class TaxonSet(AbstractSet):
+    subclass = None
+    superclass = AbstractSet
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, valueOf_=None):
+        super(TaxonSet, self).__init__(about, meta, label, id, )
+        self.otu = _cast(None, otu)
+        pass
+    def factory(*args_, **kwargs_):
+        if TaxonSet.subclass:
+            return TaxonSet.subclass(*args_, **kwargs_)
+        else:
+            return TaxonSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_otu(self): return self.otu
+    def set_otu(self, otu): self.otu = otu
+    def export(self, outfile, level, namespace_='', name_='TaxonSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='TaxonSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="TaxonSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='TaxonSet'):
+        super(TaxonSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='TaxonSet')
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            outfile.write(' otu=%s' % (self.gds_format_string(quote_attrib(self.otu).encode(ExternalEncoding), input_name='otu'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='TaxonSet', fromsubclass_=False):
+        super(TaxonSet, self).exportChildren(outfile, level, namespace_, name_, True)
+    def hasContent_(self):
+        if (
+            super(TaxonSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='TaxonSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.otu is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            showIndent(outfile, level)
+            outfile.write('otu = "%s",\n' % (self.otu,))
+        super(TaxonSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(TaxonSet, self).exportLiteralChildren(outfile, level, name_)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('otu', node)
+        if value is not None and 'otu' not in already_processed:
+            already_processed.append('otu')
+            self.otu = value
+        super(TaxonSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        super(TaxonSet, self).buildChildren(child_, node, nodeName_, True)
+        pass
+# end class TaxonSet
+
+
+class NetworkNode(AbstractNode):
+    """A concrete network node implementation."""
+    subclass = None
+    superclass = AbstractNode
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, root=False, valueOf_=None):
+        super(NetworkNode, self).__init__(about, meta, label, id, otu, root, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+    def factory(*args_, **kwargs_):
+        if NetworkNode.subclass:
+            return NetworkNode.subclass(*args_, **kwargs_)
+        else:
+            return NetworkNode(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def export(self, outfile, level, namespace_='', name_='NetworkNode', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkNode')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='NetworkNode'):
+        super(NetworkNode, self).exportAttributes(outfile, level, already_processed, namespace_, name_='NetworkNode')
+    def exportChildren(self, outfile, level, namespace_='', name_='NetworkNode', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+    def hasContent_(self):
+        if (
+            self.meta or
+            super(NetworkNode, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='NetworkNode'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(NetworkNode, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(NetworkNode, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(NetworkNode, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+# end class NetworkNode
+
+
+class StandardMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of standard data as granular obervations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(StandardMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if StandardMatrixObsRow.subclass:
+            return StandardMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return StandardMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardMatrixObsRow'):
+        super(StandardMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(StandardMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardObs(\n')
+            cell_.exportLiteral(outfile, level, name_='StandardObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = StandardObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class StandardMatrixObsRow
+
+
+class StandardMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of standard data as character sequences."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(StandardMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if StandardMatrixSeqRow.subclass:
+            return StandardMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return StandardMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_StandardSeq(self, value):
+        # Validate type StandardSeq, a restriction on AbstractTokenList.
+        pass
+    def export(self, outfile, level, namespace_='', name_='StandardMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardMatrixSeqRow'):
+        super(StandardMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_double_list(self.seq, input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(StandardMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%e,\n' % self.seq)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_double_list(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_StandardSeq(self.seq)    # validate type StandardSeq
+# end class StandardMatrixSeqRow
+
+
+class StandardUncertainStateSet(AbstractUncertainStateSet):
+    """The StandardUncertainStateSet type is a single uncertain ambiguity
+    mapping."""
+    subclass = None
+    superclass = AbstractUncertainStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, valueOf_=None):
+        super(StandardUncertainStateSet, self).__init__(about, meta, label, id, symbol, member, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+    def factory(*args_, **kwargs_):
+        if StandardUncertainStateSet.subclass:
+            return StandardUncertainStateSet.subclass(*args_, **kwargs_)
+        else:
+            return StandardUncertainStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def export(self, outfile, level, namespace_='', name_='StandardUncertainStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardUncertainStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardUncertainStateSet'):
+        super(StandardUncertainStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardUncertainStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (self.gds_format_string(quote_attrib(self.symbol).encode(ExternalEncoding), input_name='symbol'), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardUncertainStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+    def hasContent_(self):
+        if (
+            self.member or
+            super(StandardUncertainStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardUncertainStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(StandardUncertainStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardUncertainStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardMapping(\n')
+            member_.exportLiteral(outfile, level, name_='StandardMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+        super(StandardUncertainStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = StandardMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class StandardUncertainStateSet
+
+
+class RNAMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of RNA data containing granular
+    observations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(RNAMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RNAMatrixObsRow.subclass:
+            return RNAMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return RNAMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RNAMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAMatrixObsRow'):
+        super(RNAMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(RNAMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAObs(\n')
+            cell_.exportLiteral(outfile, level, name_='RNAObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = RNAObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RNAMatrixObsRow
+
+
+class RNAMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of RNA data containing raw sequence data."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(RNAMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if RNAMatrixSeqRow.subclass:
+            return RNAMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return RNAMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_RNASeq(self, value):
+        # Validate type RNASeq, a restriction on AbstractSeq.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RNAMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAMatrixSeqRow'):
+        super(RNAMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_string(quote_xml(self.seq).encode(ExternalEncoding), input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(RNAMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RNAMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%s,\n' % quote_python(self.seq).encode(ExternalEncoding))
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RNAMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_string(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_RNASeq(self.seq)    # validate type RNASeq
+# end class RNAMatrixSeqRow
+
+
+class RNAUncertainStateSet(AbstractUncertainStateSet):
+    """The RNAUncertainStateSet describes a single uncertain IUPAC
+    ambiguity mapping."""
+    subclass = None
+    superclass = AbstractUncertainStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, valueOf_=None):
+        super(RNAUncertainStateSet, self).__init__(about, meta, label, id, symbol, member, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+    def factory(*args_, **kwargs_):
+        if RNAUncertainStateSet.subclass:
+            return RNAUncertainStateSet.subclass(*args_, **kwargs_)
+        else:
+            return RNAUncertainStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_RNAToken(self, value):
+        # Validate type RNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RNAUncertainStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAUncertainStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAUncertainStateSet'):
+        super(RNAUncertainStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAUncertainStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAUncertainStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+    def hasContent_(self):
+        if (
+            self.member or
+            super(RNAUncertainStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAUncertainStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(RNAUncertainStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAUncertainStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='RNAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_RNAToken(self.symbol)    # validate type RNAToken
+        super(RNAUncertainStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = RNAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class RNAUncertainStateSet
+
+
+class RestrictionMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of restriction site data as granular
+    obervations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(RestrictionMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if RestrictionMatrixObsRow.subclass:
+            return RestrictionMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='RestrictionMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionMatrixObsRow'):
+        super(RestrictionMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(RestrictionMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.RestrictionObs(\n')
+            cell_.exportLiteral(outfile, level, name_='RestrictionObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = RestrictionObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class RestrictionMatrixObsRow
+
+
+class RestrictionMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of restriction site data as character
+    sequences."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(RestrictionMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if RestrictionMatrixSeqRow.subclass:
+            return RestrictionMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_RestrictionSeq(self, value):
+        # Validate type RestrictionSeq, a restriction on xs:string.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RestrictionMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionMatrixSeqRow'):
+        super(RestrictionMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_string(quote_xml(self.seq).encode(ExternalEncoding), input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(RestrictionMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%s,\n' % quote_python(self.seq).encode(ExternalEncoding))
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_string(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_RestrictionSeq(self.seq)    # validate type RestrictionSeq
+# end class RestrictionMatrixSeqRow
+
+
+class AAMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of amino acid data containing granular
+    observations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(AAMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if AAMatrixObsRow.subclass:
+            return AAMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return AAMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AAMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAMatrixObsRow'):
+        super(AAMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(AAMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.AAObs(\n')
+            cell_.exportLiteral(outfile, level, name_='AAObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = AAObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class AAMatrixObsRow
+
+
+class AAMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of amino acid data containing raw sequence
+    data."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(AAMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if AAMatrixSeqRow.subclass:
+            return AAMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return AAMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_AASeq(self, value):
+        # Validate type AASeq, a restriction on AbstractSeq.
+        pass
+    def export(self, outfile, level, namespace_='', name_='AAMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAMatrixSeqRow'):
+        super(AAMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='AAMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_string(quote_xml(self.seq).encode(ExternalEncoding), input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(AAMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AAMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%s,\n' % quote_python(self.seq).encode(ExternalEncoding))
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AAMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_string(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_AASeq(self.seq)    # validate type AASeq
+# end class AAMatrixSeqRow
+
+
+class AAUncertainStateSet(AbstractUncertainStateSet):
+    """The AAUncertainStateSet defines an uncertain ambiguity mapping."""
+    subclass = None
+    superclass = AbstractUncertainStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, valueOf_=None):
+        super(AAUncertainStateSet, self).__init__(about, meta, label, id, symbol, member, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+    def factory(*args_, **kwargs_):
+        if AAUncertainStateSet.subclass:
+            return AAUncertainStateSet.subclass(*args_, **kwargs_)
+        else:
+            return AAUncertainStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_AAToken(self, value):
+        # Validate type AAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='AAUncertainStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAUncertainStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAUncertainStateSet'):
+        super(AAUncertainStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAUncertainStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AAUncertainStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+    def hasContent_(self):
+        if (
+            self.member or
+            super(AAUncertainStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAUncertainStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(AAUncertainStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAUncertainStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.AAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='AAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_AAToken(self.symbol)    # validate type AAToken
+        super(AAUncertainStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = AAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class AAUncertainStateSet
+
+
+class DNAMatrixObsRow(AbstractObsRow):
+    """This is a row in a matrix of DNA data containing granular
+    observations."""
+    subclass = None
+    superclass = AbstractObsRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, cell=None, set=None, valueOf_=None):
+        super(DNAMatrixObsRow, self).__init__(about, meta, label, id, otu, cell, set, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        if cell is None:
+            self.cell = []
+        else:
+            self.cell = cell
+        if set is None:
+            self.set = []
+        else:
+            self.set = set
+    def factory(*args_, **kwargs_):
+        if DNAMatrixObsRow.subclass:
+            return DNAMatrixObsRow.subclass(*args_, **kwargs_)
+        else:
+            return DNAMatrixObsRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_cell(self): return self.cell
+    def set_cell(self, cell): self.cell = cell
+    def add_cell(self, value): self.cell.append(value)
+    def insert_cell(self, index, value): self.cell[index] = value
+    def get_set(self): return self.set
+    def set_set(self, set): self.set = set
+    def add_set(self, value): self.set.append(value)
+    def insert_set(self, index, value): self.set[index] = value
+    def export(self, outfile, level, namespace_='', name_='DNAMatrixObsRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMatrixObsRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAMatrixObsRow'):
+        super(DNAMatrixObsRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMatrixObsRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAMatrixObsRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        for cell_ in self.cell:
+            cell_.export(outfile, level, namespace_, name_='cell')
+        for set_ in self.set:
+            set_.export(outfile, level, namespace_, name_='set')
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.cell or
+            self.set or
+            super(DNAMatrixObsRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAMatrixObsRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAMatrixObsRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAMatrixObsRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('cell=[\n')
+        level += 1
+        for cell_ in self.cell:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAObs(\n')
+            cell_.exportLiteral(outfile, level, name_='DNAObs')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('set=[\n')
+        level += 1
+        for set_ in self.set:
+            showIndent(outfile, level)
+            outfile.write('model_.CellSet(\n')
+            set_.exportLiteral(outfile, level, name_='CellSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAMatrixObsRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'cell':
+            obj_ = DNAObs.factory()
+            obj_.build(child_)
+            self.cell.append(obj_)
+        elif nodeName_ == 'set':
+            obj_ = CellSet.factory()
+            obj_.build(child_)
+            self.set.append(obj_)
+# end class DNAMatrixObsRow
+
+
+class DNAMatrixSeqRow(AbstractSeqRow):
+    """This is a row in a matrix of DNA data containing raw sequence data."""
+    subclass = None
+    superclass = AbstractSeqRow
+    def __init__(self, about=None, meta=None, label=None, id=None, otu=None, seq=None, valueOf_=None):
+        super(DNAMatrixSeqRow, self).__init__(about, meta, label, id, otu, seq, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.seq = seq
+    def factory(*args_, **kwargs_):
+        if DNAMatrixSeqRow.subclass:
+            return DNAMatrixSeqRow.subclass(*args_, **kwargs_)
+        else:
+            return DNAMatrixSeqRow(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_seq(self): return self.seq
+    def set_seq(self, seq): self.seq = seq
+    def validate_DNASeq(self, value):
+        # Validate type DNASeq, a restriction on AbstractSeq.
+        pass
+    def export(self, outfile, level, namespace_='', name_='DNAMatrixSeqRow', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMatrixSeqRow')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAMatrixSeqRow'):
+        super(DNAMatrixSeqRow, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAMatrixSeqRow')
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAMatrixSeqRow', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sseq>%s</%sseq>\n' % (namespace_, self.gds_format_string(quote_xml(self.seq).encode(ExternalEncoding), input_name='seq'), namespace_))
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.seq is not None or
+            super(DNAMatrixSeqRow, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAMatrixSeqRow'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DNAMatrixSeqRow, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAMatrixSeqRow, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.seq is not None:
+            showIndent(outfile, level)
+            outfile.write('seq=%s,\n' % quote_python(self.seq).encode(ExternalEncoding))
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DNAMatrixSeqRow, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'seq':
+            seq_ = child_.text
+            seq_ = self.gds_validate_string(seq_, node, 'seq')
+            self.seq = seq_
+            self.validate_DNASeq(self.seq)    # validate type DNASeq
+# end class DNAMatrixSeqRow
+
+
+class DNAUncertainStateSet(AbstractUncertainStateSet):
+    """The DNAUncertainStateSet type defines an IUPAC ambiguity mapping. It
+    may enclose zero or more AbstractMapping elements to resolve
+    ambiguities."""
+    subclass = None
+    superclass = AbstractUncertainStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, valueOf_=None):
+        super(DNAUncertainStateSet, self).__init__(about, meta, label, id, symbol, member, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+    def factory(*args_, **kwargs_):
+        if DNAUncertainStateSet.subclass:
+            return DNAUncertainStateSet.subclass(*args_, **kwargs_)
+        else:
+            return DNAUncertainStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_DNAToken(self, value):
+        # Validate type DNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='DNAUncertainStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAUncertainStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAUncertainStateSet'):
+        super(DNAUncertainStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAUncertainStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAUncertainStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+    def hasContent_(self):
+        if (
+            self.member or
+            super(DNAUncertainStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAUncertainStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(DNAUncertainStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAUncertainStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='DNAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_DNAToken(self.symbol)    # validate type DNAToken
+        super(DNAUncertainStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = DNAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class DNAUncertainStateSet
+
+
+class AbstractCells(AbstractBlock):
+    """The AbstractSeqBlock type is the superclass for character blocks
+    that consist of granular character state observations."""
+    subclass = None
+    superclass = AbstractBlock
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(AbstractCells, self).__init__(about, meta, label, id, otus, format, )
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if AbstractCells.subclass:
+            return AbstractCells.subclass(*args_, **kwargs_)
+        else:
+            return AbstractCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='AbstractCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractCells')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractCells"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractCells'):
+        super(AbstractCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractCells', fromsubclass_=False):
+        super(AbstractCells, self).exportChildren(outfile, level, namespace_, name_, True)
+        matrix_.export(outfile, level, namespace_, name_='matrix')
+    def hasContent_(self):
+        if (
+            self.matrix is not None or
+            super(AbstractCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractCells, self).exportLiteralChildren(outfile, level, name_)
+        if self.AbstractObsMatrix is not None:
+            showIndent(outfile, level)
+            outfile.write('AbstractObsMatrix=model_.AbstractObsMatrix(\n')
+            self.AbstractObsMatrix.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'matrix':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <matrix> element')
+            self.set_matrix(obj_)
+        super(AbstractCells, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractCells
+
+
+class AbstractSeqs(AbstractBlock):
+    """The AbstractSeqBlock type is the superclass for character blocks
+    that consist of raw character sequences."""
+    subclass = None
+    superclass = AbstractBlock
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(AbstractSeqs, self).__init__(about, meta, label, id, otus, format, )
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if AbstractSeqs.subclass:
+            return AbstractSeqs.subclass(*args_, **kwargs_)
+        else:
+            return AbstractSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='AbstractSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqs')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractSeqs"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractSeqs'):
+        super(AbstractSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractSeqs', fromsubclass_=False):
+        super(AbstractSeqs, self).exportChildren(outfile, level, namespace_, name_, True)
+        matrix_.export(outfile, level, namespace_, name_='matrix')
+    def hasContent_(self):
+        if (
+            self.matrix is not None or
+            super(AbstractSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractSeqs, self).exportLiteralChildren(outfile, level, name_)
+        if self.AbstractSeqMatrix is not None:
+            showIndent(outfile, level)
+            outfile.write('AbstractSeqMatrix=model_.AbstractSeqMatrix(\n')
+            self.AbstractSeqMatrix.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'matrix':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <matrix> element')
+            self.set_matrix(obj_)
+        super(AbstractSeqs, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractSeqs
+
+
+class AbstractPolymorphicStateSet(AbstractUncertainStateSet):
+    """The AbstractPolymorphicStateSet type is the super-class for a
+    polymorphic state set definition. The element has a required
+    AbstractSymbol attribute that in restricted concrete subclasses
+    must be of a sensible type such as a single IUPAC character. It
+    may enclose zero or more AbstractMapping elements to resolve
+    ambiguities."""
+    subclass = None
+    superclass = AbstractUncertainStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, uncertain_state_set=None, valueOf_=None):
+        super(AbstractPolymorphicStateSet, self).__init__(about, meta, label, id, symbol, member, )
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+    def factory(*args_, **kwargs_):
+        if AbstractPolymorphicStateSet.subclass:
+            return AbstractPolymorphicStateSet.subclass(*args_, **kwargs_)
+        else:
+            return AbstractPolymorphicStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def export(self, outfile, level, namespace_='', name_='AbstractPolymorphicStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractPolymorphicStateSet')
+        outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
+        if 'xsi:type' not in already_processed:
+            outfile.write(' xsi:type="AbstractPolymorphicStateSet"')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AbstractPolymorphicStateSet'):
+        super(AbstractPolymorphicStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AbstractPolymorphicStateSet')
+    def exportChildren(self, outfile, level, namespace_='', name_='AbstractPolymorphicStateSet', fromsubclass_=False):
+        super(AbstractPolymorphicStateSet, self).exportChildren(outfile, level, namespace_, name_, True)
+        for uncertain_state_set_ in self.get_uncertain_state_set():
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+    def hasContent_(self):
+        if (
+            self.uncertain_state_set or
+            super(AbstractPolymorphicStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AbstractPolymorphicStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(AbstractPolymorphicStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AbstractPolymorphicStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AbstractUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='AbstractUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(AbstractPolymorphicStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'uncertain_state_set':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <uncertain_state_set> element')
+            self.uncertain_state_set.append(obj_)
+        super(AbstractPolymorphicStateSet, self).buildChildren(child_, node, nodeName_, True)
+# end class AbstractPolymorphicStateSet
+
+
+class ContinuousCells(AbstractCells):
+    """A continuous characters block consisting of granular cells preceded
+    by metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(ContinuousCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if ContinuousCells.subclass:
+            return ContinuousCells.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='ContinuousCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousCells'):
+        super(ContinuousCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(ContinuousCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.ContinuousFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.ContinuousObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = ContinuousFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = ContinuousObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class ContinuousCells
+
+
+class ContinuousSeqs(AbstractSeqs):
+    """A continuous characters block consisting of float sequences preceded
+    by metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(ContinuousSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if ContinuousSeqs.subclass:
+            return ContinuousSeqs.subclass(*args_, **kwargs_)
+        else:
+            return ContinuousSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='ContinuousSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ContinuousSeqs'):
+        super(ContinuousSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ContinuousSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='ContinuousSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(ContinuousSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ContinuousSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ContinuousSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ContinuousSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.ContinuousFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.ContinuousSeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ContinuousSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = ContinuousFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = ContinuousSeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class ContinuousSeqs
+
+
+class StandardCells(AbstractCells):
+    """A standard characters block consisting of granular cells preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(StandardCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if StandardCells.subclass:
+            return StandardCells.subclass(*args_, **kwargs_)
+        else:
+            return StandardCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='StandardCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardCells'):
+        super(StandardCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(StandardCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.StandardFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.StandardObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = StandardFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = StandardObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class StandardCells
+
+
+class StandardSeqs(AbstractSeqs):
+    """A standard characters block consisting of sequences preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(StandardSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if StandardSeqs.subclass:
+            return StandardSeqs.subclass(*args_, **kwargs_)
+        else:
+            return StandardSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='StandardSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardSeqs'):
+        super(StandardSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(StandardSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.StandardFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.StandardSeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = StandardFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = StandardSeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class StandardSeqs
+
+
+class StandardPolymorphicStateSet(AbstractPolymorphicStateSet):
+    """The StandardPolymorphicStateSet type is a single polymorphic
+    ambiguity mapping."""
+    subclass = None
+    superclass = AbstractPolymorphicStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, uncertain_state_set=None, valueOf_=None):
+        super(StandardPolymorphicStateSet, self).__init__(about, meta, label, id, symbol, member, uncertain_state_set, )
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+    def factory(*args_, **kwargs_):
+        if StandardPolymorphicStateSet.subclass:
+            return StandardPolymorphicStateSet.subclass(*args_, **kwargs_)
+        else:
+            return StandardPolymorphicStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def export(self, outfile, level, namespace_='', name_='StandardPolymorphicStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='StandardPolymorphicStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='StandardPolymorphicStateSet'):
+        super(StandardPolymorphicStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='StandardPolymorphicStateSet')
+    def exportChildren(self, outfile, level, namespace_='', name_='StandardPolymorphicStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+    def hasContent_(self):
+        if (
+            self.member or
+            self.uncertain_state_set or
+            super(StandardPolymorphicStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='StandardPolymorphicStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(StandardPolymorphicStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(StandardPolymorphicStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardMapping(\n')
+            member_.exportLiteral(outfile, level, name_='StandardMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.StandardUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='StandardUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(StandardPolymorphicStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = StandardMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = StandardUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+# end class StandardPolymorphicStateSet
+
+
+class RnaCells(AbstractCells):
+    """A RNA characters block consisting of granular cells preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(RnaCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if RnaCells.subclass:
+            return RnaCells.subclass(*args_, **kwargs_)
+        else:
+            return RnaCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='RnaCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RnaCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RnaCells'):
+        super(RnaCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RnaCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='RnaCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format')
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(RnaCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RnaCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RnaCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RnaCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.RNAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.RNAObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RnaCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = RNAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = RNAObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class RnaCells
+
+
+class RnaSeqs(AbstractSeqs):
+    """A RNA characters block consisting of sequences preceded by metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(RnaSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if RnaSeqs.subclass:
+            return RnaSeqs.subclass(*args_, **kwargs_)
+        else:
+            return RnaSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='RnaSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RnaSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RnaSeqs'):
+        super(RnaSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RnaSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='RnaSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(RnaSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RnaSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RnaSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RnaSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.RNAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.RNASeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RnaSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = RNAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = RNASeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class RnaSeqs
+
+
+class RNAPolymorphicStateSet(AbstractPolymorphicStateSet):
+    """The RNAPolymorphicStateSet describes a single polymorphic IUPAC
+    ambiguity mapping."""
+    subclass = None
+    superclass = AbstractPolymorphicStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, uncertain_state_set=None, valueOf_=None):
+        super(RNAPolymorphicStateSet, self).__init__(about, meta, label, id, symbol, member, uncertain_state_set, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+    def factory(*args_, **kwargs_):
+        if RNAPolymorphicStateSet.subclass:
+            return RNAPolymorphicStateSet.subclass(*args_, **kwargs_)
+        else:
+            return RNAPolymorphicStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_RNAToken(self, value):
+        # Validate type RNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='RNAPolymorphicStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RNAPolymorphicStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RNAPolymorphicStateSet'):
+        super(RNAPolymorphicStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RNAPolymorphicStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='RNAPolymorphicStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+    def hasContent_(self):
+        if (
+            self.member or
+            self.uncertain_state_set or
+            super(RNAPolymorphicStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RNAPolymorphicStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(RNAPolymorphicStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RNAPolymorphicStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='RNAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.RNAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='RNAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_RNAToken(self.symbol)    # validate type RNAToken
+        super(RNAPolymorphicStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = RNAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = RNAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+# end class RNAPolymorphicStateSet
+
+
+class RestrictionCells(AbstractCells):
+    """A standard characters block consisting of granular cells preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(RestrictionCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if RestrictionCells.subclass:
+            return RestrictionCells.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='RestrictionCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionCells'):
+        super(RestrictionCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(RestrictionCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.RestrictionFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.RestrictionObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = RestrictionFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = RestrictionObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class RestrictionCells
+
+
+class RestrictionSeqs(AbstractSeqs):
+    """A restriction site characters block consisting of sequences preceded
+    by metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(RestrictionSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if RestrictionSeqs.subclass:
+            return RestrictionSeqs.subclass(*args_, **kwargs_)
+        else:
+            return RestrictionSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='RestrictionSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='RestrictionSeqs'):
+        super(RestrictionSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='RestrictionSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='RestrictionSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(RestrictionSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='RestrictionSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(RestrictionSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(RestrictionSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.RestrictionFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.RestrictionSeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(RestrictionSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = RestrictionFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = RestrictionSeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class RestrictionSeqs
+
+
+class ProteinCells(AbstractCells):
+    """An amino acid characters block consisting of granular cells preceded
+    by metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(ProteinCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if ProteinCells.subclass:
+            return ProteinCells.subclass(*args_, **kwargs_)
+        else:
+            return ProteinCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='ProteinCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ProteinCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ProteinCells'):
+        super(ProteinCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ProteinCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='ProteinCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(ProteinCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ProteinCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ProteinCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ProteinCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.AAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.AAObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ProteinCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = AAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = AAObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class ProteinCells
+
+
+class ProteinSeqs(AbstractSeqs):
+    """An amino acid characters block consisting of sequences preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(ProteinSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if ProteinSeqs.subclass:
+            return ProteinSeqs.subclass(*args_, **kwargs_)
+        else:
+            return ProteinSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='ProteinSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ProteinSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ProteinSeqs'):
+        super(ProteinSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='ProteinSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='ProteinSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(ProteinSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ProteinSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(ProteinSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(ProteinSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.AAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.AASeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(ProteinSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = AAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = AASeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class ProteinSeqs
+
+
+class AAPolymorphicStateSet(AbstractPolymorphicStateSet):
+    """The AAPolymorphicStateSet defines a polymorphic ambiguity mapping."""
+    subclass = None
+    superclass = AbstractPolymorphicStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, uncertain_state_set=None, valueOf_=None):
+        super(AAPolymorphicStateSet, self).__init__(about, meta, label, id, symbol, member, uncertain_state_set, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+    def factory(*args_, **kwargs_):
+        if AAPolymorphicStateSet.subclass:
+            return AAPolymorphicStateSet.subclass(*args_, **kwargs_)
+        else:
+            return AAPolymorphicStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_AAToken(self, value):
+        # Validate type AAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='AAPolymorphicStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='AAPolymorphicStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='AAPolymorphicStateSet'):
+        super(AAPolymorphicStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='AAPolymorphicStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='AAPolymorphicStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+    def hasContent_(self):
+        if (
+            self.member or
+            self.uncertain_state_set or
+            super(AAPolymorphicStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='AAPolymorphicStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(AAPolymorphicStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(AAPolymorphicStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.AAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='AAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.AAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='AAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_AAToken(self.symbol)    # validate type AAToken
+        super(AAPolymorphicStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = AAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = AAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+# end class AAPolymorphicStateSet
+
+
+class DnaCells(AbstractCells):
+    """A DNA characters block consisting of granular cells preceded by
+    metadata."""
+    subclass = None
+    superclass = AbstractCells
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(DnaCells, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if DnaCells.subclass:
+            return DnaCells.subclass(*args_, **kwargs_)
+        else:
+            return DnaCells(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='DnaCells', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DnaCells')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DnaCells'):
+        super(DnaCells, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DnaCells')
+    def exportChildren(self, outfile, level, namespace_='', name_='DnaCells', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(DnaCells, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DnaCells'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DnaCells, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DnaCells, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.DNAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.DNAObsMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DnaCells, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = DNAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = DNAObsMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class DnaCells
+
+
+class DnaSeqs(AbstractSeqs):
+    """A DNA characters block consisting of sequences preceded by metadata."""
+    subclass = None
+    superclass = AbstractSeqs
+    def __init__(self, about=None, meta=None, label=None, id=None, otus=None, format=None, matrix=None, valueOf_=None):
+        super(DnaSeqs, self).__init__(about, meta, label, id, otus, format, matrix, )
+        if meta is None:
+            self.meta = []
+        else:
+            self.meta = meta
+        self.format = format
+        self.matrix = matrix
+    def factory(*args_, **kwargs_):
+        if DnaSeqs.subclass:
+            return DnaSeqs.subclass(*args_, **kwargs_)
+        else:
+            return DnaSeqs(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_meta(self): return self.meta
+    def set_meta(self, meta): self.meta = meta
+    def add_meta(self, value): self.meta.append(value)
+    def insert_meta(self, index, value): self.meta[index] = value
+    def get_format(self): return self.format
+    def set_format(self, format): self.format = format
+    def get_matrix(self): return self.matrix
+    def set_matrix(self, matrix): self.matrix = matrix
+    def export(self, outfile, level, namespace_='', name_='DnaSeqs', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DnaSeqs')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DnaSeqs'):
+        super(DnaSeqs, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DnaSeqs')
+    def exportChildren(self, outfile, level, namespace_='', name_='DnaSeqs', fromsubclass_=False):
+        for meta_ in self.get_meta():
+            meta_.export(outfile, level, namespace_, name_='meta')
+        if self.format:
+            self.format.export(outfile, level, namespace_, name_='format', )
+        if self.matrix:
+            self.matrix.export(outfile, level, namespace_, name_='matrix', )
+    def hasContent_(self):
+        if (
+            self.meta or
+            self.format is not None or
+            self.matrix is not None or
+            super(DnaSeqs, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DnaSeqs'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        super(DnaSeqs, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DnaSeqs, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('meta=[\n')
+        level += 1
+        for meta_ in self.meta:
+            showIndent(outfile, level)
+            outfile.write('model_.Meta(\n')
+            meta_.exportLiteral(outfile, level, name_='Meta')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.format is not None:
+            showIndent(outfile, level)
+            outfile.write('format=model_.DNAFormat(\n')
+            self.format.exportLiteral(outfile, level, name_='format')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.matrix is not None:
+            showIndent(outfile, level)
+            outfile.write('matrix=model_.DNASeqMatrix(\n')
+            self.matrix.exportLiteral(outfile, level, name_='matrix')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        super(DnaSeqs, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'meta':
+            type_name_ = child_.attrib.get('{http://www.w3.org/2001/XMLSchema-instance}type')
+            if type_name_ is None:
+                type_name_ = child_.attrib.get('type')
+            if type_name_ is not None:
+                type_names_ = type_name_.split(':')
+                if len(type_names_) == 1:
+                    type_name_ = type_names_[0]
+                else:
+                    type_name_ = type_names_[1]
+                class_ = globals()[type_name_]
+                obj_ = class_.factory()
+                obj_.build(child_)
+            else:
+                raise NotImplementedError(
+                    'Class not implemented for <meta> element')
+            self.meta.append(obj_)
+        elif nodeName_ == 'format':
+            obj_ = DNAFormat.factory()
+            obj_.build(child_)
+            self.set_format(obj_)
+        elif nodeName_ == 'matrix':
+            obj_ = DNASeqMatrix.factory()
+            obj_.build(child_)
+            self.set_matrix(obj_)
+# end class DnaSeqs
+
+
+class DNAPolymorphicStateSet(AbstractPolymorphicStateSet):
+    """The DNAPolymorphicStateSet type defines an IUPAC ambiguity mapping.
+    It may enclose zero or more AbstractMapping elements to resolve
+    ambiguities."""
+    subclass = None
+    superclass = AbstractPolymorphicStateSet
+    def __init__(self, about=None, meta=None, label=None, id=None, symbol=None, member=None, uncertain_state_set=None, valueOf_=None):
+        super(DNAPolymorphicStateSet, self).__init__(about, meta, label, id, symbol, member, uncertain_state_set, )
+        self.symbol = _cast(None, symbol)
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+        if uncertain_state_set is None:
+            self.uncertain_state_set = []
+        else:
+            self.uncertain_state_set = uncertain_state_set
+    def factory(*args_, **kwargs_):
+        if DNAPolymorphicStateSet.subclass:
+            return DNAPolymorphicStateSet.subclass(*args_, **kwargs_)
+        else:
+            return DNAPolymorphicStateSet(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_uncertain_state_set(self): return self.uncertain_state_set
+    def set_uncertain_state_set(self, uncertain_state_set): self.uncertain_state_set = uncertain_state_set
+    def add_uncertain_state_set(self, value): self.uncertain_state_set.append(value)
+    def insert_uncertain_state_set(self, index, value): self.uncertain_state_set[index] = value
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_DNAToken(self, value):
+        # Validate type DNAToken, a restriction on AbstractSymbol.
+        pass
+    def export(self, outfile, level, namespace_='', name_='DNAPolymorphicStateSet', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DNAPolymorphicStateSet')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DNAPolymorphicStateSet'):
+        super(DNAPolymorphicStateSet, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DNAPolymorphicStateSet')
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            outfile.write(' symbol=%s' % (quote_attrib(self.symbol), ))
+    def exportChildren(self, outfile, level, namespace_='', name_='DNAPolymorphicStateSet', fromsubclass_=False):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+        for uncertain_state_set_ in self.uncertain_state_set:
+            uncertain_state_set_.export(outfile, level, namespace_, name_='uncertain_state_set')
+    def hasContent_(self):
+        if (
+            self.member or
+            self.uncertain_state_set or
+            super(DNAPolymorphicStateSet, self).hasContent_()
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DNAPolymorphicStateSet'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.symbol is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            showIndent(outfile, level)
+            outfile.write('symbol = "%s",\n' % (self.symbol,))
+        super(DNAPolymorphicStateSet, self).exportLiteralAttributes(outfile, level, already_processed, name_)
+    def exportLiteralChildren(self, outfile, level, name_):
+        super(DNAPolymorphicStateSet, self).exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member_ in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAMapping(\n')
+            member_.exportLiteral(outfile, level, name_='DNAMapping')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('uncertain_state_set=[\n')
+        level += 1
+        for uncertain_state_set_ in self.uncertain_state_set:
+            showIndent(outfile, level)
+            outfile.write('model_.DNAUncertainStateSet(\n')
+            uncertain_state_set_.exportLiteral(outfile, level, name_='DNAUncertainStateSet')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('symbol', node)
+        if value is not None and 'symbol' not in already_processed:
+            already_processed.append('symbol')
+            self.symbol = value
+            self.validate_DNAToken(self.symbol)    # validate type DNAToken
+        super(DNAPolymorphicStateSet, self).buildAttributes(node, attrs, already_processed)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'member':
+            obj_ = DNAMapping.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+        elif nodeName_ == 'uncertain_state_set':
+            obj_ = DNAUncertainStateSet.factory()
+            obj_.build(child_)
+            self.uncertain_state_set.append(obj_)
+# end class DNAPolymorphicStateSet
+
+
+USAGE_TEXT = """
+Usage: python <Parser>.py [ -s ] <in_xml_file>
+"""
+
+def usage():
+    print(USAGE_TEXT)
+    sys.exit(1)
+
+
+def get_root_tag(node):
+    tag = Tag_pattern_.match(node.tag).groups()[-1]
+    rootClass = globals().get(tag)
+    return tag, rootClass
+
+
+def parse(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'Nexml'
+        rootClass = Nexml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_=rootTag,
+##         namespacedef_='xmlns:nex="http://www.nexml.org/2009"')
+    return rootObj
+
+
+def parseString(inString):
+    from StringIO import StringIO
+    doc = parsexml_(StringIO(inString))
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'Nexml'
+        rootClass = Nexml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_="Nexml",
+##         namespacedef_='xmlns:nex="http://www.nexml.org/2009"')
+    return rootObj
+
+
+def parseLiteral(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'Nexml'
+        rootClass = Nexml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('#from nexml import *\n\n')
+##     sys.stdout.write('import nexml as model_\n\n')
+##     sys.stdout.write('rootObj = model_.rootTag(\n')
+##     rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
+##     sys.stdout.write(')\n')
+    return rootObj
+
+
+def main():
+    args = sys.argv[1:]
+    if len(args) == 1:
+        parse(args[0])
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    #import pdb; pdb.set_trace()
+    main()
+
+
+__all__ = [
+    "AAChar",
+    "AAFormat",
+    "AAMapping",
+    "AAMatrixObsRow",
+    "AAMatrixSeqRow",
+    "AAObs",
+    "AAObsMatrix",
+    "AAPolymorphicStateSet",
+    "AASeqMatrix",
+    "AAState",
+    "AAStates",
+    "AAUncertainStateSet",
+    "AbstractBlock",
+    "AbstractCells",
+    "AbstractChar",
+    "AbstractEdge",
+    "AbstractFormat",
+    "AbstractMapping",
+    "AbstractNetwork",
+    "AbstractNode",
+    "AbstractObs",
+    "AbstractObsMatrix",
+    "AbstractObsRow",
+    "AbstractPolymorphicStateSet",
+    "AbstractRootEdge",
+    "AbstractSeqMatrix",
+    "AbstractSeqRow",
+    "AbstractSeqs",
+    "AbstractSet",
+    "AbstractState",
+    "AbstractStates",
+    "AbstractTree",
+    "AbstractTrees",
+    "AbstractUncertainStateSet",
+    "Annotated",
+    "Base",
+    "CellSet",
+    "CharSet",
+    "ContinuousCells",
+    "ContinuousChar",
+    "ContinuousFormat",
+    "ContinuousMatrixObsRow",
+    "ContinuousMatrixSeqRow",
+    "ContinuousObs",
+    "ContinuousObsMatrix",
+    "ContinuousSeqMatrix",
+    "ContinuousSeqs",
+    "DNAChar",
+    "DNAFormat",
+    "DNAMapping",
+    "DNAMatrixObsRow",
+    "DNAMatrixSeqRow",
+    "DNAObs",
+    "DNAObsMatrix",
+    "DNAPolymorphicStateSet",
+    "DNASeqMatrix",
+    "DNAState",
+    "DNAStates",
+    "DNAUncertainStateSet",
+    "DnaCells",
+    "DnaSeqs",
+    "FloatNetwork",
+    "FloatTree",
+    "IDTagged",
+    "IntNetwork",
+    "IntTree",
+    "Labelled",
+    "LiteralMeta",
+    "Meta",
+    "NetworkFloatEdge",
+    "NetworkIntEdge",
+    "NetworkNode",
+    "Nexml",
+    "NodeAndRootEdgeAndEdgeSet",
+    "OptionalTaxonLinked",
+    "ProteinCells",
+    "ProteinSeqs",
+    "RNAChar",
+    "RNAFormat",
+    "RNAMapping",
+    "RNAMatrixObsRow",
+    "RNAMatrixSeqRow",
+    "RNAObs",
+    "RNAObsMatrix",
+    "RNAPolymorphicStateSet",
+    "RNASeqMatrix",
+    "RNAState",
+    "RNAStates",
+    "RNAUncertainStateSet",
+    "ResourceMeta",
+    "RestrictionCells",
+    "RestrictionChar",
+    "RestrictionFormat",
+    "RestrictionMatrixObsRow",
+    "RestrictionMatrixSeqRow",
+    "RestrictionObs",
+    "RestrictionObsMatrix",
+    "RestrictionSeqMatrix",
+    "RestrictionSeqs",
+    "RestrictionState",
+    "RestrictionStates",
+    "RnaCells",
+    "RnaSeqs",
+    "RowSet",
+    "StandardCells",
+    "StandardChar",
+    "StandardFormat",
+    "StandardMapping",
+    "StandardMatrixObsRow",
+    "StandardMatrixSeqRow",
+    "StandardObs",
+    "StandardObsMatrix",
+    "StandardPolymorphicStateSet",
+    "StandardSeqMatrix",
+    "StandardSeqs",
+    "StandardState",
+    "StandardStates",
+    "StandardUncertainStateSet",
+    "StateSet",
+    "Taxa",
+    "TaxaLinked",
+    "Taxon",
+    "TaxonLinked",
+    "TaxonSet",
+    "TreeAndNetworkSet",
+    "TreeFloatEdge",
+    "TreeFloatRootEdge",
+    "TreeIntEdge",
+    "TreeIntRootEdge",
+    "TreeNode",
+    "Trees",
+    "attrExtensions"
+    ]
diff --git a/ete3/nexml/_nexml_tree.py b/ete3/nexml/_nexml_tree.py
new file mode 100644
index 0000000..3bd8b66
--- /dev/null
+++ b/ete3/nexml/_nexml_tree.py
@@ -0,0 +1,196 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import sys
+from ._nexml import MixedContainer, FloatTree, TreeFloatEdge, TreeNode, LiteralMeta
+from .. import PhyloTree
+from ..phylo.phylotree import _parse_species
+from ..parser.newick import read_newick
+
+class Children(list):
+    def append(self, item):
+        list.append(self, item)
+        item.nexml_edge.source = self.node.nexml_node.id
+        item.nexml_edge.target = item.nexml_node.id
+
+class NexmlTree(PhyloTree):
+    """
+    Special PhyloTree object with nexml support
+    """
+
+    def __repr__(self):
+        return "NexML ETE tree <%s>" %hex(hash(self))
+
+    def _get_dist(self):
+        return self.nexml_edge.get_length()
+    def _set_dist(self, value):
+        try:
+            self.nexml_edge.set_length(value)
+        except ValueError:
+            raise
+
+    def _get_support(self):
+        return self._nexml_support.content
+    def _set_support(self, value):
+        try:
+            self._nexml_support.content = float(value)
+        except ValueError:
+            raise
+
+    def _get_name(self):
+        return self.nexml_node.get_label()
+
+    def _set_name(self, value):
+        try:
+            self.nexml_node.set_label(value)
+        except ValueError:
+            raise
+
+    def _get_children(self):
+        return self._children
+    def _set_children(self, value):
+        if isinstance(value, Children) and \
+           len(set([type(n)==type(self) for n in value]))<2:
+            self._children = value
+        else:
+            raise ValueError("children:wrong type")
+
+    dist = property(fget=_get_dist, fset=_set_dist)
+    support = property(fget=_get_support, fset=_set_support)
+    children = property(fget=_get_children, fset=_set_children)
+    name = property(fget=_get_name, fset=_set_name)
+
+    def __init__(self, newick=None, alignment=None, alg_format="fasta", \
+                 sp_naming_function=_parse_species, format=0):
+
+        self.nexml_tree = FloatTree()
+        self.nexml_tree.set_anyAttributes_({'xsi:type': 'FloatTree'})
+        self.nexml_node = TreeNode()
+        self.nexml_edge = TreeFloatEdge()
+        self.nexml_node.id = "node_%s" %hash(self)
+        self.nexml_edge.id = "edge_%s" %hash(self)
+        self.nexml_project = None
+        self._nexml_support = LiteralMeta(datatype="float", property="branch_support", content=1.0)
+        self.nexml_edge.length = 0.0
+        self.nexml_edge.add_meta(self._nexml_support)
+
+        # Initialize empty PhyloTree
+        super(NexmlTree, self).__init__()
+        self._children = Children()
+        self._children.node = self
+
+        if alignment:
+            self.link_to_alignment(alignment, alg_format)
+        if newick:
+            read_newick(newick, root_node=self, format=format)
+            self.set_species_naming_function(sp_naming_function)
+
+    def set_nexml_project(self, nexml_obj):
+        self.nexml_project = nexml_obj
+
+    def build(self, node):
+        self.nexml_tree = FloatTree()
+        tree = self.nexml_tree
+        tree.build(node)
+
+        # This detects the outgroup of the tree even if the root tag
+        # is not set in any node
+        rootid = set([e.source for e in tree.edge]) - set([e.target for e in tree.edge])
+
+        nodeid2node = {rootid.pop(): self}
+        for xmledge in tree.edge:
+            child = nodeid2node.setdefault(xmledge.target, self.__class__() )
+            parent = nodeid2node.setdefault(xmledge.source, self.__class__() )
+            child.name = xmledge.target
+            child.nexml_node.id = xmledge.target
+            parent.name = xmledge.source
+            parent.nexml_node.id = xmledge.source
+            child.nexml_edge = xmledge
+
+            if xmledge.length is not None:
+                child.dist = float(xmledge.length)
+            parent.add_child(child)
+
+        for xmlnode in tree.node:
+            # just a warning. I don't know if this can occur
+            if xmlnode.id not in nodeid2node:
+                print("Unused node", xmlnode.id, file=sys.stderr)
+                continue
+
+            ete_node = nodeid2node[xmlnode.id]
+            ete_node.nexml_node = xmlnode
+
+            if xmlnode.label:
+                ete_node.name = xmlnode.label
+            elif xmlnode.id is not None:
+                ete_node.name = xmlnode.id
+
+
+    def export(self, outfile=sys.stdout, level=0, namespace_='', name_='FloatTree', namespacedef_=''):
+        if self.nexml_tree:
+            info = [(n.nexml_edge, n.nexml_node) for n in self.traverse()]
+            self.nexml_node.set_root(True)
+            self.nexml_tree.set_edge([i[0] for i in info])
+            self.nexml_tree.set_node([i[1] for i in info])
+            self.nexml_tree.export(outfile=outfile, level=level, name_=name_, namespacedef_=namespacedef_)
+
+
+    def exportChildren(self, outfile, level, namespace_='', name_='FloatTree'):
+        sorted_nodes = []
+        sorted_edges = []
+        for n in self.traverse():
+            # process node
+            node_obj = self.mixedclass_(MixedContainer.CategoryComplex,
+                MixedContainer.TypeNone, 'node', n.nexml_node)
+            sorted_nodes.append(node_obj)
+
+            # process edge
+            if n.nexml_edge:
+                edge_obj = self.mixedclass_(MixedContainer.CategoryComplex,
+                    MixedContainer.TypeNone, 'edge', n.nexml_edge)
+                sorted_edges.append(edge_obj)
+
+        # process the nodes and edges
+        self.tree.content_ = sorted_nodes + sorted_edges
+        for item_ in self.tree.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+# end class AbstractTreeSub
+NexmlNode = NexmlTree
diff --git a/ete3/orthoxml/__init__.py b/ete3/orthoxml/__init__.py
new file mode 100644
index 0000000..8ba90fb
--- /dev/null
+++ b/ete3/orthoxml/__init__.py
@@ -0,0 +1,40 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from ._orthoxml import *
diff --git a/ete3/orthoxml/_orthoxml.py b/ete3/orthoxml/_orthoxml.py
new file mode 100644
index 0000000..0e8934f
--- /dev/null
+++ b/ete3/orthoxml/_orthoxml.py
@@ -0,0 +1,1972 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#
+# Generated Mon Jun 27 10:13:43 2011 by generateDS.py version 2.5b.
+#
+
+import sys
+import getopt
+import re as re_
+import six
+from six.moves import range
+
+etree_ = None
+Verbose_import_ = False
+(   XMLParser_import_none, XMLParser_import_lxml,
+    XMLParser_import_elementtree
+    ) = list(range(3))
+XMLParser_import_library = None
+try:
+    # lxml
+    from lxml import etree as etree_
+    XMLParser_import_library = XMLParser_import_lxml
+    if Verbose_import_:
+        print("running with lxml.etree")
+except ImportError:
+    try:
+        # cElementTree from Python 2.5+
+        import xml.etree.cElementTree as etree_
+        XMLParser_import_library = XMLParser_import_elementtree
+        if Verbose_import_:
+            print("running with cElementTree on Python 2.5+")
+    except ImportError:
+        try:
+            # ElementTree from Python 2.5+
+            import xml.etree.ElementTree as etree_
+            XMLParser_import_library = XMLParser_import_elementtree
+            if Verbose_import_:
+                print("running with ElementTree on Python 2.5+")
+        except ImportError:
+            try:
+                # normal cElementTree install
+                import cElementTree as etree_
+                XMLParser_import_library = XMLParser_import_elementtree
+                if Verbose_import_:
+                    print("running with cElementTree")
+            except ImportError:
+                try:
+                    # normal ElementTree install
+                    import elementtree.ElementTree as etree_
+                    XMLParser_import_library = XMLParser_import_elementtree
+                    if Verbose_import_:
+                        print("running with ElementTree")
+                except ImportError:
+                    raise ImportError("Failed to import ElementTree from any known place")
+
+def parsexml_(*args, **kwargs):
+    if (XMLParser_import_library == XMLParser_import_lxml and
+        'parser' not in kwargs):
+        # Use the lxml ElementTree compatible parser so that, e.g.,
+        #   we ignore comments.
+        kwargs['parser'] = etree_.ETCompatXMLParser()
+    doc = etree_.parse(*args, **kwargs)
+    return doc
+
+#
+# User methods
+#
+# Calls to the methods in these classes are generated by generateDS.py.
+# You can replace these methods by re-implementing the following class
+#   in a module named generatedssuper.py.
+
+try:
+    from generatedssuper import GeneratedsSuper
+except ImportError as exp:
+
+    class GeneratedsSuper(object):
+        def gds_format_string(self, input_data, input_name=''):
+            return input_data
+        def gds_validate_string(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer(self, input_data, input_name=''):
+            return '%d' % input_data
+        def gds_validate_integer(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_integer_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of integers')
+            return input_data
+        def gds_format_float(self, input_data, input_name=''):
+            return '%f' % input_data
+        def gds_validate_float(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_float_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_float_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of floats')
+            return input_data
+        def gds_format_double(self, input_data, input_name=''):
+            return '%e' % input_data
+        def gds_validate_double(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_double_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_double_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of doubles')
+            return input_data
+        def gds_format_boolean(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_boolean_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                if value not in ('true', '1', 'false', '0', ):
+                    raise_parse_error(node, 'Requires sequence of booleans ("true", "1", "false", "0")')
+            return input_data
+        def gds_str_lower(self, instring):
+            return instring.lower()
+        def get_path_(self, node):
+            path_list = []
+            self.get_path_list_(node, path_list)
+            path_list.reverse()
+            path = '/'.join(path_list)
+            return path
+        Tag_strip_pattern_ = re_.compile(r'\{.*\}')
+        def get_path_list_(self, node, path_list):
+            if node is None:
+                return
+            tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
+            if tag:
+                path_list.append(tag)
+            self.get_path_list_(node.getparent(), path_list)
+
+
+#
+# If you have installed IPython you can uncomment and use the following.
+# IPython is available from http://ipython.scipy.org/.
+#
+
+## from IPython.Shell import IPShellEmbed
+## args = ''
+## ipshell = IPShellEmbed(args,
+##     banner = 'Dropping into IPython',
+##     exit_msg = 'Leaving Interpreter, back to program.')
+
+# Then use the following line where and when you want to drop into the
+# IPython shell:
+#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
+
+#
+# Globals
+#
+
+ExternalEncoding = 'utf-8'
+Tag_pattern_ = re_.compile(r'({.*})?(.*)')
+STRING_CLEANUP_PAT = re_.compile(r"[\n\r\s]+")
+
+#
+# Support/utility functions.
+#
+
+def showIndent(outfile, level):
+    for idx in range(level):
+        outfile.write('    ')
+
+def quote_xml(inStr):
+    if not inStr:
+        return ''
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    return s1
+
+def quote_attrib(inStr):
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    if '"' in s1:
+        if "'" in s1:
+            s1 = '"%s"' % s1.replace('"', """)
+        else:
+            s1 = "'%s'" % s1
+    else:
+        s1 = '"%s"' % s1
+    return s1
+
+def quote_python(inStr):
+    s1 = inStr
+    if s1.find("'") == -1:
+        if s1.find('\n') == -1:
+            return "'%s'" % s1
+        else:
+            return "'''%s'''" % s1
+    else:
+        if s1.find('"') != -1:
+            s1 = s1.replace('"', '\\"')
+        if s1.find('\n') == -1:
+            return '"%s"' % s1
+        else:
+            return '"""%s"""' % s1
+
+def get_all_text_(node):
+    if node.text is not None:
+        text = node.text
+    else:
+        text = ''
+    for child in node:
+        if child.tail is not None:
+            text += child.tail
+    return text
+
+def find_attr_value_(attr_name, node):
+    attrs = node.attrib
+    # First try with no namespace.
+    value = attrs.get(attr_name)
+    if value is None:
+        # Now try the other possible namespaces.
+        namespaces = six.itervalues(node.nsmap)
+        for namespace in namespaces:
+            value = attrs.get('{%s}%s' % (namespace, attr_name, ))
+            if value is not None:
+                break
+    return value
+
+
+class GDSParseError(Exception):
+    pass
+
+def raise_parse_error(node, msg):
+    if XMLParser_import_library == XMLParser_import_lxml:
+        msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
+    else:
+        msg = '%s (element %s)' % (msg, node.tag, )
+    raise GDSParseError(msg)
+
+
+class MixedContainer:
+    # Constants for category:
+    CategoryNone = 0
+    CategoryText = 1
+    CategorySimple = 2
+    CategoryComplex = 3
+    # Constants for content_type:
+    TypeNone = 0
+    TypeText = 1
+    TypeString = 2
+    TypeInteger = 3
+    TypeFloat = 4
+    TypeDecimal = 5
+    TypeDouble = 6
+    TypeBoolean = 7
+    def __init__(self, category, content_type, name, value):
+        self.category = category
+        self.content_type = content_type
+        self.name = name
+        self.value = value
+    def getCategory(self):
+        return self.category
+    def getContenttype(self, content_type):
+        return self.content_type
+    def getValue(self):
+        return self.value
+    def getName(self):
+        return self.name
+    def export(self, outfile, level, name, namespace):
+        if self.category == MixedContainer.CategoryText:
+            # Prevent exporting empty content as empty lines.
+            if self.value.strip():
+                outfile.write(self.value)
+        elif self.category == MixedContainer.CategorySimple:
+            self.exportSimple(outfile, level, name)
+        else:    # category == MixedContainer.CategoryComplex
+            self.value.export(outfile, level, namespace,name)
+    def exportSimple(self, outfile, level, name):
+        if self.content_type == MixedContainer.TypeString:
+            outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeInteger or \
+                self.content_type == MixedContainer.TypeBoolean:
+            outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeFloat or \
+                self.content_type == MixedContainer.TypeDecimal:
+            outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeDouble:
+            outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
+    def exportLiteral(self, outfile, level, name):
+        if self.category == MixedContainer.CategoryText:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        elif self.category == MixedContainer.CategorySimple:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        else:    # category == MixedContainer.CategoryComplex
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s",\n' % \
+                (self.category, self.content_type, self.name,))
+            self.value.exportLiteral(outfile, level + 1)
+            showIndent(outfile, level)
+            outfile.write(')\n')
+
+
+class MemberSpec_(object):
+    def __init__(self, name='', data_type='', container=0):
+        self.name = name
+        self.data_type = data_type
+        self.container = container
+    def set_name(self, name): self.name = name
+    def get_name(self): return self.name
+    def set_data_type(self, data_type): self.data_type = data_type
+    def get_data_type_chain(self): return self.data_type
+    def get_data_type(self):
+        if isinstance(self.data_type, list):
+            if len(self.data_type) > 0:
+                return self.data_type[-1]
+            else:
+                return 'xs:string'
+        else:
+            return self.data_type
+    def set_container(self, container): self.container = container
+    def get_container(self): return self.container
+
+def _cast(typ, value):
+    if typ is None or value is None:
+        return value
+    return typ(value)
+
+#
+# Data representation classes.
+#
+
+class orthoXML(GeneratedsSuper):
+    """The OrthoXML root element. The source program/database of the file
+    for instance OMA or InParanoid. The version number of the file.
+    The version or release number of the source program/database at
+    time the file was generated."""
+    subclass = None
+    superclass = None
+    def __init__(self, origin=None, version=None, originVersion=None, notes=None, species=None, scores=None, groups=None, valueOf_=None):
+        self.origin = _cast(None, origin)
+        self.version = _cast(float, version)
+        self.originVersion = _cast(None, originVersion)
+        self.notes = notes
+        if species is None:
+            self.species = []
+        else:
+            self.species = species
+        self.scores = scores
+        self.groups = groups
+    def factory(*args_, **kwargs_):
+        if orthoXML.subclass:
+            return orthoXML.subclass(*args_, **kwargs_)
+        else:
+            return orthoXML(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_notes(self): return self.notes
+    def set_notes(self, notes): self.notes = notes
+    def get_species(self): return self.species
+    def set_species(self, species): self.species = species
+    def add_species(self, value): self.species.append(value)
+    def insert_species(self, index, value): self.species[index] = value
+    def get_scores(self): return self.scores
+    def set_scores(self, scores): self.scores = scores
+    def get_groups(self): return self.groups
+    def set_groups(self, groups): self.groups = groups
+    def get_origin(self): return self.origin
+    def set_origin(self, origin): self.origin = origin
+    def get_version(self): return self.version
+    def set_version(self, version): self.version = version
+    def get_originVersion(self): return self.originVersion
+    def set_originVersion(self, originVersion): self.originVersion = originVersion
+    def export(self, outfile, level, namespace_='ortho:', name_='orthoXML', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='orthoXML')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='orthoXML'):
+        if self.origin is not None and 'origin' not in already_processed:
+            already_processed.append('origin')
+            outfile.write(' origin=%s' % (self.gds_format_string(quote_attrib(self.origin).encode(ExternalEncoding), input_name='origin'), ))
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            outfile.write(' version="%s"' % self.gds_format_float(self.version, input_name='version'))
+        if self.originVersion is not None and 'originVersion' not in already_processed:
+            already_processed.append('originVersion')
+            outfile.write(' originVersion=%s' % (self.gds_format_string(quote_attrib(self.originVersion).encode(ExternalEncoding), input_name='originVersion'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='orthoXML', fromsubclass_=False):
+        if self.notes:
+            self.notes.export(outfile, level, namespace_, name_='notes')
+        for species_ in self.species:
+            species_.export(outfile, level, namespace_, name_='species')
+        if self.scores:
+            self.scores.export(outfile, level, namespace_, name_='scores')
+        if self.groups:
+            self.groups.export(outfile, level, namespace_, name_='groups', )
+    def hasContent_(self):
+        if (
+            self.notes is not None or
+            self.species or
+            self.scores is not None or
+            self.groups is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='orthoXML'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.origin is not None and 'origin' not in already_processed:
+            already_processed.append('origin')
+            showIndent(outfile, level)
+            outfile.write('origin = "%s",\n' % (self.origin,))
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            showIndent(outfile, level)
+            outfile.write('version = %f,\n' % (self.version,))
+        if self.originVersion is not None and 'originVersion' not in already_processed:
+            already_processed.append('originVersion')
+            showIndent(outfile, level)
+            outfile.write('originVersion = "%s",\n' % (self.originVersion,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.notes is not None:
+            showIndent(outfile, level)
+            outfile.write('notes=model_.notes(\n')
+            self.notes.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('species=[\n')
+        level += 1
+        for species_ in self.species:
+            showIndent(outfile, level)
+            outfile.write('model_.species(\n')
+            species_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.scores is not None:
+            showIndent(outfile, level)
+            outfile.write('scores=model_.scores(\n')
+            self.scores.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.groups is not None:
+            showIndent(outfile, level)
+            outfile.write('groups=model_.groups(\n')
+            self.groups.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('origin', node)
+        if value is not None and 'origin' not in already_processed:
+            already_processed.append('origin')
+            self.origin = value
+        value = find_attr_value_('version', node)
+        if value is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            try:
+                self.version = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (version): %s' % exp)
+        value = find_attr_value_('originVersion', node)
+        if value is not None and 'originVersion' not in already_processed:
+            already_processed.append('originVersion')
+            self.originVersion = value
+            self.originVersion = ' '.join(self.originVersion.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'notes':
+            obj_ = notes.factory()
+            obj_.build(child_)
+            self.set_notes(obj_)
+        elif nodeName_ == 'species':
+            obj_ = species.factory()
+            obj_.build(child_)
+            self.species.append(obj_)
+        elif nodeName_ == 'scores':
+            obj_ = scores.factory()
+            obj_.build(child_)
+            self.set_scores(obj_)
+        elif nodeName_ == 'groups':
+            obj_ = groups.factory()
+            obj_.build(child_)
+            self.set_groups(obj_)
+# end class orthoXML
+
+
+class species(GeneratedsSuper):
+    """The species element contains all sequences of one species. The NCBI
+    Taxonomy identifier of the species to identify it unambiguously.
+    The name of the species."""
+    subclass = None
+    superclass = None
+    def __init__(self, name=None, NCBITaxId=None, database=None, notes=None, valueOf_=None):
+        self.name = _cast(None, name)
+        self.NCBITaxId = _cast(int, NCBITaxId)
+        if database is None:
+            self.database = []
+        else:
+            self.database = database
+        self.notes = notes
+    def factory(*args_, **kwargs_):
+        if species.subclass:
+            return species.subclass(*args_, **kwargs_)
+        else:
+            return species(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_database(self): return self.database
+    def set_database(self, database): self.database = database
+    def add_database(self, value): self.database.append(value)
+    def insert_database(self, index, value): self.database[index] = value
+    def get_notes(self): return self.notes
+    def set_notes(self, notes): self.notes = notes
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_NCBITaxId(self): return self.NCBITaxId
+    def set_NCBITaxId(self, NCBITaxId): self.NCBITaxId = NCBITaxId
+    def export(self, outfile, level, namespace_='ortho:', name_='species', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='species')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='species'):
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), ))
+        if self.NCBITaxId is not None and 'NCBITaxId' not in already_processed:
+            already_processed.append('NCBITaxId')
+            outfile.write(' NCBITaxId="%s"' % self.gds_format_integer(self.NCBITaxId, input_name='NCBITaxId'))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='species', fromsubclass_=False):
+        for database_ in self.database:
+            database_.export(outfile, level, namespace_, name_='database')
+        if self.notes:
+            self.notes.export(outfile, level, namespace_, name_='notes')
+    def hasContent_(self):
+        if (
+            self.database or
+            self.notes is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='species'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            showIndent(outfile, level)
+            outfile.write('name = "%s",\n' % (self.name,))
+        if self.NCBITaxId is not None and 'NCBITaxId' not in already_processed:
+            already_processed.append('NCBITaxId')
+            showIndent(outfile, level)
+            outfile.write('NCBITaxId = %d,\n' % (self.NCBITaxId,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('database=[\n')
+        level += 1
+        for database_ in self.database:
+            showIndent(outfile, level)
+            outfile.write('model_.database(\n')
+            database_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.notes is not None:
+            showIndent(outfile, level)
+            outfile.write('notes=model_.notes(\n')
+            self.notes.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('name', node)
+        if value is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            self.name = value
+        value = find_attr_value_('NCBITaxId', node)
+        if value is not None and 'NCBITaxId' not in already_processed:
+            already_processed.append('NCBITaxId')
+            try:
+                self.NCBITaxId = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'database':
+            obj_ = database.factory()
+            obj_.build(child_)
+            self.database.append(obj_)
+        elif nodeName_ == 'notes':
+            obj_ = notes.factory()
+            obj_.build(child_)
+            self.set_notes(obj_)
+# end class species
+
+
+class database(GeneratedsSuper):
+    """A database element contains all genes from a single database/source.
+    A Uniform Resource Identifier (URI) pointing to the gene. In the
+    simplest case one could imagine a URL which in concatenation
+    with the gene identifier links to the website of the gene in the
+    source database. However, how this is used depends on the source
+    of the orthoXML file. Name of the database. A Uniform Resource
+    Identifier (URI) pointing to the protein. A Uniform Resource
+    Identifier (URI) pointing to the transcript. Version number of
+    the database."""
+    subclass = None
+    superclass = None
+    def __init__(self, transcriptLink=None, protLink=None, geneLink=None, name=None, version=None, genes=None, valueOf_=None):
+        self.transcriptLink = _cast(None, transcriptLink)
+        self.protLink = _cast(None, protLink)
+        self.geneLink = _cast(None, geneLink)
+        self.name = _cast(None, name)
+        self.version = _cast(None, version)
+        self.genes = genes
+    def factory(*args_, **kwargs_):
+        if database.subclass:
+            return database.subclass(*args_, **kwargs_)
+        else:
+            return database(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_genes(self): return self.genes
+    def set_genes(self, genes): self.genes = genes
+    def get_transcriptLink(self): return self.transcriptLink
+    def set_transcriptLink(self, transcriptLink): self.transcriptLink = transcriptLink
+    def get_protLink(self): return self.protLink
+    def set_protLink(self, protLink): self.protLink = protLink
+    def get_geneLink(self): return self.geneLink
+    def set_geneLink(self, geneLink): self.geneLink = geneLink
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_version(self): return self.version
+    def set_version(self, version): self.version = version
+    def export(self, outfile, level, namespace_='ortho:', name_='database', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='database')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='database'):
+        if self.transcriptLink is not None and 'transcriptLink' not in already_processed:
+            already_processed.append('transcriptLink')
+            outfile.write(' transcriptLink=%s' % (self.gds_format_string(quote_attrib(self.transcriptLink).encode(ExternalEncoding), input_name='transcriptLink'), ))
+        if self.protLink is not None and 'protLink' not in already_processed:
+            already_processed.append('protLink')
+            outfile.write(' protLink=%s' % (self.gds_format_string(quote_attrib(self.protLink).encode(ExternalEncoding), input_name='protLink'), ))
+        if self.geneLink is not None and 'geneLink' not in already_processed:
+            already_processed.append('geneLink')
+            outfile.write(' geneLink=%s' % (self.gds_format_string(quote_attrib(self.geneLink).encode(ExternalEncoding), input_name='geneLink'), ))
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), ))
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            outfile.write(' version=%s' % (self.gds_format_string(quote_attrib(self.version).encode(ExternalEncoding), input_name='version'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='database', fromsubclass_=False):
+        if self.genes:
+            self.genes.export(outfile, level, namespace_, name_='genes', )
+    def hasContent_(self):
+        if (
+            self.genes is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='database'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.transcriptLink is not None and 'transcriptLink' not in already_processed:
+            already_processed.append('transcriptLink')
+            showIndent(outfile, level)
+            outfile.write('transcriptLink = "%s",\n' % (self.transcriptLink,))
+        if self.protLink is not None and 'protLink' not in already_processed:
+            already_processed.append('protLink')
+            showIndent(outfile, level)
+            outfile.write('protLink = "%s",\n' % (self.protLink,))
+        if self.geneLink is not None and 'geneLink' not in already_processed:
+            already_processed.append('geneLink')
+            showIndent(outfile, level)
+            outfile.write('geneLink = "%s",\n' % (self.geneLink,))
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            showIndent(outfile, level)
+            outfile.write('name = "%s",\n' % (self.name,))
+        if self.version is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            showIndent(outfile, level)
+            outfile.write('version = "%s",\n' % (self.version,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.genes is not None:
+            showIndent(outfile, level)
+            outfile.write('genes=model_.genes(\n')
+            self.genes.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('transcriptLink', node)
+        if value is not None and 'transcriptLink' not in already_processed:
+            already_processed.append('transcriptLink')
+            self.transcriptLink = value
+        value = find_attr_value_('protLink', node)
+        if value is not None and 'protLink' not in already_processed:
+            already_processed.append('protLink')
+            self.protLink = value
+        value = find_attr_value_('geneLink', node)
+        if value is not None and 'geneLink' not in already_processed:
+            already_processed.append('geneLink')
+            self.geneLink = value
+        value = find_attr_value_('name', node)
+        if value is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            self.name = value
+        value = find_attr_value_('version', node)
+        if value is not None and 'version' not in already_processed:
+            already_processed.append('version')
+            self.version = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'genes':
+            obj_ = genes.factory()
+            obj_.build(child_)
+            self.set_genes(obj_)
+# end class database
+
+
+class genes(GeneratedsSuper):
+    """A gene element represents a list of genes."""
+    subclass = None
+    superclass = None
+    def __init__(self, gene=None, valueOf_=None):
+        if gene is None:
+            self.gene = []
+        else:
+            self.gene = gene
+    def factory(*args_, **kwargs_):
+        if genes.subclass:
+            return genes.subclass(*args_, **kwargs_)
+        else:
+            return genes(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_gene(self): return self.gene
+    def set_gene(self, gene): self.gene = gene
+    def add_gene(self, value): self.gene.append(value)
+    def insert_gene(self, index, value): self.gene[index] = value
+    def export(self, outfile, level, namespace_='ortho:', name_='genes', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='genes')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='genes'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='genes', fromsubclass_=False):
+        for gene_ in self.gene:
+            gene_.export(outfile, level, namespace_, name_='gene')
+    def hasContent_(self):
+        if (
+            self.gene
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='genes'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('gene=[\n')
+        level += 1
+        for gene_ in self.gene:
+            showIndent(outfile, level)
+            outfile.write('model_.gene(\n')
+            gene_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'gene':
+            obj_ = gene.factory()
+            obj_.build(child_)
+            self.gene.append(obj_)
+# end class genes
+
+
+class gene(GeneratedsSuper):
+    """The gene element represents a single gene, protein or transcript. It
+    is in fact a set of identifiers: one internal identifier that is
+    used to link from geneRef elements in ortholog clusters and gene
+    identifiers, transcript identifiers and protein identifiers to
+    identify the molecule. The proper term for this element would
+    therefore rather be molecule. However, as the general purpose of
+    orthoXML is to represent orthology data for genes the term gene
+    is used instead. Gene, protein and transcipt identifiers are
+    optional but at least one of the three should be given. The
+    source database of the gene is defined through the database
+    element in which the gene element lies and the identifiers
+    should stem from this source. Identifier of the gene in the
+    source database. Multiple splice forms are possible by having
+    the same geneId more than once. Internal identifier to link to
+    the gene via the geneRef elements. Identifier of the protein in
+    the source database. Identifier of the transcript in the source
+    database."""
+    subclass = None
+    superclass = None
+    def __init__(self, protId=None, id=None, geneId=None, transcriptId=None, valueOf_=None):
+        self.protId = _cast(None, protId)
+        self.id = _cast(int, id)
+        self.geneId = _cast(None, geneId)
+        self.transcriptId = _cast(None, transcriptId)
+        pass
+    def factory(*args_, **kwargs_):
+        if gene.subclass:
+            return gene.subclass(*args_, **kwargs_)
+        else:
+            return gene(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_protId(self): return self.protId
+    def set_protId(self, protId): self.protId = protId
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_geneId(self): return self.geneId
+    def set_geneId(self, geneId): self.geneId = geneId
+    def get_transcriptId(self): return self.transcriptId
+    def set_transcriptId(self, transcriptId): self.transcriptId = transcriptId
+    def export(self, outfile, level, namespace_='ortho:', name_='gene', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='gene')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='gene'):
+        if self.protId is not None and 'protId' not in already_processed:
+            already_processed.append('protId')
+            outfile.write(' protId=%s' % (self.gds_format_string(quote_attrib(self.protId).encode(ExternalEncoding), input_name='protId'), ))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id'))
+        if self.geneId is not None and 'geneId' not in already_processed:
+            already_processed.append('geneId')
+            outfile.write(' geneId=%s' % (self.gds_format_string(quote_attrib(self.geneId).encode(ExternalEncoding), input_name='geneId'), ))
+        if self.transcriptId is not None and 'transcriptId' not in already_processed:
+            already_processed.append('transcriptId')
+            outfile.write(' transcriptId=%s' % (self.gds_format_string(quote_attrib(self.transcriptId).encode(ExternalEncoding), input_name='transcriptId'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='gene', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='gene'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.protId is not None and 'protId' not in already_processed:
+            already_processed.append('protId')
+            showIndent(outfile, level)
+            outfile.write('protId = "%s",\n' % (self.protId,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = %d,\n' % (self.id,))
+        if self.geneId is not None and 'geneId' not in already_processed:
+            already_processed.append('geneId')
+            showIndent(outfile, level)
+            outfile.write('geneId = "%s",\n' % (self.geneId,))
+        if self.transcriptId is not None and 'transcriptId' not in already_processed:
+            already_processed.append('transcriptId')
+            showIndent(outfile, level)
+            outfile.write('transcriptId = "%s",\n' % (self.transcriptId,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('protId', node)
+        if value is not None and 'protId' not in already_processed:
+            already_processed.append('protId')
+            self.protId = value
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            try:
+                self.id = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+        value = find_attr_value_('geneId', node)
+        if value is not None and 'geneId' not in already_processed:
+            already_processed.append('geneId')
+            self.geneId = value
+        value = find_attr_value_('transcriptId', node)
+        if value is not None and 'transcriptId' not in already_processed:
+            already_processed.append('transcriptId')
+            self.transcriptId = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class gene
+
+
+class scores(GeneratedsSuper):
+    """A list of score definitions."""
+    subclass = None
+    superclass = None
+    def __init__(self, scoreDef=None, valueOf_=None):
+        if scoreDef is None:
+            self.scoreDef = []
+        else:
+            self.scoreDef = scoreDef
+    def factory(*args_, **kwargs_):
+        if scores.subclass:
+            return scores.subclass(*args_, **kwargs_)
+        else:
+            return scores(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_scoreDef(self): return self.scoreDef
+    def set_scoreDef(self, scoreDef): self.scoreDef = scoreDef
+    def add_scoreDef(self, value): self.scoreDef.append(value)
+    def insert_scoreDef(self, index, value): self.scoreDef[index] = value
+    def export(self, outfile, level, namespace_='ortho:', name_='scores', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='scores')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='scores'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='scores', fromsubclass_=False):
+        for scoreDef_ in self.scoreDef:
+            scoreDef_.export(outfile, level, namespace_, name_='scoreDef')
+    def hasContent_(self):
+        if (
+            self.scoreDef
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='scores'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('scoreDef=[\n')
+        level += 1
+        for scoreDef_ in self.scoreDef:
+            showIndent(outfile, level)
+            outfile.write('model_.scoreDef(\n')
+            scoreDef_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'scoreDef':
+            obj_ = scoreDef.factory()
+            obj_.build(child_)
+            self.scoreDef.append(obj_)
+# end class scores
+
+
+class groups(GeneratedsSuper):
+    """Represents the list of ortholog groups. Note that the purpose of
+    OrthoXML is to store orthology assignment hence on the top level
+    only ortholog groups are allowed."""
+    subclass = None
+    superclass = None
+    def __init__(self, orthologGroup=None, valueOf_=None):
+        if orthologGroup is None:
+            self.orthologGroup = []
+        else:
+            self.orthologGroup = orthologGroup
+    def factory(*args_, **kwargs_):
+        if groups.subclass:
+            return groups.subclass(*args_, **kwargs_)
+        else:
+            return groups(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_orthologGroup(self): return self.orthologGroup
+    def set_orthologGroup(self, orthologGroup): self.orthologGroup = orthologGroup
+    def add_orthologGroup(self, value): self.orthologGroup.append(value)
+    def insert_orthologGroup(self, index, value): self.orthologGroup[index] = value
+    def export(self, outfile, level, namespace_='ortho:', name_='groups', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='groups')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='groups'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='groups', fromsubclass_=False):
+        for orthologGroup_ in self.orthologGroup:
+            orthologGroup_.export(outfile, level, namespace_, name_='orthologGroup')
+    def hasContent_(self):
+        if (
+            self.orthologGroup
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='groups'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('orthologGroup=[\n')
+        level += 1
+        for orthologGroup_ in self.orthologGroup:
+            showIndent(outfile, level)
+            outfile.write('model_.group(\n')
+            orthologGroup_.exportLiteral(outfile, level, name_='group')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'orthologGroup':
+            obj_ = group.factory()
+            obj_.build(child_)
+            self.orthologGroup.append(obj_)
+# end class groups
+
+
+class group(GeneratedsSuper):
+    """A group of genes or nested groups. In case of a orothologGroup
+    element, all genes in the group or in the nested groups are
+    orthologs to each other i.e. stem from the same gene in the last
+    common ancester of the species. In case of a paralogGroup the
+    genes are paralogs to each other. Subgroups within the group
+    allow the represention of phylogenetic trees. For more details
+    and examples see http://orthoxml.org/orthoxml_doc.html. A group
+    can may contain two or more of the three alternatives geneRef,
+    paralogGroup, and orthologGroup. By combining these, complex
+    phylogenies are possible. Identifier for the group in context of
+    the resource. This attribute is not required but if your
+    resource provides identifiers for the ortholog groups we
+    strongly recommend to use it at least for the top level groups."""
+    subclass = None
+    superclass = None
+    def __init__(self, id=None, score=None, property=None, geneRef=None, paralogGroup=None, orthologGroup=None, notes=None, valueOf_=None):
+        self.id = _cast(None, id)
+        if score is None:
+            self.score = []
+        else:
+            self.score = score
+        if property is None:
+            self.property = []
+        else:
+            self.property = property
+        if geneRef is None:
+            self.geneRef = []
+        else:
+            self.geneRef = geneRef
+        if paralogGroup is None:
+            self.paralogGroup = []
+        else:
+            self.paralogGroup = paralogGroup
+        if orthologGroup is None:
+            self.orthologGroup = []
+        else:
+            self.orthologGroup = orthologGroup
+        self.notes = notes
+    def factory(*args_, **kwargs_):
+        if group.subclass:
+            return group.subclass(*args_, **kwargs_)
+        else:
+            return group(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_score(self): return self.score
+    def set_score(self, score): self.score = score
+    def add_score(self, value): self.score.append(value)
+    def insert_score(self, index, value): self.score[index] = value
+    def get_property(self): return self.property
+    def set_property(self, property): self.property = property
+    def add_property(self, value): self.property.append(value)
+    def insert_property(self, index, value): self.property[index] = value
+    def get_geneRef(self): return self.geneRef
+    def set_geneRef(self, geneRef): self.geneRef = geneRef
+    def add_geneRef(self, value): self.geneRef.append(value)
+    def insert_geneRef(self, index, value): self.geneRef[index] = value
+    def get_paralogGroup(self): return self.paralogGroup
+    def set_paralogGroup(self, paralogGroup): self.paralogGroup = paralogGroup
+    def add_paralogGroup(self, value): self.paralogGroup.append(value)
+    def insert_paralogGroup(self, index, value): self.paralogGroup[index] = value
+    def get_orthologGroup(self): return self.orthologGroup
+    def set_orthologGroup(self, orthologGroup): self.orthologGroup = orthologGroup
+    def add_orthologGroup(self, value): self.orthologGroup.append(value)
+    def insert_orthologGroup(self, index, value): self.orthologGroup[index] = value
+    def get_notes(self): return self.notes
+    def set_notes(self, notes): self.notes = notes
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='ortho:', name_='group', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='group')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='group'):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='group', fromsubclass_=False):
+        for score_ in self.score:
+            score_.export(outfile, level, namespace_, name_='score')
+        for property_ in self.property:
+            property_.export(outfile, level, namespace_, name_='property')
+        for geneRef_ in self.geneRef:
+            geneRef_.export(outfile, level, namespace_, name_='geneRef')
+        for paralogGroup_ in self.paralogGroup:
+            paralogGroup_.export(outfile, level, namespace_, name_='paralogGroup')
+        for orthologGroup_ in self.orthologGroup:
+            orthologGroup_.export(outfile, level, namespace_, name_='orthologGroup')
+        if self.notes:
+            self.notes.export(outfile, level, namespace_, name_='notes')
+    def hasContent_(self):
+        if (
+            self.score or
+            self.property or
+            self.geneRef or
+            self.paralogGroup or
+            self.orthologGroup or
+            self.notes is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='group'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('score=[\n')
+        level += 1
+        for score_ in self.score:
+            showIndent(outfile, level)
+            outfile.write('model_.score(\n')
+            score_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('property=[\n')
+        level += 1
+        for property_ in self.property:
+            showIndent(outfile, level)
+            outfile.write('model_.property(\n')
+            property_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('geneRef=[\n')
+        level += 1
+        for geneRef_ in self.geneRef:
+            showIndent(outfile, level)
+            outfile.write('model_.geneRef(\n')
+            geneRef_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('paralogGroup=[\n')
+        level += 1
+        for paralogGroup_ in self.paralogGroup:
+            showIndent(outfile, level)
+            outfile.write('model_.group(\n')
+            paralogGroup_.exportLiteral(outfile, level, name_='group')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('orthologGroup=[\n')
+        level += 1
+        for orthologGroup_ in self.orthologGroup:
+            showIndent(outfile, level)
+            outfile.write('model_.group(\n')
+            orthologGroup_.exportLiteral(outfile, level, name_='group')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.notes is not None:
+            showIndent(outfile, level)
+            outfile.write('notes=model_.notes(\n')
+            self.notes.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'score':
+            obj_ = score.factory()
+            obj_.build(child_)
+            self.score.append(obj_)
+        elif nodeName_ == 'property':
+            obj_ = property.factory()
+            obj_.build(child_)
+            self.property.append(obj_)
+        elif nodeName_ == 'geneRef':
+            obj_ = geneRef.factory()
+            obj_.build(child_)
+            self.geneRef.append(obj_)
+        elif nodeName_ == 'paralogGroup':
+            obj_ = group.factory()
+            obj_.build(child_)
+            self.paralogGroup.append(obj_)
+        elif nodeName_ == 'orthologGroup':
+            obj_ = group.factory()
+            obj_.build(child_)
+            self.orthologGroup.append(obj_)
+        elif nodeName_ == 'notes':
+            obj_ = notes.factory()
+            obj_.build(child_)
+            self.set_notes(obj_)
+# end class group
+
+
+class geneRef(GeneratedsSuper):
+    """The geneRef element is a link to the gene definition under the
+    species element. It defines the members of an ortholog or
+    paralog group. The same gene can be referenced muliple times.
+    The geneRef element can have multiple score elements and a notes
+    elements as children. The notes element can for instance be used
+    for special, ortholog-database-specific information (with
+    InParanoid, for example, we could use it to mark the seed
+    orthologs). Internal identifier for a gene element defined under
+    the species element."""
+    subclass = None
+    superclass = None
+    def __init__(self, id=None, score=None, notes=None, valueOf_=None):
+        self.id = _cast(int, id)
+        if score is None:
+            self.score = []
+        else:
+            self.score = score
+        self.notes = notes
+    def factory(*args_, **kwargs_):
+        if geneRef.subclass:
+            return geneRef.subclass(*args_, **kwargs_)
+        else:
+            return geneRef(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_score(self): return self.score
+    def set_score(self, score): self.score = score
+    def add_score(self, value): self.score.append(value)
+    def insert_score(self, index, value): self.score[index] = value
+    def get_notes(self): return self.notes
+    def set_notes(self, notes): self.notes = notes
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def export(self, outfile, level, namespace_='ortho:', name_='geneRef', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='geneRef')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='geneRef'):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id'))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='geneRef', fromsubclass_=False):
+        for score_ in self.score:
+            score_.export(outfile, level, namespace_, name_='score')
+        if self.notes:
+            self.notes.export(outfile, level, namespace_, name_='notes')
+    def hasContent_(self):
+        if (
+            self.score or
+            self.notes is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='geneRef'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = %d,\n' % (self.id,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('score=[\n')
+        level += 1
+        for score_ in self.score:
+            showIndent(outfile, level)
+            outfile.write('model_.score(\n')
+            score_.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.notes is not None:
+            showIndent(outfile, level)
+            outfile.write('notes=model_.notes(\n')
+            self.notes.exportLiteral(outfile, level)
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            try:
+                self.id = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'score':
+            obj_ = score.factory()
+            obj_.build(child_)
+            self.score.append(obj_)
+        elif nodeName_ == 'notes':
+            obj_ = notes.factory()
+            obj_.build(child_)
+            self.set_notes(obj_)
+# end class geneRef
+
+
+class scoreDef(GeneratedsSuper):
+    """The scoreDef element defines a score. One of the concepts of
+    orthoXML is to be as flexible as possible but still uniformly
+    parsable. Part of this is to allow every ortholog resource to
+    give their own types of scores for groups or group members,
+    which is done using score elements. Score elements can be
+    defined to apply to either groups or geneRefs. It is possible to
+    define multiple scores. An internal identifier to link to the
+    scoreDef from a score element. Description of the score."""
+    subclass = None
+    superclass = None
+    def __init__(self, id=None, desc=None, valueOf_=None):
+        self.id = _cast(None, id)
+        self.desc = _cast(None, desc)
+        pass
+    def factory(*args_, **kwargs_):
+        if scoreDef.subclass:
+            return scoreDef.subclass(*args_, **kwargs_)
+        else:
+            return scoreDef(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def export(self, outfile, level, namespace_='ortho:', name_='scoreDef', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='scoreDef')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='scoreDef'):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (quote_attrib(self.id), ))
+        if self.desc is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            outfile.write(' desc=%s' % (self.gds_format_string(quote_attrib(self.desc).encode(ExternalEncoding), input_name='desc'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='scoreDef', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='scoreDef'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        if self.desc is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            showIndent(outfile, level)
+            outfile.write('desc = "%s",\n' % (self.desc,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        value = find_attr_value_('desc', node)
+        if value is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            self.desc = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class scoreDef
+
+
+class score(GeneratedsSuper):
+    """The score element gives the value of a score and links it to the
+    scoreDef element, which defines the score. It can be child of a
+    group or a geneRef element to allow scoring on different levels.
+    An identifier linking to the scoreDef element, which defines the
+    score. The actual value of the score. For instance a confidence
+    score of a group member."""
+    subclass = None
+    superclass = None
+    def __init__(self, id=None, value=None, valueOf_=None):
+        self.id = _cast(None, id)
+        self.value = _cast(float, value)
+        pass
+    def factory(*args_, **kwargs_):
+        if score.subclass:
+            return score.subclass(*args_, **kwargs_)
+        else:
+            return score(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_value(self): return self.value
+    def set_value(self, value): self.value = value
+    def export(self, outfile, level, namespace_='ortho:', name_='score', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='score')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='score'):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (quote_attrib(self.id), ))
+        if self.value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            outfile.write(' value="%s"' % self.gds_format_float(self.value, input_name='value'))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='score', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='score'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+        if self.value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            showIndent(outfile, level)
+            outfile.write('value = %f,\n' % (self.value,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+        value = find_attr_value_('value', node)
+        if value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            try:
+                self.value = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (value): %s' % exp)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class score
+
+
+class property(GeneratedsSuper):
+    """Key-value pair for group annotations, for instance statistics about
+    the group members. The key of the key-value annotation pair. The
+    value of the key-value annotation pair. Optional to allow flag
+    like annotations."""
+    subclass = None
+    superclass = None
+    def __init__(self, name=None, value=None, valueOf_=None):
+        self.name = _cast(None, name)
+        self.value = _cast(None, value)
+        pass
+    def factory(*args_, **kwargs_):
+        if property.subclass:
+            return property.subclass(*args_, **kwargs_)
+        else:
+            return property(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_value(self): return self.value
+    def set_value(self, value): self.value = value
+    def export(self, outfile, level, namespace_='ortho:', name_='property', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='property')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='property'):
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), ))
+        if self.value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            outfile.write(' value=%s' % (self.gds_format_string(quote_attrib(self.value).encode(ExternalEncoding), input_name='value'), ))
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='property', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='property'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.name is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            showIndent(outfile, level)
+            outfile.write('name = "%s",\n' % (self.name,))
+        if self.value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            showIndent(outfile, level)
+            outfile.write('value = "%s",\n' % (self.value,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('name', node)
+        if value is not None and 'name' not in already_processed:
+            already_processed.append('name')
+            self.name = value
+        value = find_attr_value_('value', node)
+        if value is not None and 'value' not in already_processed:
+            already_processed.append('value')
+            self.value = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class property
+
+
+class notes(GeneratedsSuper):
+    """The notes element is a special element, which allows adding
+    information that is not general enough to be part of the
+    standard. I.e. something specific to a particular ortholog
+    database or algorithm. Notes elements will not be validated, so
+    any child elements are legal. Notes elements can be children of
+    the root element orthoXML, the species element, the
+    orthologGroup element, the paralogGroup element, or the geneRef
+    element."""
+    subclass = None
+    superclass = None
+    def __init__(self, valueOf_=None, mixedclass_=None, content_=None):
+        self.valueOf_ = valueOf_
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if notes.subclass:
+            return notes.subclass(*args_, **kwargs_)
+        else:
+            return notes(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='ortho:', name_='notes', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='notes')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+    def exportAttributes(self, outfile, level, already_processed, namespace_='ortho:', name_='notes'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='ortho:', name_='notes', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='notes'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        if node.text is not None:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                MixedContainer.TypeNone, '', node.text)
+            self.content_.append(obj_)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if not fromsubclass_ and child_.tail is not None:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                MixedContainer.TypeNone, '', child_.tail)
+            self.content_.append(obj_)
+        pass
+# end class notes
+
+
+USAGE_TEXT = """
+Usage: python <Parser>.py [ -s ] <in_xml_file>
+"""
+
+def usage():
+    print(USAGE_TEXT)
+    sys.exit(1)
+
+
+def get_root_tag(node):
+    tag = Tag_pattern_.match(node.tag).groups()[-1]
+    rootClass = globals().get(tag)
+    return tag, rootClass
+
+
+def parse(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'orthoXML'
+        rootClass = orthoXML
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_=rootTag,
+##         namespacedef_='xmlns:ortho="http://orthoXML.org/2011/"')
+    return rootObj
+
+
+def parseString(inString):
+    from StringIO import StringIO
+    doc = parsexml_(StringIO(inString))
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'orthoXML'
+        rootClass = orthoXML
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_="orthoXML",
+##         namespacedef_='xmlns:ortho="http://orthoXML.org/2011/"')
+    return rootObj
+
+
+def parseLiteral(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'orthoXML'
+        rootClass = orthoXML
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('#from orthoxml import *\n\n')
+##     sys.stdout.write('import orthoxml as model_\n\n')
+##     sys.stdout.write('rootObj = model_.rootTag(\n')
+##     rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
+##     sys.stdout.write(')\n')
+    return rootObj
+
+
+def main():
+    args = sys.argv[1:]
+    if len(args) == 1:
+        parse(args[0])
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    #import pdb; pdb.set_trace()
+    main()
+
+
+__all__ = [
+    "database",
+    "gene",
+    "geneRef",
+    "genes",
+    "group",
+    "groups",
+    "notes",
+    "orthoXML",
+    "property",
+    "score",
+    "scoreDef",
+    "scores",
+    "species"
+    ]
diff --git a/ete3/parser/__init__.py b/ete3/parser/__init__.py
new file mode 100644
index 0000000..23e073c
--- /dev/null
+++ b/ete3/parser/__init__.py
@@ -0,0 +1,39 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
diff --git a/ete3/parser/fasta.py b/ete3/parser/fasta.py
new file mode 100644
index 0000000..a3e111b
--- /dev/null
+++ b/ete3/parser/fasta.py
@@ -0,0 +1,134 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import string
+import textwrap
+from sys import stderr as STDERR
+from six.moves import map
+
+def read_fasta(source, obj=None, header_delimiter="\t", fix_duplicates=True):
+    """ Reads a collection of sequences econded in FASTA format."""
+
+    if obj is None:
+        from ..coretype import seqgroup
+        SC = seqgroup.SeqGroup()
+    else:
+        SC = obj
+
+    names = set([])
+    seq_id = -1
+
+    # Prepares handle from which read sequences
+    if os.path.isfile(source):
+        if source.endswith('.gz'):
+            import gzip
+            _source = gzip.open(source)
+        else:
+            _source = open(source, "rU")
+    else:
+        _source = iter(source.split("\n"))
+
+    seq_name = None
+    for line in _source:
+        line = line.strip()
+        if line.startswith('#') or not line:
+            continue
+        # Reads seq number
+        elif line.startswith('>'):
+            # Checks if previous name had seq
+            if seq_id>-1 and SC.id2seq[seq_id] == "":
+                raise Exception("No sequence found for "+seq_name)
+            
+            seq_id += 1
+            # Takes header info
+            seq_header_fields = [_f.strip() for _f in line[1:].split(header_delimiter)]
+            seq_name = seq_header_fields[0]
+
+            # Checks for duplicated seq names
+            if fix_duplicates and seq_name in names:
+                tag = str(len([k for k in list(SC.name2id.keys()) if k.endswith(seq_name)]))
+                old_name = seq_name
+                seq_name = tag+"_"+seq_name
+                print("Duplicated entry [%s] was renamed to [%s]" %(old_name, seq_name), file=STDERR)
+
+            # stores seq_name
+            SC.id2seq[seq_id] = ""
+            SC.id2name[seq_id] = seq_name
+            SC.name2id[seq_name] = seq_id
+            SC.id2comment[seq_id] = seq_header_fields[1:]
+            names.add(seq_name)
+
+        else:
+            if seq_name is None:
+                raise Exception("Error reading sequences: Wrong format.")
+
+            # removes all white spaces in line
+            s = line.strip().replace(" ","")
+
+            # append to seq_string
+            SC.id2seq[seq_id] += s
+
+    if seq_name and SC.id2seq[seq_id] == "":
+        print(seq_name,"has no sequence", file=STDERR)
+        return None
+
+    # Everything ok
+    return SC
+
+def write_fasta(sequences, outfile = None, seqwidth = 80):
+    """ Writes a SeqGroup python object using FASTA format. """
+
+    wrapper = textwrap.TextWrapper()
+    wrapper.break_on_hyphens = False
+    wrapper.replace_whitespace = False
+    wrapper.expand_tabs = False
+    wrapper.break_long_words = True
+    wrapper.width = 80
+    text =  '\n'.join([">%s\n%s\n" %( "\t".join([name]+comment), wrapper.fill(seq)) for
+                       name, seq, comment in sequences])
+
+    if outfile is not None:
+        OUT = open(outfile,"w")
+        OUT.write(text)
+        OUT.close()
+    else:
+        return text
diff --git a/ete3/parser/newick.py b/ete3/parser/newick.py
new file mode 100644
index 0000000..2d82ff5
--- /dev/null
+++ b/ete3/parser/newick.py
@@ -0,0 +1,454 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import re
+import os
+import six
+from six.moves import map
+
+__all__ = ["read_newick", "write_newick", "print_supported_formats"]
+
+ITERABLE_TYPES = set([list, set, tuple, frozenset])
+
+# Regular expressions used for reading newick format
+_ILEGAL_NEWICK_CHARS = ":;(),\[\]\t\n\r="
+_NON_PRINTABLE_CHARS_RE = "[\x00-\x1f]+"
+
+_NHX_RE = "\[&&NHX:[^\]]*\]"
+_FLOAT_RE = "\s*[+-]?\d+\.?\d*(?:[eE][-+]\d+)?\s*"
+#_FLOAT_RE = "[+-]?\d+\.?\d*"
+#_NAME_RE = "[^():,;\[\]]+"
+_NAME_RE = "[^():,;]+?"
+
+DEFAULT_DIST = 1.0
+DEFAULT_NAME = ''
+DEFAULT_SUPPORT = 1.0
+FLOAT_FORMATTER = "%0.6g"
+#DIST_FORMATTER = ":"+FLOAT_FORMATTER
+NAME_FORMATTER = "%s"
+
+def set_float_format(formatter):
+    ''' Set the conversion format used to represent float distances and support
+    values in the newick representation of trees.
+
+    For example, use set_float_format('%0.32f') to specify 32 decimal numbers
+    when exporting node distances and bootstrap values.
+
+    Scientific notation (%e) or any other custom format is allowed. The
+    formatter string should not contain any character that may break newick
+    structure (i.e.: ":;,()")
+
+    '''
+    global FLOAT_FORMATTER
+    FLOAT_FORMATTER = formatter
+    #DIST_FORMATTER = ":"+FLOAT_FORMATTER
+
+# Allowed formats. This table is used to read and write newick using
+# different convenctions. You can also add your own formats in an easy way.
+#
+#
+# FORMAT: [[LeafAttr1, LeafAttr1Type, Strict?], [LeafAttr2, LeafAttr2Type, Strict?],\
+#    [InternalAttr1, InternalAttr1Type, Strict?], [InternalAttr2, InternalAttr2Type, Strict?]]
+#
+# Attributes are placed in the newick as follows:
+#
+# .... ,LeafAttr1:LeafAttr2)InternalAttr1:InternalAttr2 ...
+#
+#
+#           /-A
+# -NoName--|
+#          |          /-B
+#           \C-------|
+#                    |          /-D
+#                     \E-------|
+#                               \-G
+#
+# Format 0 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)1.000000:0.642905)1.000000:0.567737);
+# Format 1 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)E:0.642905)C:0.567737);
+# Format 2 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)1.000000:0.642905)1.000000:0.567737);
+# Format 3 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)E:0.642905)C:0.567737);
+# Format 4 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)));
+# Format 5 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729):0.642905):0.567737);
+# Format 6 = (A:0.350596,(B:0.728431,(D:0.609498,G:0.125729)E)C);
+# Format 7 = (A,(B,(D,G)E)C);
+# Format 8 = (A,(B,(D,G)));
+# Format 9 = (,(,(,)));
+
+NW_FORMAT = {
+  0: [['name', str, True],  ["dist", float, True],    ['support', float, True],   ["dist", float, True]], # Flexible with support
+  1: [['name', str, True],  ["dist", float, True],    ['name', str, True],      ["dist", float, True]], # Flexible with internal node names
+  2: [['name', str, False], ["dist", float, False],   ['support', float, False],  ["dist", float, False]],# Strict with support values
+  3: [['name', str, False], ["dist", float, False],   ['name', str, False],     ["dist", float, False]], # Strict with internal node names
+  4: [['name', str, False], ["dist", float, False],   [None, None, False],        [None, None, False]],
+  5: [['name', str, False], ["dist", float, False],   [None, None, False],        ["dist", float, False]],
+  6: [['name', str, False], [None, None, False],      [None, None, False],        ["dist", float, False]],
+  7: [['name', str, False], ["dist", float, False],   ["name", str, False],       [None, None, False]],
+  8: [['name', str, False], [None, None, False],      ["name", str, False],       [None, None, False]],
+  9: [['name', str, False], [None, None, False],      [None, None, False],        [None, None, False]], # Only topology with node names
+  100: [[None, None, False],  [None, None, False],      [None, None, False],        [None, None, False]] # Only Topology
+}
+
+
+def format_node(node, node_type, format,
+                dist_formatter=None,
+                support_formatter=None,
+                name_formatter=None):
+    if dist_formatter is None: dist_formatter = FLOAT_FORMATTER
+    if support_formatter is None: support_formatter = FLOAT_FORMATTER
+    if name_formatter is None: name_formatter = NAME_FORMATTER
+
+    if node_type == "leaf":
+        container1 = NW_FORMAT[format][0][0] # name
+        container2 = NW_FORMAT[format][1][0] # dists
+        converterFn1 = NW_FORMAT[format][0][1]
+        converterFn2 = NW_FORMAT[format][1][1]
+        flexible1 = NW_FORMAT[format][0][2]
+    else:
+        container1 = NW_FORMAT[format][2][0] #support/name
+        container2 = NW_FORMAT[format][3][0] #dist
+        converterFn1 = NW_FORMAT[format][2][1]
+        converterFn2 = NW_FORMAT[format][3][1]
+        flexible1 = NW_FORMAT[format][2][2]
+
+    if converterFn1 == str:
+        try:
+            FIRST_PART = re.sub("["+_ILEGAL_NEWICK_CHARS+"]", "_", \
+                                  str(getattr(node, container1)))
+            if not FIRST_PART and container1 == 'name' and not flexible1:
+                FIRST_PART = "NoName"
+        except (AttributeError, TypeError):
+            FIRST_PART = "?"
+        FIRST_PART = name_formatter %FIRST_PART
+    elif converterFn1 is None:
+        FIRST_PART = ""
+    else:
+        try:
+            #FIRST_PART =  "%0.6f" %(converterFn2(getattr(node, container1)))
+            FIRST_PART = support_formatter %(converterFn2(getattr(node, container1)))
+        except (ValueError, TypeError):
+            FIRST_PART = "?"
+
+
+    if converterFn2 == str:
+        try:
+            SECOND_PART = ":"+re.sub("["+_ILEGAL_NEWICK_CHARS+"]", "_", \
+                                  str(getattr(node, container2)))
+        except (ValueError, TypeError):
+            SECOND_PART = ":?"
+    elif converterFn2 is None:
+        SECOND_PART = ""
+    else:
+        try:
+            #SECOND_PART = ":%0.6f" %(converterFn2(getattr(node, container2)))
+            SECOND_PART = ":%s" %(dist_formatter %(converterFn2(getattr(node, container2))))
+        except (ValueError, TypeError):
+            SECOND_PART = ":?"
+
+    return "%s%s" %(FIRST_PART, SECOND_PART)
+
+
+def print_supported_formats():
+    from ..coretype.tree import TreeNode
+    t = TreeNode()
+    t.populate(4, "ABCDEFGHI")
+    print(t)
+    for f in NW_FORMAT:
+        print("Format", f,"=", write_newick(t, features=None, format=f))
+
+class NewickError(Exception):
+    """Exception class designed for NewickIO errors."""
+    def __init__(self, value):
+        #import sys
+        #print >>sys.stderr, 'error: ' + str(value)
+        Exception.__init__(self, value)
+
+def read_newick(newick, root_node=None, format=0):
+    """ Reads a newick tree from either a string or a file, and returns
+    an ETE tree structure.
+
+    A previously existent node object can be passed as the root of the
+    tree, which means that all its new children will belong to the same
+    class as the root(This allows to work with custom TreeNode
+    objects).
+
+    You can also take advantage from this behaviour to concatenate
+    several tree structures.
+    """
+   
+    if root_node is None:
+        from ..coretype.tree import TreeNode
+        root_node = TreeNode()
+
+    if isinstance(newick, six.string_types):   
+        if os.path.exists(newick):
+            if newick.endswith('.gz'):
+                import gzip
+                nw = gzip.open(newick).read()
+            else:
+                nw = open(newick, 'rU').read()
+        else:
+            nw = newick
+
+        matcher = compile_matchers(formatcode=format)
+        nw = nw.strip()        
+        if not nw.startswith('(') and nw.endswith(';'):
+            return _read_node_data(nw[:-1], root_node, "single", matcher, format)
+
+        elif not nw.startswith('(') or not nw.endswith(';'):
+            raise NewickError('Unexisting tree file or Malformed newick tree structure.')
+        else:
+            return _read_newick_from_string(nw, root_node, matcher, format)
+
+    else:
+        raise NewickError("'newick' argument must be either a filename or a newick string.")
+
+def _read_newick_from_string(nw, root_node, matcher, formatcode):
+    """ Reads a newick string in the New Hampshire format. """
+    if nw.count('(') != nw.count(')'):
+        raise NewickError('Parentheses do not match. Broken tree structure?')
+
+    # white spaces and separators are removed
+    nw = re.sub("[\n\r\t]+", "", nw)
+
+    current_parent = None
+    # Each chunk represents the content of a parent node, and it could contain
+    # leaves and closing parentheses.
+    # We may find:
+    # leaf, ..., leaf,
+    # leaf, ..., leaf))),
+    # leaf)), leaf, leaf))
+    # leaf))
+    # ) only if formatcode == 100
+
+    for chunk in nw.split("(")[1:]:
+        # If no node has been created so far, this is the root, so use the node.
+        current_parent = root_node if current_parent is None else current_parent.add_child()
+
+        subchunks = [ch.strip() for ch in chunk.split(",")]
+        # We should expect that the chunk finished with a comma (if next chunk
+        # is an internal sister node) or a subchunk containing closing parenthesis until the end of the tree.
+        #[leaf, leaf, '']
+        #[leaf, leaf, ')))', leaf, leaf, '']
+        #[leaf, leaf, ')))', leaf, leaf, '']
+        #[leaf, leaf, ')))', leaf), leaf, 'leaf);']
+        if subchunks[-1] != '' and not subchunks[-1].endswith(';'):
+            raise NewickError('Broken newick structure at: %s' %chunk)
+
+        # lets process the subchunks. Every closing parenthesis will close a
+        # node and go up one level.
+        for i, leaf in enumerate(subchunks):
+            if leaf.strip() == '' and i == len(subchunks) - 1:
+                continue # "blah blah ,( blah blah"
+            closing_nodes = leaf.split(")")
+
+            # first part after splitting by ) always contain leaf info
+            _read_node_data(closing_nodes[0], current_parent, "leaf", matcher, formatcode)
+
+            # next contain closing nodes and data about the internal nodes.
+            if len(closing_nodes)>1:
+                for closing_internal in closing_nodes[1:]:
+                    closing_internal =  closing_internal.rstrip(";")
+                    # read internal node data and go up one level
+                    _read_node_data(closing_internal, current_parent, "internal", matcher, formatcode)
+                    current_parent = current_parent.up
+    return root_node
+
+def _parse_extra_features(node, NHX_string):
+    """ Reads node's extra data form its NHX string. NHX uses this
+    format:  [&&NHX:prop1=value1:prop2=value2] """
+    NHX_string = NHX_string.replace("[&&NHX:", "")
+    NHX_string = NHX_string.replace("]", "")
+    for field in NHX_string.split(":"):
+        try:
+            pname, pvalue = field.split("=")
+        except ValueError as e:
+            raise NewickError('Invalid NHX format %s' %field)
+        node.add_feature(pname, pvalue)
+
+def compile_matchers(formatcode):
+    matchers = {}
+    for node_type in ["leaf", "single", "internal"]:
+        if node_type == "leaf" or node_type == "single":
+            container1 = NW_FORMAT[formatcode][0][0]
+            container2 = NW_FORMAT[formatcode][1][0]
+            converterFn1 = NW_FORMAT[formatcode][0][1]
+            converterFn2 = NW_FORMAT[formatcode][1][1]
+            flexible1 = NW_FORMAT[formatcode][0][2]
+            flexible2 = NW_FORMAT[formatcode][1][2]
+        else:
+            container1 = NW_FORMAT[formatcode][2][0]
+            container2 = NW_FORMAT[formatcode][3][0]
+            converterFn1 = NW_FORMAT[formatcode][2][1]
+            converterFn2 = NW_FORMAT[formatcode][3][1]
+            flexible1 = NW_FORMAT[formatcode][2][2]
+            flexible2 = NW_FORMAT[formatcode][3][2]
+
+        if converterFn1 == str:
+            FIRST_MATCH = "("+_NAME_RE+")"
+        elif converterFn1 == float:
+            FIRST_MATCH = "("+_FLOAT_RE+")"
+        elif converterFn1 is None:
+            FIRST_MATCH = '()'
+
+        if converterFn2 == str:
+            SECOND_MATCH = "(:"+_NAME_RE+")"
+        elif converterFn2 == float:
+            SECOND_MATCH = "(:"+_FLOAT_RE+")"
+        elif converterFn2 is None:
+            SECOND_MATCH = '()'
+
+        if flexible1 and node_type != 'leaf':
+            FIRST_MATCH += "?"
+        if flexible2:
+            SECOND_MATCH += "?"
+
+
+        matcher_str= '^\s*%s\s*%s\s*(%s)?\s*$' % (FIRST_MATCH, SECOND_MATCH, _NHX_RE)
+        compiled_matcher = re.compile(matcher_str)
+        matchers[node_type] = [container1, container2, converterFn1, converterFn2, compiled_matcher]
+
+    return matchers
+
+def _read_node_data(subnw, current_node, node_type, matcher, formatcode):
+    """ Reads a leaf node from a subpart of the original newick
+    tree """
+
+    if node_type == "leaf" or node_type == "single":
+        if node_type == "leaf":
+            node = current_node.add_child()
+        else:
+            node = current_node
+    else:
+        node = current_node
+
+    subnw = subnw.strip()
+    
+    if not subnw and node_type == 'leaf' and formatcode != 100:
+        raise NewickError('Empty leaf node found')
+    elif not subnw:
+        return
+
+    container1, container2, converterFn1, converterFn2, compiled_matcher = matcher[node_type]
+    data = re.match(compiled_matcher, subnw)
+    if data:
+        data = data.groups()
+        # This prevents ignoring errors even in flexible nodes:
+        if subnw and data[0] is None and data[1] is None and data[2] is None:
+            raise NewickError("Unexpected newick format '%s'" %subnw)
+
+        if data[0] is not None and data[0] != '':
+            node.add_feature(container1, converterFn1(data[0].strip()))
+
+        if data[1] is not None and data[1] != '':
+            node.add_feature(container2, converterFn2(data[1][1:].strip()))
+
+        if data[2] is not None \
+                and data[2].startswith("[&&NHX"):
+            _parse_extra_features(node, data[2])
+    else:
+        raise NewickError("Unexpected newick format '%s' " %subnw[0:50])
+    return
+
+def write_newick(rootnode, features=None, format=1, format_root_node=True,
+                 is_leaf_fn=None, dist_formatter=None, support_formatter=None,
+                 name_formatter=None):
+    """ Iteratively export a tree structure and returns its NHX
+    representation. """
+    newick = []
+    leaf = is_leaf_fn if is_leaf_fn else lambda n: not bool(n.children)
+    for postorder, node in rootnode.iter_prepostorder(is_leaf_fn=is_leaf_fn):
+        if postorder:
+            newick.append(")")
+            if node.up is not None or format_root_node:
+                newick.append(format_node(node, "internal", format,
+                                          dist_formatter=dist_formatter,
+                                          support_formatter=support_formatter,
+                                          name_formatter=name_formatter))
+                newick.append(_get_features_string(node, features))
+        else:
+            if node is not rootnode and node != node.up.children[0]:
+                newick.append(",")
+
+            if leaf(node):
+                safe_name = re.sub("["+_ILEGAL_NEWICK_CHARS+"]", "_", \
+                               str(getattr(node, "name")))
+                newick.append(format_node(node, "leaf", format,
+                              dist_formatter=dist_formatter,
+                              support_formatter=support_formatter,
+                              name_formatter=name_formatter))
+                newick.append(_get_features_string(node, features))
+            else:
+                newick.append("(")
+
+    newick.append(";")
+    return ''.join(newick)
+
+def _get_features_string(self, features=None):
+    """ Generates the extended newick string NHX with extra data about
+    a node. """
+    string = ""
+    if features is None:
+        features = []
+    elif features == []:
+        features = self.features
+
+    for pr in features:
+        if hasattr(self, pr):
+            raw = getattr(self, pr)
+            if type(raw) in ITERABLE_TYPES:
+                raw = '|'.join(map(str, raw))
+            elif type(raw) == dict:
+                raw = '|'.join(map(lambda x,y: "%s-%s" %(x, y), six.iteritems(raw)))
+            elif type(raw) == str:
+                pass
+            else:
+                raw = str(raw)
+
+            value = re.sub("["+_ILEGAL_NEWICK_CHARS+"]", "_", \
+                             raw)
+            if string != "":
+                string +=":"
+            string +="%s=%s"  %(pr, str(value))
+    if string != "":
+        string = "[&&NHX:"+string+"]"
+
+    return string
+
+
diff --git a/ete3/parser/paml.py b/ete3/parser/paml.py
new file mode 100644
index 0000000..21f83a0
--- /dev/null
+++ b/ete3/parser/paml.py
@@ -0,0 +1,195 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+import os
+import string
+from sys import stderr as STDERR
+from re import search
+from six.moves import map
+from six.moves import range
+
+def read_paml (source, obj=None, header_delimiter="\t", fix_duplicates=True):
+    """ Reads a collection of sequences econded in PAML format... that is, something between PHYLIP and fasta
+
+     3 6
+    seq1
+    ATGATG
+    seq2
+    ATGATG
+    seq3
+    ATGATG
+
+    or
+
+     3 6
+    >seq1
+    ATGATG
+    >seq2
+    ATGATG
+    >seq3
+    ATGATG
+
+    or
+
+    >seq1
+    ATGATG
+    >seq2
+    ATGATG
+    >seq3
+    ATGATG
+
+    """
+
+    if obj is None:
+        from ..coretype import seqgroup
+        SC = seqgroup.SeqGroup()
+    else:
+        SC = obj
+
+    names = set([])
+    seq_id = -1
+
+    # Prepares handle from which read sequences
+    if os.path.isfile(source):
+        _source = open(source, "rU")
+    else:
+        _source = iter(source.split("\n"))
+
+    seq_name = None
+    num_seq = 0
+    len_seq = 0
+    in_seq  = False
+    for line in _source:
+        line = line.strip()
+        if line.startswith('#') or not line:
+            continue
+        if line.startswith('// end of file'):
+            break
+        # Reads seq number
+        elif line.startswith('>') or ((num_seq and len_seq) and not in_seq):
+            fasta = line.startswith('>')
+            line = line.replace('>','')
+            # Checks if previous name had seq
+            if seq_id>-1 and SC.id2seq[seq_id] == "":
+                raise Exception("No sequence found for "+seq_name)
+
+            seq_id += 1
+            # Takes header info
+            seq_header_fields = [_f.strip() for _f in line.split(header_delimiter)]
+            in_seq = True
+            if (not fasta) and '   ' in seq_header_fields[0].strip():
+                seq_header_fields = seq_header_fields[0].split('   ')[0]
+                seq_header_fields = [seq_header_fields]
+                SC.id2seq[seq_id] = line.split('   ')[-1].strip().replace(' ', '')
+                if len_seq:
+                    if len(SC.id2seq[seq_id]) == len_seq:
+                        in_seq=False
+                    elif len(SC.id2seq[seq_id]) > len_seq:
+                        raise  Exception("Error reading sequences: Wrong sequence length.\n"+line)
+            else:
+                SC.id2seq[seq_id]     = ""
+            seq_name = seq_header_fields[0]
+            # Checks for duplicated seq names
+            if fix_duplicates and seq_name in names:
+                tag = str(len([k for k in list(SC.name2id.keys()) if k.endswith(seq_name)]))
+                old_name = seq_name
+                seq_name = tag+"_"+seq_name
+                print("Duplicated entry [%s] was renamed to [%s]" %(old_name, seq_name), file=STDERR)
+
+            # stores seq_name
+            SC.id2name[seq_id]    = seq_name
+            SC.name2id[seq_name]  = seq_id
+            SC.id2comment[seq_id] = seq_header_fields[1:]
+            names.add(seq_name)
+        else:
+            if seq_name is None:
+                if search ('^[0-9]+  *[0-9]+ *[A-Z]*', line):
+                    try:
+                        num_seq, len_seq = line.strip().split()
+                    except ValueError:
+                        num_seq, len_seq, _ = line.strip().split()
+                    num_seq = int(num_seq)
+                    len_seq = int(len_seq)
+                    continue
+                if line.startswith('\n'):
+                    continue
+                raise Exception("Error reading sequences: Wrong format.\n"+line)
+            elif in_seq:
+                # removes all white spaces in line
+                s = line.strip().replace(" ","")
+
+                # append to seq_string
+                SC.id2seq[seq_id] += s
+                if len_seq:
+                    if len(SC.id2seq[seq_id]) == len_seq:
+                        in_seq=False
+                    elif len(SC.id2seq[seq_id]) > len_seq:
+                        raise  Exception("Error reading sequences: Wrong sequence length.\n"+line)
+
+    if seq_name and SC.id2seq[seq_id] == "":
+        print(seq_name,"has no sequence", file=STDERR)
+        return None
+
+    # Everything ok
+    return SC
+
+def write_paml(sequences, outfile = None, seqwidth = 80):
+    """
+    Writes a SeqGroup python object using PAML format.
+    sequences are ordered, because PAML labels tree according to this.
+    """
+    text =  ' %d %d\n' % (len (sequences), len (sequences.get_entries()[0][1]))
+    text += '\n'.join(["%s\n%s" %( "\t".join([name]+comment), _seq2str(seq)) for
+                       name, seq, comment in sorted(sequences)])
+    if outfile is not None:
+        OUT = open(outfile,"w")
+        OUT.write(text)
+        OUT.close()
+    else:
+        return text
+
+def _seq2str(seq, seqwidth = 80):
+    sequence = ""
+    for i in range(0,len(seq),seqwidth):
+        sequence+= seq[i:i+seqwidth] + "\n"
+    return sequence
+
diff --git a/ete3/parser/phylip.py b/ete3/parser/phylip.py
new file mode 100644
index 0000000..c029d9c
--- /dev/null
+++ b/ete3/parser/phylip.py
@@ -0,0 +1,212 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+import os
+import re
+from sys import stderr as STDERR
+import six
+from six.moves import range
+
+def read_phylip(source, interleaved=True, obj=None,
+                relaxed=False, fix_duplicates=True):
+    if obj is None:
+        from ..coretype import SeqGroup
+        SG = SeqGroup()
+    else:
+        SG = obj
+
+    # Prepares handle from which read sequences
+    if os.path.isfile(source):
+        if source.endswith('.gz'):
+            import gzip
+            _source = gzip.open(source)
+        else:
+            _source = open(source, "rU")
+    else:
+        _source = iter(source.split("\n"))
+
+    nchar, ntax = None, None
+    counter = 0
+    id_counter = 0
+    for line in _source:
+        line = line.strip("\n")
+        # Passes comments and blank lines
+        if not line or line[0] == "#":
+            continue
+        # Reads head
+        if not nchar or not ntax:
+            m = re.match("^\s*(\d+)\s+(\d+)",line)
+            if m:
+                ntax  = int (m.groups()[0])
+                nchar = int (m.groups()[1])
+            else:
+                raise Exception("A first line with the alignment dimension is required")
+        # Reads sequences
+        else:
+            if not interleaved:
+                # Reads names and sequences
+                if SG.id2name.get(id_counter, None) is None:
+                    if relaxed:
+                        m = re.match("^([^ ]+)(.+)", line)
+                    else:
+                        m = re.match("^(.{10})(.+)", line)
+                    if m:
+                        name = m.groups()[0].strip()
+                        if fix_duplicates and name in SG.name2id:
+                            tag = str(len([k for k in list(SG.name2id.keys()) \
+                                              if k.endswith(name)]))
+                            old_name = name
+                            # Tag is in the beginning to avoid being
+                            # cut it by the 10 chars limit
+                            name = tag+"_"+name
+                            print("Duplicated entry [%s] was renamed to [%s]" %\
+                                (old_name, name), file=STDERR)
+                        SG.id2name[id_counter] = name
+                        SG.name2id[name] = id_counter
+                        SG.id2seq[id_counter] = ""
+                        line = m.groups()[1]
+                    else:
+                        raise Exception("Wrong phylip sequencial format.")
+                SG.id2seq[id_counter] += re.sub("\s","", line)
+                if len(SG.id2seq[id_counter]) == nchar:
+                    id_counter += 1
+                    name = None
+                elif len(SG.id2seq[id_counter]) > nchar:
+                    raise Exception("Unexpected length of sequence [%s] [%s]." %(name,SG.id2seq[id_counter]))
+            else:
+                if len(SG)<ntax:
+                    if relaxed:
+                        m = re.match("^([^ ]+)(.+)", line)
+                    else:
+                        m = re.match("^(.{10})(.+)",line)
+                    if m:
+                        name = m.groups()[0].strip()
+
+                        seq = re.sub("\s","",m.groups()[1])
+                        SG.id2seq[id_counter] = seq
+                        SG.id2name[id_counter] = name
+                        if fix_duplicates and name in SG.name2id:
+                            tag = str(len([k for k in list(SG.name2id.keys()) \
+                                              if k.endswith(name)]))
+                            old_name = name
+                            name = tag+"_"+name
+                            print("Duplicated entry [%s] was renamed to [%s]" %\
+                                (old_name, name), file=STDERR)
+                        SG.name2id[name] = id_counter
+                        id_counter += 1
+                    else:
+                        raise Exception("Unexpected number of sequences.")
+                else:
+                    seq = re.sub("\s", "", line)
+                    if id_counter == len(SG):
+                        id_counter = 0
+                    SG.id2seq[id_counter] += seq
+                    id_counter += 1
+
+    if len(SG) != ntax:
+        raise Exception("Unexpected number of sequences.")
+
+    # Check lenght of all seqs
+    for i in list(SG.id2seq.keys()):
+        if len(SG.id2seq[i]) != nchar:
+            raise Exception("Unexpected lenght of sequence [%s]" %SG.id2name[i])
+
+    return SG
+
+def write_phylip(aln, outfile=None, interleaved=True, relaxed=False):
+    width = 60
+    seq_visited = set([])
+
+    show_name_warning = False
+    lenghts = set((len(seq) for seq in list(aln.id2seq.values())))
+    if len(lenghts) >1:
+        raise Exception("Phylip format requires sequences of equal lenght.")
+    seqlength = lenghts.pop()
+
+    if not relaxed:
+        name_fix = 10
+    else:
+        name_fix = max([len(name) for name in list(aln.id2name.values())])
+
+    alg_lines = []
+    alg_text = " %d %d" %(len(aln), seqlength)
+    alg_lines.append(alg_text)
+    if interleaved:
+        visited = set([])
+        for i in range(0, seqlength, width):
+            for j in six.iterkeys(aln.id2name): #xrange(len(aln)):
+                name =  aln.id2name[j]
+                if not relaxed and len(name)>name_fix:
+                    name = name[:name_fix]
+                    show_name_warning = True
+
+                seq = aln.id2seq[j][i:i+width]
+                if j not in visited:
+                    name_str = "%s   " %name.ljust(name_fix)
+                    visited.add(j)
+                else:
+                    name_str = "".ljust(name_fix+3)
+
+                seq_str = ' '.join([seq[k:k+10] for k in range(0, len(seq), 10)])
+                line_str = "%s%s" %(name_str, seq_str)
+                alg_lines.append(line_str)
+            alg_lines.append("")
+    else:
+        for name, seq, comments in aln.iter_entries():
+            if not relaxed and len(name)>10:
+                name = name[:name_fix]
+                show_name_warning = True
+            line_str = "%s   %s\n%s" %\
+                (name.ljust(name_fix), seq[0:width-name_fix-3], '\n'.join([seq[k:k+width]  \
+                                      for k in range(width-name_fix-3, len(seq), width)]))
+            alg_lines.append(line_str)
+        alg_lines.append("")
+
+
+    if show_name_warning:
+        print("Warning! Some sequence names were cut to 10 characters!!", file=STDERR)
+    alg_text = '\n'.join(alg_lines)
+    if outfile is not None:
+        OUT = open(outfile, "w")
+        OUT.write(alg_text)
+        OUT.close()
+    else:
+        return alg_text
diff --git a/ete3/parser/text_arraytable.py b/ete3/parser/text_arraytable.py
new file mode 100644
index 0000000..797ea85
--- /dev/null
+++ b/ete3/parser/text_arraytable.py
@@ -0,0 +1,157 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import re
+from sys import stderr
+
+from .. import numpy
+
+from six.moves import map
+
+__all__ = ['read_arraytable', 'write_arraytable']
+
+def read_arraytable(matrix_file, mtype="float", arraytable_object = None):
+    """ Reads a text tab-delimited matrix from file """
+
+    if arraytable_object is None:
+        from ..coretype import arraytable
+        A = arraytable.ArrayTable()
+    else:
+        A = arraytable_object
+
+    A.mtype          = mtype
+    temp_matrix         = []
+    rowname_counter     = {}
+    colname_counter     = {}
+    row_dup_flag = False
+    col_dup_flag = False
+
+    # if matrix_file has many lines, tries to read it as the matrix
+    # itself.
+    if len(matrix_file.split("\n"))>1:
+        matrix_data = matrix_file.split("\n")
+    else:
+        matrix_data = open(matrix_file)
+
+    for line in matrix_data:
+        # Clean up line
+        line = line.strip("\n")
+        #line = line.replace(" ","")
+        # Skip empty lines
+        if not line:
+            continue
+        # Get fields in line
+        fields = line.split("\t")
+        # Read column names
+        if line[0]=='#' and re.match("#NAMES",fields[0],re.IGNORECASE):
+            counter = 0
+            for colname in fields[1:]:
+                colname = colname.strip()
+
+                # Handle duplicated col names by adding a number
+                colname_counter[colname] = colname_counter.get(colname,0) + 1
+                if colname in A.colValues:
+                    colname += "_%d" % colname_counter[colname]
+                    col_dup_flag = True
+                # Adds colname
+                A.colValues[colname] = None
+                A.colNames.append(colname)
+            if col_dup_flag:
+                print("Duplicated column names were renamed.", file=stderr)
+
+        # Skip comments
+        elif line[0]=='#':
+            continue
+
+        # Read values (only when column names are loaded)
+        elif A.colNames:
+            # Checks shape
+            if len(fields)-1 != len(A.colNames):
+                raise ValueError("Invalid number of columns. Expecting:%d" % len(A.colNames))
+
+            # Extracts row name and remove it from fields
+            rowname  = fields.pop(0).strip()
+
+            # Handles duplicated row names by adding a number
+            rowname_counter[rowname] = rowname_counter.get(rowname,0) + 1
+            if rowname in A.rowValues:
+                rowname += "_%d" % rowname_counter[rowname]
+                row_dup_names = True
+
+            # Adds row name
+            A.rowValues[rowname] = None
+            A.rowNames.append(rowname)
+
+            # Reads row values
+            values = []
+            for f in fields:
+                if f.strip()=="":
+                    f = numpy.nan
+                values.append(f)
+            temp_matrix.append(values)
+        else:
+            raise ValueError("Column names are required.")
+
+    if row_dup_flag:
+        print("Duplicated row names were renamed.", file=stderr)
+
+    # Convert all read lines into a numpy matrix
+    vmatrix = numpy.array(temp_matrix).astype(A.mtype)
+
+    # Updates indexes to link names and vectors in matrix
+    A._link_names2matrix(vmatrix)
+    return A
+
+def write_arraytable(A, fname, colnames=None):
+    if colnames is None:
+        colnames = []
+    elif colnames == []:
+        colnames = A.colNames
+
+    matrix = A.get_several_column_vectors(colnames)
+    matrix = matrix.swapaxes(0,1)
+    OUT = open(fname,"w")
+    print('\t'.join(["#NAMES"] + colnames), file=OUT)
+    counter = 0
+    for rname in A.rowNames:
+        print('\t'.join(map(str,[rname]+matrix[counter].tolist())), file=OUT)
+        counter +=1
+    OUT.close()
diff --git a/ete3/phylo/__init__.py b/ete3/phylo/__init__.py
new file mode 100644
index 0000000..fe28830
--- /dev/null
+++ b/ete3/phylo/__init__.py
@@ -0,0 +1,44 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+from .phylotree import *
+from .evolevents import *
+__all__ = phylotree.__all__  + evolevents.__all__
diff --git a/ete3/phylo/evolevents.py b/ete3/phylo/evolevents.py
new file mode 100644
index 0000000..7e6d7ad
--- /dev/null
+++ b/ete3/phylo/evolevents.py
@@ -0,0 +1,76 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+__all__ = ["EvolEvent"]
+
+class EvolEvent:
+    """ Basic evolutionary event. It stores all the information about an
+    event(node) ocurred in a phylogenetic tree.
+
+    :attr:`etype` : ``D`` (Duplication), ``S`` (Speciation), ``L`` (gene loss),
+
+    :attr:`in_seqs` : the list of sequences in one side of the event.
+
+    :attr:`out_seqs` : the list of sequences in the other side of the event
+
+    :attr:`node` : link to the event node in the tree
+
+    """
+
+    def __init__(self):
+        self.etype         = None   # 'S=speciation D=duplication'
+        self.in_seqs       = []
+        self.out_seqs      = []
+        self.dup_score     = None
+        self.sos           = None
+
+        # Not documented
+        self.inparalogs    = None
+        self.outparalogs   = None
+        self.outgroup_spcs = None   # outgroup
+        self.e_newick      = None   #
+        self.root_age      = None   # estimated time for the outgroup node
+        self.orthologs     = None
+        self.famSize       = None
+        self.seed          = None   # Seed ID used to start the phylogenetic pipeline
+        self.branch_supports  = []
+
+
+
+
diff --git a/ete3/phylo/phylotree.py b/ete3/phylo/phylotree.py
new file mode 100644
index 0000000..a05b549
--- /dev/null
+++ b/ete3/phylo/phylotree.py
@@ -0,0 +1,815 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+"""
+This module defines the PhyloNode dataytype to manage phylogenetic
+trees. It inheritates the coretype TreeNode and add some special
+features to the the node instances.
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import os
+import re
+import itertools
+from collections import defaultdict
+from .. import TreeNode, SeqGroup, NCBITaxa
+from .reconciliation import get_reconciled_tree
+from . import spoverlap
+
+__all__ = ["PhyloNode", "PhyloTree"]
+
+def _parse_species(name):
+    return name[:3]
+
+def is_dup(n):
+    return getattr(n, "evoltype", None) == "D"
+
+def get_subtrees(tree, full_copy=False, features=None, newick_only=False):
+    """Calculate all possible species trees within a gene tree. I
+    tested several recursive and iterative approaches to do it and
+    this is the most efficient way I found. The method is now fast and
+    light enough to deal with very large gene trees, and it scales
+    linearly instead of exponentially. For instance, a tree with ~8000
+    nodes, ~100 species and ~400 duplications returns ~10,000 sptrees
+    that could be loaded in few minutes.
+
+    To avoid memory overloads, this function returns a tuple containing the
+    total number of trees, number of duplication events, and an iterator for the
+    species trees. Real trees are not actually computed until the iterator is
+    first accessed. This allows to filter out cases producing astronomic numbers
+    of sptrees.
+
+    """
+    ntrees, ndups = calc_subtrees(tree)
+    return ntrees, ndups, _get_subtrees(tree, full_copy, features, newick_only)
+
+def _get_subtrees(tree, full_copy=False, features=None, newick_only=False):
+    # First I need to precalculate all the species trees in tuple (newick) format
+    nid = 0
+    n2nid = {}
+    nid2node = {}
+    n2subtrees = defaultdict(list)
+    for n in tree.traverse("postorder"):
+        n2nid[n] = nid
+        nid2node[nid] = n
+        nid += 1
+        if n.children:
+            if is_dup(n):
+                subtrees = []
+                for ch in n.children:
+                    subtrees.extend(n2subtrees[n2nid[ch]])
+            else:
+                subtrees = tuple([val for val in
+                                  itertools.product(n2subtrees[n2nid[n.children[0]]],
+                                                    n2subtrees[n2nid[n.children[1]]])])
+        else:
+            subtrees = tuple([n2nid[n]])
+
+        n2subtrees[n2nid[n]] = subtrees
+        for ch in n.children:
+            del n2subtrees[n2nid[ch]]
+
+    sp_trees = n2subtrees[n2nid[tree]]
+
+    # Second, I yield a tree per iteration in newick or ETE format
+    features = set(features) if features else set()
+    features.update(["name"])
+
+    def _nodereplacer(match):
+        pre, b, post =  match.groups()
+        pre = '' if not pre else pre
+        post = '' if not post else post
+        node = nid2node[int(b)]
+        fstring = ""
+        if features:
+            fstring = "".join(["[&&NHX:",
+                               ':'.join(["%s=%s" %(f, getattr(node, f))
+                                         for f in features if hasattr(node, f)])
+                               , "]"])
+
+        return ''.join([pre, node.name, fstring, post])
+
+    if newick_only:
+        id_match = re.compile("([^0-9])?(\d+)([^0-9])?")
+        for nw in sp_trees:
+            yield re.sub(id_match, _nodereplacer, str(nw)+";")
+    else:
+        for nw in sp_trees:
+            # I take advantage from the fact that I generated the subtrees
+            # using tuples, so str representation is actually a newick :)
+            t = PhyloTree(str(nw)+";")
+            # Map features from original tree
+            for leaf in t.iter_leaves():
+                _nid = int(leaf.name)
+                for f in features:
+                    leaf.add_feature(f, getattr(nid2node[_nid], f))
+            yield t
+
+def calc_subtrees(tree):
+    '''
+    Computes the total number of species trees that TreeKO algorithm would produce for a given gene tree
+
+    returns: ntrees, ndups
+    '''
+    n2subtrees = {}
+    dups = 0
+    for n in tree.traverse("postorder"):
+        if n.children:
+            if is_dup(n):
+                dups += 1
+                subtrees = 0
+                for ch in n.children:
+                    subtrees += n2subtrees[ch]
+            else:
+                subtrees = n2subtrees[n.children[0]] * n2subtrees[n.children[1]]
+        else:
+            subtrees = 1
+        n2subtrees[n] = subtrees
+    return n2subtrees[tree], dups
+
+def iter_sptrees(sptrees, nid2node, features=None, newick_only=False):
+    """ Loads and map the species trees returned by get_subtrees"""
+
+    features = set(features) if features else set()
+    features.update(["name"])
+
+    def _nodereplacer(match):
+        pre, b, post =  match.groups()
+        node = nid2node[int(b)]
+        fstring = ""
+        if features:
+            fstring = "".join(["[&&NHX:",
+                               ','.join(["%s=%s" %(f, getattr(node, f))
+                                         for f in features if hasattr(node, f)])
+                               , "]"])
+
+        return ''.join([pre, node.name, fstring, post])
+
+    if newick_only:
+        id_match = re.compile("([^0-9])(\d+)([^0-9])")
+        for nw in sptrees:
+            yield re.sub(id_match, _nodereplacer, str(nw)+";")
+    else:
+        for nw in sptrees:
+            # I take advantage from the fact that I generated the subtrees
+            # using tuples, so str representation is actually a newick :)
+            t = PhyloTree(str(nw)+";")
+            # Map features from original tree
+            for leaf in t.iter_leaves():
+                _nid = int(leaf.name)
+                for f in features:
+                    leaf.add_feature(f, getattr(nid2node[_nid], f))
+            yield t
+
+def _get_subtrees_recursive(node, full_copy=True):
+    if is_dup(node):
+        sp_trees = []
+        for ch in node.children:
+            sp_trees.extend(_get_subtrees_recursive(ch, full_copy=full_copy))
+        return sp_trees
+
+    # saves a list of duplication nodes under current node
+    dups = []
+    for _n in node.iter_leaves(is_leaf_fn=is_dup):
+        if is_dup(_n):
+            dups.append(_n)
+
+    if dups:
+        # detach inner duplication nodes and stores their anchor point
+        subtrees = []
+        for dp in dups:
+            # The real node to attach sibling subtress
+            anchor = dp.up
+            dp.detach()
+
+            duptrees = []
+            #get all sibling sptrees in each side of the
+            #duplication. Each subtree is pointed to its anchor
+            for ch in dp.children:
+                for subt in _get_subtrees_recursive(ch, full_copy=full_copy):
+                    if not full_copy:
+                        subt = node.__class__(subt)
+                    subt.up = anchor
+                    duptrees.append(subt)
+
+            #all posible sptrees under this duplication are stored
+            subtrees.append(duptrees)
+
+        # Generates all combinations of subtrees in sibling duplications
+        sp_trees = []
+        for comb in itertools.product(*subtrees):
+            #each subtree is attached to its anchor point and make a copy
+            #of the final sp tree
+            for subt in comb:
+                #anchor = subt2anchor[subt]
+                if subt.up:
+                    subt.up.children.append(subt)
+                    #print subt.up
+                else:
+                    sp_trees.append(subt)
+            if full_copy:
+                 back_up = node.up
+                 node.up = None
+                 _node = node.copy()
+                 node.up = back_up
+            else:
+                _node = node.write(format=9, features=["name", "evoltype"])
+            sp_trees.append(_node)
+            # Clear current node
+            for subt in comb:
+                subt.up.children.pop(-1)
+    else:
+        if full_copy:
+            back_up = node.up
+            node.up = None
+            _node = node.copy()
+            node.up = back_up
+        else:
+            _node = node.write(format=9, features=["name", "evoltype"])
+        #node.detach()
+        sp_trees = [_node]
+
+    return sp_trees
+
+def get_subparts(n):
+    def is_dup(n):
+        return getattr(n, "evoltype", None) == "D"
+
+    subtrees = []
+    if is_dup(n):
+        for ch in n.get_children():
+            ch.detach()
+            subtrees.extend(get_subparts(ch))
+    else:
+        to_visit = []
+        for _n in n.iter_leaves(is_leaf_fn=is_dup):
+            if is_dup(_n):
+                to_visit.append(_n)
+
+        for _n in to_visit:
+            _n.detach()
+
+        freaks = [_n for _n in n.iter_descendants() if
+                  len(_n.children)==1 or (not hasattr(_n, "_leaf") and not _n.children)]
+        for s in freaks:
+            s.delete(prevent_nondicotomic=True)
+
+        # Clean node structure to prevent nodes with only one child
+        while len(n.children) == 1:
+            n = n.children[0]
+            n.detach()
+
+        if not n.children and not hasattr(n, "_leaf"):
+            pass
+        else:
+            subtrees.append(n)
+
+        for _n in to_visit:
+            subtrees.extend(get_subparts(_n))
+
+    return subtrees
+
+
+class PhyloNode(TreeNode):
+    """
+    .. currentmodule:: ete3
+    Extends the standard :class:`TreeNode` instance. It adds
+    specific attributes and methods to work with phylogentic trees.
+
+    :argument newick: Path to the file containing the tree or, alternatively,
+      the text string containing the same information.
+
+    :argument alignment: file containing a multiple sequence alignment.
+
+    :argument alg_format:  "fasta", "phylip" or "iphylip" (interleaved)
+
+    :argument format: sub-newick format
+
+      .. table::
+
+          ======  ==============================================
+          FORMAT  DESCRIPTION
+          ======  ==============================================
+          0        flexible with support values
+          1        flexible with internal node names
+          2        all branches + leaf names + internal supports
+          3        all branches + all names
+          4        leaf branches + leaf names
+          5        internal and leaf branches + leaf names
+          6        internal branches + leaf names
+          7        leaf branches + all names
+          8        all names
+          9        leaf names
+          100      topology only
+          ======  ==============================================
+
+    :argument sp_naming_function: Pointer to a parsing python
+       function that receives nodename as first argument and returns
+       the species name (see
+       :func:`PhyloNode.set_species_naming_function`. By default, the
+       3 first letter of nodes will be used as species identifiers.
+
+
+
+    :returns: a tree node object which represents the base of the tree.
+    """
+
+    def _get_species(self):
+        if self._speciesFunction:
+            try:
+                return self._speciesFunction(self.name)
+            except:
+                return self._speciesFunction(self)
+        else:
+            return self._species
+
+    def _set_species(self, value):
+        if self._speciesFunction:
+            pass
+        else:
+            self._species = value
+
+    # This tweak overwrites the native 'name' attribute to create a
+    # property that updates the species code every time name is
+    # changed
+
+    #: .. currentmodule:: ete3
+    #:
+    #Species code associated to the node. This property can be
+    #automatically extracted from the TreeNode.name attribute or
+    #manually set (see :func:`PhyloNode.set_species_naming_function`).
+    species = property(fget = _get_species, fset = _set_species)
+
+    def __init__(self, newick=None, alignment=None, alg_format="fasta", \
+                 sp_naming_function=_parse_species, format=0, **kargs):
+
+        # _update names?
+        self._name = "NoName"
+        self._species = "Unknown"
+        self._speciesFunction = None
+        # Caution! native __init__ has to be called after setting
+        # _speciesFunction to None!!
+        TreeNode.__init__(self, newick=newick, format=format, **kargs)
+
+        # This will be only executed after reading the whole tree,
+        # because the argument 'alignment' is not passed to the
+        # PhyloNode constructor during parsing
+        if alignment:
+            self.link_to_alignment(alignment, alg_format)
+        if newick:
+            self.set_species_naming_function(sp_naming_function)
+
+    def __repr__(self):
+        return "PhyloTree node '%s' (%s)" %(self.name, hex(self.__hash__()))
+
+    def set_species_naming_function(self, fn):
+        """
+        Sets the parsing function used to extract species name from a
+        node's name.
+
+        :argument fn: Pointer to a parsing python function that
+          receives nodename as first argument and returns the species
+          name.
+
+        ::
+
+          # Example of a parsing function to extract species names for
+          # all nodes in a given tree.
+          def parse_sp_name(node_name):
+              return node_name.split("_")[1]
+          tree.set_species_naming_function(parse_sp_name)
+
+        """
+        if fn:
+            for n in self.traverse():
+                n._speciesFunction = fn
+                if n.is_leaf():
+                    n.features.add("species")
+
+    def link_to_alignment(self, alignment, alg_format="fasta", **kwargs):
+        missing_leaves = []
+        missing_internal = []
+        if type(alignment) == SeqGroup:
+            alg = alignment
+        else:
+            alg = SeqGroup(alignment, format=alg_format, **kwargs)
+        # sets the seq of
+        for n in self.traverse():
+            try:
+                n.add_feature("sequence",alg.get_seq(n.name))
+            except KeyError:
+                if n.is_leaf():
+                    missing_leaves.append(n.name)
+                else:
+                    missing_internal.append(n.name)
+        if len(missing_leaves)>0:
+            print("Warnning: [%d] terminal nodes could not be found in the alignment." %\
+                len(missing_leaves), file=sys.stderr)
+        # Show warning of not associated internal nodes.
+        # if len(missing_internal)>0:
+        #     print >>sys.stderr, \
+        #       "Warnning: [%d] internal nodes could not be found in the alignment." %\
+        #       len(missing_leaves)
+
+    def get_species(self):
+        """ Returns the set of species covered by its partition. """
+        return set([l.species for l in self.iter_leaves()])
+
+    def iter_species(self):
+        """ Returns an iterator over the species grouped by this node. """
+        spcs = set([])
+        for l in self.iter_leaves():
+            if l.species not in spcs:
+                spcs.add(l.species)
+                yield l.species
+
+    def get_age(self, species2age):
+        """
+        Implements the phylostratigrafic method described in:
+
+        Huerta-Cepas, J., & Gabaldon, T. (2011). Assigning duplication events to
+        relative temporal scales in genome-wide studies. Bioinformatics, 27(1),
+        38-45.
+        """
+        return max([species2age[sp] for sp in self.get_species()])
+
+    def reconcile(self, species_tree):
+        """ Returns the reconcilied topology with the provided species
+        tree, and a list of evolutionary events inferred from such
+        reconciliation. """
+        return get_reconciled_tree(self, species_tree, [])
+
+    def get_my_evol_events(self, sos_thr=0.0):
+        """ Returns a list of duplication and speciation events in
+        which the current node has been involved. Scanned nodes are
+        also labeled internally as dup=True|False. You can access this
+        labels using the 'node.dup' sintaxis.
+
+        Method: the algorithm scans all nodes from the given leafName to
+        the root. Nodes are assumed to be duplications when a species
+        overlap is found between its child linages. Method is described
+        more detail in:
+
+        "The Human Phylome." Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+        T. Genome Biol. 2007;8(6):R109.
+        """
+        return spoverlap.get_evol_events_from_leaf(self, sos_thr=sos_thr)
+
+    def get_descendant_evol_events(self, sos_thr=0.0):
+        """ Returns a list of **all** duplication and speciation
+        events detected after this node. Nodes are assumed to be
+        duplications when a species overlap is found between its child
+        linages. Method is described more detail in:
+
+        "The Human Phylome." Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+        T. Genome Biol. 2007;8(6):R109.
+        """
+        return spoverlap.get_evol_events_from_root(self, sos_thr=sos_thr)
+
+    def get_farthest_oldest_leaf(self, species2age, is_leaf_fn=None):
+        """ Returns the farthest oldest leaf to the current
+        one. It requires an species2age dictionary with the age
+        estimation for all species.
+
+        :argument None is_leaf_fn: A pointer to a function that
+          receives a node instance as unique argument and returns True
+          or False. It can be used to dynamically collapse nodes, so
+          they are seen as leaves.
+
+        """
+
+        root = self.get_tree_root()
+        outgroup_dist  = 0
+        outgroup_node  = self
+        outgroup_age = 0 # self.get_age(species2age)
+
+        for leaf in root.iter_leaves(is_leaf_fn=is_leaf_fn):
+            if leaf.get_age(species2age) > outgroup_age:
+                outgroup_dist = leaf.get_distance(self)
+                outgroup_node = leaf
+                outgroup_age = species2age[leaf.get_species().pop()]
+            elif leaf.get_age(species2age) == outgroup_age:
+                dist = leaf.get_distance(self)
+                if dist>outgroup_dist:
+                    outgroup_dist  = leaf.get_distance(self)
+                    outgroup_node  = leaf
+                    outgroup_age = species2age[leaf.get_species().pop()]
+        return outgroup_node
+
+    def get_farthest_oldest_node(self, species2age):
+        """
+        .. versionadded:: 2.1
+
+        Returns the farthest oldest node (leaf or internal). The
+        difference with get_farthest_oldest_leaf() is that in this
+        function internal nodes grouping seqs from the same species
+        are collapsed.
+        """
+
+        # I use a custom is_leaf() function to collapse nodes groups
+        # seqs from the same species
+        is_leaf = lambda node: len(node.get_species())==1
+        return self.get_farthest_oldest_leaf(species2age, is_leaf_fn=is_leaf)
+
+    def get_age_balanced_outgroup(self, species2age):
+        """
+        .. versionadded:: 2.2
+
+        Returns the node better balance current tree structure
+        according to the topological age of the different leaves and
+        internal node sizes.
+
+        :param species2age: A dictionary translating from leaf names
+          into a topological age.
+
+        .. warning: This is currently an experimental method!!
+
+        """
+        root = self
+        all_seqs = set(self.get_leaf_names())
+        outgroup_dist  = 0
+        best_balance = max(species2age.values())
+        outgroup_node  = self
+        outgroup_size = 0
+
+        for leaf in root.iter_descendants():
+            leaf_seqs = set(leaf.get_leaf_names())
+            size = len(leaf_seqs)
+
+            leaf_species =[self._speciesFunction(s) for s in leaf_seqs]
+            out_species = [self._speciesFunction(s) for s in all_seqs-leaf_seqs]
+
+            leaf_age_min = min([species2age[sp] for sp in leaf_species])
+            out_age_min = min([species2age[sp] for sp in out_species])
+            leaf_age_max = max([species2age[sp] for sp in leaf_species])
+            out_age_max = max([species2age[sp] for sp in out_species])
+            leaf_age = leaf_age_max - leaf_age_min
+            out_age = out_age_max - out_age_min
+
+            age_inbalance = abs(out_age - leaf_age)
+
+            # DEBUG ONLY
+            # leaf.add_features(age_inbalance = age_inbalance, age=leaf_age)
+
+            update = False
+            if age_inbalance < best_balance:
+                update = True
+            elif age_inbalance == best_balance:
+                if size > outgroup_size:
+                    update = True
+                elif size == outgroup_size:
+                    dist = self.get_distance(leaf)
+                    outgroup_dist = self.get_distance(outgroup_node)
+                    if dist > outgroup_dist:
+                        update = True
+
+            if update:
+                best_balance = age_inbalance
+                outgroup_node = leaf
+                outgroup_size = size
+
+        return outgroup_node
+
+    def get_speciation_trees(self, map_features=None, autodetect_duplications=True,
+                             newick_only=False, target_attr='species'):
+        """
+        .. versionadded: 2.2
+
+        Calculates all possible species trees contained within a
+        duplicated gene family tree as described in `Treeko
+        <http://treeko.cgenomics.org>`_ (see `Marcet and Gabaldon,
+        2011 <http://www.ncbi.nlm.nih.gov/pubmed/21335609>`_ ).
+
+
+        :argument True autodetect_duplications: If True, duplication
+        nodes will be automatically detected using the Species Overlap
+        algorithm (:func:`PhyloNode.get_descendants_evol_events`. If
+        False, duplication nodes within the original tree are expected
+        to contain the feature "evoltype=D".
+
+        :argument None features: A list of features that should be
+        mapped from the original gene family tree to each species
+        tree subtree.
+
+        :returns: (number_of_sptrees, number_of_dups, species_tree_iterator)
+
+        """
+        t = self
+        if autodetect_duplications:
+            #n2content, n2species = t.get_node2species()
+            n2content = t.get_cached_content()
+            n2species = t.get_cached_content(store_attr=target_attr)
+            for node in n2content:
+                sp_subtotal = sum([len(n2species[_ch]) for _ch in node.children])
+                if len(n2species[node]) > 1 and len(n2species[node]) != sp_subtotal:
+                    node.add_features(evoltype="D")
+
+        sp_trees = get_subtrees(t, features=map_features, newick_only=newick_only)
+
+        return sp_trees
+
+    def __get_speciation_trees_recursive(self):
+        """ experimental and testing """
+        t = self.copy()
+        if autodetect_duplications:
+            dups = 0
+            #n2content, n2species = t.get_node2species()
+            n2content = t.get_cached_content()
+            n2species = t.get_cached_content(store_attr="species")
+
+            #print "Detecting dups"
+            for node in n2content:
+                sp_subtotal = sum([len(n2species[_ch]) for _ch in node.children])
+                if  len(n2species[node]) > 1 and len(n2species[node]) != sp_subtotal:
+                    node.add_features(evoltype="D")
+                    dups += 1
+                elif node.is_leaf():
+                    node._leaf = True
+            #print dups
+        else:
+            for node in t.iter_leaves():
+                node._leaf = True
+        subtrees = _get_subtrees_recursive(t)
+        return len(subtrees), 0, subtrees
+
+    def split_by_dups(self, autodetect_duplications=True):
+        """
+        .. versionadded: 2.2
+
+        Returns the list of all subtrees resulting from splitting
+        current tree by its duplication nodes.
+
+        :argument True autodetect_duplications: If True, duplication
+        nodes will be automatically detected using the Species Overlap
+        algorithm (:func:`PhyloNode.get_descendants_evol_events`. If
+        False, duplication nodes within the original tree are expected
+        to contain the feature "evoltype=D".
+
+        :returns: species_trees
+        """
+        try:
+            t = self.copy()
+        except Exception:
+            t = self.copy("deepcopy")
+
+        if autodetect_duplications:
+            dups = 0
+            #n2content, n2species = t.get_node2species()
+            n2content = t.get_cached_content()
+            n2species = t.get_cached_content(store_attr="species")
+
+            #print "Detecting dups"
+            for node in n2content:
+                sp_subtotal = sum([len(n2species[_ch]) for _ch in node.children])
+                if  len(n2species[node]) > 1 and len(n2species[node]) != sp_subtotal:
+                    node.add_features(evoltype="D")
+                    dups += 1
+                elif node.is_leaf():
+                    node._leaf = True
+            #print dups
+        else:
+            for node in t.iter_leaves():
+                node._leaf = True
+        sp_trees = get_subparts(t)
+        return sp_trees
+
+    def collapse_lineage_specific_expansions(self, species=None, return_copy=True):
+        """ Converts lineage specific expansion nodes into a single
+        tip node (randomly chosen from tips within the expansion).
+
+        :param None species: If supplied, only expansions matching the
+           species criteria will be pruned. When None, all expansions
+           within the tree will be processed.
+
+        """
+        if species and type(species) not in set(["set", "frozenset"]):
+            raise ValueError("species argument should be a set, frozenset")
+
+        prunned = self.copy("deepcopy") if return_copy else self
+        n2sp = prunned.get_cached_content(store_attr="species")
+        n2leaves = prunned.get_cached_content()
+        is_expansion = lambda n: (len(n2sp[n])==1 and len(n2leaves[n])>1
+                                  and (species is None or species & n2sp[n]))
+        for n in prunned.get_leaves(is_leaf_fn=is_expansion):
+            repre = list(n2leaves[n])[0]
+            repre.detach()
+            if n is not prunned:
+                n.up.add_child(repre)
+                n.detach()
+            else:
+                return repre
+
+        return prunned
+
+
+    def annotate_ncbi_taxa(self, taxid_attr='species', tax2name=None, tax2track=None, tax2rank=None, dbfile=None):
+        """Add NCBI taxonomy annotation to all descendant nodes. Leaf nodes are
+        expected to contain a feature (name, by default) encoding a valid taxid
+        number.
+
+        All descendant nodes (including internal nodes) are annotated with the
+        following new features:
+
+        `Node.spname`: scientific spcies name as encoded in the NCBI taxonomy database
+
+        `Node.named_lineage`: the NCBI lineage track using scientific names
+
+        `Node.taxid`: NCBI taxid number
+
+        `Node.lineage`: same as named_lineage but using taxid codes.
+
+
+        Note that for internal nodes, NCBI information will refer to the first
+        common lineage of the grouped species.
+
+        :param name taxid_attr: the name of the feature that should be used to access the taxid number associated to each node.
+
+        :param None tax2name: A dictionary where keys are taxid numbers and
+        values are their translation into NCBI scientific name. Its use is
+        optional and allows to avoid database queries when annotating many trees
+        containing the same set of taxids.
+
+        :param None tax2track: A dictionary where keys are taxid numbers and
+        values are their translation into NCBI lineage tracks (taxids). Its use is
+        optional and allows to avoid database queries when annotating many trees
+        containing the same set of taxids.
+
+        :param None tax2rank: A dictionary where keys are taxid numbers and
+        values are their translation into NCBI rank name. Its use is optional
+        and allows to avoid database queries when annotating many trees
+        containing the same set of taxids.
+
+        :param None dbfile : If provided, the provided file will be used as a
+        local copy of the NCBI taxonomy database.
+
+        :returns: tax2name (a dictionary translating taxid numbers into
+        scientific name), tax2lineage (a dictionary translating taxid numbers
+        into their corresponding NCBI lineage track) and tax2rank (a dictionary translating taxid numbers into
+        rank names).
+
+        """
+
+        ncbi = NCBITaxa(dbfile=dbfile)
+        return ncbi.annotate_tree(self, taxid_attr=taxid_attr, tax2name=tax2name, tax2track=tax2track, tax2rank=tax2rank)
+
+
+    def ncbi_compare(self, autodetect_duplications=True, cached_content=None):
+        if not cached_content:
+            cached_content = self.get_cached_content()
+        cached_species = set([n.species for n in cached_content[self]])
+
+        if len(cached_species) != len(cached_content[self]):
+            print(cached_species)
+            ntrees, ndups, target_trees = self.get_speciation_trees(autodetect_duplications=autodetect_duplications, map_features=["taxid"])
+        else:
+            target_trees = [self]
+
+
+        ncbi = NCBITaxa()
+        for t in target_trees:
+            ncbi.get_broken_branches(t, cached_content)
+
+
+
+#: .. currentmodule:: ete3
+#
+PhyloTree = PhyloNode
diff --git a/ete3/phylo/reconciliation.py b/ete3/phylo/reconciliation.py
new file mode 100644
index 0000000..f6725ed
--- /dev/null
+++ b/ete3/phylo/reconciliation.py
@@ -0,0 +1,213 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+import copy
+from .evolevents import EvolEvent
+
+
+def get_reconciled_tree(node, sptree, events):
+    """ Returns the recoliation gene tree with a provided species
+    topology """
+
+    if len(node.children) == 2:
+        # First visit childs
+        morphed_childs = []
+        for ch in node.children:
+            mc, ev = get_reconciled_tree(ch, sptree, events)
+            morphed_childs.append(mc)
+
+        # morphed childs are the reconciled children. I trust its
+        # topology. Remember tree is visited on recursive post-order
+        sp_child_0 = morphed_childs[0].get_species()
+        sp_child_1 = morphed_childs[1].get_species()
+        all_species = sp_child_1 | sp_child_0
+
+        # If childs represents a duplication (duplicated species)
+        # Check that both are reconciliated to the same species
+        if len(sp_child_0 & sp_child_1) > 0:
+            newnode = copy.deepcopy(node)
+            newnode.up = None
+            newnode.children = []
+            template = _get_expected_topology(sptree, all_species)
+            # replaces child0 partition on the template
+            newmorphed0, matchnode = _replace_on_template(template, morphed_childs[0])
+            # replaces child1 partition on the template
+            newmorphed1, matchnode = _replace_on_template(template, morphed_childs[1])
+            newnode.add_child(newmorphed0)
+            newnode.add_child(newmorphed1)
+            newnode.add_feature("evoltype", "D")
+            node.add_feature("evoltype", "D")
+            e = EvolEvent()
+            e.etype = "D"
+            e.inparalogs = node.children[0].get_leaf_names()
+            e.outparalogs = node.children[1].get_leaf_names()
+            e.in_seqs  = node.children[0].get_leaf_names()
+            e.out_seqs = node.children[1].get_leaf_names()
+            events.append(e)
+            return newnode, events
+
+        # Otherwise, we need to reconciliate species at both sides
+        # into a single partition.
+        else:
+            # gets the topology expected by the observed species
+            template = _get_expected_topology(sptree, all_species)
+            # replaces child0 partition on the template
+            template, matchnode = _replace_on_template(template, morphed_childs[0] )
+            # replaces child1 partition on the template
+            template, matchnode = _replace_on_template(template, morphed_childs[1])
+            template.add_feature("evoltype","S")
+            node.add_feature("evoltype","S")
+            e = EvolEvent()
+            e.etype = "S"
+            e.inparalogs = node.children[0].get_leaf_names()
+            e.orthologs = node.children[1].get_leaf_names()
+            e.in_seqs  = node.children[0].get_leaf_names()
+            e.out_seqs = node.children[1].get_leaf_names()
+            events.append(e)
+            return template, events
+    elif len(node.children)==0:
+        return copy.deepcopy(node), events
+    else:
+        raise ValueError("Algorithm can only work with binary trees.")
+
+def _replace_on_template(orig_template, node):
+    template = copy.deepcopy(orig_template)
+    # detects partition within topo that matchs child1 species
+    nodespcs = node.get_species()
+    spseed = list(nodespcs)[0]  # any sp name woulbe ok
+    # Set an start point
+    subtopo = template.search_nodes(children=[], name=spseed)[0]
+    # While subtopo does not cover all child species
+    while len(nodespcs - set(subtopo.get_leaf_names() ) )>0:
+        subtopo= subtopo.up
+    # Puts original partition on the expected topology template
+    nodecp = copy.deepcopy(node)
+    if subtopo.up is None:
+        return nodecp, nodecp
+    else:
+        parent = subtopo.up
+        parent.remove_child(subtopo)
+        parent.add_child(nodecp)
+        return template, nodecp
+
+def _get_expected_topology(t, species):
+    missing_sp = set(species) - set(t.get_leaf_names())
+    if missing_sp:
+        raise KeyError("* The following species are not contained in the species tree: "+ ','.join(missing_sp) )
+
+    node = t.search_nodes(children=[], name=list(species)[0])[0]
+
+    sps = set(species)
+    while sps-set(node.get_leaf_names()) != set([]):
+        node = node.up
+    template = copy.deepcopy(node)
+    # make get_species() to work
+    #template._speciesFunction = _get_species_on_TOL
+    template.set_species_naming_function(_get_species_on_TOL)
+    template.detach()
+    for n in [template]+template.get_descendants():
+        n.add_feature("evoltype","L")
+        n.dist = 1
+    return template
+
+def _get_species_on_TOL(name):
+    return name
+
+def get_reconciled_tree_zmasek(gtree, sptree, inplace=False):
+    """
+    Reconciles the gene tree with the species tree
+    using Zmasek and Eddy's algorithm. Details can be
+    found in the paper:
+
+    Christian M. Zmasek, Sean R. Eddy: A simple algorithm
+    to infer gene duplication and speciation events on a
+    gene tree. Bioinformatics 17(9): 821-828 (2001)
+
+    :argument gtree: gene tree (PhyloTree instance)
+
+    :argument sptree: species tree (PhyloTree instance)
+
+    :argument False inplace: if True, the provided gene tree instance is
+       modified. Otherwise a reconciled copy of the gene tree is returned.
+
+    :returns: reconciled gene tree
+    """
+    # some cleanup operations
+    def cleanup(tree):
+        for node in tree.traverse(): node.del_feature("M")
+
+    if not inplace:
+        gtree = gtree.copy('deepcopy')
+
+    # check for missing species
+    missing_sp = gtree.get_species() - sptree.get_species()
+    if missing_sp:
+        raise KeyError("* The following species are not contained in the species tree: "+ ', '.join(missing_sp))
+
+    # initialization
+    sp2node = dict()
+    for node in sptree.get_leaves(): sp2node[node.species] = node
+
+    # set/compute the mapping function M(g) for the
+    # leaf nodes in the gene tree (see paper for details)
+    species = sptree.get_species()
+    for node in gtree.get_leaves():
+        node.add_feature("M",sp2node[node.species])
+
+    # visit each internal node in the gene tree
+    # and detect its event (duplication or speciation)
+    for node in gtree.traverse(strategy="postorder"):
+        if len(node.children) == 0:
+            continue # nothing to do for leaf nodes
+
+        if len(node.children) != 2:
+            cleanup(gtree)
+            raise ValueError("Algorithm can only work with binary trees.")
+
+        lca = node.children[0].M.get_common_ancestor(node.children[1].M) # LCA in the species tree
+        node.add_feature("M",lca)
+
+        node.add_feature("evoltype","S")
+        if id(node.children[0].M) == id(node.M) or id(node.children[1].M) == id(node.M):
+                node.evoltype = "D"
+
+    cleanup(gtree)
+    return gtree
+
diff --git a/ete3/phylo/spoverlap.py b/ete3/phylo/spoverlap.py
new file mode 100644
index 0000000..360577f
--- /dev/null
+++ b/ete3/phylo/spoverlap.py
@@ -0,0 +1,240 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+from .evolevents import EvolEvent
+
+__all__ = ["get_evol_events_from_leaf", "get_evol_events_from_root"]
+
+def get_evol_events_from_leaf(node, sos_thr=0.0):
+    """ Returns a list of duplication and speciation events in
+    which the current node has been involved. Scanned nodes are
+    also labeled internally as dup=True|False. You can access this
+    labels using the 'node.dup' sintaxis.
+
+    Method: the algorithm scans all nodes from the given leafName to
+    the root. Nodes are assumed to be duplications when a species
+    overlap is found between its child linages. Method is described
+    more detail in:
+
+    "The Human Phylome." Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+    T. Genome Biol. 2007;8(6):R109.
+    """
+    # Get the tree's root
+    root = node.get_tree_root()
+
+    # Checks that is actually rooted
+    outgroups = root.get_children()
+    if len(outgroups) != 2:
+        raise TypeError("Tree is not rooted")
+
+    # Cautch the smaller outgroup (will be stored as the tree
+    # outgroup)
+    o1 = set([n.name for n in outgroups[0].get_leaves()])
+    o2 = set([n.name for n in outgroups[1].get_leaves()])
+
+    if len(o2)<len(o1):
+        smaller_outg = outgroups[1]
+    else:
+        smaller_outg = outgroups[0]
+
+
+    # Prepare to browse tree from leaf to root
+    all_events = []
+    current  = node
+    ref_spcs = node.species
+    sister_leaves  = set([])
+    browsed_spcs   = set([current.species])
+    browsed_leaves = set([current])
+    # get family Size
+    fSize =  len([n for n in root.get_leaves() if n.species == ref_spcs])
+
+    # Clean previous analysis
+    for n in root.get_descendants()+[root]:
+        n.del_feature("evoltype")
+
+    while current.up:
+        # distances control (0.0 distance check)
+        d = 0
+        for s in current.get_sisters():
+            for leaf in s.get_leaves():
+                d += current.get_distance(leaf)
+                sister_leaves.add(leaf)
+        # Process sister node only if there is any new sequence.
+        # (previene dupliaciones por nombres repetidos)
+        sister_leaves = sister_leaves.difference(browsed_leaves)
+        if len(sister_leaves)==0:
+            current = current.up
+            continue
+        # Gets species at both sides of event
+        sister_spcs     = set([n.species for n in sister_leaves])
+        overlaped_spces = browsed_spcs & sister_spcs
+        all_spcs        = browsed_spcs | sister_spcs
+        score = float(len(overlaped_spces))/len(all_spcs)
+        # Creates a new evolEvent
+        event = EvolEvent()
+        event.fam_size   = fSize
+        event.seed      = node.name
+        # event.e_newick  = current.up.get_newick()  # high mem usage!!
+        event.sos = score
+        event.outgroup  = smaller_outg.name
+        # event.allseqs   = set(current.up.get_leaf_names())
+        event.in_seqs = set([n.name for n in browsed_leaves])
+        event.out_seqs = set([n.name for n in sister_leaves])
+        event.inparalogs  = set([n.name for n in browsed_leaves if n.species == ref_spcs])
+
+        # If species overlap: duplication
+        if score > sos_thr:# and d > 0.0: Removed branch control.
+            event.node = current.up
+            event.etype = "D"
+            event.outparalogs = set([n.name for n in sister_leaves  if n.species == ref_spcs])
+            event.orthologs   = set([])
+            current.up.add_feature("evoltype","D")
+            all_events.append(event)
+
+        # If NO species overlap: speciation
+        elif score == sos_thr:
+            event.node = current.up
+            event.etype = "S"
+            event.orthologs = set([n.name for n in sister_leaves if n.species != ref_spcs])
+            event.outparalogs = set([])
+            current.up.add_feature("evoltype","S")
+            all_events.append(event)
+        else:
+            pass # do not add event if distances == 0
+
+        # Updates browsed species
+        browsed_spcs   |= sister_spcs
+        browsed_leaves |= sister_leaves
+        sister_leaves  = set([])
+        # And keep ascending
+        current = current.up
+    return all_events
+
+def get_evol_events_from_root(node, sos_thr):
+    """ Returns a list of **all** duplication and speciation
+    events detected after this node. Nodes are assumed to be
+    duplications when a species overlap is found between its child
+    linages. Method is described more detail in:
+
+    "The Human Phylome." Huerta-Cepas J, Dopazo H, Dopazo J, Gabaldon
+    T. Genome Biol. 2007;8(6):R109.
+    """
+
+    # Get the tree's root
+    root = node.get_tree_root()
+
+    # Checks that is actually rooted
+    outgroups = root.get_children()
+    if len(outgroups) != 2:
+        raise TypeError("Tree is not rooted")
+
+    # Cautch the smaller outgroup (will be stored as the tree outgroup)
+    o1 = set([n.name for n in outgroups[0].get_leaves()])
+    o2 = set([n.name for n in outgroups[1].get_leaves()])
+
+
+    if len(o2)<len(o1):
+        smaller_outg = outgroups[1]
+    else:
+        smaller_outg = outgroups[0]
+
+    # Get family size
+    fSize = len( [n for n in root.get_leaves()] )
+
+    # Clean data from previous analyses
+    for n in root.get_descendants()+[root]:
+        n.del_feature("evoltype")
+
+    # Gets Prepared to browse the tree from root to leaves
+    to_visit = []
+    current = root
+    all_events = []
+    while current:
+        # Gets childs and appends them to the To_visit list
+        childs = current.get_children()
+        to_visit += childs
+        if len(childs)>2:
+            raise TypeError("nodes are expected to have two childs.")
+        elif len(childs)==0:
+            pass # leaf
+        else:
+            # Get leaves and species at both sides of event
+            sideA_leaves= set([n for n in childs[0].get_leaves()])
+            sideB_leaves= set([n for n in childs[1].get_leaves()])
+            sideA_spcs  = set([n.species for n in childs[0].get_leaves()])
+            sideB_spcs  = set([n.species for n in childs[1].get_leaves()])
+            # Calculates species overlap
+            overlaped_spcs = sideA_spcs & sideB_spcs
+            all_spcs       = sideA_spcs | sideB_spcs
+            score = float(len(overlaped_spcs))/len(all_spcs)
+
+            # Creates a new evolEvent
+            event = EvolEvent()
+            event.fam_size   = fSize
+            event.branch_supports = [current.support, current.children[0].support, current.children[1].support]
+            # event.seed      = leafName
+            # event.e_newick  = current.up.get_newick()  # high mem usage!!
+            event.sos = score
+            event.outgroup_spcs  = smaller_outg.get_species()
+            event.in_seqs = set([n.name for n in sideA_leaves])
+            event.out_seqs = set([n.name for n in sideB_leaves])
+            event.inparalogs  = set([n.name for n in sideA_leaves])
+            # If species overlap: duplication
+            if score >sos_thr:
+                event.node = current
+                event.etype = "D"
+                event.outparalogs = set([n.name for n in sideB_leaves])
+                event.orthologs   = set([])
+                current.add_feature("evoltype","D")
+            # If NO species overlap: speciation
+            else:
+                event.node = current
+                event.etype = "S"
+                event.orthologs = set([n.name for n in sideB_leaves])
+                event.outparalogs = set([])
+                current.add_feature("evoltype","S")
+
+            all_events.append(event)
+        # Keep visiting nodes
+        try:
+            current = to_visit.pop(0)
+        except IndexError:
+            current = None
+    return all_events
diff --git a/ete3/phylomedb/__init__.py b/ete3/phylomedb/__init__.py
new file mode 100644
index 0000000..8bfef15
--- /dev/null
+++ b/ete3/phylomedb/__init__.py
@@ -0,0 +1,103 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+species_ages = {}
+
+_humanv1 = {
+# Basal eukariotes
+"Ath":10, # Arabidopsis thaliana
+"Cre":10,
+"Pfa":10,
+"Pyo":10,
+"Ddi":10,
+"Gth":10,
+"Lma":10, # leismania
+"Pte":10,
+
+# Fungi
+"Ago":9,
+"Cal":9,
+"Cgl":9,
+"Cne":9,
+"Dha":9,
+"Ecu":9,
+"Gze":9,
+"Kla":9,
+"Ncr":9,
+"Sce":9, # S.cerevisiae
+"Spb":9,
+"Yli":9,
+
+# metazoa non chordates
+"Aga":8, # Anopheles
+"Dme":8, # Drosophila melanogaster
+"Ame":8, # Apis meliferae
+"Cel":8, # Caenorabditis elegans
+"Cbr":8, # Caenorabditis brigssae
+
+# chordates non vertebrates
+"Cin":7, # Ciona intestinalis
+
+# vertebrates non tetrapodes
+"Dre":6, # Danio rerio
+"Tni":6, # Tetraodom
+"Fru":6, # Fugu rubripes
+
+# tetrapodes non birds nor mammals
+"Xtr":5, # Xenopus
+
+# birds
+"Gga":4, # Chicken
+
+# Mammals non primates
+"Mdo":3, # Monodelphis domestica
+"Mms":3, # Mouse
+"Rno":3, # Rat
+"Cfa":3, # Dog
+"Bta":3, # Cow
+
+# primates non hominids
+"Ptr":2, # chimp
+"Mmu":2, # Macaca
+
+# hominids
+"Hsa":1, # human
+}
+species_ages["human_phylome"] = _humanv1
diff --git a/ete3/phylomedb/phylomeDB.py b/ete3/phylomedb/phylomeDB.py
new file mode 100644
index 0000000..5a7fba9
--- /dev/null
+++ b/ete3/phylomedb/phylomeDB.py
@@ -0,0 +1,686 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+"""
+'phylomedb' provides an access API to the data stored in the
+phylogenetic database PhylomeDB *[1].
+
+All methods to perform queries are implemented within the
+PhylomeDBConnector class.
+
+ *[1] PhylomeDB: a database for genome-wide collections of gene
+ phylogenies Jaime Huerta-Cepas, Anibal Bueno, Joaquin Dopazo and Toni
+ Gabaldon.
+
+      PhylomeDB is a database of complete phylomes derived for
+      different genomes within a specific taxonomic range. All
+      phylomes in the database are built using a high-quality
+      phylogenetic pipeline that includes evolutionary model testing
+      and alignment trimming phases. For each genome, PhylomeDB
+      provides the alignments, phylogentic trees and tree-based
+      orthology predictions for every single encoded protein.
+"""
+from __future__ import absolute_import
+import re
+from string import strip
+
+import MySQLdb
+
+from .. import PhyloTree
+
+import six
+from six.moves import map
+
+__all__ = ["PhylomeDBConnector", "ROOTED_PHYLOMES"]
+
+# This dictionary sets the default age dictionary (if any) must be
+# used to root certain phylome trees.
+ROOTED_PHYLOMES = {
+    1: {
+        # Basal eukariotes
+        "Ath":10, # Arabidopsis thaliana
+        "Cre":10,
+        "Pfa":10,
+        "Pyo":10,
+        "Ddi":10,
+        "Gth":10,
+        "Lma":10, # leismania
+        "Pte":10,
+        # Fungi
+        "Ago":9,
+        "Cal":9,
+        "Cgl":9,
+        "Cne":9,
+        "Dha":9,
+        "Ecu":9,
+        "Gze":9,
+        "Kla":9,
+        "Ncr":9,
+        "Sce":9, # S.cerevisiae
+        "Spb":9,
+        "Yli":9,
+        # metazoa non chordates
+        "Aga":8, # Anopheles
+        "Dme":8, # Drosophila melanogaster
+        "Ame":8, # Apis meliferae
+        "Cel":8, # Caenorabditis elegans
+        "Cbr":8, # Caenorabditis brigssae
+        # chordates non vertebrates
+        "Cin":7, # Ciona intestinalis
+        # vertebrates non tetrapodes
+        "Dre":6, # Danio rerio
+        "Tni":6, # Tetraodom
+        "Fru":6, # Fugu rubripes
+        # tetrapodes non birds nor mammals
+        "Xtr":5, # Xenopus
+        # birds
+        "Gga":4, # Chicken
+        # Mammals non primates
+        "Mdo":3, # Monodelphis domestica
+        "Mms":3, # Mouse
+        "Rno":3, # Rat
+        "Cfa":3, # Dog
+        "Bta":3, # Cow
+        # primates non hominids
+        "Ptr":2, # chimp
+        "Mmu":2, # Macaca
+        # hominids
+        "Hsa":1, # human
+        },
+
+    # Pea aphid Phylome
+    16: {
+        "Cel" :10, # C.elegans outgroup
+        "Hsa" :9,  # Human outgroup
+        "Cin" :9,  # Ciona outgroup
+        "Dpu":7,
+        "Dps":5,
+        "Tca":5,
+        "Phu":5,
+        "Dme":5,
+        "Api":5,
+        "Dmo":5,
+        "Nvi":5,
+        "Dya":5,
+        "Aga":5,
+        "Cpi":5,
+        "Bom":5,
+        "Ame":5,
+        "Aae":5
+        }
+    }
+
+class PhylomeDBConnector(object):
+    """ Reuturns a connector to a phylomeDB database.
+
+    ARGUMENTS:
+    ==========
+    host: hostname in which phylomeDB is hosted.
+    user: username to the database.
+    passwd: password to connect database.
+    port: port used to connect database.
+
+    RETURNS:
+    ========
+    An object whose methods can be used to query the database.
+  """
+    def __init__(self, host="84.88.66.245", \
+                   db="phylomeDB", \
+                   user="public", \
+                   passwd="public", \
+                   port=3306):
+
+        """ Connects to a phylomeDB database and returns an object to
+        perform custom queries on it. """
+
+        # Reads phylome config file
+        self._SQLconnection = MySQLdb.connect(host = host,\
+                                                user   = user,\
+                                                passwd = passwd,\
+                                                db     = db,\
+                                                port   = int(port))
+
+        self._SQL = self._SQLconnection.cursor()
+
+        if user == "phyAdmin":
+            self._trees_table    = "trees"
+            self._algs_table     = "algs"
+            self._phylomes_table = "phylomes"
+        else:
+            self._trees_table    = "trees_"+user
+            self._algs_table     = "algs_"+user
+            self._phylomes_table = "phylomes_"+user
+
+    def _execute_block(self, cmd):
+        """ Executes a multi-line SQL command and returns the nombre of
+        affected rows. """
+        commands = cmd.split(";")
+        for c in commands:
+            c = c.strip()
+            if c != "":
+                try:
+                    rows = self._SQL.execute(c+";")
+                except MySQLdb.Error:
+                    raise
+        return rows
+
+    # Access API methods
+    def get_longest_isoform(self, phyID):
+        """ returns the protID of the """
+
+        try:
+            spc_code    = phyID[:3]
+            prot_number = int(phyID[3:])
+        except ValueError:
+            raise ValueError("invalid phylome protein ID")
+        else:
+            cmd = ' SELECT species, IF(gene="" OR gene=NULL,%s,protid) FROM proteins WHERE species="%s" AND (gene,proteome_id)=(SELECT gene, proteome_id FROM proteins WHERE species="%s" AND protid=%s) ORDER BY length(seq) DESC LIMIT 1; ' % (prot_number,spc_code,spc_code,prot_number)
+            if self._SQL.execute(cmd):
+                spc,protid = self._SQL.fetchone()
+                return "%s%07d" % (spc,protid)
+            else:
+                return None
+
+    def get_id_by_external(self, external):
+        """ Returns the phylomeID of the given external ID"""
+
+        command = 'SELECT species,protid from id_conversion where external_id="%s"' % (external)
+        ids = []
+        if self._SQL.execute(command):
+            matches = self._SQL.fetchall()
+            # Build phyprotID
+            for m in matches:
+                phyID = self.get_longest_isoform("%s%07d" % (m[0],m[1]))
+                if phyID:
+                    ids.append( phyID )
+        return ids
+
+    def get_id_translations(self, seqid):
+        """ returns all the registered translations of a given seqid """
+
+        cmd = 'SELECT external_db,external_id from id_conversion where species="%s" and protid=%d' % (seqid[:3],int(seqid[3:]))
+        conversion = {}
+        if self._SQL.execute(cmd):
+            extids = self._SQL.fetchall()
+            for db, eid in extids:
+                conversion.setdefault(db, []).append(eid)
+        return conversion
+
+    def search_id(self, queryID):
+        """ Returns a list of phylome protein Ids associated to the
+        given external queryID. If queryID is a phylomeDB id, it
+        returns the longest isoform associated to the queryID's gene
+        """
+        queryID = queryID.strip()
+
+        # This is to avoid weird queryIDs which make create slow or
+        # invalid MYSQL queries
+        QUERYID_GENERAL_REGEXP_FILTER = "^[\w\d\-_,;:.|#@\/\\\()'<>!]+$"
+        QUERYID_INTERNAL_ID_REGEXP_FILTER = "^\w{3}\d{7}$"
+
+        phyID_matches = []
+        # First check if id is a phylomeID
+        if re.match(QUERYID_INTERNAL_ID_REGEXP_FILTER, queryID):
+            phyID = self.get_longest_isoform(queryID)
+            phyID_matches.append(phyID)
+
+        elif re.match(QUERYID_GENERAL_REGEXP_FILTER, queryID):
+            # Second checks if id is the original name or gene for of a phylome ID
+            cmd = 'SELECT species,protid from proteins where name="%s" or gene="%s"' % (queryID,queryID)
+            if self._SQL.execute(cmd):
+                for spc_code, protid  in self._SQL.fetchall():
+                    phyID = self.get_longest_isoform("%s%07d" % (spc_code,protid))
+                    phyID_matches.append( phyID )
+
+            # Last checks if id is in the id conversion table and adds the resulting mathes
+            hits = self.get_id_by_external(queryID)
+            if hits:
+                phyID_matches.extend(hits)
+
+        return phyID_matches
+
+    def get_proteomes(self):
+        """ Returns all current available proteomes"""
+        cmd = 'SELECT * FROM proteomes'
+        if self._SQL.execute(cmd):
+            return self._SQL.fetchall()
+
+    def get_species(self):
+        """ Returns all current available species"""
+
+        cmd = 'SELECT * FROM species'
+        if self._SQL.execute(cmd):
+            return self._SQL.fetchall()
+    def get_phylomes(self):
+        """ Returns all current available phylomes """
+        cmd = 'SELECT phylome_id,seed_proteome,proteomes,DATE(ts),name,description,comments FROM %s' %(self._phylomes_table)
+        phylomes = {}
+        if self._SQL.execute(cmd):
+            for phylo in self._SQL.fetchall():
+                phylome_id = phylo[0]
+                phylomes[phylome_id]={}
+                phylomes[phylome_id]["seed_proteome"] = phylo[1]
+                phylomes[phylome_id]["seed_species"]  = phylo[1][:3]
+                phylomes[phylome_id]["proteomes"]     = phylo[2]
+                phylomes[phylome_id]["name"]          = phylo[4]
+                phylomes[phylome_id]["description"]   = phylo[5]
+                phylomes[phylome_id]["date"]          = phylo[3]
+                phylomes[phylome_id]["comments"]      = phylo[6]
+        return phylomes
+
+    def get_proteomes_in_phylome(self,phylome_id):
+        """ Returns a list of proteomes associated to a given phylome_id"""
+
+        cmd = 'SELECT proteomes FROM %s WHERE phylome_id="%s" ' \
+            % (self._phylomes_table, phylome_id)
+        self._SQL.execute(cmd)
+        entries = self._SQL.fetchone()
+        if entries:
+            proteomes_string = list(map(strip, entries[0].split(",")))
+        else:
+            proteomes_string = None
+        return proteomes_string
+
+    def get_seqids_in_proteome(self, proteome_id, filter_isoforms=True):
+        """ Returns all sequences of a given proteome """
+
+        seqids = []
+        if filter_isoforms:
+            cmd = 'SELECT species,protid,gene,seq FROM proteins WHERE proteome_id="%s" AND species="%s" ' \
+                % (proteome_id[3:],proteome_id[:3])
+            if self._SQL.execute(cmd):
+                entries = self._SQL.fetchall()
+                largest_isoforms = {}
+                unknown_counter = 0
+                for spcs,protid,gene,seq in entries:
+                    gene = gene.strip()
+                    unknown_counter += 1
+                    if not gene:
+                        gene="phyunknown%d" % unknown_counter
+                        unknown_counter += 1
+                    if gene not in largest_isoforms:
+                        largest_isoforms[gene] = (spcs,protid,gene,seq)
+                    elif len(seq) > len(largest_isoforms[gene][3]):
+                        largest_isoforms[gene] = (spcs,protid,gene,seq)
+                seqids = ["%s%07d"%(v[0], v[1]) for v in list(largest_isoforms.values())]
+        else:
+            cmd = 'SELECT species,protid FROM proteins WHERE proteome_id="%s" AND species="%s" ' \
+                % (proteome_id[3:],proteome_id[:3])
+            if self._SQL.execute(cmd):
+                seqids = ["%s%07d"%(spc,protid) for spc,protid in self._SQL.fetchall()]
+
+        return seqids
+
+    def get_seqs_in_proteome(self, proteome_id, filter_isoforms=True):
+        cmd = 'SELECT species,protid,gene,seq FROM proteins WHERE proteome_id="%s" AND species="%s" ' \
+            % (proteome_id[3:],proteome_id[:3])
+        if self._SQL.execute(cmd):
+            entries = self._SQL.fetchall()
+            if filter_isoforms:
+                largest_isoforms = {}
+                unknown_counter = 0
+                for spcs,protid,gene,seq in entries:
+                    gene = gene.strip()
+                    unknown_counter += 1
+                    if not gene:
+                        gene="phyunknown%d" % unknown_counter
+                        unknown_counter += 1
+                    if gene not in largest_isoforms:
+                        largest_isoforms[gene] = (spcs,protid,gene,seq)
+                    elif len(seq) > len(largest_isoforms[gene][3]):
+                        largest_isoforms[gene] = (spcs,protid,gene,seq)
+                seqs = list(largest_isoforms.values())
+            else:
+                seqs = entries
+        else:
+            seqs = None
+
+        return seqs
+
+    def get_proteome_info(self,proteome_id):
+        """ Returns all info about a registered proteome"""
+
+        cmd = 'SELECT proteome_id,species,source,comments,date FROM proteomes WHERE proteome_id ="%s" AND species="%s" ' \
+            % (proteome_id[3:],proteome_id[:3])
+        info = {}
+        if self._SQL.execute(cmd):
+            entry = self._SQL.fetchone()
+            info["proteome_id"] = entry[0]
+            info["species"] = entry[1]
+            info["source"] = entry[2]
+            info["comments"] = entry[3]
+            info["date"] = entry[4]
+        return info
+
+    def get_seqid_info(self, protid):
+        """ Returns orginal info about a given protid"""
+        cmd = 'SELECT species,protid,proteome_id,name,gene,comments,seq FROM proteins WHERE species="%s" and protid="%s"' \
+            % (protid[:3],protid[3:])
+
+        info = {}
+        if self._SQL.execute(cmd):
+            entry = self._SQL.fetchone()
+            info["species"] = entry[0]
+            info["seqid"] = entry[1]
+            info["proteome_id"] = entry[2]
+            info["name"] = entry[3]
+            info["gene"] = entry[4]
+            info["comments"] = entry[5]
+            info["seq"] = entry[6]
+        return info
+
+    def get_phylome_info(self, phylomeid):
+        """ Returns info on a given phylome"""
+        cmd = 'SELECT seed_proteome,proteomes,DATE(ts),name,description,comments FROM %s WHERE phylome_id="%s" ' %\
+            (self._phylomes_table, phylomeid)
+        info = {}
+        if self._SQL.execute(cmd):
+            all_info = self._SQL.fetchone()
+            info["id"]            = int(phylomeid)
+            info["seed_proteome"] = all_info[0]
+            info["seed_species"]  = all_info[0][:3]
+            info["proteomes"]     = all_info[1]
+            info["name"]          = all_info[3]
+            info["description"]   = all_info[4]
+            info["date"]          = all_info[2]
+            info["comments"]      = all_info[5]
+        return info
+
+    def get_species_info(self, taxid_or_code):
+        """ Returns all information on a given species_code"""
+
+        command = 'SELECT taxid,code,name from species where taxid="%s"' % (taxid_or_code)
+        if self._SQL.execute(command):
+            return self._SQL.fetchone()
+        else:
+            command = 'SELECT taxid,code,name from species where code="%s"' % (taxid_or_code)
+            info = {}
+            if self._SQL.execute(command):
+                entry = self._SQL.fetchone()
+                info["taxid"] = entry[0]
+                info["code"] = entry[1]
+                info["name"] = entry[2]
+            return info
+
+    def get_seed_ids(self, phylome_id, filter_isoforms=True):
+        # WORKS VERY SLOW !!
+        cmd = 'SELECT seed_proteome FROM %s WHERE phylome_id="%s";' % (self._phylomes_table, phylome_id)
+        if self._SQL.execute(cmd):
+            seed_proteome = self._SQL.fetchone()[0]
+            seedids = self.get_seqids_in_proteome(seed_proteome, filter_isoforms=filter_isoforms)
+        else:
+            seedids = []
+        return seedids
+
+    def get_collateral_seeds(self, seqid):
+        cmd = 'SELECT seed_id, phylome_id FROM seed_friends WHERE species="%s" and protid="%s";' %\
+            (seqid[:3],int(seqid[3:]))
+        if self._SQL.execute(cmd):
+            return self._SQL.fetchall()
+        else:
+            return []
+
+    def get_available_trees(self, seqid, collateral=True):
+        trees = {seqid:{}}
+        cmd = 'SELECT phylome_id, method FROM %s WHERE species="%s" AND protid="%s" ' \
+            %(self._trees_table, seqid[:3], seqid[3:])
+        if self._SQL.execute(cmd):
+            for phylome_id, method in self._SQL.fetchall():
+                if phylome_id in trees[seqid]:
+                    trees[seqid][phylome_id].append(method)
+                else:
+                    trees[seqid][phylome_id] = [method]
+
+        if collateral:
+            for cseed, phyid in self.get_collateral_seeds(seqid):
+                cmd = 'SELECT method FROM %s WHERE species="%s" AND protid="%s" and phylome_id ="%s" ' \
+                    %(self._trees_table, cseed[:3], cseed[3:], phyid)
+                if self._SQL.execute(cmd):
+                    trees[cseed] = {}
+                    trees[cseed][phyid] = [method[0] for method in self._SQL.fetchall()]
+        return trees
+
+    def get_available_trees_by_phylome(self, seqid, collateral=True):
+        trees = {seqid:{}}
+        cmd = 'SELECT phylome_id, method FROM %s WHERE species="%s" AND protid="%s" ' \
+            %(self._trees_table, seqid[:3], seqid[3:])
+
+        phyid2trees = {}
+        if self._SQL.execute(cmd):
+            for phylome_id, method in self._SQL.fetchall():
+                if phylome_id not in phyid2trees:
+                    phyid2trees[phylome_id] = {seqid: [method]}
+                elif seqid in phyid2trees[phylome_id]:
+                    phyid2trees[phylome_id][seqid].append(method)
+                elif seqid not in phyid2trees[phylome_id]:
+                    phyid2trees[phylome_id][seqid] = [method]
+
+        if collateral:
+            for cseed, phyid in self.get_collateral_seeds(seqid):
+                cmd = 'SELECT method FROM %s WHERE species="%s" AND protid="%s" and phylome_id ="%s" ' \
+                    %(self._trees_table, cseed[:3], cseed[3:], phyid)
+                if self._SQL.execute(cmd):
+                    phyid2trees.setdefault(phyid, {})[cseed] = [method[0] for method in self._SQL.fetchall()]
+
+        return phyid2trees
+
+    def get_available_trees_in_phylome(self, seqid, phylomeid):
+        trees = {seqid:{}}
+        cmd = 'SELECT method, lk FROM %s WHERE species="%s" AND protid="%s" AND phylome_id=%s' \
+            %(self._trees_table, seqid[:3], seqid[3:], phylomeid)
+        if self._SQL.execute(cmd):
+            return dict(self._SQL.fetchall())
+        else:
+            return {}
+
+    def get_tree(self, protid, method, phylome_id):
+        """ Returns the method-tree associated to a given protid. """
+
+        cmd = 'SELECT newick,lk FROM %s WHERE phylome_id=%s AND species="%s" AND protid="%s" AND method ="%s"' %\
+            (self._trees_table, phylome_id, protid[:3],protid[3:],method)
+        if self._SQL.execute(cmd):
+            entry = self._SQL.fetchone()
+            nw = entry[0]
+            lk = float(entry[1])
+            t  = PhyloTree(nw)
+        else:
+            t  = None
+            lk = None
+        return t,lk
+    def get_best_tree(self, protid, phylome_id):
+        """ Returns the winner ML tree"""
+
+        likelihoods    = {}
+        winner_model   = None
+        winner_lk      = None
+        winner_newick  = None
+        t = None
+        command ='SELECT newick,method,lk FROM %s WHERE phylome_id=%s AND species="%s" and protid="%s";' \
+            % (self._trees_table,phylome_id, protid[:3], protid[3:])
+        self._SQL.execute(command)
+        result = self._SQL.fetchall()
+        for r in result:
+            nw,m,lk = r
+            if lk < 0:
+                likelihoods[m] = lk
+                if  winner_lk==None or lk > winner_lk:
+                    winner_lk     = lk
+                    winner_model  = m
+                    winner_newick = nw
+        if winner_newick:
+            t = PhyloTree(winner_newick)
+        return winner_model,likelihoods,t
+    def get_algs(self, protid, phylome_id):
+        """ Given a protID, it returns a tuple with the raw_alg, clean_alg and
+        the number of seqs included.
+        """
+
+        command = 'SELECT raw_alg,clean_alg,seqnumber FROM %s WHERE phylome_id=%s AND species="%s" AND protid="%s"' %\
+            (self._algs_table, phylome_id, protid[:3],protid[3:])
+        self._SQL.execute(command)
+        return self._SQL.fetchone()
+
+    def get_raw_alg(self, protid, phylome_id):
+        """ Given a protID, it returns a tuple with the raw_alg and
+        the number of seqs included.
+        """
+
+        command = 'SELECT raw_alg,seqnumber FROM %s WHERE phylome_id=%s AND species="%s" AND protid="%s"' %\
+            (self._algs_table, phylome_id, protid[:3],protid[3:])
+        if self._SQL.execute(command):
+            return self._SQL.fetchone()
+
+    def get_clean_alg(self, protid, phylome_id):
+        """ Given a protID, it returns a tuple with the clean_alg and
+        the number of seqs included.
+        """
+
+        command = 'SELECT clean_alg,seqnumber FROM %s WHERE phylome_id=%s AND species="%s" AND protid="%s"' %\
+            (self._algs_table, phylome_id, protid[:3],protid[3:])
+        if self._SQL.execute(command):
+            return self._SQL.fetchone()
+
+
+    def get_phylome_trees(self, phylomeid):
+        cmd = 'SELECT species, protid, method from %s where phylome_id=%s' \
+            %(self._trees_table,phylomeid)
+        method2seqid = {}
+        if self._SQL.execute(cmd):
+            for sp, protid, method in self._SQL.fetchall():
+                method2seqid.setdefault(method, []).append("%s%07d" %(sp, protid))
+        return method2seqid
+    def get_phylome_algs(self, phylomeid):
+        cmd = 'SELECT species, protid from %s where phylome_id =%s' \
+            %(self._algs_table, phylomeid)
+        if self._SQL.execute(cmd):
+            return self._SQL.fetchall()
+        else:
+            return ()
+
+    def count_trees(self, phylomeid):
+        cmd = 'SELECT method,count(*) from %s where phylome_id=%s GROUP BY method' \
+            %(self._trees_table,phylomeid)
+        counter = {}
+        if self._SQL.execute(cmd):
+            for method, n in self._SQL.fetchall():
+                counter[method] = n
+        return counter
+
+    def count_algs(self, phylomeid):
+        cmd = 'SELECT count(*) from %s where phylome_id=%s;' \
+            %(self._algs_table,phylomeid)
+        if self._SQL.execute(cmd):
+            return  self._SQL.fetchone()[0]
+        else:
+            return 0
+
+    def get_orthologs(self, seqid, sp2age=None):
+        """ Returns the orthology predictions of the given seqid in all
+        phylomes.
+
+        Only seed trees will be used to detect orthologies, and trees will
+        be rooted as the default policy defined in the API. If phylome has
+        an asociated dictionary of species ages,
+        root_to_farthest_oldest_leaf algorithm will be applied. Otherwise,
+        midpoint is used.
+
+        You can also provide your own species age dictionary to force the
+        rooting of the trees according to such data.
+
+
+        ARGUMENTS:
+        ==========
+
+         seqid: the ID of a sequence in the phylomeDB format.
+          i.e. Hsa0000001
+
+         sp2age: a dictionary of species code ages (key=species_code,
+          value=age).  i.e. {"Hsa":1, "Dme":4, "Ath":10}
+
+        RETURNS:
+        =========
+
+        A dictionary of orthologs and inparalogs found in each scanned
+        phylomes.
+
+         """
+        phylome2or = {}
+        if type(seqid) == str:
+            seqid = [seqid]
+        for sid in seqid:
+            avail_trees = self.get_available_trees(sid)
+            for seedid, phylomes in six.iteritems(avail_trees):
+                if seedid != sid:
+                    continue # Skips collateral trees!!
+                for phyid in phylomes:
+                    # Get the tree for each seed id
+                    method, lks, t = self.get_best_tree(seedid, phyid)
+                    # Roots the tree according to a predefined criterion
+                    if sp2age is not None:
+                        outgroup = t.get_farthest_oldest_leaf(sp2age)
+                        t.set_outgroup(outgroup)
+                    elif phyid in ROOTED_PHYLOMES:
+                        outgroup = t.get_farthest_oldest_leaf( ROOTED_PHYLOMES[phyid] )
+                        t.set_outgroup(outgroup)
+                    else:
+                        t.set_outgroup(t.get_midpoint_outgroup())
+
+                    # Catches the node for our id (not necesarily the
+                    # seedid) and obtains its evol events
+                    seed_node = t.get_leaves_by_name(sid)[0]
+                    evol_events = seed_node.get_my_evol_events()
+                    # Predictions are sorted by species.
+                    sp2or = {}
+                    sp2in = {}
+                    or2in = {}
+                    for e in [x for x in evol_events if x.etype=="S"]:
+                        for o in e.orthologs:
+                            sp = o[:3]
+                            # orthologs sorted by species
+                            sp2or.setdefault(sp, set([])).add(o)
+
+                            # inparalogs sorted by orthologs
+                            or2in.setdefault(o, set([])).update(e.inparalogs)
+
+                            # inparalogs sorted by orthologs
+                            sp2in.setdefault(sp, set([])).update(e.inparalogs)
+
+                    phylome2or[phyid] = [sp2or, sp2in, or2in]
+        return phylome2or
diff --git a/ete3/phylomedb/phylomeDB3.py b/ete3/phylomedb/phylomeDB3.py
new file mode 100644
index 0000000..2f93513
--- /dev/null
+++ b/ete3/phylomedb/phylomeDB3.py
@@ -0,0 +1,1507 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+"""
+'phylomeDB3' provides an access API to the data stored in the phylogenetic
+database PhylomeDB *[1][2].
+
+Methods to perform queries are implemented within the PhylomeDB3Connector class.
+
+ *[1] PhylomeDB: a database for genome-wide collections of gene phylogenies.
+      Jaime Huerta-Cepas, Anibal Bueno, Joaquin Dopazo and Toni Gabaldon.
+      Nucleic acids research (database issue). 2008.
+
+ *[2] PhylomeDB v3.0: an expanding repository of genome-wide collections of
+      trees, alignments and phylogeny-based orthology and paralogy predictions.
+      Jaime Huerta-Cepas, Salvador Capella-Gutierrez, Leszek P. Pryszcz, Ivan
+      Denisov, Diego Kormes, Marina Marcet-Houben and Toni Gabaldon T.
+      Nucleic acids research (database issue). 2010.
+
+      PhylomeDB is a database of complete phylomes derived for different genomes
+      within a specific taxonomic range. All phylomes in the database are built
+      using a high-quality phylogenetic pipeline that includes evolutionary
+      model testing and alignment trimming phases. For each genome, PhylomeDB
+      provides the alignments, phylogentic trees and tree-based orthology
+      predictions for every single encoded protein.
+"""
+from __future__ import absolute_import
+import re
+import MySQLdb
+from string import strip
+from .. import PhyloTree
+import six
+from six.moves import map
+
+def extract_species_name(name):
+  return name.split("_")[1]
+
+ID_PATTERN = re.compile("^[Pp][Hh][Yy]\w{7}(_\w{2,7})?$")
+ITERABLE_TYPES = set([list, set, tuple, frozenset])
+
+__all__ = ["PhylomeDB3Connector"]
+
+
+class Phylome(object):
+  def __str__(self):
+    info = "Phylome %s (%s)\n" %(self.phyid,self.name) +\
+        " seed species: %s\n" %(self.tax2name[self.seed_taxid]) +\
+        " seed proteome: %s\n" %(self.seed_proteome) +\
+        " Species: %d\n" %len(self.species) +\
+        " Seed sequences: %d\n" %len(self.seed_ids) +\
+        " Trees: %d\n" %len(self.trees) +\
+        " Proteome list: %s\n" %','.join(self.proteomes)
+    return info
+
+  def __init__(self, phyid, connector, filter_isoforms=True):
+    self.filter_isoforms = filter_isoforms
+    self._conn = connector
+    self._dsql = connector.cursor(MySQLdb.cursors.DictCursor)
+    self._lsql = connector.cursor(MySQLdb.cursors.Cursor)
+
+    # Get seed ids
+    cmd = 'SELECT seed_taxid, seed_version, name, description, comments FROM phylome' +\
+        ' WHERE phylome_id = %s' % (phyid)
+    self._dsql.execute(cmd)
+    phyinfo = self._dsql.fetchone()
+    self.phyid = phyid
+    self.seed_taxid = phyinfo["seed_taxid"]
+    self.prot_vs = phyinfo["seed_version"]
+    self.name = phyinfo["name"]
+    self.description = phyinfo["description"]
+    # Phylome content
+    cmd = 'SELECT taxid, version FROM phylome_content' +\
+        ' WHERE phylome_id = %s' % (phyid)
+    self._lsql.execute(cmd)
+    phycontent = self._lsql.fetchall()
+    self.species = [int(e[0]) for e in phycontent]
+
+    # Species info
+    cmd = 'SELECT taxid, code, name FROM species' +\
+        ' WHERE taxid IN (%s);' %','.join(map(str, self.species))
+    self._lsql.execute(cmd)
+    sp_info = self._lsql.fetchall()
+    self.tax2name = {}
+    self.tax2code = {}
+    self.code2tax = {}
+    for taxid, code, name in sp_info:
+      self.tax2name[taxid] = name
+      self.tax2code[taxid] = code
+      self.code2tax[code] = taxid
+    self.proteomes = [self.tax2code[e[0]]+str(e[1]) for e in phycontent]
+    self.seed_proteome = "%s%d" %(self.tax2code[self.seed_taxid], self.prot_vs)
+
+    # Seed ids
+    if self.filter_isoforms:
+      cmd =  'SELECT DISTINCT CONCAT("Phy", i.longest, "_", s.code) AS protid '
+      cmd += 'FROM protein AS p, isoform AS i, species AS s WHERE p.taxid = '
+      cmd += '%s AND p.version = %s AND p.protid = i.isoform' % (self.seed_taxid, self.prot_vs)
+      cmd += ' AND p.version = i.version AND p.taxid = s.taxid'
+    else:
+      cmd =  'SELECT DISTINCT CONCAT("Phy", protid, "_", code) AS protid FROM '
+      cmd += 'protein AS p, species AS s WHERE p.taxid = %s AND p.' % (self.seed_taxid)
+      cmd += 'version = %s AND p.taxid = s.taxid' % (self.prot_vs)
+
+    self._lsql.execute(cmd)
+    self.seed_ids = [e[0] for e in self._lsql.fetchall()]
+    self.load_trees()
+
+  def load_trees(self, seqnames=None, model="best_lk", anotate_trees = True):
+    """
+    Returns all newick tree for the given set of seqnames and
+    model. If no seqnames are provided, all available trees in the
+    phylome is returned.
+    """
+    def clean_name(name):
+      quote = lambda x: '"%s"' %x
+      m = re.search("Phy(\w{7})_[\w\d]+", name)
+      if m:
+        return quote(m.groups()[0])
+
+    if not seqnames:
+      seqids =  list(map(clean_name, self.seed_ids))
+    else:
+      seqids =  list(map(clean_name, seqnames))
+
+    tree_table = "tree"
+    cmd = 'SELECT  temp.protid, temp.method, temp.lk, temp.newick from ' +\
+        ' (SELECT T.protid , T.method, T.newick, T.lk FROM %s AS T WHERE' %(tree_table) +\
+        ' T.phylome_id = %s AND T.protid IN (%s)' %(self.phyid, ','.join(seqids)) +\
+        ' ORDER BY lk DESC) AS temp GROUP BY protid; '
+
+    self.trees = {}
+    if self._lsql.execute(cmd):
+      seed_code = self.tax2code[self.seed_taxid]
+      for protid, method, lk, nw in self._lsql.fetchall():
+        seqid = "Phy%s_%s" %(protid, seed_code)
+        self.trees[seqid] = [nw, method, lk]
+        #t.add_features(lk=lk, method=method)
+
+  def get_algs(self, seqid, atype="clean"):
+    pass
+
+  def get_seed_species(self):
+    pass
+
+
+class PhylomeDB(object):
+  def __init__(self, host = "84.88.66.245", db = "phylomedb_3", user = "public",
+    passwd = "public", port = 3306):
+    """ Connect to a phylomeDB database and return an object to perform queries
+        to the database.
+    """
+    # Establish the connection to the MySQL database where phylomeDB is stored.
+    try:
+      self._SQLconnection = MySQLdb.connect(host = host, user = user, passwd = \
+        passwd, db = db, port = int(port))
+    except:
+      raise NameError("ERROR: Check your connection parameters")
+
+    self._SQL = self._SQLconnection.cursor(MySQLdb.cursors.DictCursor)
+
+    # Store the connection parameters to use it if the connection is lost.
+    self.db = db
+    self.host = host
+    self.user = user
+    self.port = port
+    self.passwd = passwd
+
+    # Define the different database views depending on the user profile
+    self._trees = "tree_public"
+    self._algs = "alignment_public"
+    self._phylomes = "phylome_public"
+    self._phy_content = "phycontent_public"
+
+  def get_phylome(self, phyid):
+    pass
+
+  def get_proteomes(self, protids=[]):
+    pass
+
+  def get_seqs(self, seqids=[]):
+    'get aa sequence of seqids'
+    pass
+
+  def search_trees(self, seqid, include_collateral=True):
+    'Returns all available trees for seqid'
+    pass
+
+
+
+
+
+
+class PhylomeDB3Connector(object):
+  """ Returns a connector to a phylomeDB3 database.
+
+  ARGUMENTS:
+  ==========
+    db: database name in the host server.
+    host: hostname in which phylomeDB is hosted.
+    user: username to the database.
+    port: port used to connect database.
+    passwd: password to connect database.
+
+  RETURNS:
+  ========
+    An object whose methods can be used to query the database.
+  """
+
+  #########
+  def _get_phylome(self, phyid):
+    return Phylome(phyid, connector = self._SQLconnection)
+
+  ##########
+
+  def __init__(self, host = "84.88.66.245", db = "phylomedb_3", user = "public",
+    passwd = "public", port = 3306):
+    """ Connect to a phylomeDB database and return an object to perform queries
+        to the database.
+    """
+
+    # Establish the connection to the MySQL database where phylomeDB is stored.
+    try:
+      self._SQLconnection = MySQLdb.connect(host = host, user = user, passwd = \
+        passwd, db = db, port = int(port))
+    except:
+      raise NameError("ERROR: Check your connection parameters")
+
+    self._SQL = self._SQLconnection.cursor(MySQLdb.cursors.DictCursor)
+
+    # Store the connection parameters to use it if the connection is lost.
+    self.db = db
+    self.host = host
+    self.user = user
+    self.port = port
+    self.passwd = passwd
+
+    # Define the different database views depending on the user profile
+    self._trees = "tree_public"
+    self._algs = "alignment_public"
+    self._phylomes = "phylome_public"
+    self._phy_content = "phycontent_public"
+
+  def __execute__(self, command):
+    """ Check whether a given connection is still open or not. If the connection
+        has been closed by the server, try to recover it. Then, execute the
+        input MySQL query
+    """
+
+    ## Try to either refresh an open cursor or reconnect to the database.
+    try:
+      self._SQL = self._SQLconnection.cursor(MySQLdb.cursors.DictCursor)
+    except:
+      try:
+        self._SQLconnection = MySQLdb.connect(host = self.host,  db = self.db, \
+          user = self.user, passwd = self.passwd, port = int(self.port))
+      except:
+        raise NameError("ERROR: Impossible to reconnect to the database")
+      else:
+        self._SQL = self._SQLconnection.cursor(MySQLdb.cursors.DictCursor)
+
+    ## If it is possible to get a cursor, execute the command
+    return self._SQL.execute(command)
+
+  def __execute_block__(self, commands):
+    """ Executes a multi-line MySQL query
+    """
+
+    ## Retrieve the different MySQL lines and split it in an appropiate way
+    for query in [l for l in map(strip, commands.split(";")) if l]:
+      if not self.__execute__(query):
+        raise NameError("__execute_block__ An error occurred during a MySQL op")
+
+  def __fomat_MySQL_to_dict__(self, index, dict):
+    """ Takes as an input the result of a MySQL query and returns a dictionary
+        using as a key one of the values from the MySQL results
+    """
+
+    ## Check whether the input data has the appropiate format <a tuple of dicts>
+    ## Check as well if the key is present inside of each dict
+    if type(dict) != tuple:
+      msg = "__format_MySQL_to_dict__ Check the input structure datatype. "
+      raise NameError(("%s It should be a 'tuple'") % (msg))
+    for entry in dict:
+      if not index in entry:
+        raise NameError("__format_MySQL_to_dict__ Define the index")
+
+    formatted_dict = {}
+    ## Format the input data
+    for entry in dict:
+      formatted_dict[entry[index]] = entry
+      del formatted_dict[entry[index]][index]
+    return formatted_dict
+
+  def __parser_ids__(self, ids):
+    """ Returns a string with the input id/s ready to be used in any MySQL query
+    """
+    if not ids:
+      raise NameError(("__parser_ids__: Check your input data '%s'") % str(ids))
+    # Define a function to manage the different ids
+    parser = lambda id: id[3:10] if ID_PATTERN.match(id) else None
+
+    ids = [ids] if type(ids) == str else ids
+    ## If the ids belongs to one of the predefined iterable types,
+    ## try to convert each member in a valid phylomeDB code
+    if type(ids) in ITERABLE_TYPES:
+      parsed = ', ' .join(['"%s"' % parser(n) for n in ids if parser(n)])
+      return parsed if parsed else None
+
+    raise NameError(("__parser_ids__: Check your input data '%s'") % str(ids))
+
+  def __check_input_parameter__(self, **kargs):
+    """ Check the different input parameters
+    """
+
+    ## Define the available checks
+    valid_keys = set(["str_number", "single_id", "list_id", "code", "string", \
+      "boolean", "number"])
+
+    ## Check that all input keys have associated an verification clause
+    if set(kargs) - valid_keys != set():
+      raise NameError("check_input_parameter: Invalid datatype")
+
+    ## Check whether all input parameters has a value
+    ## Although it is permitted for some 'keys' have 'None' as a value
+    for key in kargs:
+      if key not in ["number", "string"] and not kargs[key]:
+        if kargs[key] not in [0, "", False]:
+          return False
+
+    ## Check whether the value is either a positive integer number
+    if "number" in kargs:
+      if kargs["number"]:
+        if not str(kargs["number"]).isdigit() or str(kargs["number"]) == "0":
+          return False
+    ## ... or a integer number greater or equal to zero
+    if "str_number" in kargs and not str(kargs["str_number"]).isdigit():
+      return False
+    ## ... or a boolean number
+    if "boolean" in kargs and type(kargs["boolean"]) != bool:
+      return False
+
+    ## Check whether the input parameter should be an single phylomeDB ID
+    if "single_id" in kargs:
+      if not self.__parser_ids__(kargs["single_id"]) or \
+        type(kargs["single_id"]) != str:
+        return False
+    ## ... or it could be a list of, at least, phylomeDB IDs
+    if "list_id" in kargs and not self.__parser_ids__(kargs["list_id"]):
+      return False
+
+    ## Check if a single string has been given as an input parameter
+    if "string" in kargs:
+      if kargs["string"]:
+        if type(kargs["string"]) != str or len(kargs["string"].split()) > 1:
+          return False
+
+    ## Return true if and only if all input parameters are well-constructed
+    return True
+
+  def get_external_ids(self, ids):
+    """ Returns all the external IDs registered in the 'external_id' table that
+        are associated to the input phylomeDB IDs
+    """
+
+    ids = self.__parser_ids__(ids)
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) as protid, '
+    cmd += 'external_db AS db, external_id AS id FROM protein AS p, species AS '
+    cmd += 's, external_id AS ex WHERE p.protid IN (%s) AND p.taxid = ' % (ids)
+    cmd += 's.taxid AND p.protid = ex.protid'
+
+    external_ids = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        external_ids.setdefault(row["protid"], {})
+        external_ids[row["protid"]].setdefault(row["db"], set()).add(row["id"])
+
+    for protid in external_ids:
+      for key in external_ids[protid]:
+        external_ids[protid][key] = list(external_ids[protid][key])
+
+    return external_ids
+
+  def get_go_ids(self, ids):
+    """ Returns all available GO Terms associated to the input phylomeDB IDs
+    """
+
+    ids = self.__parser_ids__(ids)
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) as protid, '
+    cmd += 'external_db AS db, CONCAT("GO:", go_term) AS go FROM protein AS p, '
+    cmd += 'species AS s, go WHERE p.protid IN (%s) AND p.taxid = s.' % (ids)
+    cmd += 'taxid AND p.protid = go.protid'
+
+    external_ids = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        external_ids.setdefault(row["protid"], {})
+        external_ids[row["protid"]].setdefault(row["db"], set()).add(row["go"])
+
+    for protid in external_ids:
+      for key in external_ids[protid]:
+        external_ids[protid][key] = list(external_ids[protid][key])
+
+    return external_ids
+
+  def get_old_phylomedb_ids(self, ids):
+    """ Returns all old phylomeDB IDs associated to each of the input phylomeDB
+        IDs
+    """
+
+    ids = self.__parser_ids__(ids)
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) as protid, '
+    cmd += 'CONCAT(old_code, LPAD(old_protid, 7, "0")) AS old_code FROM protein'
+    cmd += ' AS p, species AS s, old_protein AS old WHERE p.protid IN '
+    cmd += '(%s) AND p.taxid = s.taxid AND p.protid = old.protid' % (ids)
+
+    old_ids = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        old_ids.setdefault(row["protid"], {}).setdefault("old_phylomedb", set())
+        old_ids[row["protid"]]["old_phylomedb"].add(row["old_code"])
+
+    for protid in old_ids:
+      for key in old_ids[protid]:
+        old_ids[protid][key] = list(old_ids[protid][key])
+
+    return old_ids
+
+  def get_prot_gene_names(self, ids):
+    """ Returns all possible protein and gene names associated to the input
+        phylomeDB IDs
+    """
+
+    ids = self.__parser_ids__(ids)
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) as protid, '
+    cmd += 'prot_name, gene_name FROM protein AS p, species AS s WHERE p.protid'
+    cmd += ' IN (%s) AND p.taxid = s.taxid' % (ids)
+
+    name = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        if row["prot_name"]:
+          name.setdefault(row["protid"], {}).setdefault("protein_name", set())
+          name[row["protid"]]["protein_name"].add(row["prot_name"])
+        if row["gene_name"]:
+          name.setdefault(row["protid"], {}).setdefault("gene_name", set())
+          name[row["protid"]]["gene_name"].add(row["gene_name"])
+
+    for protid in name:
+      for key in name[protid]:
+        name[protid][key] = list(name[protid][key])
+
+    return name
+
+  def get_new_phylomedb_id(self, old_id):
+    """ Return the conversion between an old phylomeDB ID and a new one
+    """
+
+    # Check whether the input code is a valid former phylomeDB id or not
+    QUERY_OLD_REGEXP_FILTER = "^\w{3}\d{1,}$"
+    if not re.match(QUERY_OLD_REGEXP_FILTER, old_id):
+      return None
+
+    # Look if the given code can be mapped into the phylomeDB dabatase
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) as protid FROM old_'
+    cmd += 'protein AS p, species AS s WHERE (s.taxid = p.taxid AND p.old_code '
+    cmd += '= "%s" AND p.old_protid = %s)' % (old_id[:3], old_id[3:])
+
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()["protid"]
+    return None
+
+  def get_info_homologous_seqs(self, protid, phylome_id, tree = None, \
+    tree_method = False, sequence = False):
+    """ Return all the available information for a given set of homologous
+        sequences extracted from a tree from a given phylome.
+    """
+
+    ## Depending on the input parameters, recover the best tree for the
+    ## input phylomeDB ID in the input phylomeDB. Otherwise, the function
+    ## will try to recover the tree reconstructed under the model specific
+    data = {}
+
+    if tree == None:
+      tree_db = self.get_tree(protid, phylome_id, best_tree = True)
+
+    elif tree and not tree_method:
+      tree_db = self.get_tree(protid, phylome_id, best_tree = True)
+
+    elif tree and tree_method:
+      tree_db = self.get_tree(protid, phylome_id, method = tree_method)
+
+    ## Check whether it has been possible to recover a tree from the database
+    if not tree_db:
+      return data
+    else:
+      method = list(tree_db.keys())[0]
+
+    ## If it has been required, store the tree in an appropiate data structure.
+    if tree:
+      data.setdefault("tree", {})
+      data["tree"]["method"] = method
+      data["tree"]["lk"] = tree_db[method]["lk"]
+      data["tree"]["tree"] = tree_db[method]["tree"]
+      data["tree"]["best"] = True if not tree_method else False
+
+    ## Recover the leaf names taking into account that there is information
+    ## associated to the sequence while there is another information associated
+    ## for each copy of the sequence.
+    leaves = tree_db[method]["tree"].get_leaf_names()
+    ids = set(["_".join(name.split("_")[:2]) for name in leaves])
+    protids = self.__parser_ids__(ids)
+
+    ## Establish whether the tree contains more than one copy for each sequence
+    ## and if the tree leaf names reflect that situation or not
+    copy_var_support = True if len(leaves) == len(set(leaves)) else False
+
+    ## Join and retrieve all the information available in the database for the
+    ## unique sequences in the set
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, s.code, CONC'
+    cmd += 'AT(s.code, ".", p.version) AS proteome, p.taxid, p.version, s.name,'
+    cmd += ' MAX(copy) AS copy, count(DISTINCT method) AS trees, count(DISTINCT'
+    cmd += ' sf.protid, sf.phylome_id) AS collat FROM (protein AS p, species AS'
+    cmd += ' s, %s AS ph, %s AS pc) LEFT ' % (self._phylomes,self._phy_content)
+    cmd += 'JOIN %s AS t ON (p.protid = t.protid) LEFT JOIN ' % (self._trees)
+    cmd += 'seed_friend AS sf ON (p.protid = sf.friend_id) WHERE (p.protid IN '
+    cmd += '(%s) AND p.taxid = s.taxid AND p.taxid = ' % (protids)
+    cmd += 'pc.taxid AND pc.phylome_id = %s AND ph.phylome_id = ' % (phylome_id)
+    cmd += 'pc.phylome_id AND pc.version = p.version) GROUP BY p.protid'
+
+    if self.__execute__(cmd):
+      data.setdefault("seq", {})
+      for row in self._SQL.fetchall():
+        data["seq"].setdefault(row["protid"], {})
+
+        data["seq"][row["protid"]]["copy"] = row["copy"]
+        data["seq"][row["protid"]]["trees"] = row["trees"]
+        data["seq"][row["protid"]]["taxid"] = row["taxid"]
+        data["seq"][row["protid"]]["proteome"] = row["proteome"]
+        data["seq"][row["protid"]]["collateral"] = row["collat"]
+        data["seq"][row["protid"]]["species_name"] = row["name"]
+        data["seq"][row["protid"]]["species_code"] = row["code"]
+
+    ## In some cases, it is necessary as well to recover the protein sequence
+    ## for each unique homologous sequence.
+    if sequence:
+
+      cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, seq FROM '
+      cmd += 'protein AS p, species AS s, unique_protein AS u WHERE(p.protid IN'
+      cmd += ' (%s) AND p.taxid = s.taxid AND p.protid = u.protid)' % (protids)
+      if self.__execute__(cmd):
+        for row in self._SQL.fetchall():
+          data["seq"][row["protid"]]["seq"] = row["seq"]
+
+    ## Retrieve the external ids for all the unique sequences in the tree
+    for protid, external in six.iteritems(self.get_external_ids(ids)):
+      data["seq"][protid].setdefault("external", {})
+      data["seq"][protid]["external"] = external
+
+    for protid, external in six.iteritems(self.get_go_ids(ids)):
+      data["seq"][protid].setdefault("external", {})
+      data["seq"][protid]["external"].update(external)
+
+    for protid, external in six.iteritems(self.get_old_phylomedb_ids(ids)):
+      data["seq"][protid].setdefault("external", {})
+      data["seq"][protid]["external"].update(external)
+
+    for protid, external in six.iteritems(self.get_prot_gene_names(ids)):
+      data["seq"][protid].setdefault("external", {})
+      data["seq"][protid]["external"].update(external)
+
+    ## The sequence name is as well stored to considerer how many times a given
+    ## sequence has been used. That is related to copy number variation cases
+    data.setdefault("leaf_names", leaves)
+
+    ## Recover additional information for all leaves in the tree such as
+    ## gene/protein names or copy number
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, copy, '
+    cmd += 'prot_name, gene_name FROM protein AS p, species AS s, '
+    cmd += '%s AS ph, %s AS pc WHERE (p.' % (self._phylomes, self._phy_content)
+    cmd += 'protid IN (%s) AND p.taxid = s.taxid AND p.taxid = pc.' % (protids)
+    cmd += 'taxid AND pc.phylome_id = %s AND ph.phylome_id = pc.' % (phylome_id)
+    cmd += 'phylome_id AND pc.version = p.version)'
+
+    ## Get specificy information for each tree's leaf, the information will be
+    ## the same that for an unique sequence if the copy_var_support is not
+    ## set up in advance. The copy_var_support points when there are more than
+    ## one copy for at least one unique sequence in the tree and specific
+    ## information for each copy can be put it in the tree
+    if self.__execute__(cmd):
+      data.setdefault("leaves", {})
+
+      for row in self._SQL.fetchall():
+        code = row["protid"]
+
+        if data["seq"][row["protid"]]["copy"] > 1 and copy_var_support:
+          #code += ("_%d") % (row["copy"])
+          pass
+        if not copy_var_support and row["copy"] > 1 or not code in leaves:
+          continue
+
+        data["leaves"].setdefault(code, {})
+        data["leaves"][code]["gene"] = row["gene_name"]
+        data["leaves"][code]["protein"] = row["prot_name"]
+        data["leaves"][code]["copy_version"] = row["copy"]
+
+    return data
+
+  def get_all_isoforms(self, id):
+    """ Returns all the isoforms registered for the input phylomeDB ID
+    """
+
+    ## Check if the protein id is well-constructed
+    if not self.__check_input_parameter__(single_id = id):
+      raise NameError("get_all_isoforms: Check your input data")
+    protid = self.__parser_ids__(id)
+
+    ## Look for different isoforms asocciated to the input phylomeDB ID
+    cmd =  'SELECT CONCAT("Phy", isoform) AS i, CONCAT("Phy", longest) AS l '
+    cmd += 'FROM isoform WHERE(isoform = %s OR longest = %s)' % (protid, protid)
+
+    ## Try to get the isoform for the input ID. Otherwise, return an empty dict
+    if not self.__execute__(cmd):
+      return {}
+    ids = self.__parser_ids__([r[k] for r in self._SQL.fetchall() for k in r])
+
+    ## Recover some details about every isoform
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", code) AS protid, LENGTH(seq) '
+    cmd += 'AS ln FROM protein AS p, species AS s, unique_protein AS u WHERE p.'
+    cmd += 'protid IN (%s) AND p.protid = u.protid AND p.taxid = s.taxid' %(ids)
+
+    isoforms = {}
+    ## Store the information about each isoform if it is not the input one
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        isoforms[row["protid"]] = int(row["ln"])
+    return isoforms
+
+  def get_longest_isoform(self, id):
+    """ Returns the longest isoform for a given phylomeDB ID
+    """
+
+    # Check if the ID is well-constructed
+    if not self.__check_input_parameter__(single_id = id):
+      raise NameError("get_longest_isoform fuction: Check your input data")
+    protid = self.__parser_ids__(id)
+
+    # Look for different isoforms asocciated to the same gene/protein
+    cmd  = 'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) as protid, s.'
+    cmd += 'code, p.version FROM protein AS p, species AS s, isoform AS i '
+    cmd += 'WHERE (i.longest = p.protid AND i.version = p.version AND p.taxid '
+    cmd += '= s.taxid AND i.isoform = %s)' % (protid)
+
+    isoforms = {}
+    # Return the longest available isoforms for each proteome where the ID is
+    # already register
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        isoforms.setdefault(row["code"], {}).setdefault(int(row["version"]), [])
+        isoforms[row["code"]][int(row["version"])].append(row["protid"])
+    return isoforms
+
+  def get_id_by_external(self, external):
+    """ Returns the protein id associated to a given external id
+    """
+
+    if not self.__check_input_parameter__(code = external):
+      raise NameError("get_id_by_external: Check your input data")
+
+    ## Look at external_db table for any available conversion
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", code) AS protid FROM '
+    cmd += 'external_id AS e, protein AS p, species AS s WHERE (e.external_id '
+    cmd += '= "%s" AND e.protid = p.protid AND p.taxid = s.taxid)' % (external)
+
+    ids = {}
+    ## Recover any available translation
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        for sp, proteome in six.iteritems(self.get_longest_isoform(row["protid"])):
+          for id, proteins in six.iteritems(proteome):
+            ids.setdefault(sp, {}).setdefault(id, [])
+            ids[sp][id] += proteins
+
+    ## Extend the information looking at protein and gene names in the protein
+    ## table
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", code) AS protid FROM '
+    cmd += 'protein AS p, species AS s WHERE ((prot_name = "%s" OR' % (external)
+    cmd += ' gene_name = "%s") AND p.taxid = s.taxid)' % (external)
+
+    ## Recover any available translation
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        for sp, proteome in six.iteritems(self.get_longest_isoform(row["protid"])):
+          for id, proteins in six.iteritems(proteome):
+            ids.setdefault(sp, {}).setdefault(id, [])
+            ids[sp][id] += proteins
+
+    for sp in ids:
+      for proteome in ids[sp]:
+        ids[sp][proteome] = list(set(ids[sp][proteome]))
+
+    return ids
+
+  def search_id(self, id):
+    """ Returns a list of the longest isoforms for each proteome where the ID is
+        already registered. The ID can be a current phylomeDB ID version, former
+        phylomeDB ID or an external ID.
+    """
+
+    # Check if the ID is well-constructed
+    if not self.__check_input_parameter__(string = id):
+      raise NameError("search_id: Check your input data")
+    query = id.strip()
+
+    # To avoid weird queries which creates slow or invalid MYSQL queries
+    QUERY_GEN_REGEXP_FILTER = "^[\w\d\-_,;:.|#@\/\\\()'<>!]+$"
+    QUERY_OLD_REGEXP_FILTER = "^\w{3}\d{1,}$"
+    QUERY_INT_REGEXP_FILTER = "^[Pp][Hh][Yy]\w{7}(_\w{2,7})?$"
+
+    phylomeDB_matches = {}
+    # First, check if it is a current phylomeDB ID
+    if re.match(QUERY_INT_REGEXP_FILTER, query):
+      phylomeDB_matches = self.get_longest_isoform(query)
+
+    # Second, check if it is a former phylomeDB ID
+    if phylomeDB_matches == {} and re.match(QUERY_OLD_REGEXP_FILTER, query):
+      currentID = self.get_new_phylomedb_id(query)
+      if currentID:
+        phylomeDB_matches = self.get_longest_isoform(currentID)
+
+    # Third, check if the query can be mapped using other sources
+    if phylomeDB_matches == {} and re.match(QUERY_GEN_REGEXP_FILTER, query):
+      phylomeDB_matches = self.get_id_by_external(query)
+
+    return phylomeDB_matches
+
+  def get_id_translations(self, id):
+    """ Returns all the registered translations of a given phylomeDB ID
+    """
+
+    # Check if the ID is well-constructed
+    if not self.__check_input_parameter__(single_id = id):
+      raise NameError("get_id_translations: Check your input data")
+
+    conversion = {}
+    ## Look at different external IDs sources and retrieve the available info
+    info = self.get_external_ids(id)
+    if info:
+      conversion.update(info[list(info.keys())[0]])
+
+    info = self.get_go_ids(id)
+    if info:
+      conversion.update(info[list(info.keys())[0]])
+
+    info = self.get_old_phylomedb_ids(id)
+    if info:
+      conversion.update(info[list(info.keys())[0]])
+
+    info = self.get_prot_gene_names(id)
+    if info:
+      conversion.update(info[list(info.keys())[0]])
+
+    return conversion
+
+  def get_translations_for_proteome(self, taxid, version):
+    cmd  = 'SELECT protid, prot_name, gene_name FROM protein WHERE taxid=%d AND version=%d' %\
+        (taxid, version)
+
+    if self.__execute__(cmd):
+      return [(r["protid"], r["prot_name"], r["gene_name"]) for r in self._SQL.fetchall()]
+    else:
+      return []
+
+
+  def get_collateral_seeds(self, protid):
+    """ Return the trees where the protid is presented as part of the homolog
+        sequences to the seed protein
+    """
+
+    # Check if the input phylomeDB ID is well-constructed
+    if not self.__check_input_parameter__(list_id = protid):
+      raise NameError("get_collateral_seeds: Check your input data")
+    protid = self.__parser_ids__(protid)
+
+    ## Recover the tree's seed protein and the phylome ID where the sequence is
+    ## among the homolog sequences
+    cmd  = 'SELECT DISTINCT CONCAT("Phy", p.protid, "_", code) AS protid, sf.'
+    cmd += 'phylome_id AS phylome FROM seed_friend AS sf, species AS s, protein'
+    cmd += ' AS p, %s AS ph WHERE (friend_id IN (%s)' % (self._phylomes, protid)
+    cmd += ' AND sf.protid = p.protid AND p.taxid = s.taxid AND ph.phylome_id ='
+    cmd += ' sf.phylome_id)'
+
+    ## Perform and return the query result
+    if self.__execute__(cmd):
+      return [(r["protid"], r["phylome"]) for r in self._SQL.fetchall()]
+    return []
+
+  def get_tree(self, id, phylome_id, method = None, best_tree = False):
+    """ Depending in the input parameters select either
+        .- a tree with the best evolutionary model in terms of LK (best_tree)
+        .- a tree reconstructed using a specific model (method)
+        .- all available model/trees for the tuple (phylomeDB ID, phylome ID)
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id, str_number = phylome_id):
+      raise NameError("get_tree: Check your input data")
+    protid = self.__parser_ids__(id)
+
+    if method and best_tree:
+      msg =  "get_tree: Impossible to ask for the best model and ask at the "
+      msg += "same time for a specific evolutionary model"
+      raise NameError(msg)
+
+    # Depending in the input parameters select either a tree with the best
+    # evolutionary model in terms of LK, excluiding any possible NJ tree; a tree
+    # reconstructed using a specific model or all available model/trees for the
+    # input ID associated to the input phylome
+    cmd =  'SELECT newick AS tree, method, lk FROM %s WHERE ' % (self._trees)
+    cmd += '(protid = %s AND phylome_id = %s)' % (protid, phylome_id)
+
+    if best_tree:
+      cmd = cmd[:-1] + ' AND method != "NJ") ORDER BY lk DESC LIMIT 1'
+    elif method:
+      cmd = cmd[:-1] + ' AND method = "%s")' % (method)
+
+    trees = {}
+    ## Execute the MySQL query and then format the query result
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        trees.setdefault(row["method"], {})["lk"] = row["lk"]
+        trees.setdefault(row["method"], {})["tree"] = PhyloTree(row["tree"], sp_naming_function=extract_species_name)
+    return trees
+
+  def get_best_tree(self, id, phylome_id):
+    """ return a tree for input id in the given phylome for the best fitting
+        evolutionary model in terms of LK
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id, str_number = phylome_id):
+      raise NameError("get_tree: Check your input data")
+
+    protid = self.__parser_ids__(id)
+    # Select a tree with the best evolutionary model in terms of LK, excluiding
+    # any possible NJ tree; a tree
+    cmd =  'SELECT newick AS tree, method, lk FROM %s WHERE ' % (self._trees)
+    cmd += '(protid = %s AND phylome_id = %s  AND method' % (protid, phylome_id)
+    cmd += ' != "NJ") ORDER BY lk DESC LIMIT 1'
+
+    tree = {}
+    ## Execute the MySQL query and then format the query result
+    if self.__execute__(cmd):
+      tree = self._SQL.fetchone()
+      tree["tree"] = PhyloTree(tree["tree"], sp_naming_function=extract_species_name)
+
+    return tree
+
+  def get_algs(self, id, phylome_id, raw_alg = True, clean_alg = True):
+    """ Return the either the clean, the raw or both alignments for the input
+        phylomeDB ID in the input phylome
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id, str_number = phylome_id):
+      raise NameError("get_algs: Check your input data")
+    protid = self.__parser_ids__(id)
+
+    ## Check whether the function has to return, at least, one alignment
+    if not raw_alg and not clean_alg:
+      return {}
+
+    ## Depending on the input parameters, construct the MySQL query asking for
+    ## either clean, raw or both alignments
+    cmd = "raw_alg, clean_alg" if raw_alg and clean_alg else "raw_alg" \
+      if raw_alg else "clean_alg"
+
+    cmd  = 'SELECT %s, seqnumber FROM %s WHERE ' % (cmd, self._algs)
+    cmd += '(phylome_id = %s AND protid = %s)' % (phylome_id, protid)
+
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()
+    return {}
+
+  def get_raw_alg(self, id, phylome_id):
+    """ Return the raw alignment for the input phylomeDB ID in the given phylome
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id,str_number=phylome_id):
+      raise NameError("get_raw_alg: Check your input data")
+
+    cmd  = 'SELECT raw_alg FROM %s WHERE (phylome_id = ' % (self._algs)
+    cmd += '%s AND protid = %s)' % (phylome_id, self.__parser_ids__(id))
+
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()["raw_alg"]
+    return ""
+
+  def get_clean_alg(self, id, phylome_id):
+    """ Return the raw alignment for the input phylomeDB ID in the given phylome
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id,str_number=phylome_id):
+      raise NameError("get_raw_alg: Check your input data")
+
+    cmd  = 'SELECT clean_alg FROM %s WHERE (phylome_id = ' % (self._algs)
+    cmd += '%s AND protid = %s)' % (phylome_id, self.__parser_ids__(id))
+
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()["clean_alg"]
+    return ""
+
+  def get_seq_info_in_tree(self, id, phylome_id, method = None):
+    """ Return all the available information for each sequence from tree/s
+        asociated to a tuple (protein, phylome) identifiers.
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(single_id = id, string = method, \
+      str_number = phylome_id):
+      raise NameError("get_seq_info_in_tree: Check your input data")
+
+    ## Depending on the input parameter, retrieve the best tree associated to
+    ## the phylomeDB ID in the given phylomeDB or retrieve the tree generated
+    ## under the model indicated in the input parameter. Moreover, all the
+    ## available information in the database for tree leaves
+    if method:
+      return self.get_info_homologous_seqs(id, phylome_id, tree = True, \
+        tree_method = method)
+    else:
+      return self.get_info_homologous_seqs(id, phylome_id, tree = True)
+
+  def get_seq_info_msf(self, id, phylome_id):
+    """ Return all available information for the homologous sequences to the
+        input phylomeDB ID in the input phylome using the best tree to compute
+        the set of homologous sequences
+    """
+
+    ## Check the input parameters
+    if not self.__check_input_parameter__(single_id = id, str_number = phylome_id):
+      raise NameError("get_seq_info_msf: Check your input parameters")
+
+    ## The best tree is used to compute the homologous sequences for the input
+    ## phylomeDB ID and phylome ID. The tree is used to compute possible cases
+    ## of copy number variation where more than one copy for a given sequence
+    ## might be present in the set of homologous
+    return self.get_info_homologous_seqs(id, phylome_id, sequence = True)
+
+  def get_seqid_info(self, id):
+    """ Returns available information about a given protid
+    """
+
+    # Check if the protein id is well-constructed
+    if not self.__check_input_parameter__(single_id = id):
+      raise NameError("Wrong id [%s]" %id)
+    protid = self.__parser_ids__(id)
+
+    ## Join and retrieve all the information available in the database for
+    ## the sequence
+    cmd =  'SELECT DISTINCT CONCAT("Phy", p.protid, "_", s.code) AS protid, s.'
+    cmd += 'code AS species_code, s.name AS species_name, p.taxid, u.seq FROM '
+    cmd += 'protein AS p, unique_protein AS u, species AS s WHERE (p.protid = '
+    cmd += '%s AND p.protid = u.protid AND p.taxid = s.taxid)' % (protid)
+
+    if not self.__execute__(cmd):
+      return {}
+    data = self._SQL.fetchone()
+
+    ## Retrieve the information specific for each proteome version as well as
+    ## for the different copies inside each proteome
+    cmd =  'SELECT version, copy, prot_name, gene_name, comments FROM protein '
+    cmd += 'WHERE protid = %s' % (protid)
+
+    if not self.__execute__(cmd):
+      return {}
+
+    for row in self._SQL.fetchall():
+      proteome = ("%s.%s") % (data["species_code"], row["version"])
+      data.setdefault("proteomes", set()).add(proteome)
+
+      data.setdefault("copy", {}).setdefault(proteome, 0)
+      data["copy"][proteome] = row["copy"] if data["copy"][proteome] < \
+        row["copy"] else data["copy"][proteome]
+
+      if row["prot_name"]:
+        data.setdefault("protein", {}).setdefault(proteome, set()).\
+          add(row["prot_name"])
+
+      if row["gene_name"]:
+        data.setdefault("gene", {}).setdefault(proteome, set()).\
+          add(row["gene_name"])
+
+      if row["comments"]:
+        data.setdefault("comments", {}).setdefault(proteome, set()).\
+          add(row["comments"])
+
+    ## Recover all the isoforms associated to the input phylomeDB ID
+    data["isoforms"] = self.get_all_isoforms(data["protid"])
+
+    ## Look at different external IDs sources and retrieve the available info
+    info = self.get_external_ids(id)
+    data["external"] = info[list(info.keys())[0]] if info else {}
+
+    info = self.get_go_ids(id)
+    if info:
+      data["external"].update(info[list(info.keys())[0]])
+
+    info = self.get_old_phylomedb_ids(id)
+    if info:
+      data["external"].update(info[list(info.keys())[0]])
+
+    info = self.get_prot_gene_names(id)
+    if info:
+      data["external"].update(info[list(info.keys())[0]])
+
+    return data
+
+  def get_available_trees_by_phylome(self, id, collateral = True):
+    """ Returns information about which methods have been used to reconstruct
+        every tree for a given phylomeDB ID grouped by phylome
+    """
+
+    # Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(list_id = id, boolean = collateral):
+      raise NameError("Check your input data")
+    protids = self.__parser_ids__(id)
+
+    ## Retrieve which models were used to reconstructed the trees in each
+    ## phylome where the input phylomeDB ID was used as a seed
+    cmd =  'SELECT DISTINCT phylome_id, method, CONCAT("Phy", p.protid, "_", s.'
+    cmd += 'code) AS protid FROM protein AS p, species AS s, %s' % (self._trees)
+    cmd += ' AS t WHERE (p.protid IN (%s) AND p.protid = t.protid ' % (protids)
+    cmd += 'AND p.taxid = s.taxid)'
+
+    if not self.__execute__(cmd) and not collateral:
+      return {}
+
+    t = {}
+    ## Create a temporary structure to process the data retrieved
+    for r in self._SQL.fetchall():
+      t.setdefault(int(r["phylome_id"]), {})
+      t[int(r["phylome_id"])].setdefault(r["protid"], set()).add(r["method"])
+
+    trees = {}
+    ## Create the definitive data structure where the IDs with the methods used
+    ## to reconstructed each tree are grouped by phylome
+    for phylome in t:
+      trees.setdefault(phylome, [])
+      for protid in t[phylome]:
+        trees[phylome].append([True, protid, [m for m in t[phylome][protid]]])
+
+    ## Retrieve the trees where the input phylomeDB ID has been used as part of
+    ## the set of homologous sequences to make the tree
+    if collateral:
+      for seed, phylome in self.get_collateral_seeds(id):
+        cmd =  'SELECT method FROM %s WHERE protid = ' % (self._trees)
+        cmd += '%s AND phylome_id = %s' % (self.__parser_ids__(seed), phylome)
+        if self.__execute__(cmd):
+          trees.setdefault(int(phylome), []).append([False, seed, [r["method"] \
+            for r in self._SQL.fetchall()]])
+
+    return trees
+
+  def count_trees(self, phylome_id):
+    """ Retuns the frequency of each evolutionary method in the input phylome
+    """
+    # Check if the phylome id is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("count_trees: Check your input data")
+
+    cmd =  'SELECT method, count(*) AS freq FROM %s WHERE ' % (self._trees)
+    cmd += '(phylome_id = %s) GROUP BY method' % (phylome_id)
+
+    if self.__execute__(cmd):
+      return self.__fomat_MySQL_to_dict__("method", self._SQL.fetchall())
+    return {}
+
+  def count_algs(self, phylome_id):
+    """ Returns how many alignments are for a given phylome
+    """
+
+    # Check if the phylomedb id code is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("count_algs: Check your input data")
+
+    cmd =  'SELECT count(*) AS freq FROM %s ' % (self._algs)
+    cmd += 'WHERE phylome_id = %s' % (phylome_id)
+
+    if self.__execute__(cmd):
+      return  int(self._SQL.fetchone()["freq"])
+    return 0
+
+  def get_phylome_trees(self, phylome_id):
+    """ Returns all trees available for a given phylome
+    """
+
+    # Check if the phylome id code is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_phylome_trees: Check your input data")
+
+    ## Get all available trees for a given phylome id
+    cmd =  'SELECT CONCAT("Phy", protid, "_", code) AS protid, method, lk, '
+    cmd += 'newick FROM %s AS t, %s AS ph, ' % (self._trees, self._phylomes)
+    cmd += 'species AS s WHERE (ph.phylome_id = %s AND ph.' % (phylome_id)
+    cmd += 'phylome_id = t.phylome_id AND ph.seed_taxid = s.taxid)'
+
+    trees = {}
+    ## For each phylomeDB ID used as a seed, return the different evolutionary
+    ## model evaluated during the phylogenetic reconstruction as well as the
+    ## phylogenetic tree (an ETE object) and its likelihood
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        trees.setdefault(row["protid"], {}).setdefault(row["method"], \
+          [row["lk"], PhyloTree(row["newick"], sp_naming_function=extract_species_name)])
+    return trees
+
+  def get_phylome_algs(self, phylome_id):
+    """ Returns all alignments available for a given phylome
+    """
+
+    # Check if the phylome id code is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_phylome_tree: Check your input data")
+
+    ## Retrieve all the available alignments for the input phylome
+    cmd =  'SELECT CONCAT("Phy", protid, "_", code) AS protid, raw_alg, clean_'
+    cmd += 'alg FROM %s AS a, %s AS ph, species ' % (self._algs, self._phylomes)
+    cmd += 'AS s WHERE (ph.phylome_id = %s AND ph.phylome_id = ' % (phylome_id)
+    cmd += 'a.phylome_id AND ph.seed_taxid = s.taxid)'
+
+    algs = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        algs.setdefault(row["protid"], {})["raw_alg"] = row["raw_alg"]
+        algs.setdefault(row["protid"], {})["clean_alg"] = row["clean_alg"]
+    return algs
+
+  def get_species(self):
+    """ Returns all current registered species in the database
+    """
+
+    if self.__execute__('SELECT taxid, code, name FROM species'):
+      return self.__fomat_MySQL_to_dict__("code", self._SQL.fetchall())
+    return {}
+
+  def get_species_info(self, taxid = None, code = None):
+    """ Returns all information on a given species/code
+    """
+
+    # Check if the input parameters is well-constructed
+    if not self.__check_input_parameter__(number = taxid, string = code):
+      raise NameError("Check your input data")
+
+    if not taxid and not code:
+      return {}
+
+    ## Depending on the input parameters, the search in the database is perfomed
+    ## using either species taxid, or species code or both of them.
+    cmd = 'SELECT taxid, code, name FROM species AS s WHERE ('
+    cmd += 'taxid = %s%s' % (taxid, '' if code else ')') if taxid else ""
+    cmd += '%s code = "%s")' % (" AND" if taxid else "", code) if code else ""
+
+    ## Return the retrieved information
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()
+    return {}
+
+  def get_genomes(self):
+    """ Returns all current available genomes/proteomes
+    """
+
+    ## Complete information about each genome adding species information
+    cmd =  'SELECT CONCAT(code, ".",version) AS g, g.taxid, source, DATE(date),'
+    cmd += ' AS date,name FROM genome AS g, species AS s WHERE s.taxid =g.taxid'
+
+    if self.__execute__(cmd):
+      return self.__fomat_MySQL_to_dict__("g", self._SQL.fetchall())
+    return {}
+
+  def get_genome_info(self, genome):
+    """ Returns all available information about a registered genome/proteome
+    """
+
+    # Check if the input parameter is well-constructed
+    if not self.__check_input_parameter__(string = genome):
+      raise NameError("get_genome_info: Check your input data")
+
+    if genome.count(".") != 1:
+      raise NameError("get_genome_info: Expected input 'SpeciesCode.version'")
+
+    code, version = genome.split(".")
+    ## If the genome is well-defined, ask for its associated information
+    cmd =  'SELECT CONCAT(code, ".", version) AS genome_id, g.taxid, s.name AS '
+    cmd += 'species, version, DATE(date) AS date, source, comments FROM species'
+    cmd += ' AS s, genome AS g WHERE(s.taxid = g.taxid AND code = "%s"' % (code)
+    cmd += ' AND version = %s)' % (version)
+
+    ## Return the available information in a dictionary defined for that
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()
+    return {}
+
+  def get_genome_ids(self, taxid, version, filter_isoforms = True):
+    """ Returns the phylomeDB IDs for a given genome in the database filtering
+        out, or not, the different isoforms for each ID
+    """
+
+    ## Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(str_number = taxid):
+      raise NameError("get_genome_ids: Check your input data")
+    if not self.__check_input_parameter__(str_number = version):
+      raise NameError("get_genome_ids: Check your input data")
+    if not self.__check_input_parameter__(boolean = filter_isoforms):
+      raise NameError("get_genome_ids: Check your input data")
+
+    ## Depending on if the different isoforms have to be filter out or not, the
+    ## query to retrieve the phylomeDB IDs is different
+    if filter_isoforms:
+      cmd =  'SELECT DISTINCT CONCAT("Phy", i.longest, "_", s.code) AS protid '
+      cmd += 'FROM protein AS p, isoform AS i, species AS s WHERE p.taxid = '
+      cmd += '%s AND p.version = %s AND p.protid = i.isoform' % (taxid, version)
+      cmd += ' AND p.version = i.version AND p.taxid = s.taxid'
+    else:
+      cmd =  'SELECT DISTINCT CONCAT("Phy", protid, "_", code) AS protid FROM '
+      cmd += 'protein AS p, species AS s WHERE p.taxid = %s AND p.' % (taxid)
+      cmd += 'version = %s AND p.taxid = s.taxid' % (version)
+
+    if not self.__execute__(cmd):
+      return []
+
+    ## Retrieve all the information available for the selected phylomeDB IDs
+    return [row["protid"] for row in self._SQL.fetchall()]
+
+  def get_genomes_by_species(self, taxid):
+    """ Return all the proteomes/genomes registered for the input taxaid code
+    """
+
+    # Check if the input parameter is well-constructed
+    if not self.__check_input_parameter__(str_number = taxid):
+      raise NameError("Check your input data")
+
+    # Look for the different versions of the input taxid
+    cmd =  'SELECT CONCAT(code, ".", version) AS genome FROM species AS s, '
+    cmd += 'genome AS g WHERE s.taxid = %s AND s.taxid = g.taxid' % (taxid)
+
+    genomes = {}
+    if self.__execute__(cmd):
+      genomes[taxid] = [row["genome"] for row in self._SQL.fetchall()]
+    return genomes
+
+  def get_phylomes(self):
+    """ Returns all current available phylomes
+    """
+
+    ## Recover all the phylomes stored in the database
+    cmd =  'SELECT phylome_id, seed_taxid, s.name AS seed_species, CONCAT(code,'
+    cmd += ' ".", seed_version) AS seed_proteome, DATE(ts) AS date, comments, '
+    cmd += 'ph.name FROM species AS s, %s AS ph WHERE seed_' % (self._phylomes)
+    cmd += 'taxid = s.taxid'
+
+    ## Generate a dictionary with all phylomes
+    if self.__execute__(cmd):
+      return self.__fomat_MySQL_to_dict__("phylome_id", self._SQL.fetchall())
+    return {}
+
+  def get_phylome_info(self, phylome_id):
+    """ Returns available information on a given phylome
+    """
+
+    # Check if the phylome id code is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_phylome_info: Check your input data")
+
+    ## Get all available data for the input phylome
+    cmd =  'SELECT phylome_id AS id, seed_taxid, s.name AS seed_species, CONCAT'
+    cmd += '(code, ".", seed_version) AS seed_proteome, DATE(ts) AS date, ph.'
+    cmd += 'name, comments FROM species AS s, %s AS ph WHERE' % (self._phylomes)
+    cmd += '(ph.phylome_id = %s AND ph.seed_taxid = s.taxid)' % (phylome_id)
+
+    if self.__execute__(cmd):
+      return self._SQL.fetchone()
+    return {}
+
+  def get_phylome_seed_ids(self, phylome_id, filter_isoforms = True):
+    """ Returns the seed phylomeDB IDs for a given phylome being possible to
+        filter out the longest isoforms
+    """
+
+    ## Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_seed_ids: Check your input data (1)")
+    if not self.__check_input_parameter__(boolean = filter_isoforms):
+      raise NameError("get_seed_ids: Check your input data (2)")
+
+    ## Get the seed species and version for the input phylome
+    cmd =  'SELECT seed_taxid, seed_version FROM %s ' % (self._phylomes)
+    cmd += 'WHERE phylome_id = %s' % (phylome_id)
+
+    ## Retrieve the IDs
+    if self.__execute__(cmd):
+      row = self._SQL.fetchone()
+      ## Return the IDs as well as the taxid and proteome version used to
+      ## reconstruct the phylome. It might be useful for others functions
+      return self.get_genome_ids(row["seed_taxid"], row["seed_version"], \
+        filter_isoforms), row["seed_taxid"], row["seed_version"]
+    return []
+
+  def get_proteomes_in_phylome(self, phylome_id):
+    """ Returns a list of proteomes associated to a given phylome_id
+    """
+
+    # Check if the phylome id code is well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_proteomes_in_phylome: Check your input data")
+
+    ## Retrieve the proteomes associated to the phylome
+    cmd =  'SELECT s.taxid, CONCAT(code, ".", pc.version) AS proteome, s.name,'
+    cmd += ' source, date, pc.version FROM species AS s, %s ' % (self._phylomes)
+    cmd += 'AS ph, %s AS pc, genome AS g WHERE ph.phylome' % (self._phy_content)
+    cmd += '_id = %s AND ph.phylome_id = pc.phylome_id AND pc.' % (phylome_id)
+    cmd += 'taxid = s.taxid AND pc.taxid = g.taxid AND pc.version = g.version'
+
+    proteomes = {}
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+        proteomes.setdefault("proteomes", {}).setdefault(row["proteome"], row)
+
+      cmd =  'SELECT CONCAT(code, ".", ph.seed_version) AS proteome FROM '
+      cmd += 'species AS s, %s AS ph WHERE (ph.phylome_id = ' % (self._phylomes)
+      cmd += '%s AND ph.seed_taxid = s.taxid)' % (phylome_id)
+      if self.__execute__(cmd):
+        for row in self._SQL.fetchall():
+          proteomes["seed"] = row["proteome"]
+
+    return proteomes
+
+  def get_species_in_phylome(self, phylome_id):
+    """ Returns a list of proteomes associated to a given phylome_id
+    """
+    ## Retrieve taxids associated to a phylome
+    cmd =  'SELECT taxid from %s WHERE phylome_id="%s"' % \
+        (self._phy_content, phylome_id)
+    if self.__execute__(cmd):
+      return [values["taxid"] for values in self._SQL.fetchall()]
+    else:
+      return []
+
+  def get_phylomes_for_seed_ids(self, ids):
+    """ Given a list of phylomeDB IDs, return in which phylomes these IDs have
+        been used as a seed
+    """
+
+    ## Check if the input parameter is well-constructed
+    if not self.__check_input_parameter__(list_id = ids):
+      raise NameError("get_phylomes_for_seed_ids: Check your input data")
+
+    ## Get all phylomes where the input phylome IDs have been used as a seed
+    cmd =  'SELECT CONCAT("Phy", t.protid, "_", code) AS protid, t.phylome_id,'
+    cmd += ' ph.name FROM %s AS t, %s AS ph, ' % (self._trees, self._phylomes)
+    cmd += 'species AS s WHERE (t.protid IN (%s) ' % (self.__parser_ids__(ids))
+    cmd += 'AND t.phylome_id = ph.phylome_id AND ph.seed_taxid = s.taxid) '
+    cmd += 'GROUP BY t.protid, ph.phylome_id'
+
+    phylomes = {}
+    if self.__execute__(cmd):
+      for r in self._SQL.fetchall():
+        phylomes.setdefault(r["protid"], []).append((r["phylome_id"],r["name"]))
+    return phylomes
+
+  def get_seqs_in_genome(self, taxid, version, filter_isoforms = True):
+    """ Returns all sequences of a given proteome, filtering the
+    """
+
+    ## Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(str_number = taxid):
+      raise NameError("get_seqs_in_genome: Check your input data")
+    if not self.__check_input_parameter__(str_number = version):
+      raise NameError("get_seqs_in_genome: Check your input data")
+    if not self.__check_input_parameter__(boolean = filter_isoforms):
+      raise NameError("get_seqs_in_genome: Check your input data")
+
+    ## Retrieve the phylomeDB IDs for the input genome
+    ids = self.get_genome_ids(taxid, version, filter_isoforms)
+
+    ## Get all the information
+    cmd = 'SELECT CONCAT("Phy", p.protid, "_",code) AS protid, copy, prot_name,'
+    cmd += ' gene_name, seq FROM protein AS p, species AS s, unique_protein AS '
+    cmd += 'u WHERE p.protid IN (%s) AND p.version' % (self.__parser_ids__(ids))
+    cmd += ' = %s AND p.taxid = s.taxid AND p.protid = u.protid' % (version)
+
+    sequences = {}
+    ## Store the data into the appropiate data structure having in mind the
+    ## copy number variation effect.
+    if self.__execute__(cmd):
+      for row in self._SQL.fetchall():
+
+        if row["copy"] > 1 and row["protid"] in sequences:
+          sequences[("%s_1") % (row["protid"])] = sequences[row["protid"]]
+          del sequences[row["protid"]]
+        if row["copy"] > 1:
+          row["protid"] += ("_%d") % (row["copy"])
+
+        sequences[row["protid"]] = row
+        del sequences[row["protid"]]["protid"]
+
+    return sequences
+
+  def get_phylome_seed_ids_info(self, phylome_id, start = 0, offset = None, \
+    filter_isoforms = False):
+    """
+    """
+
+    ## Check if the input parameters are well-constructed
+    if not self.__check_input_parameter__(str_number = phylome_id):
+      raise NameError("get_phylome_seed_ids_info: Check your input data (1)")
+    if not self.__check_input_parameter__(str_number = start, number = offset):
+      raise NameError("get_phylome_seed_ids_info: Check your input data (2)")
+
+    ## Determine how many phylomeDB IDs have been used as a seed in the input
+    ## phylome
+    ids, taxid, version = self.get_phylome_seed_ids(phylome_id, filter_isoforms)
+    protids = self.__parser_ids__(ids)
+
+    ## Retrieve the phylomeDB IDs belonging to the input phylome as well the
+    ## number of trees for each ID in that phylome
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, COUNT('
+    cmd += 'DISTINCT method) AS trees FROM (protein AS p, species AS s, '
+    cmd += '%s AS ph) LEFT JOIN (%s AS t) ON ' % (self._phylomes, self._trees)
+    cmd += '(ph.phylome_id = t.phylome_id AND p.protid = t.protid) WHERE (ph.'
+    cmd += 'phylome_id = %s AND ph.seed_taxid = p.taxid AND ph.' % (phylome_id)
+    cmd += 'seed_version = p.version AND ph.seed_taxid = s.taxid AND p.protid '
+    cmd += 'IN (%s)) GROUP BY p.protid ORDER BY trees DESC, protid ' % (protids)
+    cmd += 'LIMIT %d,%d' % (start, offset) if offset else ''
+
+    if not self.__execute__(cmd):
+      return {}
+    seqs = self.__fomat_MySQL_to_dict__("protid", self._SQL.fetchall())
+
+    protids = self.__parser_ids__(list(seqs.keys()))
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, raw_alg IS '
+    cmd += 'NOT NULL AS r, clean_alg IS NOT NULL AS c FROM (protein AS p, speci'
+    cmd += 'es AS s) LEFT JOIN (%s AS a) ON (p.protid = a.protid' % (self._algs)
+    cmd += ') WHERE (p.protid IN (%s) AND p.version = %s ' % (protids, version)
+    cmd += 'AND p.taxid = s.taxid AND a.phylome_id = %s)' % (phylome_id)
+
+    if not self.__execute__(cmd):
+      return {}
+
+    for row in self._SQL.fetchall():
+      seqs[row["protid"]]["algs"] = 2 if row["r"] and row["c"] else 1 \
+        if row["c"] or row["r"] else 0
+
+    cmd =  'SELECT CONCAT("Phy", p.protid, "_", s.code) AS protid, p.comments, '
+    cmd += 'gene_name, prot_name, copy, length(seq) AS l FROM protein AS p, uni'
+    cmd += 'que_protein AS u, species AS s, %s AS ph WHERE ' % (self._phylomes)
+    cmd += '(ph.phylome_id = %s AND p.protid IN (%s) ' % (phylome_id, protids)
+    cmd += 'AND ph.seed_version = p.version AND ph.seed_taxid = s.taxid)'
+
+    if not self.__execute__(cmd):
+      return {}
+
+    for row in self._SQL.fetchall():
+      seqs[row["protid"]]["seq_length"] = row["l"]
+
+      seqs[row["protid"]].setdefault("copy", 0)
+      if row["copy"] > seqs[row["protid"]]["copy"]:
+        seqs[row["protid"]]["copy"] = row["copy"]
+
+    return seqs, len(ids)
diff --git a/ete3/phyloxml/__init__.py b/ete3/phyloxml/__init__.py
new file mode 100644
index 0000000..946bd70
--- /dev/null
+++ b/ete3/phyloxml/__init__.py
@@ -0,0 +1,68 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from sys import stdout
+from . import _phyloxml as main
+from ._phyloxml import *
+from ._phyloxml_tree import PhyloxmlTree
+
+_phyloxml.Phylogeny.subclass = PhyloxmlTree
+
+class Phyloxml(_phyloxml.Phyloxml):
+    def __repr__(self):
+        return "PhyloXML project <%s>" %hex(hash(self))
+
+    def __init__(self, *args, **kargs):
+        _phyloxml.Phyloxml.__init__(self, *args, **kargs)
+
+    def build_from_file(self, fname):
+        doc = _phyloxml.parsexml_(fname)
+        rootNode = doc.getroot()
+        rootTag, rootClass = _phyloxml.get_root_tag(rootNode)
+        if rootClass is None:
+            rootTag = 'phyloxml'
+            rootClass = self.__class__
+        self.build(rootNode)
+
+    def export(self, outfile=stdout, level=0):
+        namespace = 'xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd"'
+        return super(Phyloxml, self).export(outfile=outfile, level=level, namespacedef_=namespace)
+
+
+__all__ = _phyloxml.__all__ + ["Phyloxml", "PhyloxmlTree"]
diff --git a/ete3/phyloxml/_phyloxml.py b/ete3/phyloxml/_phyloxml.py
new file mode 100644
index 0000000..bdbdc52
--- /dev/null
+++ b/ete3/phyloxml/_phyloxml.py
@@ -0,0 +1,4076 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+#
+# Generated Mon Jun 27 10:13:44 2011 by generateDS.py version 2.5b.
+#
+
+import sys
+import getopt
+import re as re_
+import six
+from six.moves import range
+
+etree_ = None
+Verbose_import_ = False
+(   XMLParser_import_none, XMLParser_import_lxml,
+    XMLParser_import_elementtree
+    ) = list(range(3))
+XMLParser_import_library = None
+try:
+    # lxml
+    from lxml import etree as etree_
+    XMLParser_import_library = XMLParser_import_lxml
+    if Verbose_import_:
+        print("running with lxml.etree")
+except ImportError:
+    try:
+        # cElementTree from Python 2.5+
+        import xml.etree.cElementTree as etree_
+        XMLParser_import_library = XMLParser_import_elementtree
+        if Verbose_import_:
+            print("running with cElementTree on Python 2.5+")
+    except ImportError:
+        try:
+            # ElementTree from Python 2.5+
+            import xml.etree.ElementTree as etree_
+            XMLParser_import_library = XMLParser_import_elementtree
+            if Verbose_import_:
+                print("running with ElementTree on Python 2.5+")
+        except ImportError:
+            try:
+                # normal cElementTree install
+                import cElementTree as etree_
+                XMLParser_import_library = XMLParser_import_elementtree
+                if Verbose_import_:
+                    print("running with cElementTree")
+            except ImportError:
+                try:
+                    # normal ElementTree install
+                    import elementtree.ElementTree as etree_
+                    XMLParser_import_library = XMLParser_import_elementtree
+                    if Verbose_import_:
+                        print("running with ElementTree")
+                except ImportError:
+                    raise ImportError("Failed to import ElementTree from any known place")
+
+def parsexml_(*args, **kwargs):
+    if (XMLParser_import_library == XMLParser_import_lxml and
+        'parser' not in kwargs):
+        # Use the lxml ElementTree compatible parser so that, e.g.,
+        #   we ignore comments.
+        kwargs['parser'] = etree_.ETCompatXMLParser()
+    doc = etree_.parse(*args, **kwargs)
+    return doc
+
+#
+# User methods
+#
+# Calls to the methods in these classes are generated by generateDS.py.
+# You can replace these methods by re-implementing the following class
+#   in a module named generatedssuper.py.
+
+try:
+    from generatedssuper import GeneratedsSuper
+except ImportError as exp:
+
+    class GeneratedsSuper(object):
+        def gds_format_string(self, input_data, input_name=''):
+            return input_data
+        def gds_validate_string(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer(self, input_data, input_name=''):
+            return '%d' % input_data
+        def gds_validate_integer(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_integer_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_integer_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of integers')
+            return input_data
+        def gds_format_float(self, input_data, input_name=''):
+            return '%f' % input_data
+        def gds_validate_float(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_float_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_float_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of floats')
+            return input_data
+        def gds_format_double(self, input_data, input_name=''):
+            return '%e' % input_data
+        def gds_validate_double(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_double_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_double_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                try:
+                    fvalue = float(value)
+                except (TypeError, ValueError) as exp:
+                    raise_parse_error(node, 'Requires sequence of doubles')
+            return input_data
+        def gds_format_boolean(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean(self, input_data, node, input_name=''):
+            return input_data
+        def gds_format_boolean_list(self, input_data, input_name=''):
+            return '%s' % input_data
+        def gds_validate_boolean_list(self, input_data, node, input_name=''):
+            values = input_data.split()
+            for value in values:
+                if value not in ('true', '1', 'false', '0', ):
+                    raise_parse_error(node, 'Requires sequence of booleans ("true", "1", "false", "0")')
+            return input_data
+        def gds_str_lower(self, instring):
+            return instring.lower()
+        def get_path_(self, node):
+            path_list = []
+            self.get_path_list_(node, path_list)
+            path_list.reverse()
+            path = '/'.join(path_list)
+            return path
+        Tag_strip_pattern_ = re_.compile(r'\{.*\}')
+        def get_path_list_(self, node, path_list):
+            if node is None:
+                return
+            tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
+            if tag:
+                path_list.append(tag)
+            self.get_path_list_(node.getparent(), path_list)
+
+
+#
+# If you have installed IPython you can uncomment and use the following.
+# IPython is available from http://ipython.scipy.org/.
+#
+
+## from IPython.Shell import IPShellEmbed
+## args = ''
+## ipshell = IPShellEmbed(args,
+##     banner = 'Dropping into IPython',
+##     exit_msg = 'Leaving Interpreter, back to program.')
+
+# Then use the following line where and when you want to drop into the
+# IPython shell:
+#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
+
+#
+# Globals
+#
+
+ExternalEncoding = 'utf-8'
+Tag_pattern_ = re_.compile(r'({.*})?(.*)')
+STRING_CLEANUP_PAT = re_.compile(r"[\n\r\s]+")
+
+#
+# Support/utility functions.
+#
+
+def showIndent(outfile, level):
+    for idx in range(level):
+        outfile.write('    ')
+
+def quote_xml(inStr):
+    if not inStr:
+        return ''
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    return s1
+
+def quote_attrib(inStr):
+    s1 = (isinstance(inStr, six.string_types) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&')
+    s1 = s1.replace('<', '<')
+    s1 = s1.replace('>', '>')
+    if '"' in s1:
+        if "'" in s1:
+            s1 = '"%s"' % s1.replace('"', """)
+        else:
+            s1 = "'%s'" % s1
+    else:
+        s1 = '"%s"' % s1
+    return s1
+
+def quote_python(inStr):
+    s1 = inStr
+    if s1.find("'") == -1:
+        if s1.find('\n') == -1:
+            return "'%s'" % s1
+        else:
+            return "'''%s'''" % s1
+    else:
+        if s1.find('"') != -1:
+            s1 = s1.replace('"', '\\"')
+        if s1.find('\n') == -1:
+            return '"%s"' % s1
+        else:
+            return '"""%s"""' % s1
+
+def get_all_text_(node):
+    if node.text is not None:
+        text = node.text
+    else:
+        text = ''
+    for child in node:
+        if child.tail is not None:
+            text += child.tail
+    return text
+
+def find_attr_value_(attr_name, node):
+    attrs = node.attrib
+    # First try with no namespace.
+    value = attrs.get(attr_name)
+    if value is None:
+        # Now try the other possible namespaces.
+        namespaces = six.itervalues(node.nsmap)
+        for namespace in namespaces:
+            value = attrs.get('{%s}%s' % (namespace, attr_name, ))
+            if value is not None:
+                break
+    return value
+
+
+class GDSParseError(Exception):
+    pass
+
+def raise_parse_error(node, msg):
+    if XMLParser_import_library == XMLParser_import_lxml:
+        msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
+    else:
+        msg = '%s (element %s)' % (msg, node.tag, )
+    raise GDSParseError(msg)
+
+
+class MixedContainer:
+    # Constants for category:
+    CategoryNone = 0
+    CategoryText = 1
+    CategorySimple = 2
+    CategoryComplex = 3
+    # Constants for content_type:
+    TypeNone = 0
+    TypeText = 1
+    TypeString = 2
+    TypeInteger = 3
+    TypeFloat = 4
+    TypeDecimal = 5
+    TypeDouble = 6
+    TypeBoolean = 7
+    def __init__(self, category, content_type, name, value):
+        self.category = category
+        self.content_type = content_type
+        self.name = name
+        self.value = value
+    def getCategory(self):
+        return self.category
+    def getContenttype(self, content_type):
+        return self.content_type
+    def getValue(self):
+        return self.value
+    def getName(self):
+        return self.name
+    def export(self, outfile, level, name, namespace):
+        if self.category == MixedContainer.CategoryText:
+            # Prevent exporting empty content as empty lines.
+            if self.value.strip():
+                outfile.write(self.value)
+        elif self.category == MixedContainer.CategorySimple:
+            self.exportSimple(outfile, level, name)
+        else:    # category == MixedContainer.CategoryComplex
+            self.value.export(outfile, level, namespace,name)
+    def exportSimple(self, outfile, level, name):
+        if self.content_type == MixedContainer.TypeString:
+            outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeInteger or \
+                self.content_type == MixedContainer.TypeBoolean:
+            outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeFloat or \
+                self.content_type == MixedContainer.TypeDecimal:
+            outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeDouble:
+            outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
+    def exportLiteral(self, outfile, level, name):
+        if self.category == MixedContainer.CategoryText:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        elif self.category == MixedContainer.CategorySimple:
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s", "%s"),\n' % \
+                (self.category, self.content_type, self.name, self.value))
+        else:    # category == MixedContainer.CategoryComplex
+            showIndent(outfile, level)
+            outfile.write('model_.MixedContainer(%d, %d, "%s",\n' % \
+                (self.category, self.content_type, self.name,))
+            self.value.exportLiteral(outfile, level + 1)
+            showIndent(outfile, level)
+            outfile.write(')\n')
+
+
+class MemberSpec_(object):
+    def __init__(self, name='', data_type='', container=0):
+        self.name = name
+        self.data_type = data_type
+        self.container = container
+    def set_name(self, name): self.name = name
+    def get_name(self): return self.name
+    def set_data_type(self, data_type): self.data_type = data_type
+    def get_data_type_chain(self): return self.data_type
+    def get_data_type(self):
+        if isinstance(self.data_type, list):
+            if len(self.data_type) > 0:
+                return self.data_type[-1]
+            else:
+                return 'xs:string'
+        else:
+            return self.data_type
+    def set_container(self, container): self.container = container
+    def get_container(self): return self.container
+
+def _cast(typ, value):
+    if typ is None or value is None:
+        return value
+    return typ(value)
+
+#
+# Data representation classes.
+#
+
+class Phyloxml(GeneratedsSuper):
+    """'phyloxml' is the name of the root element. Phyloxml contains an
+    arbitrary number of 'phylogeny' elements (each representing one
+    phylogeny) possibly followed by elements from other namespaces."""
+    subclass = None
+    superclass = None
+    def __init__(self, phylogeny=None, valueOf_=None):
+        if phylogeny is None:
+            self.phylogeny = []
+        else:
+            self.phylogeny = phylogeny
+    def factory(*args_, **kwargs_):
+        if Phyloxml.subclass:
+            return Phyloxml.subclass(*args_, **kwargs_)
+        else:
+            return Phyloxml(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_phylogeny(self): return self.phylogeny
+    def set_phylogeny(self, phylogeny): self.phylogeny = phylogeny
+    def add_phylogeny(self, value): self.phylogeny.append(value)
+    def insert_phylogeny(self, index, value): self.phylogeny[index] = value
+    def export(self, outfile, level, namespace_='phy:', name_='Phyloxml', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Phyloxml')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Phyloxml'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Phyloxml', fromsubclass_=False):
+        for phylogeny_ in self.phylogeny:
+            phylogeny_.export(outfile, level, namespace_, name_='phylogeny')
+    def hasContent_(self):
+        if (
+            self.phylogeny
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Phyloxml'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('phylogeny=[\n')
+        level += 1
+        for phylogeny_ in self.phylogeny:
+            showIndent(outfile, level)
+            outfile.write('model_.Phylogeny(\n')
+            phylogeny_.exportLiteral(outfile, level, name_='Phylogeny')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'phylogeny':
+            obj_ = Phylogeny.factory()
+            obj_.build(child_)
+            self.phylogeny.append(obj_)
+# end class Phyloxml
+
+
+class Phylogeny(GeneratedsSuper):
+    """Element Phylogeny is used to represent a phylogeny. The required
+    attribute 'rooted' is used to indicate whether the phylogeny is
+    rooted or not. The attribute 'rerootable' can be used to
+    indicate that the phylogeny is not allowed to be rooted
+    differently (i.e. because it is associated with root dependent
+    data, such as gene duplications). The attribute 'type' can be
+    used to indicate the type of phylogeny (i.e. 'gene tree'). It is
+    recommended to use the attribute 'branch_length_unit' if the
+    phylogeny has branch lengths. Element clade is used in a
+    recursive manner to describe the topology of a phylogenetic
+    tree."""
+    subclass = None
+    superclass = None
+    def __init__(self, rerootable=None, branch_length_unit=None, type_=None, rooted=None, name=None, id=None, description=None, date=None, confidence=None, clade=None, clade_relation=None, sequence_relation=None, property=None, valueOf_=None):
+        self.rerootable = _cast(bool, rerootable)
+        self.branch_length_unit = _cast(None, branch_length_unit)
+        self.type_ = _cast(None, type_)
+        self.rooted = _cast(bool, rooted)
+        self.name = name
+        self.id = id
+        self.description = description
+        self.date = date
+        if confidence is None:
+            self.confidence = []
+        else:
+            self.confidence = confidence
+        self.clade = clade
+        if clade_relation is None:
+            self.clade_relation = []
+        else:
+            self.clade_relation = clade_relation
+        if sequence_relation is None:
+            self.sequence_relation = []
+        else:
+            self.sequence_relation = sequence_relation
+        if property is None:
+            self.property = []
+        else:
+            self.property = property
+    def factory(*args_, **kwargs_):
+        if Phylogeny.subclass:
+            return Phylogeny.subclass(*args_, **kwargs_)
+        else:
+            return Phylogeny(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_description(self): return self.description
+    def set_description(self, description): self.description = description
+    def get_date(self): return self.date
+    def set_date(self, date): self.date = date
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def add_confidence(self, value): self.confidence.append(value)
+    def insert_confidence(self, index, value): self.confidence[index] = value
+    def get_clade(self): return self.clade
+    def set_clade(self, clade): self.clade = clade
+    def get_clade_relation(self): return self.clade_relation
+    def set_clade_relation(self, clade_relation): self.clade_relation = clade_relation
+    def add_clade_relation(self, value): self.clade_relation.append(value)
+    def insert_clade_relation(self, index, value): self.clade_relation[index] = value
+    def get_sequence_relation(self): return self.sequence_relation
+    def set_sequence_relation(self, sequence_relation): self.sequence_relation = sequence_relation
+    def add_sequence_relation(self, value): self.sequence_relation.append(value)
+    def insert_sequence_relation(self, index, value): self.sequence_relation[index] = value
+    def get_property(self): return self.property
+    def set_property(self, property): self.property = property
+    def add_property(self, value): self.property.append(value)
+    def insert_property(self, index, value): self.property[index] = value
+    def get_rerootable(self): return self.rerootable
+    def set_rerootable(self, rerootable): self.rerootable = rerootable
+    def get_branch_length_unit(self): return self.branch_length_unit
+    def set_branch_length_unit(self, branch_length_unit): self.branch_length_unit = branch_length_unit
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_rooted(self): return self.rooted
+    def set_rooted(self, rooted): self.rooted = rooted
+    def export(self, outfile, level, namespace_='phy:', name_='Phylogeny', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Phylogeny')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Phylogeny'):
+        if self.rerootable is not None and 'rerootable' not in already_processed:
+            already_processed.append('rerootable')
+            outfile.write(' rerootable="%s"' % self.gds_format_boolean(self.gds_str_lower(str(self.rerootable)), input_name='rerootable'))
+        if self.branch_length_unit is not None and 'branch_length_unit' not in already_processed:
+            already_processed.append('branch_length_unit')
+            outfile.write(' branch_length_unit=%s' % (self.gds_format_string(quote_attrib(self.branch_length_unit).encode(ExternalEncoding), input_name='branch_length_unit'), ))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+        if self.rooted is not None and 'rooted' not in already_processed:
+            already_processed.append('rooted')
+            outfile.write(' rooted="%s"' % self.gds_format_boolean(self.gds_str_lower(str(self.rooted)), input_name='rooted'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Phylogeny', fromsubclass_=False):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.gds_format_string(quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+        if self.id:
+            self.id.export(outfile, level, namespace_, name_='id')
+        if self.description is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdescription>%s</%sdescription>\n' % (namespace_, self.gds_format_string(quote_xml(self.description).encode(ExternalEncoding), input_name='description'), namespace_))
+        if self.date is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdate>%s</%sdate>\n' % (namespace_, self.gds_format_string(quote_xml(self.date).encode(ExternalEncoding), input_name='date'), namespace_))
+        for confidence_ in self.confidence:
+            confidence_.export(outfile, level, namespace_, name_='confidence')
+        if self.clade:
+            self.clade.export(outfile, level, namespace_, name_='clade')
+        for clade_relation_ in self.clade_relation:
+            clade_relation_.export(outfile, level, namespace_, name_='clade_relation')
+        for sequence_relation_ in self.sequence_relation:
+            sequence_relation_.export(outfile, level, namespace_, name_='sequence_relation')
+        for property_ in self.property:
+            property_.export(outfile, level, namespace_, name_='property')
+    def hasContent_(self):
+        if (
+            self.name is not None or
+            self.id is not None or
+            self.description is not None or
+            self.date is not None or
+            self.confidence or
+            self.clade is not None or
+            self.clade_relation or
+            self.sequence_relation or
+            self.property
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Phylogeny'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.rerootable is not None and 'rerootable' not in already_processed:
+            already_processed.append('rerootable')
+            showIndent(outfile, level)
+            outfile.write('rerootable = %s,\n' % (self.rerootable,))
+        if self.branch_length_unit is not None and 'branch_length_unit' not in already_processed:
+            already_processed.append('branch_length_unit')
+            showIndent(outfile, level)
+            outfile.write('branch_length_unit = "%s",\n' % (self.branch_length_unit,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.rooted is not None and 'rooted' not in already_processed:
+            already_processed.append('rooted')
+            showIndent(outfile, level)
+            outfile.write('rooted = %s,\n' % (self.rooted,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('name=%s,\n' % quote_python(self.name).encode(ExternalEncoding))
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id=model_.Id(\n')
+            self.id.exportLiteral(outfile, level, name_='id')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.description is not None:
+            showIndent(outfile, level)
+            outfile.write('description=%s,\n' % quote_python(self.description).encode(ExternalEncoding))
+        if self.date is not None:
+            showIndent(outfile, level)
+            outfile.write('date=%s,\n' % quote_python(self.date).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('confidence=[\n')
+        level += 1
+        for confidence_ in self.confidence:
+            showIndent(outfile, level)
+            outfile.write('model_.Confidence(\n')
+            confidence_.exportLiteral(outfile, level, name_='Confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.clade is not None:
+            showIndent(outfile, level)
+            outfile.write('clade=model_.Clade(\n')
+            self.clade.exportLiteral(outfile, level, name_='clade')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('clade_relation=[\n')
+        level += 1
+        for clade_relation_ in self.clade_relation:
+            showIndent(outfile, level)
+            outfile.write('model_.CladeRelation(\n')
+            clade_relation_.exportLiteral(outfile, level, name_='CladeRelation')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('sequence_relation=[\n')
+        level += 1
+        for sequence_relation_ in self.sequence_relation:
+            showIndent(outfile, level)
+            outfile.write('model_.SequenceRelation(\n')
+            sequence_relation_.exportLiteral(outfile, level, name_='SequenceRelation')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('property=[\n')
+        level += 1
+        for property_ in self.property:
+            showIndent(outfile, level)
+            outfile.write('model_.Property(\n')
+            property_.exportLiteral(outfile, level, name_='Property')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('rerootable', node)
+        if value is not None and 'rerootable' not in already_processed:
+            already_processed.append('rerootable')
+            if value in ('true', '1'):
+                self.rerootable = True
+            elif value in ('false', '0'):
+                self.rerootable = False
+            else:
+                raise_parse_error(node, 'Bad boolean attribute')
+        value = find_attr_value_('branch_length_unit', node)
+        if value is not None and 'branch_length_unit' not in already_processed:
+            already_processed.append('branch_length_unit')
+            self.branch_length_unit = value
+            self.branch_length_unit = ' '.join(self.branch_length_unit.split())
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+        value = find_attr_value_('rooted', node)
+        if value is not None and 'rooted' not in already_processed:
+            already_processed.append('rooted')
+            if value in ('true', '1'):
+                self.rooted = True
+            elif value in ('false', '0'):
+                self.rooted = False
+            else:
+                raise_parse_error(node, 'Bad boolean attribute')
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'name':
+            name_ = child_.text
+            name_ = re_.sub(STRING_CLEANUP_PAT, " ", name_).strip()
+            name_ = self.gds_validate_string(name_, node, 'name')
+            self.name = name_
+        elif nodeName_ == 'id':
+            obj_ = Id.factory()
+            obj_.build(child_)
+            self.set_id(obj_)
+        elif nodeName_ == 'description':
+            description_ = child_.text
+            description_ = re_.sub(STRING_CLEANUP_PAT, " ", description_).strip()
+            description_ = self.gds_validate_string(description_, node, 'description')
+            self.description = description_
+        elif nodeName_ == 'date':
+            date_ = child_.text
+            date_ = self.gds_validate_string(date_, node, 'date')
+            self.date = date_
+        elif nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.confidence.append(obj_)
+        elif nodeName_ == 'clade':
+            obj_ = Clade.factory()
+            obj_.build(child_)
+            self.set_clade(obj_)
+        elif nodeName_ == 'clade_relation':
+            obj_ = CladeRelation.factory()
+            obj_.build(child_)
+            self.clade_relation.append(obj_)
+        elif nodeName_ == 'sequence_relation':
+            obj_ = SequenceRelation.factory()
+            obj_.build(child_)
+            self.sequence_relation.append(obj_)
+        elif nodeName_ == 'property':
+            obj_ = Property.factory()
+            obj_.build(child_)
+            self.property.append(obj_)
+# end class Phylogeny
+
+
+class Clade(GeneratedsSuper):
+    """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)."""
+    subclass = None
+    superclass = None
+    def __init__(self, id_source=None, branch_length_attr=None, name=None, branch_length=None, confidence=None, width=None, color=None, node_id=None, taxonomy=None, sequence=None, events=None, binary_characters=None, distribution=None, date=None, reference=None, property=None, clade=None, valueOf_=None):
+        self.id_source = _cast(None, id_source)
+        self.branch_length_attr = _cast(None, branch_length_attr)
+        self.name = name
+        self.branch_length = branch_length
+        if confidence is None:
+            self.confidence = []
+        else:
+            self.confidence = confidence
+        self.width = width
+        self.color = color
+        self.node_id = node_id
+        if taxonomy is None:
+            self.taxonomy = []
+        else:
+            self.taxonomy = taxonomy
+        if sequence is None:
+            self.sequence = []
+        else:
+            self.sequence = sequence
+        self.events = events
+        self.binary_characters = binary_characters
+        if distribution is None:
+            self.distribution = []
+        else:
+            self.distribution = distribution
+        self.date = date
+        if reference is None:
+            self.reference = []
+        else:
+            self.reference = reference
+        if property is None:
+            self.property = []
+        else:
+            self.property = property
+        if clade is None:
+            self.clade = []
+        else:
+            self.clade = clade
+    def factory(*args_, **kwargs_):
+        if Clade.subclass:
+            return Clade.subclass(*args_, **kwargs_)
+        else:
+            return Clade(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_branch_length(self): return self.branch_length
+    def set_branch_length(self, branch_length): self.branch_length = branch_length
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def add_confidence(self, value): self.confidence.append(value)
+    def insert_confidence(self, index, value): self.confidence[index] = value
+    def get_width(self): return self.width
+    def set_width(self, width): self.width = width
+    def get_color(self): return self.color
+    def set_color(self, color): self.color = color
+    def get_node_id(self): return self.node_id
+    def set_node_id(self, node_id): self.node_id = node_id
+    def get_taxonomy(self): return self.taxonomy
+    def set_taxonomy(self, taxonomy): self.taxonomy = taxonomy
+    def add_taxonomy(self, value): self.taxonomy.append(value)
+    def insert_taxonomy(self, index, value): self.taxonomy[index] = value
+    def get_sequence(self): return self.sequence
+    def set_sequence(self, sequence): self.sequence = sequence
+    def add_sequence(self, value): self.sequence.append(value)
+    def insert_sequence(self, index, value): self.sequence[index] = value
+    def get_events(self): return self.events
+    def set_events(self, events): self.events = events
+    def get_binary_characters(self): return self.binary_characters
+    def set_binary_characters(self, binary_characters): self.binary_characters = binary_characters
+    def get_distribution(self): return self.distribution
+    def set_distribution(self, distribution): self.distribution = distribution
+    def add_distribution(self, value): self.distribution.append(value)
+    def insert_distribution(self, index, value): self.distribution[index] = value
+    def get_date(self): return self.date
+    def set_date(self, date): self.date = date
+    def get_reference(self): return self.reference
+    def set_reference(self, reference): self.reference = reference
+    def add_reference(self, value): self.reference.append(value)
+    def insert_reference(self, index, value): self.reference[index] = value
+    def get_property(self): return self.property
+    def set_property(self, property): self.property = property
+    def add_property(self, value): self.property.append(value)
+    def insert_property(self, index, value): self.property[index] = value
+    def get_clade(self): return self.clade
+    def set_clade(self, clade): self.clade = clade
+    def add_clade(self, value): self.clade.append(value)
+    def insert_clade(self, index, value): self.clade[index] = value
+    def get_id_source(self): return self.id_source
+    def set_id_source(self, id_source): self.id_source = id_source
+    def get_branch_length_attr(self): return self.branch_length_attr
+    def set_branch_length_attr(self, branch_length_attr): self.branch_length_attr = branch_length_attr
+    def export(self, outfile, level, namespace_='phy:', name_='Clade', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Clade')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Clade'):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            outfile.write(' id_source=%s' % (quote_attrib(self.id_source), ))
+        if self.branch_length_attr is not None and 'branch_length_attr' not in already_processed:
+            already_processed.append('branch_length_attr')
+            outfile.write(' branch_length_attr=%s' % (self.gds_format_string(quote_attrib(self.branch_length_attr).encode(ExternalEncoding), input_name='branch_length_attr'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Clade', fromsubclass_=False):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.gds_format_string(quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+        if self.branch_length is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sbranch_length>%s</%sbranch_length>\n' % (namespace_, self.gds_format_double(self.branch_length, input_name='branch_length'), namespace_))
+        for confidence_ in self.confidence:
+            confidence_.export(outfile, level, namespace_, name_='confidence')
+        if self.width is not None:
+            showIndent(outfile, level)
+            outfile.write('<%swidth>%s</%swidth>\n' % (namespace_, self.gds_format_double(self.width, input_name='width'), namespace_))
+        if self.color:
+            self.color.export(outfile, level, namespace_, name_='color')
+        if self.node_id:
+            self.node_id.export(outfile, level, namespace_, name_='node_id')
+        for taxonomy_ in self.taxonomy:
+            taxonomy_.export(outfile, level, namespace_, name_='taxonomy')
+        for sequence_ in self.sequence:
+            sequence_.export(outfile, level, namespace_, name_='sequence')
+        if self.events:
+            self.events.export(outfile, level, namespace_, name_='events')
+        if self.binary_characters:
+            self.binary_characters.export(outfile, level, namespace_, name_='binary_characters')
+        for distribution_ in self.distribution:
+            distribution_.export(outfile, level, namespace_, name_='distribution')
+        if self.date:
+            self.date.export(outfile, level, namespace_, name_='date')
+        for reference_ in self.reference:
+            reference_.export(outfile, level, namespace_, name_='reference')
+        for property_ in self.property:
+            property_.export(outfile, level, namespace_, name_='property')
+        for clade_ in self.clade:
+            clade_.export(outfile, level, namespace_, name_='clade')
+    def hasContent_(self):
+        if (
+            self.name is not None or
+            self.branch_length is not None or
+            self.confidence or
+            self.width is not None or
+            self.color is not None or
+            self.node_id is not None or
+            self.taxonomy or
+            self.sequence or
+            self.events is not None or
+            self.binary_characters is not None or
+            self.distribution or
+            self.date is not None or
+            self.reference or
+            self.property or
+            self.clade
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Clade'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            showIndent(outfile, level)
+            outfile.write('id_source = %s,\n' % (self.id_source,))
+        if self.branch_length_attr is not None and 'branch_length_attr' not in already_processed:
+            already_processed.append('branch_length_attr')
+            showIndent(outfile, level)
+            outfile.write('branch_length_attr = "%s",\n' % (self.branch_length_attr,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('name=%s,\n' % quote_python(self.name).encode(ExternalEncoding))
+        if self.branch_length is not None:
+            showIndent(outfile, level)
+            outfile.write('branch_length=%e,\n' % self.branch_length)
+        showIndent(outfile, level)
+        outfile.write('confidence=[\n')
+        level += 1
+        for confidence_ in self.confidence:
+            showIndent(outfile, level)
+            outfile.write('model_.Confidence(\n')
+            confidence_.exportLiteral(outfile, level, name_='Confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.width is not None:
+            showIndent(outfile, level)
+            outfile.write('width=%e,\n' % self.width)
+        if self.color is not None:
+            showIndent(outfile, level)
+            outfile.write('color=model_.BranchColor(\n')
+            self.color.exportLiteral(outfile, level, name_='color')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.node_id is not None:
+            showIndent(outfile, level)
+            outfile.write('node_id=model_.Id(\n')
+            self.node_id.exportLiteral(outfile, level, name_='node_id')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('taxonomy=[\n')
+        level += 1
+        for taxonomy_ in self.taxonomy:
+            showIndent(outfile, level)
+            outfile.write('model_.Taxonomy(\n')
+            taxonomy_.exportLiteral(outfile, level, name_='Taxonomy')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('sequence=[\n')
+        level += 1
+        for sequence_ in self.sequence:
+            showIndent(outfile, level)
+            outfile.write('model_.Sequence(\n')
+            sequence_.exportLiteral(outfile, level, name_='Sequence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.events is not None:
+            showIndent(outfile, level)
+            outfile.write('events=model_.Events(\n')
+            self.events.exportLiteral(outfile, level, name_='events')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.binary_characters is not None:
+            showIndent(outfile, level)
+            outfile.write('binary_characters=model_.BinaryCharacters(\n')
+            self.binary_characters.exportLiteral(outfile, level, name_='binary_characters')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('distribution=[\n')
+        level += 1
+        for distribution_ in self.distribution:
+            showIndent(outfile, level)
+            outfile.write('model_.Distribution(\n')
+            distribution_.exportLiteral(outfile, level, name_='Distribution')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.date is not None:
+            showIndent(outfile, level)
+            outfile.write('date=model_.Date(\n')
+            self.date.exportLiteral(outfile, level, name_='date')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('reference=[\n')
+        level += 1
+        for reference_ in self.reference:
+            showIndent(outfile, level)
+            outfile.write('model_.Reference(\n')
+            reference_.exportLiteral(outfile, level, name_='Reference')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('property=[\n')
+        level += 1
+        for property_ in self.property:
+            showIndent(outfile, level)
+            outfile.write('model_.Property(\n')
+            property_.exportLiteral(outfile, level, name_='Property')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('clade=[\n')
+        level += 1
+        for clade_ in self.clade:
+            showIndent(outfile, level)
+            outfile.write('model_.Clade(\n')
+            clade_.exportLiteral(outfile, level, name_='Clade')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id_source', node)
+        if value is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            self.id_source = value
+        value = find_attr_value_('branch_length_attr', node)
+        if value is not None and 'branch_length_attr' not in already_processed:
+            already_processed.append('branch_length_attr')
+            self.branch_length_attr = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'name':
+            name_ = child_.text
+            name_ = re_.sub(STRING_CLEANUP_PAT, " ", name_).strip()
+            name_ = self.gds_validate_string(name_, node, 'name')
+            self.name = name_
+        elif nodeName_ == 'branch_length':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'branch_length')
+            self.branch_length = fval_
+        elif nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.confidence.append(obj_)
+        elif nodeName_ == 'width':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'width')
+            self.width = fval_
+        elif nodeName_ == 'color':
+            obj_ = BranchColor.factory()
+            obj_.build(child_)
+            self.set_color(obj_)
+        elif nodeName_ == 'node_id':
+            obj_ = Id.factory()
+            obj_.build(child_)
+            self.set_node_id(obj_)
+        elif nodeName_ == 'taxonomy':
+            obj_ = Taxonomy.factory()
+            obj_.build(child_)
+            self.taxonomy.append(obj_)
+        elif nodeName_ == 'sequence':
+            obj_ = Sequence.factory()
+            obj_.build(child_)
+            self.sequence.append(obj_)
+        elif nodeName_ == 'events':
+            obj_ = Events.factory()
+            obj_.build(child_)
+            self.set_events(obj_)
+        elif nodeName_ == 'binary_characters':
+            obj_ = BinaryCharacters.factory()
+            obj_.build(child_)
+            self.set_binary_characters(obj_)
+        elif nodeName_ == 'distribution':
+            obj_ = Distribution.factory()
+            obj_.build(child_)
+            self.distribution.append(obj_)
+        elif nodeName_ == 'date':
+            obj_ = Date.factory()
+            obj_.build(child_)
+            self.set_date(obj_)
+        elif nodeName_ == 'reference':
+            obj_ = Reference.factory()
+            obj_.build(child_)
+            self.reference.append(obj_)
+        elif nodeName_ == 'property':
+            obj_ = Property.factory()
+            obj_.build(child_)
+            self.property.append(obj_)
+        elif nodeName_ == 'clade':
+            obj_ = Clade.factory()
+            obj_.build(child_)
+            self.clade.append(obj_)
+# end class Clade
+
+
+class Taxonomy(GeneratedsSuper):
+    """Element Taxonomy is used to describe taxonomic information for a
+    clade. Element 'code' is intended to store UniProt/Swiss-Prot
+    style organism codes (e.g. 'APLCA' for the California sea hare
+    'Aplysia californica') or other styles of mnemonics (e.g.
+    'Aca'). Element 'authority' is used to keep the authority, such
+    as 'J. G. Cooper, 1863', associated with the 'scientific_name'.
+    Element 'id' is used for a unique identifier of a taxon (for
+    example '6500' with 'ncbi_taxonomy' as 'provider' for the
+    California sea hare). Attribute 'id_source' is used to link
+    other elements to a taxonomy (on the xml-level)."""
+    subclass = None
+    superclass = None
+    def __init__(self, id_source=None, id=None, code=None, scientific_name=None, authority=None, common_name=None, synonym=None, rank=None, uri=None, valueOf_=None):
+        self.id_source = _cast(None, id_source)
+        self.id = id
+        self.code = code
+        self.scientific_name = scientific_name
+        self.authority = authority
+        if common_name is None:
+            self.common_name = []
+        else:
+            self.common_name = common_name
+        if synonym is None:
+            self.synonym = []
+        else:
+            self.synonym = synonym
+        self.rank = rank
+        self.uri = uri
+    def factory(*args_, **kwargs_):
+        if Taxonomy.subclass:
+            return Taxonomy.subclass(*args_, **kwargs_)
+        else:
+            return Taxonomy(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_code(self): return self.code
+    def set_code(self, code): self.code = code
+    def validate_TaxonomyCode(self, value):
+        # Validate type TaxonomyCode, a restriction on xs:token.
+        pass
+    def get_scientific_name(self): return self.scientific_name
+    def set_scientific_name(self, scientific_name): self.scientific_name = scientific_name
+    def get_authority(self): return self.authority
+    def set_authority(self, authority): self.authority = authority
+    def get_common_name(self): return self.common_name
+    def set_common_name(self, common_name): self.common_name = common_name
+    def add_common_name(self, value): self.common_name.append(value)
+    def insert_common_name(self, index, value): self.common_name[index] = value
+    def get_synonym(self): return self.synonym
+    def set_synonym(self, synonym): self.synonym = synonym
+    def add_synonym(self, value): self.synonym.append(value)
+    def insert_synonym(self, index, value): self.synonym[index] = value
+    def get_rank(self): return self.rank
+    def set_rank(self, rank): self.rank = rank
+    def validate_Rank(self, value):
+        # Validate type Rank, a restriction on xs:token.
+        pass
+    def get_uri(self): return self.uri
+    def set_uri(self, uri): self.uri = uri
+    def get_id_source(self): return self.id_source
+    def set_id_source(self, id_source): self.id_source = id_source
+    def export(self, outfile, level, namespace_='phy:', name_='Taxonomy', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Taxonomy')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Taxonomy'):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            outfile.write(' id_source=%s' % (quote_attrib(self.id_source), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Taxonomy', fromsubclass_=False):
+        if self.id:
+            self.id.export(outfile, level, namespace_, name_='id')
+        if self.code is not None:
+            showIndent(outfile, level)
+            outfile.write('<%scode>%s</%scode>\n' % (namespace_, self.gds_format_string(quote_xml(self.code).encode(ExternalEncoding), input_name='code'), namespace_))
+        if self.scientific_name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sscientific_name>%s</%sscientific_name>\n' % (namespace_, self.gds_format_string(quote_xml(self.scientific_name).encode(ExternalEncoding), input_name='scientific_name'), namespace_))
+        if self.authority is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sauthority>%s</%sauthority>\n' % (namespace_, self.gds_format_string(quote_xml(self.authority).encode(ExternalEncoding), input_name='authority'), namespace_))
+        for common_name_ in self.common_name:
+            showIndent(outfile, level)
+            outfile.write('<%scommon_name>%s</%scommon_name>\n' % (namespace_, self.gds_format_string(quote_xml(common_name_).encode(ExternalEncoding), input_name='common_name'), namespace_))
+        for synonym_ in self.synonym:
+            showIndent(outfile, level)
+            outfile.write('<%ssynonym>%s</%ssynonym>\n' % (namespace_, self.gds_format_string(quote_xml(synonym_).encode(ExternalEncoding), input_name='synonym'), namespace_))
+        if self.rank is not None:
+            showIndent(outfile, level)
+            outfile.write('<%srank>%s</%srank>\n' % (namespace_, self.gds_format_string(quote_xml(self.rank).encode(ExternalEncoding), input_name='rank'), namespace_))
+        if self.uri:
+            self.uri.export(outfile, level, namespace_, name_='uri')
+    def hasContent_(self):
+        if (
+            self.id is not None or
+            self.code is not None or
+            self.scientific_name is not None or
+            self.authority is not None or
+            self.common_name or
+            self.synonym or
+            self.rank is not None or
+            self.uri is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Taxonomy'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            showIndent(outfile, level)
+            outfile.write('id_source = %s,\n' % (self.id_source,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id=model_.Id(\n')
+            self.id.exportLiteral(outfile, level, name_='id')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.code is not None:
+            showIndent(outfile, level)
+            outfile.write('code=%s,\n' % quote_python(self.code).encode(ExternalEncoding))
+        if self.scientific_name is not None:
+            showIndent(outfile, level)
+            outfile.write('scientific_name=%s,\n' % quote_python(self.scientific_name).encode(ExternalEncoding))
+        if self.authority is not None:
+            showIndent(outfile, level)
+            outfile.write('authority=%s,\n' % quote_python(self.authority).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('common_name=[\n')
+        level += 1
+        for common_name_ in self.common_name:
+            showIndent(outfile, level)
+            outfile.write('%s,\n' % quote_python(common_name_).encode(ExternalEncoding))
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('synonym=[\n')
+        level += 1
+        for synonym_ in self.synonym:
+            showIndent(outfile, level)
+            outfile.write('%s,\n' % quote_python(synonym_).encode(ExternalEncoding))
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.rank is not None:
+            showIndent(outfile, level)
+            outfile.write('rank=%s,\n' % quote_python(self.rank).encode(ExternalEncoding))
+        if self.uri is not None:
+            showIndent(outfile, level)
+            outfile.write('uri=model_.Uri(\n')
+            self.uri.exportLiteral(outfile, level, name_='uri')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id_source', node)
+        if value is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            self.id_source = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'id':
+            obj_ = Id.factory()
+            obj_.build(child_)
+            self.set_id(obj_)
+        elif nodeName_ == 'code':
+            code_ = child_.text
+            code_ = re_.sub(STRING_CLEANUP_PAT, " ", code_).strip()
+            code_ = self.gds_validate_string(code_, node, 'code')
+            self.code = code_
+            self.validate_TaxonomyCode(self.code)    # validate type TaxonomyCode
+        elif nodeName_ == 'scientific_name':
+            scientific_name_ = child_.text
+            scientific_name_ = re_.sub(STRING_CLEANUP_PAT, " ", scientific_name_).strip()
+            scientific_name_ = self.gds_validate_string(scientific_name_, node, 'scientific_name')
+            self.scientific_name = scientific_name_
+        elif nodeName_ == 'authority':
+            authority_ = child_.text
+            authority_ = re_.sub(STRING_CLEANUP_PAT, " ", authority_).strip()
+            authority_ = self.gds_validate_string(authority_, node, 'authority')
+            self.authority = authority_
+        elif nodeName_ == 'common_name':
+            common_name_ = child_.text
+            common_name_ = re_.sub(STRING_CLEANUP_PAT, " ", common_name_).strip()
+            common_name_ = self.gds_validate_string(common_name_, node, 'common_name')
+            self.common_name.append(common_name_)
+        elif nodeName_ == 'synonym':
+            synonym_ = child_.text
+            synonym_ = re_.sub(STRING_CLEANUP_PAT, " ", synonym_).strip()
+            synonym_ = self.gds_validate_string(synonym_, node, 'synonym')
+            self.synonym.append(synonym_)
+        elif nodeName_ == 'rank':
+            rank_ = child_.text
+            rank_ = re_.sub(STRING_CLEANUP_PAT, " ", rank_).strip()
+            rank_ = self.gds_validate_string(rank_, node, 'rank')
+            self.rank = rank_
+            self.validate_Rank(self.rank)    # validate type Rank
+        elif nodeName_ == 'uri':
+            obj_ = Uri.factory()
+            obj_.build(child_)
+            self.set_uri(obj_)
+# end class Taxonomy
+
+
+class Sequence(GeneratedsSuper):
+    """Element Sequence is used to represent a molecular sequence (Protein,
+    DNA, RNA) associated with a node. 'symbol' is a short (maximal
+    ten characters) symbol of the sequence (e.g. 'ACTM') whereas
+    'name' is used for the full name (e.g. 'muscle Actin').
+    'location' is used for the location of a sequence on a
+    genome/chromosome. The actual sequence can be stored with the
+    'mol_seq' element. Attribute 'type' is used to indicate the type
+    of sequence ('dna', 'rna', or 'protein'). One intended use for
+    'id_ref' is to link a sequence to a taxonomy (via the taxonomy's
+    'id_source') in case of multiple sequences and taxonomies per
+    node."""
+    subclass = None
+    superclass = None
+    def __init__(self, id_source=None, id_ref=None, type_=None, symbol=None, accession=None, name=None, location=None, mol_seq=None, uri=None, annotation=None, domain_architecture=None, valueOf_=None):
+        self.id_source = _cast(None, id_source)
+        self.id_ref = _cast(None, id_ref)
+        self.type_ = _cast(None, type_)
+        self.symbol = symbol
+        self.accession = accession
+        self.name = name
+        self.location = location
+        self.mol_seq = mol_seq
+        self.uri = uri
+        if annotation is None:
+            self.annotation = []
+        else:
+            self.annotation = annotation
+        self.domain_architecture = domain_architecture
+    def factory(*args_, **kwargs_):
+        if Sequence.subclass:
+            return Sequence.subclass(*args_, **kwargs_)
+        else:
+            return Sequence(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_symbol(self): return self.symbol
+    def set_symbol(self, symbol): self.symbol = symbol
+    def validate_SequenceSymbol(self, value):
+        # Validate type SequenceSymbol, a restriction on xs:token.
+        pass
+    def get_accession(self): return self.accession
+    def set_accession(self, accession): self.accession = accession
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_location(self): return self.location
+    def set_location(self, location): self.location = location
+    def get_mol_seq(self): return self.mol_seq
+    def set_mol_seq(self, mol_seq): self.mol_seq = mol_seq
+    def get_uri(self): return self.uri
+    def set_uri(self, uri): self.uri = uri
+    def get_annotation(self): return self.annotation
+    def set_annotation(self, annotation): self.annotation = annotation
+    def add_annotation(self, value): self.annotation.append(value)
+    def insert_annotation(self, index, value): self.annotation[index] = value
+    def get_domain_architecture(self): return self.domain_architecture
+    def set_domain_architecture(self, domain_architecture): self.domain_architecture = domain_architecture
+    def get_id_source(self): return self.id_source
+    def set_id_source(self, id_source): self.id_source = id_source
+    def get_id_ref(self): return self.id_ref
+    def set_id_ref(self, id_ref): self.id_ref = id_ref
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def export(self, outfile, level, namespace_='phy:', name_='Sequence', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Sequence')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Sequence'):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            outfile.write(' id_source=%s' % (quote_attrib(self.id_source), ))
+        if self.id_ref is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            outfile.write(' id_ref=%s' % (quote_attrib(self.id_ref), ))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (quote_attrib(self.type_), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Sequence', fromsubclass_=False):
+        if self.symbol is not None:
+            showIndent(outfile, level)
+            outfile.write('<%ssymbol>%s</%ssymbol>\n' % (namespace_, self.gds_format_string(quote_xml(self.symbol).encode(ExternalEncoding), input_name='symbol'), namespace_))
+        if self.accession:
+            self.accession.export(outfile, level, namespace_, name_='accession')
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.gds_format_string(quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+        if self.location is not None:
+            showIndent(outfile, level)
+            outfile.write('<%slocation>%s</%slocation>\n' % (namespace_, self.gds_format_string(quote_xml(self.location).encode(ExternalEncoding), input_name='location'), namespace_))
+        if self.mol_seq:
+            self.mol_seq.export(outfile, level, namespace_, name_='mol_seq')
+        if self.uri:
+            self.uri.export(outfile, level, namespace_, name_='uri')
+        for annotation_ in self.annotation:
+            annotation_.export(outfile, level, namespace_, name_='annotation')
+        if self.domain_architecture:
+            self.domain_architecture.export(outfile, level, namespace_, name_='domain_architecture')
+    def hasContent_(self):
+        if (
+            self.symbol is not None or
+            self.accession is not None or
+            self.name is not None or
+            self.location is not None or
+            self.mol_seq is not None or
+            self.uri is not None or
+            self.annotation or
+            self.domain_architecture is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Sequence'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id_source is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            showIndent(outfile, level)
+            outfile.write('id_source = %s,\n' % (self.id_source,))
+        if self.id_ref is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            showIndent(outfile, level)
+            outfile.write('id_ref = %s,\n' % (self.id_ref,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = %s,\n' % (self.type_,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.symbol is not None:
+            showIndent(outfile, level)
+            outfile.write('symbol=%s,\n' % quote_python(self.symbol).encode(ExternalEncoding))
+        if self.accession is not None:
+            showIndent(outfile, level)
+            outfile.write('accession=model_.Accession(\n')
+            self.accession.exportLiteral(outfile, level, name_='accession')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('name=%s,\n' % quote_python(self.name).encode(ExternalEncoding))
+        if self.location is not None:
+            showIndent(outfile, level)
+            outfile.write('location=%s,\n' % quote_python(self.location).encode(ExternalEncoding))
+        if self.mol_seq is not None:
+            showIndent(outfile, level)
+            outfile.write('mol_seq=model_.MolSeq(\n')
+            self.mol_seq.exportLiteral(outfile, level, name_='mol_seq')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.uri is not None:
+            showIndent(outfile, level)
+            outfile.write('uri=model_.Uri(\n')
+            self.uri.exportLiteral(outfile, level, name_='uri')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('annotation=[\n')
+        level += 1
+        for annotation_ in self.annotation:
+            showIndent(outfile, level)
+            outfile.write('model_.Annotation(\n')
+            annotation_.exportLiteral(outfile, level, name_='Annotation')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.domain_architecture is not None:
+            showIndent(outfile, level)
+            outfile.write('domain_architecture=model_.DomainArchitecture(\n')
+            self.domain_architecture.exportLiteral(outfile, level, name_='domain_architecture')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id_source', node)
+        if value is not None and 'id_source' not in already_processed:
+            already_processed.append('id_source')
+            self.id_source = value
+        value = find_attr_value_('id_ref', node)
+        if value is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            self.id_ref = value
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'symbol':
+            symbol_ = child_.text
+            symbol_ = re_.sub(STRING_CLEANUP_PAT, " ", symbol_).strip()
+            symbol_ = self.gds_validate_string(symbol_, node, 'symbol')
+            self.symbol = symbol_
+            self.validate_SequenceSymbol(self.symbol)    # validate type SequenceSymbol
+        elif nodeName_ == 'accession':
+            obj_ = Accession.factory()
+            obj_.build(child_)
+            self.set_accession(obj_)
+        elif nodeName_ == 'name':
+            name_ = child_.text
+            name_ = re_.sub(STRING_CLEANUP_PAT, " ", name_).strip()
+            name_ = self.gds_validate_string(name_, node, 'name')
+            self.name = name_
+        elif nodeName_ == 'location':
+            location_ = child_.text
+            location_ = re_.sub(STRING_CLEANUP_PAT, " ", location_).strip()
+            location_ = self.gds_validate_string(location_, node, 'location')
+            self.location = location_
+        elif nodeName_ == 'mol_seq':
+            obj_ = MolSeq.factory()
+            obj_.build(child_)
+            self.set_mol_seq(obj_)
+        elif nodeName_ == 'uri':
+            obj_ = Uri.factory()
+            obj_.build(child_)
+            self.set_uri(obj_)
+        elif nodeName_ == 'annotation':
+            obj_ = Annotation.factory()
+            obj_.build(child_)
+            self.annotation.append(obj_)
+        elif nodeName_ == 'domain_architecture':
+            obj_ = DomainArchitecture.factory()
+            obj_.build(child_)
+            self.set_domain_architecture(obj_)
+# end class Sequence
+
+
+class MolSeq(GeneratedsSuper):
+    """Element 'mol_seq' is used to store molecular sequences. The
+    'is_aligned' attribute is used to indicated that this molecular
+    sequence is aligned with all other sequences in the same
+    phylogeny for which 'is aligned' is true as well (which, in most
+    cases, means that gaps were introduced, and that all sequences
+    for which 'is aligned' is true must have the same length)."""
+    subclass = None
+    superclass = None
+    def __init__(self, is_aligned=None, valueOf_=None):
+        self.is_aligned = _cast(bool, is_aligned)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if MolSeq.subclass:
+            return MolSeq.subclass(*args_, **kwargs_)
+        else:
+            return MolSeq(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_is_aligned(self): return self.is_aligned
+    def set_is_aligned(self, is_aligned): self.is_aligned = is_aligned
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='MolSeq', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='MolSeq')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='MolSeq'):
+        if self.is_aligned is not None and 'is_aligned' not in already_processed:
+            already_processed.append('is_aligned')
+            outfile.write(' is_aligned="%s"' % self.gds_format_boolean(self.gds_str_lower(str(self.is_aligned)), input_name='is_aligned'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='MolSeq', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='MolSeq'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.is_aligned is not None and 'is_aligned' not in already_processed:
+            already_processed.append('is_aligned')
+            showIndent(outfile, level)
+            outfile.write('is_aligned = %s,\n' % (self.is_aligned,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('is_aligned', node)
+        if value is not None and 'is_aligned' not in already_processed:
+            already_processed.append('is_aligned')
+            if value in ('true', '1'):
+                self.is_aligned = True
+            elif value in ('false', '0'):
+                self.is_aligned = False
+            else:
+                raise_parse_error(node, 'Bad boolean attribute')
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class MolSeq
+
+
+class Accession(GeneratedsSuper):
+    """Element Accession is used to capture the local part in a sequence
+    identifier (e.g. 'P17304' in 'UniProtKB:P17304', in which case
+    the 'source' attribute would be 'UniProtKB')."""
+    subclass = None
+    superclass = None
+    def __init__(self, source=None, valueOf_=None):
+        self.source = _cast(None, source)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if Accession.subclass:
+            return Accession.subclass(*args_, **kwargs_)
+        else:
+            return Accession(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_source(self): return self.source
+    def set_source(self, source): self.source = source
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='Accession', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Accession')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Accession'):
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            outfile.write(' source=%s' % (self.gds_format_string(quote_attrib(self.source).encode(ExternalEncoding), input_name='source'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Accession', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Accession'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            showIndent(outfile, level)
+            outfile.write('source = "%s",\n' % (self.source,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('source', node)
+        if value is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            self.source = value
+            self.source = ' '.join(self.source.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class Accession
+
+
+class DomainArchitecture(GeneratedsSuper):
+    """This is used describe the domain architecture of a protein.
+    Attribute 'length' is the total length of the protein"""
+    subclass = None
+    superclass = None
+    def __init__(self, length=None, domain=None, valueOf_=None):
+        self.length = _cast(int, length)
+        if domain is None:
+            self.domain = []
+        else:
+            self.domain = domain
+    def factory(*args_, **kwargs_):
+        if DomainArchitecture.subclass:
+            return DomainArchitecture.subclass(*args_, **kwargs_)
+        else:
+            return DomainArchitecture(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_domain(self): return self.domain
+    def set_domain(self, domain): self.domain = domain
+    def add_domain(self, value): self.domain.append(value)
+    def insert_domain(self, index, value): self.domain[index] = value
+    def get_length(self): return self.length
+    def set_length(self, length): self.length = length
+    def export(self, outfile, level, namespace_='phy:', name_='DomainArchitecture', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='DomainArchitecture')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='DomainArchitecture'):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            outfile.write(' length="%s"' % self.gds_format_integer(self.length, input_name='length'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='DomainArchitecture', fromsubclass_=False):
+        for domain_ in self.domain:
+            domain_.export(outfile, level, namespace_, name_='domain')
+    def hasContent_(self):
+        if (
+            self.domain
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='DomainArchitecture'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.length is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            showIndent(outfile, level)
+            outfile.write('length = %d,\n' % (self.length,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('domain=[\n')
+        level += 1
+        for domain_ in self.domain:
+            showIndent(outfile, level)
+            outfile.write('model_.ProteinDomain(\n')
+            domain_.exportLiteral(outfile, level, name_='ProteinDomain')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('length', node)
+        if value is not None and 'length' not in already_processed:
+            already_processed.append('length')
+            try:
+                self.length = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.length < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'domain':
+            obj_ = ProteinDomain.factory()
+            obj_.build(child_)
+            self.domain.append(obj_)
+# end class DomainArchitecture
+
+
+class ProteinDomain(GeneratedsSuper):
+    """To represent an individual domain in a domain architecture. The
+    name/unique identifier is described via the 'id' attribute.
+    'confidence' can be used to store (i.e.) E-values."""
+    subclass = None
+    superclass = None
+    def __init__(self, to=None, confidence=None, fromxx=None, id=None, valueOf_=None):
+        self.to = _cast(int, to)
+        self.confidence = _cast(float, confidence)
+        self.fromxx = _cast(int, fromxx)
+        self.id = _cast(None, id)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if ProteinDomain.subclass:
+            return ProteinDomain.subclass(*args_, **kwargs_)
+        else:
+            return ProteinDomain(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_to(self): return self.to
+    def set_to(self, to): self.to = to
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def get_from(self): return self.fromxx
+    def set_from(self, fromxx): self.fromxx = fromxx
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='ProteinDomain', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='ProteinDomain')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='ProteinDomain'):
+        if self.to is not None and 'to' not in already_processed:
+            already_processed.append('to')
+            outfile.write(' to="%s"' % self.gds_format_integer(self.to, input_name='to'))
+        if self.confidence is not None and 'confidence' not in already_processed:
+            already_processed.append('confidence')
+            outfile.write(' confidence="%s"' % self.gds_format_double(self.confidence, input_name='confidence'))
+        if self.fromxx is not None and 'fromxx' not in already_processed:
+            already_processed.append('fromxx')
+            outfile.write(' from="%s"' % self.gds_format_integer(self.fromxx, input_name='from'))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='ProteinDomain', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='ProteinDomain'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.to is not None and 'to' not in already_processed:
+            already_processed.append('to')
+            showIndent(outfile, level)
+            outfile.write('to = %d,\n' % (self.to,))
+        if self.confidence is not None and 'confidence' not in already_processed:
+            already_processed.append('confidence')
+            showIndent(outfile, level)
+            outfile.write('confidence = %e,\n' % (self.confidence,))
+        if self.fromxx is not None and 'fromxx' not in already_processed:
+            already_processed.append('fromxx')
+            showIndent(outfile, level)
+            outfile.write('fromxx = %d,\n' % (self.fromxx,))
+        if self.id is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            showIndent(outfile, level)
+            outfile.write('id = "%s",\n' % (self.id,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('to', node)
+        if value is not None and 'to' not in already_processed:
+            already_processed.append('to')
+            try:
+                self.to = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.to < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+        value = find_attr_value_('confidence', node)
+        if value is not None and 'confidence' not in already_processed:
+            already_processed.append('confidence')
+            try:
+                self.confidence = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (confidence): %s' % exp)
+        value = find_attr_value_('from', node)
+        if value is not None and 'from' not in already_processed:
+            already_processed.append('from')
+            try:
+                self.fromxx = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.fromxx < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+        value = find_attr_value_('id', node)
+        if value is not None and 'id' not in already_processed:
+            already_processed.append('id')
+            self.id = value
+            self.id = ' '.join(self.id.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class ProteinDomain
+
+
+class Events(GeneratedsSuper):
+    """Events at the root node of a clade (e.g. one gene duplication)."""
+    subclass = None
+    superclass = None
+    def __init__(self, type_=None, duplications=None, speciations=None, losses=None, confidence=None, valueOf_=None):
+        self.type_ = type_
+        self.duplications = duplications
+        self.speciations = speciations
+        self.losses = losses
+        self.confidence = confidence
+    def factory(*args_, **kwargs_):
+        if Events.subclass:
+            return Events.subclass(*args_, **kwargs_)
+        else:
+            return Events(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def validate_EventType(self, value):
+        # Validate type EventType, a restriction on xs:token.
+        pass
+    def get_duplications(self): return self.duplications
+    def set_duplications(self, duplications): self.duplications = duplications
+    def get_speciations(self): return self.speciations
+    def set_speciations(self, speciations): self.speciations = speciations
+    def get_losses(self): return self.losses
+    def set_losses(self, losses): self.losses = losses
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def export(self, outfile, level, namespace_='phy:', name_='Events', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Events')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Events'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Events', fromsubclass_=False):
+        if self.type_ is not None:
+            showIndent(outfile, level)
+            outfile.write('<%stype>%s</%stype>\n' % (namespace_, self.gds_format_string(quote_xml(self.type_).encode(ExternalEncoding), input_name='type'), namespace_))
+        if self.duplications is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sduplications>%s</%sduplications>\n' % (namespace_, self.gds_format_integer(self.duplications, input_name='duplications'), namespace_))
+        if self.speciations is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sspeciations>%s</%sspeciations>\n' % (namespace_, self.gds_format_integer(self.speciations, input_name='speciations'), namespace_))
+        if self.losses is not None:
+            showIndent(outfile, level)
+            outfile.write('<%slosses>%s</%slosses>\n' % (namespace_, self.gds_format_integer(self.losses, input_name='losses'), namespace_))
+        if self.confidence:
+            self.confidence.export(outfile, level, namespace_, name_='confidence')
+    def hasContent_(self):
+        if (
+            self.type_ is not None or
+            self.duplications is not None or
+            self.speciations is not None or
+            self.losses is not None or
+            self.confidence is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Events'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.type_ is not None:
+            showIndent(outfile, level)
+            outfile.write('type_=%s,\n' % quote_python(self.type_).encode(ExternalEncoding))
+        if self.duplications is not None:
+            showIndent(outfile, level)
+            outfile.write('duplications=%d,\n' % self.duplications)
+        if self.speciations is not None:
+            showIndent(outfile, level)
+            outfile.write('speciations=%d,\n' % self.speciations)
+        if self.losses is not None:
+            showIndent(outfile, level)
+            outfile.write('losses=%d,\n' % self.losses)
+        if self.confidence is not None:
+            showIndent(outfile, level)
+            outfile.write('confidence=model_.Confidence(\n')
+            self.confidence.exportLiteral(outfile, level, name_='confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'type':
+            type_ = child_.text
+            type_ = re_.sub(STRING_CLEANUP_PAT, " ", type_).strip()
+            type_ = self.gds_validate_string(type_, node, 'type')
+            self.type_ = type_
+            self.validate_EventType(self.type_)    # validate type EventType
+        elif nodeName_ == 'duplications':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            if ival_ < 0:
+                raise_parse_error(child_, 'requires nonNegativeInteger')
+            ival_ = self.gds_validate_integer(ival_, node, 'duplications')
+            self.duplications = ival_
+        elif nodeName_ == 'speciations':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            if ival_ < 0:
+                raise_parse_error(child_, 'requires nonNegativeInteger')
+            ival_ = self.gds_validate_integer(ival_, node, 'speciations')
+            self.speciations = ival_
+        elif nodeName_ == 'losses':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            if ival_ < 0:
+                raise_parse_error(child_, 'requires nonNegativeInteger')
+            ival_ = self.gds_validate_integer(ival_, node, 'losses')
+            self.losses = ival_
+        elif nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.set_confidence(obj_)
+# end class Events
+
+
+class BinaryCharacters(GeneratedsSuper):
+    """The names and/or counts of binary characters present, gained, and
+    lost at the root of a clade."""
+    subclass = None
+    superclass = None
+    def __init__(self, lost_count=None, absent_count=None, present_count=None, type_=None, gained_count=None, gained=None, lost=None, present=None, absent=None, valueOf_=None):
+        self.lost_count = _cast(int, lost_count)
+        self.absent_count = _cast(int, absent_count)
+        self.present_count = _cast(int, present_count)
+        self.type_ = _cast(None, type_)
+        self.gained_count = _cast(int, gained_count)
+        self.gained = gained
+        self.lost = lost
+        self.present = present
+        self.absent = absent
+    def factory(*args_, **kwargs_):
+        if BinaryCharacters.subclass:
+            return BinaryCharacters.subclass(*args_, **kwargs_)
+        else:
+            return BinaryCharacters(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_gained(self): return self.gained
+    def set_gained(self, gained): self.gained = gained
+    def get_lost(self): return self.lost
+    def set_lost(self, lost): self.lost = lost
+    def get_present(self): return self.present
+    def set_present(self, present): self.present = present
+    def get_absent(self): return self.absent
+    def set_absent(self, absent): self.absent = absent
+    def get_lost_count(self): return self.lost_count
+    def set_lost_count(self, lost_count): self.lost_count = lost_count
+    def get_absent_count(self): return self.absent_count
+    def set_absent_count(self, absent_count): self.absent_count = absent_count
+    def get_present_count(self): return self.present_count
+    def set_present_count(self, present_count): self.present_count = present_count
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_gained_count(self): return self.gained_count
+    def set_gained_count(self, gained_count): self.gained_count = gained_count
+    def export(self, outfile, level, namespace_='phy:', name_='BinaryCharacters', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='BinaryCharacters')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='BinaryCharacters'):
+        if self.lost_count is not None and 'lost_count' not in already_processed:
+            already_processed.append('lost_count')
+            outfile.write(' lost_count="%s"' % self.gds_format_integer(self.lost_count, input_name='lost_count'))
+        if self.absent_count is not None and 'absent_count' not in already_processed:
+            already_processed.append('absent_count')
+            outfile.write(' absent_count="%s"' % self.gds_format_integer(self.absent_count, input_name='absent_count'))
+        if self.present_count is not None and 'present_count' not in already_processed:
+            already_processed.append('present_count')
+            outfile.write(' present_count="%s"' % self.gds_format_integer(self.present_count, input_name='present_count'))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+        if self.gained_count is not None and 'gained_count' not in already_processed:
+            already_processed.append('gained_count')
+            outfile.write(' gained_count="%s"' % self.gds_format_integer(self.gained_count, input_name='gained_count'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='BinaryCharacters', fromsubclass_=False):
+        if self.gained:
+            self.gained.export(outfile, level, namespace_, name_='gained')
+        if self.lost:
+            self.lost.export(outfile, level, namespace_, name_='lost')
+        if self.present:
+            self.present.export(outfile, level, namespace_, name_='present')
+        if self.absent:
+            self.absent.export(outfile, level, namespace_, name_='absent')
+    def hasContent_(self):
+        if (
+            self.gained is not None or
+            self.lost is not None or
+            self.present is not None or
+            self.absent is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='BinaryCharacters'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.lost_count is not None and 'lost_count' not in already_processed:
+            already_processed.append('lost_count')
+            showIndent(outfile, level)
+            outfile.write('lost_count = %d,\n' % (self.lost_count,))
+        if self.absent_count is not None and 'absent_count' not in already_processed:
+            already_processed.append('absent_count')
+            showIndent(outfile, level)
+            outfile.write('absent_count = %d,\n' % (self.absent_count,))
+        if self.present_count is not None and 'present_count' not in already_processed:
+            already_processed.append('present_count')
+            showIndent(outfile, level)
+            outfile.write('present_count = %d,\n' % (self.present_count,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.gained_count is not None and 'gained_count' not in already_processed:
+            already_processed.append('gained_count')
+            showIndent(outfile, level)
+            outfile.write('gained_count = %d,\n' % (self.gained_count,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.gained is not None:
+            showIndent(outfile, level)
+            outfile.write('gained=model_.BinaryCharacterList(\n')
+            self.gained.exportLiteral(outfile, level, name_='gained')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.lost is not None:
+            showIndent(outfile, level)
+            outfile.write('lost=model_.BinaryCharacterList(\n')
+            self.lost.exportLiteral(outfile, level, name_='lost')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.present is not None:
+            showIndent(outfile, level)
+            outfile.write('present=model_.BinaryCharacterList(\n')
+            self.present.exportLiteral(outfile, level, name_='present')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.absent is not None:
+            showIndent(outfile, level)
+            outfile.write('absent=model_.BinaryCharacterList(\n')
+            self.absent.exportLiteral(outfile, level, name_='absent')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('lost_count', node)
+        if value is not None and 'lost_count' not in already_processed:
+            already_processed.append('lost_count')
+            try:
+                self.lost_count = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.lost_count < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+        value = find_attr_value_('absent_count', node)
+        if value is not None and 'absent_count' not in already_processed:
+            already_processed.append('absent_count')
+            try:
+                self.absent_count = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.absent_count < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+        value = find_attr_value_('present_count', node)
+        if value is not None and 'present_count' not in already_processed:
+            already_processed.append('present_count')
+            try:
+                self.present_count = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.present_count < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+        value = find_attr_value_('gained_count', node)
+        if value is not None and 'gained_count' not in already_processed:
+            already_processed.append('gained_count')
+            try:
+                self.gained_count = int(value)
+            except ValueError as exp:
+                raise_parse_error(node, 'Bad integer attribute: %s' % exp)
+            if self.gained_count < 0:
+                raise_parse_error(node, 'Invalid NonNegativeInteger')
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'gained':
+            obj_ = BinaryCharacterList.factory()
+            obj_.build(child_)
+            self.set_gained(obj_)
+        elif nodeName_ == 'lost':
+            obj_ = BinaryCharacterList.factory()
+            obj_.build(child_)
+            self.set_lost(obj_)
+        elif nodeName_ == 'present':
+            obj_ = BinaryCharacterList.factory()
+            obj_.build(child_)
+            self.set_present(obj_)
+        elif nodeName_ == 'absent':
+            obj_ = BinaryCharacterList.factory()
+            obj_.build(child_)
+            self.set_absent(obj_)
+# end class BinaryCharacters
+
+
+class BinaryCharacterList(GeneratedsSuper):
+    subclass = None
+    superclass = None
+    def __init__(self, bc=None, valueOf_=None):
+        if bc is None:
+            self.bc = []
+        else:
+            self.bc = bc
+    def factory(*args_, **kwargs_):
+        if BinaryCharacterList.subclass:
+            return BinaryCharacterList.subclass(*args_, **kwargs_)
+        else:
+            return BinaryCharacterList(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_bc(self): return self.bc
+    def set_bc(self, bc): self.bc = bc
+    def add_bc(self, value): self.bc.append(value)
+    def insert_bc(self, index, value): self.bc[index] = value
+    def export(self, outfile, level, namespace_='phy:', name_='BinaryCharacterList', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='BinaryCharacterList')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='BinaryCharacterList'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='BinaryCharacterList', fromsubclass_=False):
+        for bc_ in self.bc:
+            showIndent(outfile, level)
+            outfile.write('<%sbc>%s</%sbc>\n' % (namespace_, self.gds_format_string(quote_xml(bc_).encode(ExternalEncoding), input_name='bc'), namespace_))
+    def hasContent_(self):
+        if (
+            self.bc
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='BinaryCharacterList'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('bc=[\n')
+        level += 1
+        for bc_ in self.bc:
+            showIndent(outfile, level)
+            outfile.write('%s,\n' % quote_python(bc_).encode(ExternalEncoding))
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'bc':
+            bc_ = child_.text
+            bc_ = re_.sub(STRING_CLEANUP_PAT, " ", bc_).strip()
+            bc_ = self.gds_validate_string(bc_, node, 'bc')
+            self.bc.append(bc_)
+# end class BinaryCharacterList
+
+
+class Reference(GeneratedsSuper):
+    """A literature reference for a clade. It is recommended to use the
+    'doi' attribute instead of the free text 'desc' element whenever
+    possible."""
+    subclass = None
+    superclass = None
+    def __init__(self, doi=None, desc=None, valueOf_=None):
+        self.doi = _cast(None, doi)
+        self.desc = desc
+    def factory(*args_, **kwargs_):
+        if Reference.subclass:
+            return Reference.subclass(*args_, **kwargs_)
+        else:
+            return Reference(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def get_doi(self): return self.doi
+    def set_doi(self, doi): self.doi = doi
+    def export(self, outfile, level, namespace_='phy:', name_='Reference', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Reference')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Reference'):
+        if self.doi is not None and 'doi' not in already_processed:
+            already_processed.append('doi')
+            outfile.write(' doi=%s' % (quote_attrib(self.doi), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Reference', fromsubclass_=False):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdesc>%s</%sdesc>\n' % (namespace_, self.gds_format_string(quote_xml(self.desc).encode(ExternalEncoding), input_name='desc'), namespace_))
+    def hasContent_(self):
+        if (
+            self.desc is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Reference'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.doi is not None and 'doi' not in already_processed:
+            already_processed.append('doi')
+            showIndent(outfile, level)
+            outfile.write('doi = %s,\n' % (self.doi,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('desc=%s,\n' % quote_python(self.desc).encode(ExternalEncoding))
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('doi', node)
+        if value is not None and 'doi' not in already_processed:
+            already_processed.append('doi')
+            self.doi = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'desc':
+            desc_ = child_.text
+            desc_ = re_.sub(STRING_CLEANUP_PAT, " ", desc_).strip()
+            desc_ = self.gds_validate_string(desc_, node, 'desc')
+            self.desc = desc_
+# end class Reference
+
+
+class Annotation(GeneratedsSuper):
+    """The annotation of a molecular sequence. It is recommended to
+    annotate by using the optional 'ref' attribute (some examples of
+    acceptable values for the ref attribute: 'GO:0008270',
+    'KEGG:Tetrachloroethene degradation', 'EC:1.1.1.1'). Optional
+    element 'desc' allows for a free text description. Optional
+    element 'confidence' is used to state the type and value of
+    support for a annotation. Similarly, optional attribute
+    'evidence' is used to describe the evidence for a annotation as
+    free text (e.g. 'experimental'). Optional element 'property'
+    allows for further, typed and referenced annotations from
+    external resources."""
+    subclass = None
+    superclass = None
+    def __init__(self, source=None, type_=None, ref=None, evidence=None, desc=None, confidence=None, property=None, uri=None, valueOf_=None):
+        self.source = _cast(None, source)
+        self.type_ = _cast(None, type_)
+        self.ref = _cast(None, ref)
+        self.evidence = _cast(None, evidence)
+        self.desc = desc
+        self.confidence = confidence
+        if property is None:
+            self.property = []
+        else:
+            self.property = property
+        self.uri = uri
+    def factory(*args_, **kwargs_):
+        if Annotation.subclass:
+            return Annotation.subclass(*args_, **kwargs_)
+        else:
+            return Annotation(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def get_property(self): return self.property
+    def set_property(self, property): self.property = property
+    def add_property(self, value): self.property.append(value)
+    def insert_property(self, index, value): self.property[index] = value
+    def get_uri(self): return self.uri
+    def set_uri(self, uri): self.uri = uri
+    def get_source(self): return self.source
+    def set_source(self, source): self.source = source
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_ref(self): return self.ref
+    def set_ref(self, ref): self.ref = ref
+    def get_evidence(self): return self.evidence
+    def set_evidence(self, evidence): self.evidence = evidence
+    def export(self, outfile, level, namespace_='phy:', name_='Annotation', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Annotation')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Annotation'):
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            outfile.write(' source=%s' % (self.gds_format_string(quote_attrib(self.source).encode(ExternalEncoding), input_name='source'), ))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+        if self.ref is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            outfile.write(' ref=%s' % (quote_attrib(self.ref), ))
+        if self.evidence is not None and 'evidence' not in already_processed:
+            already_processed.append('evidence')
+            outfile.write(' evidence=%s' % (self.gds_format_string(quote_attrib(self.evidence).encode(ExternalEncoding), input_name='evidence'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Annotation', fromsubclass_=False):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdesc>%s</%sdesc>\n' % (namespace_, self.gds_format_string(quote_xml(self.desc).encode(ExternalEncoding), input_name='desc'), namespace_))
+        if self.confidence:
+            self.confidence.export(outfile, level, namespace_, name_='confidence')
+        for property_ in self.property:
+            property_.export(outfile, level, namespace_, name_='property')
+        if self.uri:
+            self.uri.export(outfile, level, namespace_, name_='uri')
+    def hasContent_(self):
+        if (
+            self.desc is not None or
+            self.confidence is not None or
+            self.property or
+            self.uri is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Annotation'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.source is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            showIndent(outfile, level)
+            outfile.write('source = "%s",\n' % (self.source,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.ref is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            showIndent(outfile, level)
+            outfile.write('ref = %s,\n' % (self.ref,))
+        if self.evidence is not None and 'evidence' not in already_processed:
+            already_processed.append('evidence')
+            showIndent(outfile, level)
+            outfile.write('evidence = "%s",\n' % (self.evidence,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('desc=%s,\n' % quote_python(self.desc).encode(ExternalEncoding))
+        if self.confidence is not None:
+            showIndent(outfile, level)
+            outfile.write('confidence=model_.Confidence(\n')
+            self.confidence.exportLiteral(outfile, level, name_='confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('property=[\n')
+        level += 1
+        for property_ in self.property:
+            showIndent(outfile, level)
+            outfile.write('model_.Property(\n')
+            property_.exportLiteral(outfile, level, name_='Property')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.uri is not None:
+            showIndent(outfile, level)
+            outfile.write('uri=model_.Uri(\n')
+            self.uri.exportLiteral(outfile, level, name_='uri')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('source', node)
+        if value is not None and 'source' not in already_processed:
+            already_processed.append('source')
+            self.source = value
+            self.source = ' '.join(self.source.split())
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+        value = find_attr_value_('ref', node)
+        if value is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            self.ref = value
+        value = find_attr_value_('evidence', node)
+        if value is not None and 'evidence' not in already_processed:
+            already_processed.append('evidence')
+            self.evidence = value
+            self.evidence = ' '.join(self.evidence.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'desc':
+            desc_ = child_.text
+            desc_ = re_.sub(STRING_CLEANUP_PAT, " ", desc_).strip()
+            desc_ = self.gds_validate_string(desc_, node, 'desc')
+            self.desc = desc_
+        elif nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.set_confidence(obj_)
+        elif nodeName_ == 'property':
+            obj_ = Property.factory()
+            obj_.build(child_)
+            self.property.append(obj_)
+        elif nodeName_ == 'uri':
+            obj_ = Uri.factory()
+            obj_.build(child_)
+            self.set_uri(obj_)
+# end class Annotation
+
+
+class Property(GeneratedsSuper):
+    """Property allows for typed and referenced properties from external
+    resources to be attached to 'Phylogeny', 'Clade', and
+    'Annotation'. The value of a property is its mixed (free text)
+    content. Attribute 'datatype' indicates the type of a property
+    and is limited to xsd-datatypes (e.g. 'xsd:string',
+    'xsd:boolean', 'xsd:integer', 'xsd:decimal', 'xsd:float',
+    'xsd:double', 'xsd:date', 'xsd:anyURI'). Attribute 'applies_to'
+    indicates the item to which a property applies to (e.g. 'node'
+    for the parent node of a clade, 'parent_branch' for the parent
+    branch of a clade). Attribute 'id_ref' allows to attached a
+    property specifically to one element (on the xml-level).
+    Optional attribute 'unit' is used to indicate the unit of the
+    property. An example: <property datatype="xsd:integer"
+    ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 200
+    </property>"""
+    subclass = None
+    superclass = None
+    def __init__(self, datatype=None, id_ref=None, ref=None, applies_to=None, unit=None, valueOf_=None, mixedclass_=None, content_=None):
+        self.datatype = _cast(None, datatype)
+        self.id_ref = _cast(None, id_ref)
+        self.ref = _cast(None, ref)
+        self.applies_to = _cast(None, applies_to)
+        self.unit = _cast(None, unit)
+        self.valueOf_ = valueOf_
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if Property.subclass:
+            return Property.subclass(*args_, **kwargs_)
+        else:
+            return Property(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_datatype(self): return self.datatype
+    def set_datatype(self, datatype): self.datatype = datatype
+    def get_id_ref(self): return self.id_ref
+    def set_id_ref(self, id_ref): self.id_ref = id_ref
+    def get_ref(self): return self.ref
+    def set_ref(self, ref): self.ref = ref
+    def get_applies_to(self): return self.applies_to
+    def set_applies_to(self, applies_to): self.applies_to = applies_to
+    def get_unit(self): return self.unit
+    def set_unit(self, unit): self.unit = unit
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='Property', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Property')
+        outfile.write('>')
+        if self.valueOf_ is not None:
+            outfile.write('%s' % (self.valueOf_,))
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Property'):
+        if self.datatype is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            outfile.write(' datatype=%s' % (quote_attrib(self.datatype), ))
+        if self.id_ref is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            outfile.write(' id_ref=%s' % (quote_attrib(self.id_ref), ))
+        if self.ref is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            outfile.write(' ref=%s' % (quote_attrib(self.ref), ))
+        if self.applies_to is not None and 'applies_to' not in already_processed:
+            already_processed.append('applies_to')
+            outfile.write(' applies_to=%s' % (quote_attrib(self.applies_to), ))
+        if self.unit is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            outfile.write(' unit=%s' % (quote_attrib(self.unit), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Property', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Property'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.datatype is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            showIndent(outfile, level)
+            outfile.write('datatype = %s,\n' % (self.datatype,))
+        if self.id_ref is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            showIndent(outfile, level)
+            outfile.write('id_ref = %s,\n' % (self.id_ref,))
+        if self.ref is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            showIndent(outfile, level)
+            outfile.write('ref = %s,\n' % (self.ref,))
+        if self.applies_to is not None and 'applies_to' not in already_processed:
+            already_processed.append('applies_to')
+            showIndent(outfile, level)
+            outfile.write('applies_to = %s,\n' % (self.applies_to,))
+        if self.unit is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            showIndent(outfile, level)
+            outfile.write('unit = %s,\n' % (self.unit,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        if node.text is not None:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                MixedContainer.TypeNone, '', node.text)
+            self.content_.append(obj_)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('datatype', node)
+        if value is not None and 'datatype' not in already_processed:
+            already_processed.append('datatype')
+            self.datatype = value
+        value = find_attr_value_('id_ref', node)
+        if value is not None and 'id_ref' not in already_processed:
+            already_processed.append('id_ref')
+            self.id_ref = value
+        value = find_attr_value_('ref', node)
+        if value is not None and 'ref' not in already_processed:
+            already_processed.append('ref')
+            self.ref = value
+        value = find_attr_value_('applies_to', node)
+        if value is not None and 'applies_to' not in already_processed:
+            already_processed.append('applies_to')
+            self.applies_to = value
+        value = find_attr_value_('unit', node)
+        if value is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            self.unit = value
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if not fromsubclass_ and child_.tail is not None:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                MixedContainer.TypeNone, '', child_.tail)
+            self.content_.append(obj_)
+        pass
+# end class Property
+
+
+class Uri(GeneratedsSuper):
+    """A uniform resource identifier. In general, this is expected to be an
+    URL (for example, to link to an image on a website, in which
+    case the 'type' attribute might be 'image' and 'desc' might be
+    'image of a California sea hare')."""
+    subclass = None
+    superclass = None
+    def __init__(self, type_=None, desc=None, valueOf_=None):
+        self.type_ = _cast(None, type_)
+        self.desc = _cast(None, desc)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if Uri.subclass:
+            return Uri.subclass(*args_, **kwargs_)
+        else:
+            return Uri(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='Uri', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Uri')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Uri'):
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+        if self.desc is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            outfile.write(' desc=%s' % (self.gds_format_string(quote_attrib(self.desc).encode(ExternalEncoding), input_name='desc'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Uri', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Uri'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.desc is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            showIndent(outfile, level)
+            outfile.write('desc = "%s",\n' % (self.desc,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+        value = find_attr_value_('desc', node)
+        if value is not None and 'desc' not in already_processed:
+            already_processed.append('desc')
+            self.desc = value
+            self.desc = ' '.join(self.desc.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class Uri
+
+
+class Confidence(GeneratedsSuper):
+    """A general purpose confidence element. For example this can be used
+    to express the bootstrap support value of a clade (in which case
+    the 'type' attribute is 'bootstrap')."""
+    subclass = None
+    superclass = None
+    def __init__(self, type_=None, valueOf_=None):
+        self.type_ = _cast(None, type_)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if Confidence.subclass:
+            return Confidence.subclass(*args_, **kwargs_)
+        else:
+            return Confidence(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='Confidence', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Confidence')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Confidence'):
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Confidence', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Confidence'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class Confidence
+
+
+class Id(GeneratedsSuper):
+    """A general purpose identifier element. Allows to indicate the
+    provider (or authority) of an identifier."""
+    subclass = None
+    superclass = None
+    def __init__(self, provider=None, valueOf_=None):
+        self.provider = _cast(None, provider)
+        self.valueOf_ = valueOf_
+    def factory(*args_, **kwargs_):
+        if Id.subclass:
+            return Id.subclass(*args_, **kwargs_)
+        else:
+            return Id(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_provider(self): return self.provider
+    def set_provider(self, provider): self.provider = provider
+    def get_valueOf_(self): return self.valueOf_
+    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
+    def export(self, outfile, level, namespace_='phy:', name_='Id', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Id')
+        if self.hasContent_():
+            outfile.write('>')
+            outfile.write(str(self.valueOf_).encode(ExternalEncoding))
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Id'):
+        if self.provider is not None and 'provider' not in already_processed:
+            already_processed.append('provider')
+            outfile.write(' provider=%s' % (self.gds_format_string(quote_attrib(self.provider).encode(ExternalEncoding), input_name='provider'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Id', fromsubclass_=False):
+        pass
+    def hasContent_(self):
+        if (
+            self.valueOf_
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Id'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,))
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.provider is not None and 'provider' not in already_processed:
+            already_processed.append('provider')
+            showIndent(outfile, level)
+            outfile.write('provider = "%s",\n' % (self.provider,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        pass
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        self.valueOf_ = get_all_text_(node)
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('provider', node)
+        if value is not None and 'provider' not in already_processed:
+            already_processed.append('provider')
+            self.provider = value
+            self.provider = ' '.join(self.provider.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        pass
+# end class Id
+
+
+class Distribution(GeneratedsSuper):
+    """The geographic distribution of the items of a clade (species,
+    sequences), intended for phylogeographic applications. The
+    location can be described either by free text in the 'desc'
+    element and/or by the coordinates of one or more 'Points'
+    (similar to the 'Point' element in Google's KML format) or by
+    'Polygons'."""
+    subclass = None
+    superclass = None
+    def __init__(self, desc=None, point=None, polygon=None, valueOf_=None):
+        self.desc = desc
+        if point is None:
+            self.point = []
+        else:
+            self.point = point
+        if polygon is None:
+            self.polygon = []
+        else:
+            self.polygon = polygon
+    def factory(*args_, **kwargs_):
+        if Distribution.subclass:
+            return Distribution.subclass(*args_, **kwargs_)
+        else:
+            return Distribution(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def get_point(self): return self.point
+    def set_point(self, point): self.point = point
+    def add_point(self, value): self.point.append(value)
+    def insert_point(self, index, value): self.point[index] = value
+    def get_polygon(self): return self.polygon
+    def set_polygon(self, polygon): self.polygon = polygon
+    def add_polygon(self, value): self.polygon.append(value)
+    def insert_polygon(self, index, value): self.polygon[index] = value
+    def export(self, outfile, level, namespace_='phy:', name_='Distribution', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Distribution')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Distribution'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Distribution', fromsubclass_=False):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdesc>%s</%sdesc>\n' % (namespace_, self.gds_format_string(quote_xml(self.desc).encode(ExternalEncoding), input_name='desc'), namespace_))
+        for point_ in self.point:
+            point_.export(outfile, level, namespace_, name_='point')
+        for polygon_ in self.polygon:
+            polygon_.export(outfile, level, namespace_, name_='polygon')
+    def hasContent_(self):
+        if (
+            self.desc is not None or
+            self.point or
+            self.polygon
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Distribution'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('desc=%s,\n' % quote_python(self.desc).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('point=[\n')
+        level += 1
+        for point_ in self.point:
+            showIndent(outfile, level)
+            outfile.write('model_.Point(\n')
+            point_.exportLiteral(outfile, level, name_='Point')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('polygon=[\n')
+        level += 1
+        for polygon_ in self.polygon:
+            showIndent(outfile, level)
+            outfile.write('model_.Polygon(\n')
+            polygon_.exportLiteral(outfile, level, name_='Polygon')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'desc':
+            desc_ = child_.text
+            desc_ = re_.sub(STRING_CLEANUP_PAT, " ", desc_).strip()
+            desc_ = self.gds_validate_string(desc_, node, 'desc')
+            self.desc = desc_
+        elif nodeName_ == 'point':
+            obj_ = Point.factory()
+            obj_.build(child_)
+            self.point.append(obj_)
+        elif nodeName_ == 'polygon':
+            obj_ = Polygon.factory()
+            obj_.build(child_)
+            self.polygon.append(obj_)
+# end class Distribution
+
+
+class Point(GeneratedsSuper):
+    """The coordinates of a point with an optional altitude (used by
+    element 'Distribution'). Required attributes are the
+    'geodetic_datum' used to indicate the geodetic datum (also
+    called 'map datum', for example Google's KML uses 'WGS84').
+    Attribute 'alt_unit' is the unit for the altitude (e.g.
+    'meter')."""
+    subclass = None
+    superclass = None
+    def __init__(self, geodetic_datum=None, alt_unit=None, lat=None, long=None, alt=None, valueOf_=None):
+        self.geodetic_datum = _cast(None, geodetic_datum)
+        self.alt_unit = _cast(None, alt_unit)
+        self.lat = lat
+        self.long = int
+        self.alt = alt
+    def factory(*args_, **kwargs_):
+        if Point.subclass:
+            return Point.subclass(*args_, **kwargs_)
+        else:
+            return Point(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_lat(self): return self.lat
+    def set_lat(self, lat): self.lat = lat
+    def get_long(self): return self.long
+    def set_long(self, long): self.long = int
+    def get_alt(self): return self.alt
+    def set_alt(self, alt): self.alt = alt
+    def get_geodetic_datum(self): return self.geodetic_datum
+    def set_geodetic_datum(self, geodetic_datum): self.geodetic_datum = geodetic_datum
+    def get_alt_unit(self): return self.alt_unit
+    def set_alt_unit(self, alt_unit): self.alt_unit = alt_unit
+    def export(self, outfile, level, namespace_='phy:', name_='Point', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Point')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Point'):
+        if self.geodetic_datum is not None and 'geodetic_datum' not in already_processed:
+            already_processed.append('geodetic_datum')
+            outfile.write(' geodetic_datum=%s' % (self.gds_format_string(quote_attrib(self.geodetic_datum).encode(ExternalEncoding), input_name='geodetic_datum'), ))
+        if self.alt_unit is not None and 'alt_unit' not in already_processed:
+            already_processed.append('alt_unit')
+            outfile.write(' alt_unit=%s' % (self.gds_format_string(quote_attrib(self.alt_unit).encode(ExternalEncoding), input_name='alt_unit'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Point', fromsubclass_=False):
+        if self.lat is not None:
+            showIndent(outfile, level)
+            outfile.write('<%slat>%s</%slat>\n' % (namespace_, self.gds_format_float(self.lat, input_name='lat'), namespace_))
+        if self.long is not None:
+            showIndent(outfile, level)
+            outfile.write('<%slong>%s</%slong>\n' % (namespace_, self.gds_format_float(self.long, input_name='long'), namespace_))
+        if self.alt is not None:
+            showIndent(outfile, level)
+            outfile.write('<%salt>%s</%salt>\n' % (namespace_, self.gds_format_float(self.alt, input_name='alt'), namespace_))
+    def hasContent_(self):
+        if (
+            self.lat is not None or
+            self.long is not None or
+            self.alt is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Point'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.geodetic_datum is not None and 'geodetic_datum' not in already_processed:
+            already_processed.append('geodetic_datum')
+            showIndent(outfile, level)
+            outfile.write('geodetic_datum = "%s",\n' % (self.geodetic_datum,))
+        if self.alt_unit is not None and 'alt_unit' not in already_processed:
+            already_processed.append('alt_unit')
+            showIndent(outfile, level)
+            outfile.write('alt_unit = "%s",\n' % (self.alt_unit,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.lat is not None:
+            showIndent(outfile, level)
+            outfile.write('lat=%f,\n' % self.lat)
+        if self.long is not None:
+            showIndent(outfile, level)
+            outfile.write('long=%f,\n' % self.long)
+        if self.alt is not None:
+            showIndent(outfile, level)
+            outfile.write('alt=%f,\n' % self.alt)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('geodetic_datum', node)
+        if value is not None and 'geodetic_datum' not in already_processed:
+            already_processed.append('geodetic_datum')
+            self.geodetic_datum = value
+            self.geodetic_datum = ' '.join(self.geodetic_datum.split())
+        value = find_attr_value_('alt_unit', node)
+        if value is not None and 'alt_unit' not in already_processed:
+            already_processed.append('alt_unit')
+            self.alt_unit = value
+            self.alt_unit = ' '.join(self.alt_unit.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'lat':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'lat')
+            self.lat = fval_
+        elif nodeName_ == 'long':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'long')
+            self.long = fval_
+        elif nodeName_ == 'alt':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'alt')
+            self.alt = fval_
+# end class Point
+
+
+class Polygon(GeneratedsSuper):
+    """A polygon defined by a list of 'Points' (used by element
+    'Distribution')."""
+    subclass = None
+    superclass = None
+    def __init__(self, point=None, valueOf_=None):
+        if point is None:
+            self.point = []
+        else:
+            self.point = point
+    def factory(*args_, **kwargs_):
+        if Polygon.subclass:
+            return Polygon.subclass(*args_, **kwargs_)
+        else:
+            return Polygon(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_point(self): return self.point
+    def set_point(self, point): self.point = point
+    def add_point(self, value): self.point.append(value)
+    def insert_point(self, index, value): self.point[index] = value
+    def export(self, outfile, level, namespace_='phy:', name_='Polygon', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Polygon')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Polygon'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Polygon', fromsubclass_=False):
+        for point_ in self.point:
+            point_.export(outfile, level, namespace_, name_='point')
+    def hasContent_(self):
+        if (
+            self.point
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Polygon'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('point=[\n')
+        level += 1
+        for point_ in self.point:
+            showIndent(outfile, level)
+            outfile.write('model_.Point(\n')
+            point_.exportLiteral(outfile, level, name_='Point')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'point':
+            obj_ = Point.factory()
+            obj_.build(child_)
+            self.point.append(obj_)
+# end class Polygon
+
+
+class Date(GeneratedsSuper):
+    """A date associated with a clade/node. Its value can be numerical by
+    using the 'value' element and/or free text with the 'desc'
+    element' (e.g. 'Silurian'). If a numerical value is used, it is
+    recommended to employ the 'unit' attribute to indicate the type
+    of the numerical value (e.g. 'mya' for 'million years ago'). The
+    elements 'minimum' and 'maximum' are used the indicate a
+    range/confidence interval"""
+    subclass = None
+    superclass = None
+    def __init__(self, unit=None, desc=None, value=None, minimum=None, maximum=None, valueOf_=None):
+        self.unit = _cast(None, unit)
+        self.desc = desc
+        self.value = value
+        self.minimum = minimum
+        self.maximum = maximum
+    def factory(*args_, **kwargs_):
+        if Date.subclass:
+            return Date.subclass(*args_, **kwargs_)
+        else:
+            return Date(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_desc(self): return self.desc
+    def set_desc(self, desc): self.desc = desc
+    def get_value(self): return self.value
+    def set_value(self, value): self.value = value
+    def get_minimum(self): return self.minimum
+    def set_minimum(self, minimum): self.minimum = minimum
+    def get_maximum(self): return self.maximum
+    def set_maximum(self, maximum): self.maximum = maximum
+    def get_unit(self): return self.unit
+    def set_unit(self, unit): self.unit = unit
+    def export(self, outfile, level, namespace_='phy:', name_='Date', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='Date')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='Date'):
+        if self.unit is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            outfile.write(' unit=%s' % (self.gds_format_string(quote_attrib(self.unit).encode(ExternalEncoding), input_name='unit'), ))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='Date', fromsubclass_=False):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdesc>%s</%sdesc>\n' % (namespace_, self.gds_format_string(quote_xml(self.desc).encode(ExternalEncoding), input_name='desc'), namespace_))
+        if self.value is not None:
+            showIndent(outfile, level)
+            outfile.write('<%svalue>%s</%svalue>\n' % (namespace_, self.gds_format_float(self.value, input_name='value'), namespace_))
+        if self.minimum is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sminimum>%s</%sminimum>\n' % (namespace_, self.gds_format_float(self.minimum, input_name='minimum'), namespace_))
+        if self.maximum is not None:
+            showIndent(outfile, level)
+            outfile.write('<%smaximum>%s</%smaximum>\n' % (namespace_, self.gds_format_float(self.maximum, input_name='maximum'), namespace_))
+    def hasContent_(self):
+        if (
+            self.desc is not None or
+            self.value is not None or
+            self.minimum is not None or
+            self.maximum is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='Date'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.unit is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            showIndent(outfile, level)
+            outfile.write('unit = "%s",\n' % (self.unit,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.desc is not None:
+            showIndent(outfile, level)
+            outfile.write('desc=%s,\n' % quote_python(self.desc).encode(ExternalEncoding))
+        if self.value is not None:
+            showIndent(outfile, level)
+            outfile.write('value=%f,\n' % self.value)
+        if self.minimum is not None:
+            showIndent(outfile, level)
+            outfile.write('minimum=%f,\n' % self.minimum)
+        if self.maximum is not None:
+            showIndent(outfile, level)
+            outfile.write('maximum=%f,\n' % self.maximum)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('unit', node)
+        if value is not None and 'unit' not in already_processed:
+            already_processed.append('unit')
+            self.unit = value
+            self.unit = ' '.join(self.unit.split())
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'desc':
+            desc_ = child_.text
+            desc_ = re_.sub(STRING_CLEANUP_PAT, " ", desc_).strip()
+            desc_ = self.gds_validate_string(desc_, node, 'desc')
+            self.desc = desc_
+        elif nodeName_ == 'value':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'value')
+            self.value = fval_
+        elif nodeName_ == 'minimum':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'minimum')
+            self.minimum = fval_
+        elif nodeName_ == 'maximum':
+            sval_ = child_.text
+            try:
+                fval_ = float(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires float or double: %s' % exp)
+            fval_ = self.gds_validate_float(fval_, node, 'maximum')
+            self.maximum = fval_
+# end class Date
+
+
+class BranchColor(GeneratedsSuper):
+    """This indicates the color of a clade when rendered (the color applies
+    to the whole clade unless overwritten by the color(s) of sub
+    clades)."""
+    subclass = None
+    superclass = None
+    def __init__(self, red=None, green=None, blue=None, valueOf_=None):
+        self.red = red
+        self.green = green
+        self.blue = blue
+    def factory(*args_, **kwargs_):
+        if BranchColor.subclass:
+            return BranchColor.subclass(*args_, **kwargs_)
+        else:
+            return BranchColor(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_red(self): return self.red
+    def set_red(self, red): self.red = red
+    def get_green(self): return self.green
+    def set_green(self, green): self.green = green
+    def get_blue(self): return self.blue
+    def set_blue(self, blue): self.blue = blue
+    def export(self, outfile, level, namespace_='phy:', name_='BranchColor', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='BranchColor')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='BranchColor'):
+        pass
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='BranchColor', fromsubclass_=False):
+        if self.red is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sred>%s</%sred>\n' % (namespace_, self.gds_format_integer(self.red, input_name='red'), namespace_))
+        if self.green is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sgreen>%s</%sgreen>\n' % (namespace_, self.gds_format_integer(self.green, input_name='green'), namespace_))
+        if self.blue is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sblue>%s</%sblue>\n' % (namespace_, self.gds_format_integer(self.blue, input_name='blue'), namespace_))
+    def hasContent_(self):
+        if (
+            self.red is not None or
+            self.green is not None or
+            self.blue is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='BranchColor'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        pass
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.red is not None:
+            showIndent(outfile, level)
+            outfile.write('red=%d,\n' % self.red)
+        if self.green is not None:
+            showIndent(outfile, level)
+            outfile.write('green=%d,\n' % self.green)
+        if self.blue is not None:
+            showIndent(outfile, level)
+            outfile.write('blue=%d,\n' % self.blue)
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        pass
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'red':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            ival_ = self.gds_validate_integer(ival_, node, 'red')
+            self.red = ival_
+        elif nodeName_ == 'green':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            ival_ = self.gds_validate_integer(ival_, node, 'green')
+            self.green = ival_
+        elif nodeName_ == 'blue':
+            sval_ = child_.text
+            try:
+                ival_ = int(sval_)
+            except (TypeError, ValueError) as exp:
+                raise_parse_error(child_, 'requires integer: %s' % exp)
+            ival_ = self.gds_validate_integer(ival_, node, 'blue')
+            self.blue = ival_
+# end class BranchColor
+
+
+class SequenceRelation(GeneratedsSuper):
+    """This is used to express a typed relationship between two sequences.
+    For example it could be used to describe an orthology (in which
+    case attribute 'type' is 'orthology')."""
+    subclass = None
+    superclass = None
+    def __init__(self, id_ref_0=None, id_ref_1=None, type_=None, distance=None, confidence=None, valueOf_=None):
+        self.id_ref_0 = _cast(None, id_ref_0)
+        self.id_ref_1 = _cast(None, id_ref_1)
+        self.type_ = _cast(None, type_)
+        self.distance = _cast(float, distance)
+        self.confidence = confidence
+    def factory(*args_, **kwargs_):
+        if SequenceRelation.subclass:
+            return SequenceRelation.subclass(*args_, **kwargs_)
+        else:
+            return SequenceRelation(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def get_id_ref_0(self): return self.id_ref_0
+    def set_id_ref_0(self, id_ref_0): self.id_ref_0 = id_ref_0
+    def get_id_ref_1(self): return self.id_ref_1
+    def set_id_ref_1(self, id_ref_1): self.id_ref_1 = id_ref_1
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_distance(self): return self.distance
+    def set_distance(self, distance): self.distance = distance
+    def export(self, outfile, level, namespace_='phy:', name_='SequenceRelation', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='SequenceRelation')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='SequenceRelation'):
+        if self.id_ref_0 is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            outfile.write(' id_ref_0=%s' % (quote_attrib(self.id_ref_0), ))
+        if self.id_ref_1 is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            outfile.write(' id_ref_1=%s' % (quote_attrib(self.id_ref_1), ))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (quote_attrib(self.type_), ))
+        if self.distance is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            outfile.write(' distance="%s"' % self.gds_format_double(self.distance, input_name='distance'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='SequenceRelation', fromsubclass_=False):
+        if self.confidence:
+            self.confidence.export(outfile, level, namespace_, name_='confidence')
+    def hasContent_(self):
+        if (
+            self.confidence is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='SequenceRelation'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id_ref_0 is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            showIndent(outfile, level)
+            outfile.write('id_ref_0 = %s,\n' % (self.id_ref_0,))
+        if self.id_ref_1 is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            showIndent(outfile, level)
+            outfile.write('id_ref_1 = %s,\n' % (self.id_ref_1,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = %s,\n' % (self.type_,))
+        if self.distance is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            showIndent(outfile, level)
+            outfile.write('distance = %e,\n' % (self.distance,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.confidence is not None:
+            showIndent(outfile, level)
+            outfile.write('confidence=model_.Confidence(\n')
+            self.confidence.exportLiteral(outfile, level, name_='confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id_ref_0', node)
+        if value is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            self.id_ref_0 = value
+        value = find_attr_value_('id_ref_1', node)
+        if value is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            self.id_ref_1 = value
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+        value = find_attr_value_('distance', node)
+        if value is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            try:
+                self.distance = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (distance): %s' % exp)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.set_confidence(obj_)
+# end class SequenceRelation
+
+
+class CladeRelation(GeneratedsSuper):
+    """This is used to express a typed relationship between two clades. For
+    example it could be used to describe multiple parents of a
+    clade."""
+    subclass = None
+    superclass = None
+    def __init__(self, id_ref_0=None, id_ref_1=None, type_=None, distance=None, confidence=None, valueOf_=None):
+        self.id_ref_0 = _cast(None, id_ref_0)
+        self.id_ref_1 = _cast(None, id_ref_1)
+        self.type_ = _cast(None, type_)
+        self.distance = _cast(float, distance)
+        self.confidence = confidence
+    def factory(*args_, **kwargs_):
+        if CladeRelation.subclass:
+            return CladeRelation.subclass(*args_, **kwargs_)
+        else:
+            return CladeRelation(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_confidence(self): return self.confidence
+    def set_confidence(self, confidence): self.confidence = confidence
+    def get_id_ref_0(self): return self.id_ref_0
+    def set_id_ref_0(self, id_ref_0): self.id_ref_0 = id_ref_0
+    def get_id_ref_1(self): return self.id_ref_1
+    def set_id_ref_1(self, id_ref_1): self.id_ref_1 = id_ref_1
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_distance(self): return self.distance
+    def set_distance(self, distance): self.distance = distance
+    def export(self, outfile, level, namespace_='phy:', name_='CladeRelation', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+        already_processed = []
+        self.exportAttributes(outfile, level, already_processed, namespace_, name_='CladeRelation')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write('/>\n')
+    def exportAttributes(self, outfile, level, already_processed, namespace_='phy:', name_='CladeRelation'):
+        if self.id_ref_0 is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            outfile.write(' id_ref_0=%s' % (quote_attrib(self.id_ref_0), ))
+        if self.id_ref_1 is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            outfile.write(' id_ref_1=%s' % (quote_attrib(self.id_ref_1), ))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), ))
+        if self.distance is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            outfile.write(' distance="%s"' % self.gds_format_double(self.distance, input_name='distance'))
+    def exportChildren(self, outfile, level, namespace_='phy:', name_='CladeRelation', fromsubclass_=False):
+        if self.confidence:
+            self.confidence.export(outfile, level, namespace_, name_='confidence')
+    def hasContent_(self):
+        if (
+            self.confidence is not None
+            ):
+            return True
+        else:
+            return False
+    def exportLiteral(self, outfile, level, name_='CladeRelation'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, [], name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+    def exportLiteralAttributes(self, outfile, level, already_processed, name_):
+        if self.id_ref_0 is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            showIndent(outfile, level)
+            outfile.write('id_ref_0 = %s,\n' % (self.id_ref_0,))
+        if self.id_ref_1 is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            showIndent(outfile, level)
+            outfile.write('id_ref_1 = %s,\n' % (self.id_ref_1,))
+        if self.type_ is not None and 'type_' not in already_processed:
+            already_processed.append('type_')
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.distance is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            showIndent(outfile, level)
+            outfile.write('distance = %e,\n' % (self.distance,))
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.confidence is not None:
+            showIndent(outfile, level)
+            outfile.write('confidence=model_.Confidence(\n')
+            self.confidence.exportLiteral(outfile, level, name_='confidence')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+    def build(self, node):
+        self.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_)
+    def buildAttributes(self, node, attrs, already_processed):
+        value = find_attr_value_('id_ref_0', node)
+        if value is not None and 'id_ref_0' not in already_processed:
+            already_processed.append('id_ref_0')
+            self.id_ref_0 = value
+        value = find_attr_value_('id_ref_1', node)
+        if value is not None and 'id_ref_1' not in already_processed:
+            already_processed.append('id_ref_1')
+            self.id_ref_1 = value
+        value = find_attr_value_('type', node)
+        if value is not None and 'type' not in already_processed:
+            already_processed.append('type')
+            self.type_ = value
+            self.type_ = ' '.join(self.type_.split())
+        value = find_attr_value_('distance', node)
+        if value is not None and 'distance' not in already_processed:
+            already_processed.append('distance')
+            try:
+                self.distance = float(value)
+            except ValueError as exp:
+                raise ValueError('Bad float/double attribute (distance): %s' % exp)
+    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
+        if nodeName_ == 'confidence':
+            obj_ = Confidence.factory()
+            obj_.build(child_)
+            self.set_confidence(obj_)
+# end class CladeRelation
+
+
+USAGE_TEXT = """
+Usage: python <Parser>.py [ -s ] <in_xml_file>
+"""
+
+def usage():
+    print(USAGE_TEXT)
+    sys.exit(1)
+
+
+def get_root_tag(node):
+    tag = Tag_pattern_.match(node.tag).groups()[-1]
+    rootClass = globals().get(tag)
+    return tag, rootClass
+
+
+def parse(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'phyloxml'
+        rootClass = Phyloxml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_=rootTag,
+##         namespacedef_='xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd"')
+    return rootObj
+
+
+def parseString(inString):
+    from StringIO import StringIO
+    doc = parsexml_(StringIO(inString))
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'phyloxml'
+        rootClass = Phyloxml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('<?xml version="1.0" ?>\n')
+##     rootObj.export(sys.stdout, 0, name_="phyloxml",
+##         namespacedef_='xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd"')
+    return rootObj
+
+
+def parseLiteral(inFileName):
+    doc = parsexml_(inFileName)
+    rootNode = doc.getroot()
+    rootTag, rootClass = get_root_tag(rootNode)
+    if rootClass is None:
+        rootTag = 'phyloxml'
+        rootClass = Phyloxml
+    rootObj = rootClass.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+##     sys.stdout.write('#from phyloxml import *\n\n')
+##     sys.stdout.write('import phyloxml as model_\n\n')
+##     sys.stdout.write('rootObj = model_.rootTag(\n')
+##     rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
+##     sys.stdout.write(')\n')
+    return rootObj
+
+
+def main():
+    args = sys.argv[1:]
+    if len(args) == 1:
+        parse(args[0])
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    #import pdb; pdb.set_trace()
+    main()
+
+
+__all__ = [
+    "Accession",
+    "Annotation",
+    "BinaryCharacterList",
+    "BinaryCharacters",
+    "BranchColor",
+    "Clade",
+    "CladeRelation",
+    "Confidence",
+    "Date",
+    "Distribution",
+    "DomainArchitecture",
+    "Events",
+    "Id",
+    "MolSeq",
+    "Phylogeny",
+    "Phyloxml",
+    "Point",
+    "Polygon",
+    "Property",
+    "ProteinDomain",
+    "Reference",
+    "Sequence",
+    "SequenceRelation",
+    "Taxonomy",
+    "Uri"
+    ]
diff --git a/ete3/phyloxml/_phyloxml_tree.py b/ete3/phyloxml/_phyloxml_tree.py
new file mode 100644
index 0000000..3a264fb
--- /dev/null
+++ b/ete3/phyloxml/_phyloxml_tree.py
@@ -0,0 +1,152 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+"""
+This module implements the interoperability between Phylogeny and
+Clade attributes in the phyloXMl schema and the ETE Tree objects.
+
+The PhyloxmlTree class should be use as a substitute for base Clade
+and Phylogeny classes.
+
+"""
+from __future__ import absolute_import
+
+import sys
+from ._phyloxml import Clade, Phylogeny, Confidence, Tag_pattern_
+from .. import PhyloTree
+
+class PhyloxmlTree(PhyloTree):
+    ''' PhyloTree object supporting phyloXML format. '''
+
+    def __repr__(self):
+        return "PhyloXML ETE tree <%s>" %hex(hash(self))
+
+    def _get_dist(self):
+        v = self.phyloxml_clade.get_branch_length_attr()
+        if v is None:
+            v = self.phyloxml_clade.get_branch_length()
+        if v is None:
+            self._set_dist(self._dist)
+            v = self.phyloxml_clade.get_branch_length_attr()
+        return float(v)
+
+    def _set_dist(self, value):
+        try:
+            self.phyloxml_clade.set_branch_length(float(value))
+            self.phyloxml_clade.set_branch_length_attr(float(value))
+        except ValueError:
+            raise
+
+    def _get_support(self):
+        if len(self.phyloxml_clade.confidence) == 0:
+                _c = Confidence(valueOf_=1.0, type_="branch_support")
+                self.phyloxml_clade.add_confidence(_c)
+        return float(self.phyloxml_clade.confidence[0].valueOf_)
+
+    def _set_support(self, value):
+        self._get_support()
+        self.phyloxml_clade.confidence[0].valueOf_ = float(value)
+
+    def _get_name(self):
+        return self.phyloxml_clade.get_name()
+
+    def _set_name(self, value):
+        try:
+            self.phyloxml_clade.set_name(value)
+        except ValueError:
+            raise
+
+    def _get_children(self):
+        return self.phyloxml_clade.clade
+
+    dist = property(fget=_get_dist, fset=_set_dist)
+    support = property(fget=_get_support, fset=_set_support)
+    children = property(fget=_get_children)
+    name = property(fget=_get_name, fset=_set_name)
+
+    def __init__(self, phyloxml_clade=None, phyloxml_phylogeny=None, **kargs):
+        if not phyloxml_phylogeny:
+            self.phyloxml_phylogeny = Phylogeny()
+        else:
+            self.phyloxml_phylogeny = phyloxml_phylogeny
+        if not phyloxml_clade:
+            self.phyloxml_clade = Clade()
+            self.phyloxml_clade.set_branch_length(0.0)
+            self.phyloxml_clade.set_name("NoName")
+            #self.__support = Confidence(valueOf_=1.0, type_="branch_support")
+            #self.phyloxml_clade.add_confidence(self.__support)
+        else:
+            self.phyloxml_clade = phyloxml_clade
+        super(PhyloxmlTree, self).__init__(**kargs)
+
+    def build(self, node):
+        nodetype = Tag_pattern_.match(node.tag).groups()[-1]
+        if nodetype == 'phylogeny':
+            self.phyloxml_phylogeny.buildAttributes(node, node.attrib, [])
+        elif nodetype == 'clade':
+            if "branch_length" in node.attrib:
+                node.attrib["branch_length_attr"] = node.attrib["branch_length"]
+            self.phyloxml_clade.buildAttributes(node, node.attrib, [])
+        for child in node:
+            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
+            self.buildChildren(child, node, nodeName_, nodetype=nodetype)
+
+    def buildChildren(self, child_, node, nodeName_, fromsubclass=False, nodetype=None):
+        if nodetype == 'phylogeny':
+            baseclass = self.phyloxml_phylogeny
+            if nodeName_ == 'clade':
+                self.build(child_)
+            else:
+                baseclass.buildChildren(child_, node, nodeName_)
+        elif nodetype == 'clade':
+            baseclass = self.phyloxml_clade
+            if nodeName_ == 'clade':
+                new_node = self.add_child()
+                new_node.build(child_)
+            else:
+                baseclass.buildChildren(child_, node, nodeName_)
+
+    def export(self, outfile=sys.stdout, level=0, namespace_='phy:', name_='Phylogeny', namespacedef_=''):
+        if not self.up:
+            self.phyloxml_phylogeny.clade = self.phyloxml_clade
+            self.phyloxml_clade.clade = self.children
+            self.phyloxml_phylogeny.export(outfile=outfile, level=level, name_=name_, namespacedef_=namespacedef_)
+        else:
+            self.phyloxml_clade.clade = self.children
+            self.phyloxml_clade.export(outfile=outfile, level=level, name_=name_, namespacedef_=namespacedef_)
+
diff --git a/ete3/test/__init__.py b/ete3/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/datasets.py b/ete3/test/datasets.py
new file mode 100644
index 0000000..cc179e3
--- /dev/null
+++ b/ete3/test/datasets.py
@@ -0,0 +1,236 @@
+# test datasets
+nw_simple1 = '((A, (B,C)),D);'
+nw_simple2 = '((D, (B,C)),A);'
+nw_simple3 = '((B, (A,C)),D);'
+nw_simple4 = '((A, (B,C)),D);'
+
+nw_simple5 = '(H,(A,(B,C,D)),D,T,S,(U,Y));'
+nw_simple6 = '(H,(A,(B,(C),(T))),D);'
+
+nw_full = '(Ddi0002240:1.457468,Dme0014628:1.235133,(Aga0007658:1.752559,(Cin0011239:0.728210,((Fru0004507:0.184484,((Dre0008391:0.000000,Dre0008390:0.000000)1.000000:0.002729,Dre0008392:0.010931)1.000000:0.122420)1.000000:0.142530,((Xtr0044988:0.422481,(Gga0000982:0.000000,Gga0000981:0.000000)1.000000:0.109228)1.000000:0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287)1.000000:0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366)1.000000:0.007962,(Ptr0000001:0.005433 [...]
+nw_dflt = '(Ddi0002240:1.457468,Dme0014628:1.235133,(Aga0007658:1.752559,(Cin0011239:0.728210,((Fru0004507:0.184484,((Dre0008391:0.000000,Dre0008390:0.000000)1.000000:0.002729,Dre0008392:0.010931)1.000000:0.122420)1.000000:0.142530,((Xtr0044988:0.422481,(Gga0000982:0.000000,Gga0000981:0.000000)1.000000:0.109228)1.000000:0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287)1.000000:0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366)1.000000:0.007962,(Ptr0000001:0.005433 [...]
+nw_topo = '(Ddi0002240,Dme0014628,(Aga0007658,(Cin0011239,((Fru0004507,((Dre0008391,Dre0008390),Dre0008392)),((Xtr0044988,(Gga0000982,Gga0000981)),(Mdo0014718,((Mms0024821,Rno0030248),((Cfa0016700,Bta0018700),(Ptr0000001,((Hsa0010730,Hsa0000001),Hsa0010711))))))))));'
+nw_dist = '(Ddi0002240:1.457468,Dme0014628:1.235133,(Aga0007658:1.752559,(Cin0011239:0.728210,((Fru0004507:0.184484,((Dre0008391:0.000000,Dre0008390:0.000000):0.002729,Dre0008392:0.010931):0.122420):0.142530,((Xtr0044988:0.422481,(Gga0000982:0.000000,Gga0000981:0.000000):0.109228):0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287):0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366):0.007962,(Ptr0000001:0.005433,((Hsa0010730:0.018311,Hsa0000001:0.003656):0.007173,Hsa [...]
+nw2_full = '((((((((YGR138C:0.038472,YPR156C:0.033397)1.000000:0.050097,YOR230W:0.220261)1.000000:0.114267,(YAL018C:0.035830,YBR287W:0.024912,YCL075W:0.030383,YDR055w:0.044474,YOR358W:0.045875)1.000000:0.030762)1.000000:0.061899,(YBR006W:0.012167,YBR241C:0.045848,YCR021c:0.011703,YCR061W:0.034785,YDL024c:0.030633,YDR298C:0.011081,YER141w:0.052598,YER158c:0.088493,YGR028W:0.015282,YGR149W:0.025905,YIR038C:0.021086,YJL155C:0.011531,YLR297W:0.052342,YLR423C:0.023426,YOL083W:0.046727,YOR049C [...]
+
+nw_full = '(Ddi0002240:1.45747,Dme0014628:1.23513,(Aga0007658:1.75256,(Cin0011239:0.72821,((Fru0004507:0.184484,((Dre0008391:0,Dre0008390:0)1:0.002729,Dre0008392:0.010931)1:0.12242)1:0.14253,((Xtr0044988:0.422481,(Gga0000982:0,Gga0000981:0)1:0.109228)1:0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287)1:0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366)1:0.007962,(Ptr0000001:0.005433,((Hsa0010730:0.018311[&&NHX:flag=Red],Hsa0000001:0.003656)1:0.007173,Hsa0010711:0. [...]
+nw_dflt = '(Ddi0002240:1.45747,Dme0014628:1.23513,(Aga0007658:1.75256,(Cin0011239:0.72821,((Fru0004507:0.184484,((Dre0008391:0,Dre0008390:0)1:0.002729,Dre0008392:0.010931)1:0.12242)1:0.14253,((Xtr0044988:0.422481,(Gga0000982:0,Gga0000981:0)1:0.109228)1:0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287)1:0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366)1:0.007962,(Ptr0000001:0.005433,((Hsa0010730:0.018311,Hsa0000001:0.003656)1:0.007173,Hsa0010711:0.00273)1:0.014995 [...]
+nw_topo = '(Ddi0002240,Dme0014628,(Aga0007658,(Cin0011239,((Fru0004507,((Dre0008391,Dre0008390),Dre0008392)),((Xtr0044988,(Gga0000982,Gga0000981)),(Mdo0014718,((Mms0024821,Rno0030248),((Cfa0016700,Bta0018700),(Ptr0000001,((Hsa0010730,Hsa0000001),Hsa0010711))))))))));'
+nw_dist = '(Ddi0002240:1.45747,Dme0014628:1.23513,(Aga0007658:1.75256,(Cin0011239:0.72821,((Fru0004507:0.184484,((Dre0008391:0,Dre0008390:0):0.002729,Dre0008392:0.010931):0.12242):0.14253,((Xtr0044988:0.422481,(Gga0000982:0,Gga0000981:0):0.109228):0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287):0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366):0.007962,(Ptr0000001:0.005433,((Hsa0010730:0.018311,Hsa0000001:0.003656):0.007173,Hsa0010711:0.00273):0.014995):0.05257 [...]
+nw2_full = '((((((((YGR138C:0.038472,YPR156C:0.033397)1:0.050097,YOR230W:0.220261)1:0.114267,(YAL018C:0.03583,YBR287W:0.024912,YCL075W:0.030383,YDR055w:0.044474,YOR358W:0.045875)1:0.030762)1:0.061899,(YBR006W:0.012167,YBR241C:0.045848,YCR021c:0.011703,YCR061W:0.034785,YDL024c:0.030633,YDR298C:0.011081,YER141w:0.052598,YER158c:0.088493,YGR028W:0.015282,YGR149W:0.025905,YIR038C:0.021086,YJL155C:0.011531,YLR297W:0.052342,YLR423C:0.023426,YOL083W:0.046727,YOR049C:0.02909,YPL087W:0.015005)1:0 [...]
+
+
+Ago0000003="MATDNFYRMMILLEEPHKQHSTDGRKIENASHDFVDELLLPIQVDDLEVLNTWFDKFDEEICIPNEGHIKYEISSDGLIVLILDKEISEVIGLVRDFVAANQLDEDSSSDAK"
+fasta_example = """
+>Ago0000001
+MFPSSATLLSFYAATSYVAALYVFPGRRIYGHASRNDPKAIWYGMKAVGCGVLANLLIIPWLQSRLAS
+DGFSFVDCFFRLGLVPGAYAHFRGLHWDTLAYATDILRALSILGSLYAADLLDSAAYYLLVPDTSPVVDLVDRLSCTTGLRNYVFGPITEELVYTSMVLQNYRLLQPTISRAMLLLATPMFFGVAHVHHARQLLATGHRPAQVALTSSFQILYTTLFGTFT
+NYIYYHTAGNLWACILLHAVCNYLSFPSLSSDVFADYCAKVPPALRALWKMRLLHAWGYTYRLCLLCGLLAFLDGIRTFSSSAGDLFLDA
+>Ago0000002
+MKADYTARASKTRGGQKVGGVRRESAGQGMSMSEDEFQAAQVRQRRSKSCAGPLEGVQERVLRAHTRQAKEKRKSEVLIAAQSLDYELQNVKNLKRISIGSMDLLMDPEMEFRMNGAAVSPSASPRNSLTEESLEWFQLSAEQEQGGELPLHAESIDAHSSAGGSSDTARDELLTSASSVVPSEELSCSHPLSPPAAAKKSTLMSSRSKLGRQHTDTTHTKQATGEPFS
+SNLLWVRADQHPNVKPENYLELVHDTLNNLRIGARHGRGDSPVQQSNTPVANGESSTASARSLVRKQSRLRKSFTEVEAIEESQFTDSIGSEIPVGKRMRVSSLKEITEELTRISNNAGLTDSDAITLARTLGIGSQSADEHATFSECVPSAEAEENEYASSILAKNGLAIPARSSLRRSKFTTYRIRSAGSDSSPPENKSTSSSSLAAAYERNSRSPKMQKAAFKGSH
+PRLSGENTSLAPQSPNSINDIYDHYNTSDTDDGSPELQGSPVTHTSDASFTSSPNIASGEHCARNAHKISPISVSQLSATSSSSTSPGSSKSAESTKSWTFDQKSPLRSITLNSSTKGHKISAEKKKGWSWFGNSRRPSSESVLLPGTDSEGCPMDESQPIQSEEYPLKHPISPVSDETPRRGNHSRNRHQTSSPEELEIGWTETSLTTLDGDTEQDGKPQHPKTKEKL
+EKKFMKIFKKRSGTGLSQDTPNQGEESSLKATSRIRRSRESKRQTDEPSASLTTSVSLNNHNNGRKSVSISRPTWQRTESSYNGDKGKGSITSLQPAVSVTSSRDSHEQTRQDPQPQSLVTKMDGSSSNGVTVSSQRAGFSKKGRSKTSHSRSKLSTSHDIAPVDNRPSDVDQKSTEANNTLSSRAEDSHPSLDPGKSALGPGEIAHSLPPRKLRFDDVLRPEKPNSPM
+KFTPSAFGFPLPPLTVSTVIMFDHRLPIYVERAIYRLSHLKLSDPKRELRQQVLLSNFMYSYLNLVNHSLYLQQIEEDKNQGIQFESTDNMASSSGVVPEKW
+
+
+ > Ago0000003"""+"\t"+"""Comment1"""+"\t"+"""Comment2
+
+MATDNFYR MMILLEEPHK QHSTDGRKIENASHDFVDELLLPIQVDDLEVLNTWFDKFDEEICIPNEGHIKYEISSDGLIVLILDKEISEVIGLVRDFVAANQLDEDSSSDAK
+
+ > Ago0000004
+MVSKTLPLYSKATLQKHTDRTSCWVSVGNRKIYDVSQFLDEHPGGDQYILDYAGKDITAVLKDKLIHEHTEAAYEILDESYLVGYLATEEEEIKLLTNEKHVMEVTPENLDTTTFVKELPAEEVLSVATDFGTDYTKHHFLDLNKPLLMQVLRGNFTRDFYIDQIHRPRHYGKGSAPLFGNFLEPLSKTVWWVVPMVWYPVVLYYLTRALQNMPAHLALTCFAAGVFVW
+TLIEYSLHRFLFHFDDNMPESNIAFTVHFLLHGVHHYLPMDKYRLVMPPALFVVLCAPFYRLVFSIFPEYCACGCFAGGLFGYVCYDVTHYFLHHHKLPPFMRKLKKYHLEHHYKNYELGFGVTSWYWDKVFGTYLASNSPVSRPKCE
+>Ago0000005
+MYIKKVIIRGFKTYKNKTEIDNFSPHHNVVVGFNGSGKSNFFAAIRFVLSDDYTNLKREERRSLIYQGTSSVMSGYVEIVFHGAENRTLLGAQDGGVIHIRRTVGLKKDEYMINNKNASRSDVQRLLESAGFSTSNPYNIVPQGRIVSLTNAQNRERLQLLEEVIGAKSFERKLKESLQKMETTEKNREKIRIELEEVEAKLNELDEERKELEKYNSLDRKRKMCQFAL
+YDRELNEVTSMVEKLDGEYTNTLVLSEQYIQELEKRESLIETLTKSLNQLGSELKMKESTDLQQAKDSELELAKHLADLNVKYEELISQNNALKEQSASNSESLLAIRSQIAVKEQQLARLSPRFEQLTIEEAAMKAEFKALQQRQRDLLAKRGKYSQFRNKAERDAWIDQELSILKEELQCSSIALTSISEERDSLRIKLTTLDDQIMELNDSAHGPGINAELEDVQQ
+ELTVLKKAHLFKIDERKQLWRSEQKIQSVLESLVDDVKRAEGTLSETMDRSLATGLKNVSEIAQRLNLPEGSVFGPLGELIKISEKYKACAEVVGGTSLFHVVVDTENTAALLMQELYNSKGGRVTFIPLNRVHVDSNIVYPSNDEHHCTPLIKKIKYDPKFERAIKHVFGKTIVVKDLNQGTKLAKQFRLNAITLDGDKADSRGVLTGGFHDHHKQKRLDSMRDLKSL
+KKEQQGNKSQLEEVKEKLHSIDQEIDELNDKIKKSMSRREMILTQVEAVNIKLEKAKRERFLLEETMVQLISKEEKAKINQKLLQDKLDMYTEDLSRDFDTELTLTEREELDEIAKKLPDLENLLNTTTDALSSVVVKIDSLKAELDSKLKPQAKELEDQPNEIMSTTAIQNLQEHIDAVEDERKTLLERKSTVDNEVQKISEIIDTLKSRQEEEEKSLEKANSQQRAL
+LKKLDNYQKEAEKSMLRKMTLSTRRDELQQKIRDIGLLPDDSADKYHNMSSSELLKELSSINDKISKMTNVNKRALENFKKFDDKQKDVMKRAKELDESKESIEKLIDKLKKQKVEAVENTFKKVSENFTQLFEKMVPRGTGKLVIHRRENEPSKPSKRQQKKRKRQETEDVHFNDDQDENSSQDSIYSGVSIEVSFNSKKDEQVHVEQLSGGQKTVCAIALILAIQMV
+DPAPFYLFDEIDAALDKQYRTAVAATVKQLSSQAQFICTTFRGDMIAVADRFYRVNFENKISTVVEVTKAEALNFVTGREKNENVI
+
+> Ago0000006
+MYKLQVVLVPPSIETELPVVGLPAGSLDNSGFAQGHAQPISTSSIAGGRGEFSSGIGNTSANAVYLSGLVGAHIRRARGRKFLHFTKPTNSLYELADEIVEKCAKMYPGLAEEPEIVTLQDVNECDLDPDFVVKDVFNMDNTVRVLLRNDLDEAAGDRTIYMKKRKLNTGAAGVPAAGGSVQAAVLNVAKKRASIKTSALRVSTPLANQIYPPPTKKQVNSDFEDDDVA
+DKSILPPPPPQSPPIRISSGMDQKRINMNDNAVSKSETVDPNKSRQQRLPSGTPMRPVSMVETPNRVSLTGPTVLSESTVSQKSTATPIITNIRITSGMLRIPEPRLSEVEKELKEGPASPAVDLPARPSRIPMKKPYNPSMQQDEDLSSSSSSTEDNVPAVPYENELERSGPTMATRQSSSTIADDQGSPTKKSRFEKNNIGLVELPSPRKSSLEKKVSKLNKGLASD
+KGHEDSTGGITRKDHFSDEESEASQNGSVVVNRPETQREKSFQKSELLKIFNSKRFDLPPRFKNSASEDEPTSSNQSRKKKPYVTVLNKDIDNSSPDPRNIIPRRTQRHAAQKAAQSISSGTSRSNVFSGEEKNKYSEENQGDNIASDDNEGVYVHESNALKKLNVHPLKESVVQDTLTGAQDINNPVSSRTVHPSISEHAVTAAASGTLSSNPEYRVAPIVTPTLMSS
+AVPGKPEAILSKQGDPPASTALKPQLAPARKVESTQKKQAGKKSDTNQPSRTNSKKTGLPADTAVPSSQKTVRARAAQIDAQIKQTATSSQSPVAESQSSVLNSEEAVADKSEVDNNSSTQDKSLQQKTSKRKTPVKRTANADKKAVTLKRSSNSKGKEKDTEKGKERIKEKEKEKEKEKEKEKEKVYQTPEFVESSDDERADAKTPLEKHSSDRPKSGSPSKHENGQE
+KQDSFSGIILKKTAIEKDKVVANAPHKVNEKPMTADAGSTNLSPSGKVSKLDELRSKFTKGRFPQGSSQKQIQQQKNTPKTSSKSIVPTVSDKFKPMDSTSGASSDDSADDDDDDSMDSSTEDEGISMKKPRRGIVQPPKGSVSAPVKHVPQSLSSELEGVPQSTQIPNEATNTAPLTKLLDHISPPSTAKTITSRGVTESKGTSNRSLSSLSDLASRGVPDVREKGVN
+YKKTAPNVVNNSSSDESEQETNDGSDSSDSDNSDSDSSDSSDDGNNFISAKSASKALRKNKASSGFASLIRDSQKK
+>Ago0000007
+MGSLQAREMEELYVYSGENMPRVRLCLLRRYSCVEEVEAYVGRVQDRYTLRLGTVETITGNLKIGCDTHADCEACPFYILEYNEVTTEYSLWKAADADWRLDSIVATMYTGAGGPARERGGLPRELQGLREGLDMEYVWDCLRRLNLPLEQIDWAEFRELLESMLAAKRVADDDCVTLRGVVALAALQATVQTSKRAVRSQLRAYDRRVRAASTPASTRTSSPESLLPA
+DSRESSVSSVHYTYGLPATQLDANFKTYFRSMAENFELFEEPALALRGRVAKPRKKAAGRHGHRPVQA
+>Ago0000008
+MQISAVALSGAALLACASAHQHDRKKPHLVVVYGDVYVSGTDTFTKYYSKMTDKLPASGSDGWSYSWSTATSWTSDSVSTEPSAEPTSTEPTNLPEVTSSPATPVQPTSAPEETFEEPTESTSAEPTSSPEPVKSAEPTSSPEPVKSVEPTSSPEPVKSVEPVKSAEPVKSPEPVKSPEPVKSPEPVKSPEPVKSAEPTSSPEPTGSPQRSRPAGGQNGASFEEEILRA
+HNSRRQLHKDTKPLTWSEELAKFARDFANQYDCSGRLVHSDSPYGENLAVGYPTPEKAVKAWYDEISDYSYSHPSFSFSTGHFSQLVWKDTKHLGCAVKKCGGSVGDYLICSYDPAGNFLRRFGENVAPIA
+>Ago0000009
+MRACLLIPLLLVAATARTVTVSVTATRTVTVISAAAVTTLRTTVFTTAYRTQTTPLTETPLSRPTAVNNTFASAVLDLHNDYRRRHHAVPLRWNSTLYTHAQHYANRILCNGSLVHSGLPHGENLALGYSPAAAVTAWYDEIAEYDFSTPGFSHATGHFTQLVWRSTTSVGCAYVMCGPCYGLYIICQYDPPGNVADQYVANVLP
+>Ago0000010
+MESQAAVEEPQHSVVIETPPTTAESSETPVADTATGAEPEGAGGAAVVAPKRMPTRADFPPLSSVIFETQKVQWGPNMKKPESQSASPSPSPGPVGSGAKPMRSKTMQEAFSLDLQTQVTISKAEFSKFVVSVKQSHSVSIESTLSKLSRTFLITGSPTNVYNAKRELVKKLTRPVTVVIQVPSKTVSSIIGPGGRMIREITNAAGGIKIDIAKTAEADAYDADLDDQL
+INISLHGDVASVNFAKDKILSIVKEETKNATISVAVENKQLIPFISLADVEISEDVTVKAFPNGSEKIVLMGPRDEAKEAKVNVQNYLNTLASKVSEKKISIPRKFQPLIDAEDVREKYKVSVIFPTALGDDTVSFYGLSANLDDAIAYARQSSKQYIVESLEVSKAHGKNVAHAKNLMFYFAKYDILKDIKESFKEVKLVLPTPEELPGLDNVSINIISKADIAEQTK
+TVRKQIINIVNRLTPSHVLAVDDLDYELFHKDIKQALSKAEIPFVQLGDHYEGDNTVLLFAKVDEEDFQPSPEEVKEHLEKVAAVLDEVRTKQSKLFTKIVNFDAEFQVLHFSDDSVTWNLVLENITSAGGHAQIKLHTPSEDEITIRGDEKAVKAAVKAFESIAENPSKKSKLTVSVPANTVSRLIGPKGTNLAQIRQKFDVQIDVPSESNDTNTEITLTGLEYNLQH
+AKTHIASEAKKWADITTKELIVPTKYHGSLIGSQGTYRIRLENKYSVRIQFPKEGEVVTIKGPSRGVNKAHAELKALLDFEIENGHKSVINVPVEHVPRVIGKNGDVINGIRAELGVELKLLQNTKTAKEQNLDTVQLEITGSRQAIKEASKAVDAIIAEASDFTTKQLEIDAKYHKLIVGPGGSTLKDFISKAGGDDIRNKTVDVPNAESTNKVITISGPKTFVEKMS
+KALNQIVQDIKASVAKELNIPADRQGALIGPGGSVRRQLESQFNVRIEVPDKGKEGKVTIHGRPEAVEKCEKEIFSTIIRDSYDQEIMVPAVYHAFVSERGQLINKLRMTYFINVKHGNSSKKANKLSRSEQPIPIERVRGSEGEGTKLTIEEVSAPEASANDNIPWRLTYEHVDLSDILGEEGKHAMTKEQALEAAADQIKERIELAPKANCIGYLWCENVKKFNKVV
+GPGGSNIKQIRETTNTLINVPKKSDKVSDIIYVRGTKESVEKACKMICDALNK
+"""
+
+fasta_example_output = """>Ago0000001
+MFPSSATLLSFYAATSYVAALYVFPGRRIYGHASRNDPKAIWYGMKAVGCGVLANLLIIPWLQSRLASDGFSFVDCFFRL
+GLVPGAYAHFRGLHWDTLAYATDILRALSILGSLYAADLLDSAAYYLLVPDTSPVVDLVDRLSCTTGLRNYVFGPITEEL
+VYTSMVLQNYRLLQPTISRAMLLLATPMFFGVAHVHHARQLLATGHRPAQVALTSSFQILYTTLFGTFTNYIYYHTAGNL
+WACILLHAVCNYLSFPSLSSDVFADYCAKVPPALRALWKMRLLHAWGYTYRLCLLCGLLAFLDGIRTFSSSAGDLFLDA
+
+>Ago0000002
+MKADYTARASKTRGGQKVGGVRRESAGQGMSMSEDEFQAAQVRQRRSKSCAGPLEGVQERVLRAHTRQAKEKRKSEVLIA
+AQSLDYELQNVKNLKRISIGSMDLLMDPEMEFRMNGAAVSPSASPRNSLTEESLEWFQLSAEQEQGGELPLHAESIDAHS
+SAGGSSDTARDELLTSASSVVPSEELSCSHPLSPPAAAKKSTLMSSRSKLGRQHTDTTHTKQATGEPFSSNLLWVRADQH
+PNVKPENYLELVHDTLNNLRIGARHGRGDSPVQQSNTPVANGESSTASARSLVRKQSRLRKSFTEVEAIEESQFTDSIGS
+EIPVGKRMRVSSLKEITEELTRISNNAGLTDSDAITLARTLGIGSQSADEHATFSECVPSAEAEENEYASSILAKNGLAI
+PARSSLRRSKFTTYRIRSAGSDSSPPENKSTSSSSLAAAYERNSRSPKMQKAAFKGSHPRLSGENTSLAPQSPNSINDIY
+DHYNTSDTDDGSPELQGSPVTHTSDASFTSSPNIASGEHCARNAHKISPISVSQLSATSSSSTSPGSSKSAESTKSWTFD
+QKSPLRSITLNSSTKGHKISAEKKKGWSWFGNSRRPSSESVLLPGTDSEGCPMDESQPIQSEEYPLKHPISPVSDETPRR
+GNHSRNRHQTSSPEELEIGWTETSLTTLDGDTEQDGKPQHPKTKEKLEKKFMKIFKKRSGTGLSQDTPNQGEESSLKATS
+RIRRSRESKRQTDEPSASLTTSVSLNNHNNGRKSVSISRPTWQRTESSYNGDKGKGSITSLQPAVSVTSSRDSHEQTRQD
+PQPQSLVTKMDGSSSNGVTVSSQRAGFSKKGRSKTSHSRSKLSTSHDIAPVDNRPSDVDQKSTEANNTLSSRAEDSHPSL
+DPGKSALGPGEIAHSLPPRKLRFDDVLRPEKPNSPMKFTPSAFGFPLPPLTVSTVIMFDHRLPIYVERAIYRLSHLKLSD
+PKRELRQQVLLSNFMYSYLNLVNHSLYLQQIEEDKNQGIQFESTDNMASSSGVVPEKW
+
+>Ago0000003"""+"\t"+"""Comment1"""+"\t"+"""Comment2
+MATDNFYRMMILLEEPHKQHSTDGRKIENASHDFVDELLLPIQVDDLEVLNTWFDKFDEEICIPNEGHIKYEISSDGLIV
+LILDKEISEVIGLVRDFVAANQLDEDSSSDAK
+
+>Ago0000004
+MVSKTLPLYSKATLQKHTDRTSCWVSVGNRKIYDVSQFLDEHPGGDQYILDYAGKDITAVLKDKLIHEHTEAAYEILDES
+YLVGYLATEEEEIKLLTNEKHVMEVTPENLDTTTFVKELPAEEVLSVATDFGTDYTKHHFLDLNKPLLMQVLRGNFTRDF
+YIDQIHRPRHYGKGSAPLFGNFLEPLSKTVWWVVPMVWYPVVLYYLTRALQNMPAHLALTCFAAGVFVWTLIEYSLHRFL
+FHFDDNMPESNIAFTVHFLLHGVHHYLPMDKYRLVMPPALFVVLCAPFYRLVFSIFPEYCACGCFAGGLFGYVCYDVTHY
+FLHHHKLPPFMRKLKKYHLEHHYKNYELGFGVTSWYWDKVFGTYLASNSPVSRPKCE
+
+>Ago0000005
+MYIKKVIIRGFKTYKNKTEIDNFSPHHNVVVGFNGSGKSNFFAAIRFVLSDDYTNLKREERRSLIYQGTSSVMSGYVEIV
+FHGAENRTLLGAQDGGVIHIRRTVGLKKDEYMINNKNASRSDVQRLLESAGFSTSNPYNIVPQGRIVSLTNAQNRERLQL
+LEEVIGAKSFERKLKESLQKMETTEKNREKIRIELEEVEAKLNELDEERKELEKYNSLDRKRKMCQFALYDRELNEVTSM
+VEKLDGEYTNTLVLSEQYIQELEKRESLIETLTKSLNQLGSELKMKESTDLQQAKDSELELAKHLADLNVKYEELISQNN
+ALKEQSASNSESLLAIRSQIAVKEQQLARLSPRFEQLTIEEAAMKAEFKALQQRQRDLLAKRGKYSQFRNKAERDAWIDQ
+ELSILKEELQCSSIALTSISEERDSLRIKLTTLDDQIMELNDSAHGPGINAELEDVQQELTVLKKAHLFKIDERKQLWRS
+EQKIQSVLESLVDDVKRAEGTLSETMDRSLATGLKNVSEIAQRLNLPEGSVFGPLGELIKISEKYKACAEVVGGTSLFHV
+VVDTENTAALLMQELYNSKGGRVTFIPLNRVHVDSNIVYPSNDEHHCTPLIKKIKYDPKFERAIKHVFGKTIVVKDLNQG
+TKLAKQFRLNAITLDGDKADSRGVLTGGFHDHHKQKRLDSMRDLKSLKKEQQGNKSQLEEVKEKLHSIDQEIDELNDKIK
+KSMSRREMILTQVEAVNIKLEKAKRERFLLEETMVQLISKEEKAKINQKLLQDKLDMYTEDLSRDFDTELTLTEREELDE
+IAKKLPDLENLLNTTTDALSSVVVKIDSLKAELDSKLKPQAKELEDQPNEIMSTTAIQNLQEHIDAVEDERKTLLERKST
+VDNEVQKISEIIDTLKSRQEEEEKSLEKANSQQRALLKKLDNYQKEAEKSMLRKMTLSTRRDELQQKIRDIGLLPDDSAD
+KYHNMSSSELLKELSSINDKISKMTNVNKRALENFKKFDDKQKDVMKRAKELDESKESIEKLIDKLKKQKVEAVENTFKK
+VSENFTQLFEKMVPRGTGKLVIHRRENEPSKPSKRQQKKRKRQETEDVHFNDDQDENSSQDSIYSGVSIEVSFNSKKDEQ
+VHVEQLSGGQKTVCAIALILAIQMVDPAPFYLFDEIDAALDKQYRTAVAATVKQLSSQAQFICTTFRGDMIAVADRFYRV
+NFENKISTVVEVTKAEALNFVTGREKNENVI
+
+>Ago0000006
+MYKLQVVLVPPSIETELPVVGLPAGSLDNSGFAQGHAQPISTSSIAGGRGEFSSGIGNTSANAVYLSGLVGAHIRRARGR
+KFLHFTKPTNSLYELADEIVEKCAKMYPGLAEEPEIVTLQDVNECDLDPDFVVKDVFNMDNTVRVLLRNDLDEAAGDRTI
+YMKKRKLNTGAAGVPAAGGSVQAAVLNVAKKRASIKTSALRVSTPLANQIYPPPTKKQVNSDFEDDDVADKSILPPPPPQ
+SPPIRISSGMDQKRINMNDNAVSKSETVDPNKSRQQRLPSGTPMRPVSMVETPNRVSLTGPTVLSESTVSQKSTATPIIT
+NIRITSGMLRIPEPRLSEVEKELKEGPASPAVDLPARPSRIPMKKPYNPSMQQDEDLSSSSSSTEDNVPAVPYENELERS
+GPTMATRQSSSTIADDQGSPTKKSRFEKNNIGLVELPSPRKSSLEKKVSKLNKGLASDKGHEDSTGGITRKDHFSDEESE
+ASQNGSVVVNRPETQREKSFQKSELLKIFNSKRFDLPPRFKNSASEDEPTSSNQSRKKKPYVTVLNKDIDNSSPDPRNII
+PRRTQRHAAQKAAQSISSGTSRSNVFSGEEKNKYSEENQGDNIASDDNEGVYVHESNALKKLNVHPLKESVVQDTLTGAQ
+DINNPVSSRTVHPSISEHAVTAAASGTLSSNPEYRVAPIVTPTLMSSAVPGKPEAILSKQGDPPASTALKPQLAPARKVE
+STQKKQAGKKSDTNQPSRTNSKKTGLPADTAVPSSQKTVRARAAQIDAQIKQTATSSQSPVAESQSSVLNSEEAVADKSE
+VDNNSSTQDKSLQQKTSKRKTPVKRTANADKKAVTLKRSSNSKGKEKDTEKGKERIKEKEKEKEKEKEKEKEKVYQTPEF
+VESSDDERADAKTPLEKHSSDRPKSGSPSKHENGQEKQDSFSGIILKKTAIEKDKVVANAPHKVNEKPMTADAGSTNLSP
+SGKVSKLDELRSKFTKGRFPQGSSQKQIQQQKNTPKTSSKSIVPTVSDKFKPMDSTSGASSDDSADDDDDDSMDSSTEDE
+GISMKKPRRGIVQPPKGSVSAPVKHVPQSLSSELEGVPQSTQIPNEATNTAPLTKLLDHISPPSTAKTITSRGVTESKGT
+SNRSLSSLSDLASRGVPDVREKGVNYKKTAPNVVNNSSSDESEQETNDGSDSSDSDNSDSDSSDSSDDGNNFISAKSASK
+ALRKNKASSGFASLIRDSQKK
+
+>Ago0000007
+MGSLQAREMEELYVYSGENMPRVRLCLLRRYSCVEEVEAYVGRVQDRYTLRLGTVETITGNLKIGCDTHADCEACPFYIL
+EYNEVTTEYSLWKAADADWRLDSIVATMYTGAGGPARERGGLPRELQGLREGLDMEYVWDCLRRLNLPLEQIDWAEFREL
+LESMLAAKRVADDDCVTLRGVVALAALQATVQTSKRAVRSQLRAYDRRVRAASTPASTRTSSPESLLPADSRESSVSSVH
+YTYGLPATQLDANFKTYFRSMAENFELFEEPALALRGRVAKPRKKAAGRHGHRPVQA
+
+>Ago0000008
+MQISAVALSGAALLACASAHQHDRKKPHLVVVYGDVYVSGTDTFTKYYSKMTDKLPASGSDGWSYSWSTATSWTSDSVST
+EPSAEPTSTEPTNLPEVTSSPATPVQPTSAPEETFEEPTESTSAEPTSSPEPVKSAEPTSSPEPVKSVEPTSSPEPVKSV
+EPVKSAEPVKSPEPVKSPEPVKSPEPVKSPEPVKSAEPTSSPEPTGSPQRSRPAGGQNGASFEEEILRAHNSRRQLHKDT
+KPLTWSEELAKFARDFANQYDCSGRLVHSDSPYGENLAVGYPTPEKAVKAWYDEISDYSYSHPSFSFSTGHFSQLVWKDT
+KHLGCAVKKCGGSVGDYLICSYDPAGNFLRRFGENVAPIA
+
+>Ago0000009
+MRACLLIPLLLVAATARTVTVSVTATRTVTVISAAAVTTLRTTVFTTAYRTQTTPLTETPLSRPTAVNNTFASAVLDLHN
+DYRRRHHAVPLRWNSTLYTHAQHYANRILCNGSLVHSGLPHGENLALGYSPAAAVTAWYDEIAEYDFSTPGFSHATGHFT
+QLVWRSTTSVGCAYVMCGPCYGLYIICQYDPPGNVADQYVANVLP
+
+>Ago0000010
+MESQAAVEEPQHSVVIETPPTTAESSETPVADTATGAEPEGAGGAAVVAPKRMPTRADFPPLSSVIFETQKVQWGPNMKK
+PESQSASPSPSPGPVGSGAKPMRSKTMQEAFSLDLQTQVTISKAEFSKFVVSVKQSHSVSIESTLSKLSRTFLITGSPTN
+VYNAKRELVKKLTRPVTVVIQVPSKTVSSIIGPGGRMIREITNAAGGIKIDIAKTAEADAYDADLDDQLINISLHGDVAS
+VNFAKDKILSIVKEETKNATISVAVENKQLIPFISLADVEISEDVTVKAFPNGSEKIVLMGPRDEAKEAKVNVQNYLNTL
+ASKVSEKKISIPRKFQPLIDAEDVREKYKVSVIFPTALGDDTVSFYGLSANLDDAIAYARQSSKQYIVESLEVSKAHGKN
+VAHAKNLMFYFAKYDILKDIKESFKEVKLVLPTPEELPGLDNVSINIISKADIAEQTKTVRKQIINIVNRLTPSHVLAVD
+DLDYELFHKDIKQALSKAEIPFVQLGDHYEGDNTVLLFAKVDEEDFQPSPEEVKEHLEKVAAVLDEVRTKQSKLFTKIVN
+FDAEFQVLHFSDDSVTWNLVLENITSAGGHAQIKLHTPSEDEITIRGDEKAVKAAVKAFESIAENPSKKSKLTVSVPANT
+VSRLIGPKGTNLAQIRQKFDVQIDVPSESNDTNTEITLTGLEYNLQHAKTHIASEAKKWADITTKELIVPTKYHGSLIGS
+QGTYRIRLENKYSVRIQFPKEGEVVTIKGPSRGVNKAHAELKALLDFEIENGHKSVINVPVEHVPRVIGKNGDVINGIRA
+ELGVELKLLQNTKTAKEQNLDTVQLEITGSRQAIKEASKAVDAIIAEASDFTTKQLEIDAKYHKLIVGPGGSTLKDFISK
+AGGDDIRNKTVDVPNAESTNKVITISGPKTFVEKMSKALNQIVQDIKASVAKELNIPADRQGALIGPGGSVRRQLESQFN
+VRIEVPDKGKEGKVTIHGRPEAVEKCEKEIFSTIIRDSYDQEIMVPAVYHAFVSERGQLINKLRMTYFINVKHGNSSKKA
+NKLSRSEQPIPIERVRGSEGEGTKLTIEEVSAPEASANDNIPWRLTYEHVDLSDILGEEGKHAMTKEQALEAAADQIKER
+IELAPKANCIGYLWCENVKKFNKVVGPGGSNIKQIRETTNTLINVPKKSDKVSDIIYVRGTKESVEKACKMICDALNK
+"""
+
+CYS1_DICDI="-----MKVILLFVLAVFTVFVSS---------------RGIPPEEQ------------SQFLEFQDKFNKKY-SHEEYLERFEIFKSNLGKIEELNLIAINHKADTKFGVNKFADLSSDEFKNYYLNNKEAIFTDDLPVADYLDDEFINSIPTAFDWRTRG-AVTPVKNQGQCGSCWSFSTTGNVEGQHFISQNKLVSLSEQNLVDCDHECMEYEGEEACDEGCNGGLQPNAYNYIIKNGGIQTESSYPYTAETGTQCNFNSANIGAKISNFTMIP-KNETVMAGYIVSTGPLAIAADAVE-WQFYIGGVF-DIPCN--PNSLDHGILIVGYSAKNTIFRKNMPYWIVKNSWGADWGEQGYIYLRRGKNTCGVSNFVSTSII--"
+phylip_interlived = """ 3 384
+CYS1_DICDI   -----MKVIL LFVLAVFTVF VSS------- --------RG IPPEEQ---- --------SQ
+ALEU_HORVU   MAHARVLLLA LAVLATAAVA VASSSSFADS NPIRPVTDRA ASTLESAVLG ALGRTRHALR
+CATH_HUMAN   ------MWAT LPLLCAGAWL LGV------- -PVCGAAELS VNSLEK---- --------FH
+
+             FLEFQDKFNK KY-SHEEYLE RFEIFKSNLG KIEELNLIAI NHKADTKFGV NKFADLSSDE
+             FARFAVRYGK SYESAAEVRR RFRIFSESLE EVRSTN---- RKGLPYRLGI NRFSDMSWEE
+             FKSWMSKHRK TY-STEEYHH RLQTFASNWR KINAHN---- NGNHTFKMAL NQFSDMSFAE
+
+             FKNYYLNNKE AIFTDDLPVA DYLDDEFINS IPTAFDWRTR G-AVTPVKNQ GQCGSCWSFS
+             FQATRL-GAA QTCSATLAGN HLMRDA--AA LPETKDWRED G-IVSPVKNQ AHCGSCWTFS
+             IKHKYLWSEP QNCSAT--KS NYLRGT--GP YPPSVDWRKK GNFVSPVKNQ GACGSCWTFS
+
+             TTGNVEGQHF ISQNKLVSLS EQNLVDCDHE CMEYEGEEAC DEGCNGGLQP NAYNYIIKNG
+             TTGALEAAYT QATGKNISLS EQQLVDCAGG FNNF------ --GCNGGLPS QAFEYIKYNG
+             TTGALESAIA IATGKMLSLA EQQLVDCAQD FNNY------ --GCQGGLPS QAFEYILYNK
+
+             GIQTESSYPY TAETGTQCNF NSANIGAKIS NFTMIP-KNE TVMAGYIVST GPLAIAADAV
+             GIDTEESYPY KGVNGV-CHY KAENAAVQVL DSVNITLNAE DELKNAVGLV RPVSVAFQVI
+             GIMGEDTYPY QGKDGY-CKF QPGKAIGFVK DVANITIYDE EAMVEAVALY NPVSFAFEVT
+
+             E-WQFYIGGV F-DIPCN--P NSLDHGILIV GYSAKNTIFR KNMPYWIVKN SWGADWGEQG
+             DGFRQYKSGV YTSDHCGTTP DDVNHAVLAV GYGVENGV-- ---PYWLIKN SWGADWGDNG
+             QDFMMYRTGI YSSTSCHKTP DKVNHAVLAV GYGEKNGI-- ---PYWIVKN SWGPQWGMNG
+
+             YIYLRRGKNT CGVSNFVSTS II--
+             YFKMEMGKNM CAIATCASYP VVAA
+             YFLIERGKNM CGLAACASYP IPLV
+"""
+
+phylip_sequencial = """ 3 384
+CYS1_DICDI   -----MKVILLFVLAVFTVFVSS---------------RGIPPEEQ-
+-----------SQFLEFQDKFNKKY-SHEEYLERFEIFKSNLGKIEELNLIAINHKADTK
+FGVNKFADLSSDEFKNYYLNNKEAIFTDDLPVADYLDDEFINSIPTAFDWRTRG-AVTPV
+KNQGQCGSCWSFSTTGNVEGQHFISQNKLVSLSEQNLVDCDHECMEYEGEEACDEGCNGG
+LQPNAYNYIIKNGGIQTESSYPYTAETGTQCNFNSANIGAKISNFTMIP-KNETVMAGYI
+VSTGPLAIAADAVE-WQFYIGGVF-DIPCN--PNSLDHGILIVGYSAKNTIFRKNMPYWI
+VKNSWGADWGEQGYIYLRRGKNTCGVSNFVSTSII--
+ALEU_HORVU   MAHARVLLLALAVLATAAVAVASSSSFADSNPIRPVTDRAASTLESA
+VLGALGRTRHALRFARFAVRYGKSYESAAEVRRRFRIFSESLEEVRSTN----RKGLPYR
+LGINRFSDMSWEEFQATRL-GAAQTCSATLAGNHLMRDA--AALPETKDWREDG-IVSPV
+KNQAHCGSCWTFSTTGALEAAYTQATGKNISLSEQQLVDCAGGFNNF--------GCNGG
+LPSQAFEYIKYNGGIDTEESYPYKGVNGV-CHYKAENAAVQVLDSVNITLNAEDELKNAV
+GLVRPVSVAFQVIDGFRQYKSGVYTSDHCGTTPDDVNHAVLAVGYGVENGV-----PYWL
+IKNSWGADWGDNGYFKMEMGKNMCAIATCASYPVVAA
+CATH_HUMAN   ------MWATLPLLCAGAWLLGV--------PVCGAAELSVNSLEK-
+-----------FHFKSWMSKHRKTY-STEEYHHRLQTFASNWRKINAHN----NGNHTFK
+MALNQFSDMSFAEIKHKYLWSEPQNCSAT--KSNYLRGT--GPYPPSVDWRKKGNFVSPV
+KNQGACGSCWTFSTTGALESAIAIATGKMLSLAEQQLVDCAQDFNNY--------GCQGG
+LPSQAFEYILYNKGIMGEDTYPYQGKDGY-CKFQPGKAIGFVKDVANITIYDEEAMVEAV
+ALYNPVSFAFEVTQDFMMYRTGIYSSTSCHKTPDKVNHAVLAVGYGEKNGI-----PYWI
+VKNSWGPQWGMNGYFLIERGKNMCGLAACASYPIPLV
+"""
+
+
+expression = '#Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7\nA\t-1.23\t-0.81\t1.79\t0.78\t-0.42\t-0.69\t0.58\nB\t-1.76\t-0.94\t1.16\t0.36\t0.41\t-0.35\t1.12\nC\t-2.19\t0.13\t0.65\t-0.51\t0.52\t1.04\t0.36\nD\t-1.22\t-0.98\t0.79\t-0.76\t-0.29\t1.54\t0.93\nE\t-1.47\t-0.83\t0.85\t0.07\t-0.81\t1.53\t0.65\nF\t-1.04\t-1.11\t0.87\t-0.14\t-0.80\t1.74\t0.48\nG\t-1.57\t-1.17\t1.29\t0.23\t-0.20\t1.17\t0.26\nH\t-1.53\t-1.25\t0.59\t-0.30\t0.32\t1.41\t0.77\n'
diff --git a/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.fasta b/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.fasta
new file mode 100644
index 0000000..343eb3a
--- /dev/null
+++ b/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.fasta
@@ -0,0 +1,32 @@
+>Human_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGCAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCCTCATAACAGAACTCTCAACAATTGTCATCGGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCACGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATACCACCATC
+>Goril_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCTTCATAACAGAACTCTCAACAATTGTCATCGGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCAGGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CAGGATTCTCCACGGTATCCTGTGGTTCCTGTTCACCTGGATACCACCATC
+>Chimp_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCCTCATAACAGAACTCTCAACAATTGTCATCAGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCAGGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATGCCACCATC
+>Orang_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTAGTGGTGTGGGGGGCTCACTCCATGCCAAACCCCGACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACGTCAGTCTGAACCCTCCTCAATGCACCACTGCAATGCGGGTAATTAACAATTATCAACGGCGTTGCAAAGACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATAACCTGTCCTCGTAACAGAACTCTCCACAATTGTCATCGGAGTAGATTCCAGGTGCCTTTACTCCACTGTAACCTCACAAATCCAGGTGCACAGAATATTTCAAACTGCAAGTATGCAGACAGAACAGAAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATACCACCATC
+>Macaq_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACAAAGGCTCAGTGGTTTGCCATCCAGCACATCAATGTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATAAATAATTATCAACGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCATATACAGCTAATGTTTGTCGTAACGAACGTATACGCTGCCCTCGTAACAGAACTCTCCACAATTGTCATCGTAGTAGATACCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAACCTGCAGGTATGCAGACAGACCAGGACGGAGGTTCTATGTAGTTGCATGTGAAAGCAGAGATCCA---CGGGATTCTCCACGGTATCCAGTGGTTCCAGTTCACCTGGATACCACCATC
+>Macaq2_ECP                     
+ATGGTTCCAAAACTGTTCACTCCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAAGGCTCAGTGGTTTGCCATCCAGCACATCAATGTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATAAATAATTATCAACGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCAAATACAGTTAATGTTTGTCGTAACCGAAGTATACGCTGCCCTCGTAACAGAACTCTCCACAATTGTCATCGTAGTAGCTACCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAACCTGCAGGTATGCAGACAGACCAGGACGGAGGTTCTATGTAGTTGCATGTGAAAGCAGAGATCCA---CGGGATTCTCCACGGTATCCAGTGGTTCCAGTTCACCTGGATACCATCATC
+>Orang_EDN                      
+ATGGTTCCAAAACTGTTCACTTCTCAAATTTCCCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGACGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCAACAATGCAATGCAGGTCATTAACAATTTTCAACGGCGTTGCAAAAACCAAAATACTTTTCTGCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATAACCTGTCCTAGTAACAGAAGTCGCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGGGATCCACGACGGGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Chimp_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCAGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCGGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTCGCAAAAATTGTCATCACAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Gorilla_EDN                    
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACATCCCAGCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTTGCAAAAATTGTCATCAAAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Human_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTCGCAAAAATTGTCACCACAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGAGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Hylobates_EDN                  
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAAACCCCAACAGTTTACCTGGGCTCAGTGGTTTGAAATCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCGGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTTCTTCGTACCACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATGACATGTCCTAGTAACAAAACTCGCAAAAATTGTCATCAAAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCGGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCAGTAGTTCCGGTTCACCTGGATAGAATCATC
+>Macaq_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Macaq2_EDN                     
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCAGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACTTGGATAGAGTCATC
+>Papio_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACTTGGATAGAGTCATC
+>Cercopith_EDN                  
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCAAAAT---ATTTCAAATTGCAAGTATACACAGACAACAGCAAACAAGTTCTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAGTCATC
+
+
diff --git a/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.nw b/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.nw
new file mode 100644
index 0000000..0e98798
--- /dev/null
+++ b/ete3/test/ete_evol_data/CladeModelCD/ECP_EDN_15.nw
@@ -0,0 +1 @@
+(((Hylobates_EDN , (Orang_EDN , (Gorilla_EDN , (Chimp_EDN , Human_EDN )))), (Macaq_EDN , (Cercopith_EDN , (Macaq2_EDN , Papio_EDN )))), (Orang_ECP, ((Macaq_ECP, Macaq2_ECP), (Goril_ECP, Chimp_ECP, Human_ECP))));
diff --git a/ete3/test/ete_evol_data/L_example/alignment_L_measuring_evol.fasta b/ete3/test/ete_evol_data/L_example/alignment_L_measuring_evol.fasta
new file mode 100644
index 0000000..b67852a
--- /dev/null
+++ b/ete3/test/ete_evol_data/L_example/alignment_L_measuring_evol.fasta
@@ -0,0 +1,28 @@
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCGGGGACAA
+AGAAGTCGCAGACGAAGGAGGCGGAGCTGCCAGACACGAAGGAGAGCCATGAGGTGC---
+CGCCCCAGGTACAGGCTGAGACGTAGAAGACCATACCAC
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGCTACCGCCAAAGACGA
+AGAGGTCGCAGACGAAGGAGGCGGACGTGCCGG---AGACGGAGAGCCAGCAGGTGCTGC
+CGCCGCAGGTACAAGCTGACGTGTAGAAGACCATACTAC
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGCTGCCGCCGGAGACGA
+AGATGTCGCAGACGAAGGAGGCGGAGATGCCGGGCACGCAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTACAGGCTGAGGTGTAGAAGACCCTATTAC
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAA
+ACAAGTCGCAGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT
+CGCCGCAGGAACAGACTGAGACGTAGAAAACCCTATCAC
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAGAGCCGGAGCAGATGCTGCCGCCGGAGACGA
+AGATGTCGCAGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTACAGGCTGAGGTGTAGAAGAAGGTTTTAC
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGA---
+CGAAGTCGCAGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTCCAGACTGAGACGTAGAAGAAGGTTCCAC
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAA
+AGAAGTCGCAGACGAAAGAGGCAGAGCTGCCAGACACCGCGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTCCAGAATGAGACGTAGAAGATGGTTTCAC
diff --git a/ete3/test/ete_evol_data/L_example/measuring_L_tree.nw b/ete3/test/ete_evol_data/L_example/measuring_L_tree.nw
new file mode 100644
index 0000000..179a30a
--- /dev/null
+++ b/ete3/test/ete_evol_data/L_example/measuring_L_tree.nw
@@ -0,0 +1 @@
+(Saguinus_imperator,((Hylobates_lar,(Gorilla_gorilla,(Pan_paniscus,Pan_troglodytes))),(Macaca_fascicularis,Papio_cynocephalus)));
diff --git a/ete3/test/ete_evol_data/S_example/ali.fasta b/ete3/test/ete_evol_data/S_example/ali.fasta
new file mode 100644
index 0000000..2affceb
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/ali.fasta
@@ -0,0 +1,8 @@
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Papio_cynocephalus	                                                                                          
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
+>Gorilla_gorilla	                                                                                          
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Pan_troglodytes	                                                                                          
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dN b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dS b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/2NG.t b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/4fold.nuc b/ete3/test/ete_evol_data/S_example/paml/M1/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/algn b/ete3/test/ete_evol_data/S_example/paml/M1/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/lnf b/ete3/test/ete_evol_data/S_example/paml/M1/lnf
new file mode 100644
index 0000000..b4f376a
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928048284   0.004116282501       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523353881   0.000031918161       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721442607   0.015419161949       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387625110   0.000481423840       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797513117   0.010257446886       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857484648   0.000034115850       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202715159   0.005405861150       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412168618   0.002152302969       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803210867   0.000139099495       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780128265   0.000690556457       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009811484   0.060750428189       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2114998226   0.000738049382       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828163804   0.002521714175       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849948739   0.005067058162       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762192223   0.030924107467       2.6285  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307512599   0.000397326872       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413518211   0.008726841080       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776243898   0.007615083026       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635738743   0.000190935693       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144586842   0.001809945247       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226418546   0.000080872085       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632682604   0.000057526304       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094795492   0.000448554867       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837285549   0.016844542617       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774682262   0.000511855486       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326581430   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160570563   0.032841672851       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317775829   0.000217833928       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900201970   0.000413844525       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7700992278   0.000155308169       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432664633   0.001758548610       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761256899   0.016973097475       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653681115   0.000257274201       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552277716   0.005769165873       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420502367   0.005289401187       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991348811   0.000676123449       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673094715   0.000002113195       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916575004   0.000068296127       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704125529   0.012646022338       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386100569   0.000481497241       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265290365   0.000007308087       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052527864   0.001224463137       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299930145   0.032387167013       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144721446   0.000735858918       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688983219   0.000382455473       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917296709   0.001371665381       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056730988   0.003010427756       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081283027   0.008163124305       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/out b/ete3/test/ete_evol_data/S_example/paml/M1/out
new file mode 100644
index 0000000..aba9830
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/out
@@ -0,0 +1,191 @@
+
+seed used = 861385637
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+Site-class models:  NearlyNeutral
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np:  9):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.223828 0.032940 0.166566 0.156609 0.096748 0.230835 3.542367 0.938133 0.060763
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90753
+
+((2: 0.032940, (1: 0.156609, 3: 0.096748): 0.166566): 0.223828, 4: 0.230835);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096748): 0.166566): 0.223828, Papio_cynocephalus: 0.230835);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=2)
+
+p:   0.93813  0.06187
+w:   0.06076  1.00000
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6       0.224    159.3     95.7   0.1189   0.0197   0.1659    3.1   15.9
+   6..2       0.033    159.3     95.7   0.1189   0.0029   0.0244    0.5    2.3
+   6..7       0.167    159.3     95.7   0.1189   0.0147   0.1235    2.3   11.8
+   7..1       0.157    159.3     95.7   0.1189   0.0138   0.1161    2.2   11.1
+   7..3       0.097    159.3     95.7   0.1189   0.0085   0.0717    1.4    6.9
+   5..4       0.231    159.3     95.7   0.1189   0.0203   0.1711    3.2   16.4
+
+
+Time used:  0:03
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/rst b/ete3/test/ete_evol_data/S_example/paml/M1/rst
new file mode 100644
index 0000000..8445682
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/rst
@@ -0,0 +1,100 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=2)
+
+p:   0.93813  0.06187
+w:   0.06076  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 2 classes & postmean_w
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 ( 1)  0.090
+   2 A   0.94915 0.05085 ( 1)  0.109
+   3 R   0.97797 0.02203 ( 1)  0.081
+   4 Y   0.97934 0.02066 ( 1)  0.080
+   5 R   0.97239 0.02761 ( 1)  0.087
+   6 C   0.98905 0.01095 ( 1)  0.071
+   7 C   0.98333 0.01667 ( 1)  0.076
+   8 R   0.98115 0.01885 ( 1)  0.078
+   9 S   0.98512 0.01488 ( 1)  0.075
+  10 Q   0.98131 0.01869 ( 1)  0.078
+  11 S   0.98512 0.01488 ( 1)  0.075
+  12 R   0.96886 0.03114 ( 1)  0.090
+  13 S   0.98512 0.01488 ( 1)  0.075
+  14 R   0.97239 0.02761 ( 1)  0.087
+  15 C   0.97638 0.02362 ( 1)  0.083
+  16 Y   0.97524 0.02476 ( 1)  0.084
+  17 R   0.97723 0.02277 ( 1)  0.082
+  18 Q   0.98131 0.01869 ( 1)  0.078
+  19 S   0.76817 0.23183 ( 1)  0.279
+  20 R   0.96995 0.03005 ( 1)  0.089
+  21 S   0.98512 0.01488 ( 1)  0.075
+  22 R   0.97474 0.02526 ( 1)  0.084
+  23 C   0.97078 0.02922 ( 1)  0.088
+  24 Y   0.74652 0.25348 ( 1)  0.299
+  25 R   0.97723 0.02277 ( 1)  0.082
+  26 Q   0.98071 0.01929 ( 1)  0.079
+  27 R   0.97549 0.02451 ( 1)  0.084
+  28 Q   0.97521 0.02479 ( 1)  0.084
+  29 S   0.98512 0.01488 ( 1)  0.075
+  30 Q   0.97802 0.02198 ( 1)  0.081
+  31 S   0.97876 0.02124 ( 1)  0.081
+  32 R   0.96995 0.03005 ( 1)  0.089
+  33 S   0.78537 0.21463 ( 1)  0.262
+  34 R   0.72010 0.27990 ( 1)  0.324
+  35 C   0.97867 0.02133 ( 1)  0.081
+  36 Y   0.97524 0.02476 ( 1)  0.084
+  37 R   0.97723 0.02277 ( 1)  0.082
+  38 Q   0.98131 0.01869 ( 1)  0.078
+  39 S   0.98512 0.01488 ( 1)  0.075
+  40 Q   0.97812 0.02188 ( 1)  0.081
+  41 S   0.76817 0.23183 ( 1)  0.279
+  42 R   0.96995 0.03005 ( 1)  0.089
+  43 S   0.98512 0.01488 ( 1)  0.075
+  44 R   0.97474 0.02526 ( 1)  0.084
+  45 C   0.97078 0.02922 ( 1)  0.088
+  46 Y   0.97934 0.02066 ( 1)  0.080
+  47 R   0.97723 0.02277 ( 1)  0.082
+  48 Q   0.98071 0.01929 ( 1)  0.079
+  49 R   0.97239 0.02761 ( 1)  0.087
+  50 Q   0.97521 0.02479 ( 1)  0.084
+  51 R   0.97239 0.02761 ( 1)  0.087
+  52 S   0.97540 0.02460 ( 1)  0.084
+  53 R   0.97551 0.02449 ( 1)  0.084
+  54 R   0.97239 0.02761 ( 1)  0.087
+  55 R   0.95266 0.04734 ( 1)  0.105
+  56 R   0.97797 0.02203 ( 1)  0.081
+  57 R   0.97187 0.02813 ( 1)  0.087
+  58 R   0.96616 0.03384 ( 1)  0.093
+  59 S   0.77337 0.22663 ( 1)  0.274
+  60 C   0.98905 0.01095 ( 1)  0.071
+  61 Q   0.98131 0.01869 ( 1)  0.078
+  62 T   0.95838 0.04162 ( 1)  0.100
+  63 R   0.96995 0.03005 ( 1)  0.089
+  64 R   0.97797 0.02203 ( 1)  0.081
+  65 R   0.97239 0.02761 ( 1)  0.087
+  66 A   0.94915 0.05085 ( 1)  0.109
+  67 M   0.96921 0.03079 ( 1)  0.090
+  68 R   0.97797 0.02203 ( 1)  0.081
+  69 C   0.98569 0.01431 ( 1)  0.074
+  70 R   0.98115 0.01885 ( 1)  0.078
+  71 R   0.98115 0.01885 ( 1)  0.078
+  72 R   0.97797 0.02203 ( 1)  0.081
+  73 Y   0.97934 0.02066 ( 1)  0.080
+  74 R   0.97524 0.02476 ( 1)  0.084
+  75 L   0.96072 0.03928 ( 1)  0.098
+  76 R   0.97328 0.02672 ( 1)  0.086
+  77 R   0.96189 0.03811 ( 1)  0.097
+  78 R   0.63028 0.36972 ( 1)  0.408
+  79 R   0.48815 0.51185 ( 2)  0.542
+  80 P   0.00047 0.99953 ( 2)  1.000
+  81 Y   0.97211 0.02789 ( 1)  0.087
+  82 H   0.98099 0.01901 ( 1)  0.079
+  83 I   0.95719 0.04281 ( 1)  0.101
+  84 V   0.94612 0.05388 ( 1)  0.111
+  85 S   0.94623 0.05377 ( 1)  0.111
+
+
+lnL =  -511.919210
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/rst1 b/ete3/test/ete_evol_data/S_example/paml/M1/rst1
new file mode 100644
index 0000000..2b5ad3c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.224	0.033	0.167	0.157	0.097	0.231	3.542	0.938	0.061	-511.919
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/rub b/ete3/test/ete_evol_data/S_example/paml/M1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/tmp.ctl b/ete3/test/ete_evol_data/S_example/paml/M1/tmp.ctl
new file mode 100644
index 0000000..b538fe8
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+ *    fix_alpha = 
+ *        alpha = 
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+ *       Malpha = 
+ *       method = 
+          Mgene = 0
+          model = 0
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 1
+      fix_omega = 0
+          omega = 0.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/ete3/test/ete_evol_data/S_example/paml/M1/tree b/ete3/test/ete_evol_data/S_example/paml/M1/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M1/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dN b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dN
new file mode 100644
index 0000000..c7cb2b7
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0254  0.0204
+Papio_cynocephalus     0.0253  0.0360  0.0516
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dS b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dS
new file mode 100644
index 0000000..e145570
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2681  0.3547
+Papio_cynocephalus     0.7047  0.4864  1.0128
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/2NG.t b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.t
new file mode 100644
index 0000000..292cce8
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2389  0.2840
+Papio_cynocephalus     0.5254  0.4041  0.7986
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/4fold.nuc b/ete3/test/ete_evol_data/S_example/paml/M2/4fold.nuc
new file mode 100644
index 0000000..12be85d
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 71 72 76 78 85 86
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/algn b/ete3/test/ete_evol_data/S_example/paml/M2/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/lnf b/ete3/test/ete_evol_data/S_example/paml/M2/lnf
new file mode 100644
index 0000000..c639347
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/lnf
@@ -0,0 +1,54 @@
+    -1     86     49
+
+
+ 1
+
+     1      1    -5.5058442799   0.004062956860       0.3494  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3275159244   0.000032720266       0.0028  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.0512038317   0.017401413652       1.4965  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.4674885443   0.000571361445       0.0491  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.6452991773   0.009606655136       0.8262  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.0740502197   0.000042159512       0.0036  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.1827105972   0.005612771813       0.4827  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.5498550828   0.001430322862       0.1230  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.4390036367   0.000216265522       0.0186  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.0757153502   0.000845387589       0.0727  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.7668331623   0.062860759687       5.4060  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -6.9687904138   0.000940790185       0.0809  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -6.4583496105   0.001567380365       0.1348  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2513820910   0.005240270861       0.4507  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4156544816   0.032854896737       2.8255  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -8.2591239572   0.000258885687       0.0223  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.6131161462   0.009920855255       0.8532  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8590173078   0.007758103975       0.6672  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.6778231243   0.000170321433       0.0146  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.5087924265   0.001490278257       0.1282  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.9995723626   0.000045419349       0.0039  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.9727269235   0.000046655165       0.0040  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7123964953   0.000447248363       0.0385  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0796546490   0.016913305671       1.4545  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5988458066   0.000501029385       0.0431  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -22.4889972730   0.000000000171       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.3651998797   0.034555108563       2.9717  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.2757795220   0.000254609509       0.0219  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -8.2139928367   0.000270837151       0.0233  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.6709574770   0.000171494823       0.0147  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.1870547741   0.002055872855       0.1768  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0095926111   0.018140784085       1.5601  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.5472024382   0.000194087312       0.0167  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.0302903103   0.006536912562       0.5622  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2135486958   0.005442326219       0.4680  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.3061050106   0.000671427167       0.0577  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.2179909653   0.000001817605       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.3899536211   0.000083559332       0.0072  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3225565712   0.013265924871       1.1409  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.7537780885   0.000429118227       0.0369  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -12.2005715746   0.000005027581       0.0004  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.6889351717   0.001244607361       0.1070  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      1    -9.9315570242   0.000048616041       0.0042  TGC (C) --- (-) TGC (C) TTC (F) 
+    44      2    -3.3761463188   0.034178915912       2.9394  TGC (C) TGC (C) TGC (C) TGC (C) 
+    45      1    -7.1012035008   0.000824112506       0.0709  TGC (C) TGT (C) TGC (C) TGC (C) 
+    46      1    -8.3110092943   0.000245795838       0.0211  TGC (C) TGT (C) TGT (C) TGC (C) 
+    47      1    -6.5040991664   0.001497288960       0.1288  TGT (C) TGC (C) TGT (C) TGC (C) 
+    48      1    -5.8718334986   0.002817702342       0.2423  TGT (C) TGT (C) TGT (C) TGC (C) 
+    49      2    -4.7274756227   0.008848780530       0.7610  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/out b/ete3/test/ete_evol_data/S_example/paml/M2/out
new file mode 100644
index 0000000..6fa1361
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/out
@@ -0,0 +1,229 @@
+
+seed used = 861676029
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        147  P
+
+Gorilla_gorilla                             ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGC TGT TGT TGT
+Hylobates_lar                               ACA AGA AGA AGA AGA AGC AGG AGG AGC AGC AGC AGC AGT AGA AGG CGG AGT ATG ATT CAA CAG CAG CAG CAG CAC TGT CGC CGG CGG AGG CGC CGG CGA CGT CTG GCC GTA TAC TAC TAC TAC TCT --- TGC TGT TGT TGC TGT TGT
+Pan_troglodytes                             ACA AAA AGA AGA AGA AGA AGA AGG AGA AGC AGC AGC AGT AGG AGG CGG AGT ATG ATT CAA CAG CAA CAA CAG CAT TGT CGC CGC CGG CGA CGG CGG CGA CGT CTG GCC GTA TAC TAC TAC TAC TCT TGC TGC TGC TGT TGT TGT TGT
+Papio_cynocephalus                          ACA AGG AGA AGC AGG AGG AGG AGA AGC AGA AGC CGC AGC AGA AGG CGA AGT ATG ATC CAG CAA CAA CAG CAG CAC CCC CGC CGT CGA AGG CGC CGG CGA CGT CTG GCC GTG AAC TAC TAT TAT TCT TTC TGC TGC TGC TGC TGC TGT
+
+
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    1    2    1
+    1    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  86
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  1 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  5  3  4  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.19767    C:0.33721    A:0.43023    G:0.03488
+position  2:    T:0.05814    C:0.05814    A:0.20930    G:0.67442
+position  3:    T:0.12791    C:0.36047    A:0.19767    G:0.31395
+Average         T:0.12791    C:0.25194    A:0.27907    G:0.34109
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20930    C:0.33721    A:0.41860    G:0.03488
+position  2:    T:0.05814    C:0.04651    A:0.22093    G:0.67442
+position  3:    T:0.13953    C:0.30233    A:0.25581    G:0.30233
+Average         T:0.13566    C:0.22868    A:0.29845    G:0.33721
+
+#4: Papio_cynocephalus
+position  1:    T:0.18605    C:0.34884    A:0.43023    G:0.03488
+position  2:    T:0.06977    C:0.05814    A:0.20930    G:0.66279
+position  3:    T:0.10465    C:0.40698    A:0.18605    G:0.30233
+Average         T:0.12016    C:0.27132    A:0.27519    G:0.33333
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       1 |       TCC       0 |       TAC      23 |       TGC      18
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19825    C:0.33819    A:0.42857    G:0.03499
+position  2:    T:0.06122    C:0.05248    A:0.21283    G:0.67347
+position  3:    T:0.12536    C:0.36152    A:0.20700    G:0.30612
+Average         T:0.12828    C:0.25073    A:0.28280    G:0.33819
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00160053  0.00461550  0.00264274  0.00390828
+  0.00137189  0.00395614  0.00226521  0.00334996
+  0.00556376  0.01604434  0.00000000  0.00000000
+  0.01760588  0.05077045  0.00000000  0.04299111
+  0.00273032  0.00787349  0.00450821  0.00666707
+  0.00234028  0.00674871  0.00386418  0.00571463
+  0.00949113  0.02736976  0.01567140  0.02317601
+  0.03003357  0.08660842  0.04959031  0.07333778
+  0.00345998  0.00997762  0.00571299  0.00844879
+  0.00296570  0.00855224  0.00489685  0.00724182
+  0.01202755  0.03468409  0.01985944  0.02936960
+  0.03805978  0.10975378  0.06284289  0.09293667
+  0.00028245  0.00081450  0.00046637  0.00068970
+  0.00024210  0.00069814  0.00039974  0.00059117
+  0.00098184  0.00283135  0.00162118  0.00239752
+  0.00310692  0.00895949  0.00513003  0.00758667
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Pairwise deletion)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0947 (0.0254 0.2681) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0359 (0.0253 0.7047) 0.0740 (0.0360 0.4864) 0.0510 (0.0516 1.0128)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: -1
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 11):   -517.824749      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.816965 0.181213 0.680999 0.410712 0.428524 0.753283 3.120348 0.987937 0.000000 0.098875 178.861466
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   3.27170
+
+((2: 0.181213, (1: 0.410712, 3: 0.428524): 0.680999): 0.816965, 4: 0.753283);
+
+((Hylobates_lar: 0.181213, (Gorilla_gorilla: 0.410712, Pan_troglodytes: 0.428524): 0.680999): 0.816965, Papio_cynocephalus: 0.753283);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.12035
+
+
+dN/dS (w) for site classes (K=3)
+
+p:   0.98794  0.00000  0.01206
+w:   0.09887  1.00000178.86147
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6       0.817    163.8     94.2   2.2553   0.3417   0.1515   56.0   14.3
+   6..2       0.181    163.8     94.2   2.2553   0.0758   0.0336   12.4    3.2
+   6..7       0.681    163.8     94.2   2.2553   0.2849   0.1263   46.7   11.9
+   7..1       0.411    163.8     94.2   2.2553   0.1718   0.0762   28.1    7.2
+   7..3       0.429    163.8     94.2   2.2553   0.1793   0.0795   29.4    7.5
+   5..4       0.753    163.8     94.2   2.2553   0.3151   0.1397   51.6   13.2
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+            Pr(w>1)     post mean +- SE for w
+
+    81 P      1.000**       178.855
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+            Pr(w>1)     post mean +- SE for w
+
+    81 P      0.963*        6.614 +- 2.783
+
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.754  0.243  0.002  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.045  0.063  0.081  0.096  0.106  0.114  0.119  0.123  0.125  0.128
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.012
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.160
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.008 0.106 0.700
+
+sum of density on p0-p1 =   1.000000
+
+Time used:  0:12
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/rst b/ete3/test/ete_evol_data/S_example/paml/M2/rst
new file mode 100644
index 0000000..16b78ce
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/rst
@@ -0,0 +1,203 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=3)
+
+p:   0.98794  0.00000  0.01206
+w:   0.09887  1.00000178.86147
+
+Naive Empirical Bayes (NEB) probabilities for 3 classes & postmean_w & P(w>1)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   2 A   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   3 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+   4 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   5 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+   6 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   7 C   0.99999 0.00000 0.00001 ( 1)  0.100  0.000
+   8 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+   9 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  10 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  11 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  12 R   0.99896 0.00000 0.00104 ( 1)  0.284  0.001
+  13 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  14 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  15 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  16 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  17 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  18 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  19 S   0.99534 0.00000 0.00466 ( 1)  0.932  0.005
+  20 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  21 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  22 R   0.99992 0.00000 0.00008 ( 1)  0.113  0.000
+  23 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  24 Y   0.99998 0.00000 0.00002 ( 1)  0.103  0.000
+  25 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  26 Q   1.00000 0.00000 0.00000 ( 1)  0.100  0.000
+  27 R   0.99971 0.00000 0.00029 ( 1)  0.151  0.000
+  28 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  29 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  30 Q   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  31 S   0.99986 0.00000 0.00014 ( 1)  0.123  0.000
+  32 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  33 S   0.99880 0.00000 0.00120 ( 1)  0.313  0.001
+  34 R   0.99942 0.00000 0.00058 ( 1)  0.202  0.001
+  35 C   0.99996 0.00000 0.00004 ( 1)  0.106  0.000
+  36 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  37 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  38 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  39 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  40 Q   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  41 S   0.99534 0.00000 0.00466 ( 1)  0.932  0.005
+  42 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  43 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  44 R   0.99992 0.00000 0.00008 ( 1)  0.113  0.000
+  45 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  46 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  47 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  48 Q   1.00000 0.00000 0.00000 ( 1)  0.100  0.000
+  49 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  50 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  51 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  52 S   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  53 R   0.99921 0.00000 0.00079 ( 1)  0.240  0.001
+  54 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  55 R   0.99975 0.00000 0.00025 ( 1)  0.143  0.000
+  56 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  57 R   0.99800 0.00000 0.00200 ( 1)  0.456  0.002
+  58 R   0.99883 0.00000 0.00117 ( 1)  0.307  0.001
+  59 S   0.99852 0.00000 0.00148 ( 1)  0.364  0.001
+  60 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  61 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  62 T   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  63 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  64 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  65 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  66 A   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  67 M   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  68 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  69 C   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  70 C   0.99703 0.00000 0.00297 ( 1)  0.631  0.003
+  71 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  72 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  73 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  74 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  75 R   0.99993 0.00000 0.00007 ( 1)  0.112  0.000
+  76 L   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  77 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  78 R   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  79 R   0.99731 0.00000 0.00269 ( 1)  0.580  0.003
+  80 R   0.98844 0.00000 0.01156 ( 1)  2.166  0.012
+  81 P   0.00004 0.00000 0.99996 ( 3) 178.855  1.000
+  82 Y   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  83 H   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  84 I   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  85 V   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  86 S   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    81 P      1.000**       178.855
+
+
+lnL =  -517.824749
+
+Bayes Empirical Bayes (BEB) probabilities for 3 classes (class) & postmean_w
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96652 0.03140 0.00208 ( 1)  0.110 +-  0.219
+   2 A   0.93808 0.04936 0.01255 ( 1)  0.183 +-  0.657
+   3 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+   4 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+   5 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+   6 C   0.98706 0.01251 0.00043 ( 1)  0.088 +-  0.131
+   7 C   0.98074 0.01825 0.00102 ( 1)  0.095 +-  0.182
+   8 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+   9 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  10 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  11 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  12 R   0.96174 0.03249 0.00577 ( 1)  0.135 +-  0.484
+  13 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  14 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  15 C   0.97271 0.02545 0.00184 ( 1)  0.105 +-  0.228
+  16 Y   0.97217 0.02641 0.00142 ( 1)  0.103 +-  0.190
+  17 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  18 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  19 S   0.74208 0.19856 0.05935 ( 1)  0.594 +-  1.498
+  20 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  21 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  22 R   0.97123 0.02616 0.00262 ( 1)  0.110 +-  0.296
+  23 C   0.96712 0.03068 0.00219 ( 1)  0.110 +-  0.233
+  24 Y   0.73374 0.23721 0.02905 ( 1)  0.399 +-  0.757
+  25 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  26 Q   0.97703 0.02193 0.00105 ( 1)  0.098 +-  0.175
+  27 R   0.97113 0.02559 0.00329 ( 1)  0.114 +-  0.355
+  28 Q   0.97092 0.02715 0.00193 ( 1)  0.106 +-  0.231
+  29 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  30 Q   0.97404 0.02445 0.00152 ( 1)  0.102 +-  0.210
+  31 S   0.97567 0.02227 0.00206 ( 1)  0.104 +-  0.271
+  32 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  33 S   0.77054 0.19899 0.03047 ( 1)  0.402 +-  0.971
+  34 R   0.70058 0.24616 0.05327 ( 1)  0.557 +-  1.238
+  35 C   0.97507 0.02335 0.00158 ( 1)  0.102 +-  0.216
+  36 Y   0.97217 0.02641 0.00142 ( 1)  0.103 +-  0.190
+  37 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  38 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  39 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  40 Q   0.97401 0.02447 0.00152 ( 1)  0.102 +-  0.210
+  41 S   0.74208 0.19856 0.05935 ( 1)  0.594 +-  1.498
+  42 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  43 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  44 R   0.97123 0.02616 0.00262 ( 1)  0.110 +-  0.296
+  45 C   0.96712 0.03068 0.00219 ( 1)  0.110 +-  0.233
+  46 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+  47 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  48 Q   0.97703 0.02193 0.00105 ( 1)  0.098 +-  0.175
+  49 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  50 Q   0.97092 0.02715 0.00193 ( 1)  0.106 +-  0.231
+  51 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  52 S   0.97298 0.02548 0.00154 ( 1)  0.103 +-  0.205
+  53 R   0.97073 0.02569 0.00359 ( 1)  0.118 +-  0.393
+  54 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  55 R   0.93815 0.04692 0.01493 ( 1)  0.203 +-  0.786
+  56 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  57 R   0.96427 0.02869 0.00704 ( 1)  0.141 +-  0.554
+  58 R   0.95417 0.03437 0.01145 ( 1)  0.175 +-  0.721
+  59 S   0.75845 0.20578 0.03576 ( 1)  0.439 +-  1.066
+  60 C   0.98706 0.01251 0.00043 ( 1)  0.088 +-  0.131
+  61 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  62 T   0.95364 0.04119 0.00517 ( 1)  0.132 +-  0.362
+  63 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  64 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  65 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  66 A   0.93808 0.04936 0.01255 ( 1)  0.183 +-  0.657
+  67 M   0.96652 0.03140 0.00208 ( 1)  0.110 +-  0.219
+  68 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  69 C   0.98364 0.01565 0.00071 ( 1)  0.092 +-  0.158
+  70 C   0.70111 0.23643 0.06246 ( 1)  0.621 +-  1.436
+  71 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+  72 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+  73 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  74 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+  75 R   0.97178 0.02547 0.00274 ( 1)  0.110 +-  0.307
+  76 L   0.95663 0.03912 0.00425 ( 1)  0.126 +-  0.321
+  77 R   0.96948 0.02761 0.00291 ( 1)  0.112 +-  0.305
+  78 R   0.95579 0.03866 0.00555 ( 1)  0.134 +-  0.411
+  79 R   0.58948 0.26683 0.14369 ( 1)  1.151 +-  2.197
+  80 R   0.47719 0.33503 0.18778 ( 1)  1.483 +-  2.457
+  81 P   0.00015 0.03692 0.96293 ( 3)  6.614 +-  2.783
+  82 Y   0.96693 0.03068 0.00239 ( 1)  0.111 +-  0.245
+  83 H   0.97787 0.02106 0.00107 ( 1)  0.097 +-  0.179
+  84 I   0.95125 0.04219 0.00657 ( 1)  0.142 +-  0.442
+  85 V   0.93085 0.05164 0.01751 ( 1)  0.219 +-  0.830
+  86 S   0.93237 0.05137 0.01626 ( 1)  0.210 +-  0.784
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    81 P      0.963*        6.614 +- 2.783
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/rst1 b/ete3/test/ete_evol_data/S_example/paml/M2/rst1
new file mode 100644
index 0000000..a5bea37
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/rst1
@@ -0,0 +1 @@
+	4	86	49	0.5889	0.817	0.181	0.681	0.411	0.429	0.753	3.120	0.988	0.000	0.099	178.861	-517.825
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/rub b/ete3/test/ete_evol_data/S_example/paml/M2/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/tmp.ctl b/ete3/test/ete_evol_data/S_example/paml/M2/tmp.ctl
new file mode 100644
index 0000000..8fa5eeb
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+ *    fix_alpha = 
+ *        alpha = 
+    fix_blength = 0
+      cleandata = 0
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+ *       Malpha = 
+ *       method = 
+          Mgene = 0
+          model = 0
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 0
+          omega = 1.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/ete3/test/ete_evol_data/S_example/paml/M2/tree b/ete3/test/ete_evol_data/S_example/paml/M2/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/M2/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dN b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dS b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.t b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/4fold.nuc b/ete3/test/ete_evol_data/S_example/paml/bsA/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/algn b/ete3/test/ete_evol_data/S_example/paml/bsA/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/lnf b/ete3/test/ete_evol_data/S_example/paml/bsA/lnf
new file mode 100644
index 0000000..9a88746
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928044538   0.004116284044       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523436893   0.000031917896       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721434789   0.015419174003       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387674193   0.000481421477       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797497253   0.010257463158       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857551298   0.000034115623       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202709488   0.005405864215       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412154622   0.002152305981       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803296792   0.000139098300       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780174030   0.000690553296       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009800283   0.060750496235       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2115046146   0.000738045845       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828145393   0.002521718818       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849946172   0.005067059463       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762182184   0.030924138511       2.6286  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307499682   0.000397327386       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413511005   0.008726847368       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776237903   0.007615087591       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635726635   0.000190935924       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144571124   0.001809948092       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226401219   0.000080872225       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632687835   0.000057526274       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094813420   0.000448554063       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837276800   0.016844557356       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774677857   0.000511855712       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326667805   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160559153   0.032841710322       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317764601   0.000217834173       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900189244   0.000413845052       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7701014140   0.000155307829       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432663441   0.001758548820       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761247274   0.016973113812       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653678639   0.000257274265       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552272129   0.005769169097       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420498168   0.005289403408       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991346893   0.000676123579       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673084744   0.000002113197       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916626823   0.000068295773       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704117319   0.012646032720       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386085002   0.000481497990       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265275121   0.000007308098       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052526450   0.001224463310       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299918277   0.032387205449       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144703587   0.000735860233       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688963930   0.000382456211       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917290379   0.001371666249       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056714669   0.003010432669       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081277413   0.008163128888       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/out b/ete3/test/ete_evol_data/S_example/paml/bsA/out
new file mode 100644
index 0000000..b6f11e9
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/out
@@ -0,0 +1,212 @@
+
+seed used = 861649221
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: several dN/dS ratios for branches for branches
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 11):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.212603 0.032940 0.166565 0.156609 0.096747 0.242060 3.542369 0.938134 0.061866 0.060763 1.000000
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90752
+
+((2: 0.032940, (1: 0.156609, 3: 0.096747): 0.166565): 0.212603, 4: 0.242060);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096747): 0.166565): 0.212603, Papio_cynocephalus: 0.242060);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positive sites for foreground lineages Prob(w>1):
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.906  0.093  0.001  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.187  0.128  0.105  0.093  0.087  0.083  0.081  0.079  0.079  0.078
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.022
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.011 0.043 0.280
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.012 0.022 0.188 0.412
+
+sum of density on p0-p1 =   1.000000
+
+Time used:  0:11
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/rst b/ete3/test/ete_evol_data/S_example/paml/bsA/rst
new file mode 100644
index 0000000..7c20516
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/rst
@@ -0,0 +1,191 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 4 classes
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+   2 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+   3 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+   4 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+   5 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+   6 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+   7 C   0.98333 0.01667 0.00000 0.00000 ( 1)
+   8 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+   9 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  10 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  11 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  12 R   0.96886 0.03114 0.00000 0.00000 ( 1)
+  13 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  14 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  15 C   0.97638 0.02362 0.00000 0.00000 ( 1)
+  16 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  17 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  18 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  19 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  20 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  21 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  22 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  23 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  24 Y   0.74652 0.25348 0.00000 0.00000 ( 1)
+  25 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  26 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  27 R   0.97549 0.02451 0.00000 0.00000 ( 1)
+  28 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  29 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  30 Q   0.97802 0.02198 0.00000 0.00000 ( 1)
+  31 S   0.97876 0.02124 0.00000 0.00000 ( 1)
+  32 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  33 S   0.78537 0.21463 0.00000 0.00000 ( 1)
+  34 R   0.72010 0.27990 0.00000 0.00000 ( 1)
+  35 C   0.97867 0.02133 0.00000 0.00000 ( 1)
+  36 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  37 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  38 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  39 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  40 Q   0.97812 0.02188 0.00000 0.00000 ( 1)
+  41 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  42 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  43 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  44 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  45 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  46 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  47 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  48 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  49 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  50 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  51 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  52 S   0.97540 0.02460 0.00000 0.00000 ( 1)
+  53 R   0.97551 0.02449 0.00000 0.00000 ( 1)
+  54 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  55 R   0.95266 0.04734 0.00000 0.00000 ( 1)
+  56 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  57 R   0.97187 0.02813 0.00000 0.00000 ( 1)
+  58 R   0.96616 0.03384 0.00000 0.00000 ( 1)
+  59 S   0.77337 0.22663 0.00000 0.00000 ( 1)
+  60 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+  61 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  62 T   0.95838 0.04162 0.00000 0.00000 ( 1)
+  63 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  64 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  65 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  66 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+  67 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+  68 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  69 C   0.98569 0.01431 0.00000 0.00000 ( 1)
+  70 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  71 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  72 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  73 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  74 R   0.97524 0.02476 0.00000 0.00000 ( 1)
+  75 L   0.96072 0.03928 0.00000 0.00000 ( 1)
+  76 R   0.97328 0.02672 0.00000 0.00000 ( 1)
+  77 R   0.96189 0.03811 0.00000 0.00000 ( 1)
+  78 R   0.63028 0.36972 0.00000 0.00000 ( 1)
+  79 R   0.48815 0.51185 0.00000 0.00000 ( 2)
+  80 P   0.00047 0.99953 0.00000 0.00000 ( 2)
+  81 Y   0.97211 0.02789 0.00000 0.00000 ( 1)
+  82 H   0.98099 0.01901 0.00000 0.00000 ( 1)
+  83 I   0.95719 0.04281 0.00000 0.00000 ( 1)
+  84 V   0.94612 0.05388 0.00000 0.00000 ( 1)
+  85 S   0.94623 0.05377 0.00000 0.00000 ( 1)
+
+
+lnL =  -511.919210
+
+Bayes Empirical Bayes (BEB) probabilities for 4 classes (class)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.92992 0.04202 0.02666 0.00140 ( 1)
+   2 A   0.89251 0.06723 0.03729 0.00298 ( 1)
+   3 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+   4 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+   5 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+   6 C   0.96697 0.01537 0.01727 0.00039 ( 1)
+   7 C   0.94935 0.02304 0.02683 0.00077 ( 1)
+   8 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+   9 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  10 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  11 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  12 R   0.92654 0.04232 0.02945 0.00169 ( 1)
+  13 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  14 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  15 C   0.93982 0.03245 0.02665 0.00108 ( 1)
+  16 Y   0.94349 0.03419 0.02135 0.00097 ( 1)
+  17 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  18 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  19 S   0.67821 0.28764 0.02237 0.01178 ( 1)
+  20 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  21 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  22 R   0.93929 0.03471 0.02485 0.00116 ( 1)
+  23 C   0.93229 0.03995 0.02644 0.00133 ( 1)
+  24 Y   0.66349 0.31280 0.01479 0.00892 ( 1)
+  25 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  26 Q   0.95104 0.02676 0.02143 0.00077 ( 1)
+  27 R   0.93544 0.03352 0.02975 0.00129 ( 1)
+  28 Q   0.93985 0.03408 0.02498 0.00109 ( 1)
+  29 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  30 Q   0.94683 0.03041 0.02186 0.00090 ( 1)
+  31 S   0.94315 0.02924 0.02655 0.00105 ( 1)
+  32 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  33 S   0.70349 0.27337 0.01502 0.00812 ( 1)
+  34 R   0.63397 0.33661 0.01784 0.01158 ( 1)
+  35 C   0.94711 0.02950 0.02248 0.00091 ( 1)
+  36 Y   0.94349 0.03419 0.02135 0.00097 ( 1)
+  37 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  38 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  39 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  40 Q   0.94348 0.03016 0.02537 0.00100 ( 1)
+  41 S   0.67821 0.28764 0.02237 0.01178 ( 1)
+  42 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  43 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  44 R   0.93929 0.03471 0.02485 0.00116 ( 1)
+  45 C   0.93229 0.03995 0.02644 0.00133 ( 1)
+  46 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+  47 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  48 Q   0.95104 0.02676 0.02143 0.00077 ( 1)
+  49 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  50 Q   0.93985 0.03408 0.02498 0.00109 ( 1)
+  51 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  52 S   0.94075 0.03386 0.02432 0.00107 ( 1)
+  53 R   0.94204 0.03373 0.02314 0.00108 ( 1)
+  54 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  55 R   0.90035 0.06302 0.03400 0.00263 ( 1)
+  56 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  57 R   0.92956 0.03828 0.03067 0.00149 ( 1)
+  58 R   0.90393 0.04491 0.04837 0.00279 ( 1)
+  59 S   0.69102 0.28575 0.01474 0.00849 ( 1)
+  60 C   0.96697 0.01537 0.01727 0.00039 ( 1)
+  61 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  62 T   0.90960 0.05584 0.03237 0.00219 ( 1)
+  63 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  64 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  65 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  66 A   0.89251 0.06723 0.03729 0.00298 ( 1)
+  67 M   0.92992 0.04202 0.02666 0.00140 ( 1)
+  68 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  69 C   0.96207 0.02001 0.01740 0.00052 ( 1)
+  70 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+  71 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+  72 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  73 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+  74 R   0.93780 0.03395 0.02708 0.00118 ( 1)
+  75 L   0.91397 0.05289 0.03114 0.00201 ( 1)
+  76 R   0.93543 0.03658 0.02673 0.00125 ( 1)
+  77 R   0.91493 0.05133 0.03174 0.00200 ( 1)
+  78 R   0.53868 0.40960 0.03013 0.02159 ( 1)
+  79 R   0.42890 0.53975 0.01203 0.01932 ( 2)
+  80 P   0.00131 0.63015 0.04520 0.32334 ( 2)
+  81 Y   0.93289 0.03812 0.02767 0.00133 ( 1)
+  82 H   0.94481 0.02619 0.02810 0.00090 ( 1)
+  83 I   0.90475 0.05715 0.03568 0.00242 ( 1)
+  84 V   0.88645 0.07084 0.03941 0.00329 ( 1)
+  85 S   0.88711 0.07075 0.03889 0.00325 ( 1)
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/rst1 b/ete3/test/ete_evol_data/S_example/paml/bsA/rst1
new file mode 100644
index 0000000..e1c739c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.213	0.033	0.167	0.157	0.097	0.242	3.542	0.938	0.062	0.061	1.000	-511.919
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/rub b/ete3/test/ete_evol_data/S_example/paml/bsA/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/tmp.ctl b/ete3/test/ete_evol_data/S_example/paml/bsA/tmp.ctl
new file mode 100644
index 0000000..474299a
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 2
+ *        ncatG = 
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 0
+          omega = 1.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA/tree b/ete3/test/ete_evol_data/S_example/paml/bsA/tree
new file mode 100644
index 0000000..7b35f77
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dN b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dS b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.t b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/4fold.nuc b/ete3/test/ete_evol_data/S_example/paml/bsA1/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/algn b/ete3/test/ete_evol_data/S_example/paml/bsA1/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/lnf b/ete3/test/ete_evol_data/S_example/paml/bsA1/lnf
new file mode 100644
index 0000000..e09e39d
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928046223   0.004116283350       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523379601   0.000031918079       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721442209   0.015419162561       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387646266   0.000481422822       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797501941   0.010257458350       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857537472   0.000034115670       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202710402   0.005405863722       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412157384   0.002152305387       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803240149   0.000139099088       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780141785   0.000690555523       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009807648   0.060750451491       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2115014536   0.000738048178       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828153512   0.002521716771       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849946001   0.005067059550       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762188596   0.030924118684       2.6286  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307512095   0.000397326892       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413520397   0.008726839172       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776240263   0.007615085794       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635725089   0.000190935953       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144572904   0.001809947770       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226405119   0.000080872193       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632669080   0.000057526381       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094792552   0.000448554999       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837282415   0.016844547896       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774677707   0.000511855719       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326686161   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160564712   0.032841692065       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317776203   0.000217833920       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900201188   0.000413844558       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7700999237   0.000155308061       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432669511   0.001758547753       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761251377   0.016973106847       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653693210   0.000257273890       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552277949   0.005769165739       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420500093   0.005289402390       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991347608   0.000676123531       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673081990   0.000002113198       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916596235   0.000068295982       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704121918   0.012646026905       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386085794   0.000481497952       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265276976   0.000007308097       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052527125   0.001224463228       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299926152   0.032387179945       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144707985   0.000735859909       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688970655   0.000382455954       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917291852   0.001371666047       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056717961   0.003010431677       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081283232   0.008163124138       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/out b/ete3/test/ete_evol_data/S_example/paml/bsA1/out
new file mode 100644
index 0000000..0db95cf
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/out
@@ -0,0 +1,183 @@
+
+seed used = 861649265
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: several dN/dS ratios for branches for branches omega = 1.000 fixed
+
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 10):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.241306 0.032940 0.166565 0.156609 0.096747 0.213357 3.542372 0.938134 0.061866 0.060763
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90752
+
+((2: 0.032940, (1: 0.156609, 3: 0.096747): 0.166565): 0.241306, 4: 0.213357);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096747): 0.166565): 0.241306, Papio_cynocephalus: 0.213357);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+
+Time used:  0:10
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/rst b/ete3/test/ete_evol_data/S_example/paml/bsA1/rst
new file mode 100644
index 0000000..a464e96
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/rst
@@ -0,0 +1,102 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 4 classes
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+   2 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+   3 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+   4 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+   5 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+   6 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+   7 C   0.98333 0.01667 0.00000 0.00000 ( 1)
+   8 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+   9 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  10 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  11 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  12 R   0.96886 0.03114 0.00000 0.00000 ( 1)
+  13 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  14 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  15 C   0.97638 0.02362 0.00000 0.00000 ( 1)
+  16 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  17 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  18 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  19 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  20 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  21 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  22 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  23 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  24 Y   0.74653 0.25347 0.00000 0.00000 ( 1)
+  25 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  26 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  27 R   0.97549 0.02451 0.00000 0.00000 ( 1)
+  28 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  29 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  30 Q   0.97802 0.02198 0.00000 0.00000 ( 1)
+  31 S   0.97876 0.02124 0.00000 0.00000 ( 1)
+  32 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  33 S   0.78537 0.21463 0.00000 0.00000 ( 1)
+  34 R   0.72010 0.27990 0.00000 0.00000 ( 1)
+  35 C   0.97867 0.02133 0.00000 0.00000 ( 1)
+  36 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  37 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  38 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  39 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  40 Q   0.97812 0.02188 0.00000 0.00000 ( 1)
+  41 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  42 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  43 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  44 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  45 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  46 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  47 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  48 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  49 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  50 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  51 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  52 S   0.97540 0.02460 0.00000 0.00000 ( 1)
+  53 R   0.97551 0.02449 0.00000 0.00000 ( 1)
+  54 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  55 R   0.95266 0.04734 0.00000 0.00000 ( 1)
+  56 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  57 R   0.97187 0.02813 0.00000 0.00000 ( 1)
+  58 R   0.96616 0.03384 0.00000 0.00000 ( 1)
+  59 S   0.77337 0.22663 0.00000 0.00000 ( 1)
+  60 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+  61 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  62 T   0.95838 0.04162 0.00000 0.00000 ( 1)
+  63 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  64 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  65 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  66 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+  67 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+  68 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  69 C   0.98569 0.01431 0.00000 0.00000 ( 1)
+  70 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  71 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  72 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  73 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  74 R   0.97524 0.02476 0.00000 0.00000 ( 1)
+  75 L   0.96072 0.03928 0.00000 0.00000 ( 1)
+  76 R   0.97328 0.02672 0.00000 0.00000 ( 1)
+  77 R   0.96189 0.03811 0.00000 0.00000 ( 1)
+  78 R   0.63028 0.36972 0.00000 0.00000 ( 1)
+  79 R   0.48815 0.51185 0.00000 0.00000 ( 2)
+  80 P   0.00047 0.99953 0.00000 0.00000 ( 2)
+  81 Y   0.97211 0.02789 0.00000 0.00000 ( 1)
+  82 H   0.98099 0.01901 0.00000 0.00000 ( 1)
+  83 I   0.95719 0.04281 0.00000 0.00000 ( 1)
+  84 V   0.94612 0.05388 0.00000 0.00000 ( 1)
+  85 S   0.94623 0.05377 0.00000 0.00000 ( 1)
+
+
+lnL =  -511.919210
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/rst1 b/ete3/test/ete_evol_data/S_example/paml/bsA1/rst1
new file mode 100644
index 0000000..418c5fb
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.241	0.033	0.167	0.157	0.097	0.213	3.542	0.938	0.062	0.061	-511.919
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/rub b/ete3/test/ete_evol_data/S_example/paml/bsA1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/tmp.ctl b/ete3/test/ete_evol_data/S_example/paml/bsA1/tmp.ctl
new file mode 100644
index 0000000..17dcb3c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 2
+ *        ncatG = 
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 1
+          omega = 1
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/ete3/test/ete_evol_data/S_example/paml/bsA1/tree b/ete3/test/ete_evol_data/S_example/paml/bsA1/tree
new file mode 100644
index 0000000..7b35f77
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/bsA1/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dN b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dS b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/2NG.t b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/4fold.nuc b/ete3/test/ete_evol_data/S_example/paml/fb/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/algn b/ete3/test/ete_evol_data/S_example/paml/fb/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/lnf b/ete3/test/ete_evol_data/S_example/paml/fb/lnf
new file mode 100644
index 0000000..145a958
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4934388248   0.004113673620       0.3497  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1    -9.2638026873   0.000094794166       0.0081  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1494495889   0.015773095784       1.3407  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.3507634429   0.000642101965       0.0546  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.6196525169   0.009856220336       0.8378  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1    -9.4656015663   0.000077471412       0.0066  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.0411794459   0.006466117383       0.5496  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.2352563701   0.001959126888       0.1665  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -7.5737661665   0.000513753918       0.0437  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -6.8430931580   0.001066798515       0.0907  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8462253457   0.058063075790       4.9354  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -6.7264391064   0.001198794145       0.1019  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -6.0661347894   0.002320123668       0.1972  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.1000967944   0.006096156463       0.5182  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4802533124   0.030799608121       2.6180  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8191627329   0.000401958088       0.0342  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7190447175   0.008923699131       0.7585  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8918180869   0.007507760299       0.6382  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.6201934634   0.000180425346       0.0153  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3856436436   0.001685583231       0.1433  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.5273854027   0.000072829796       0.0062  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1   -10.4386114379   0.000029279837       0.0025  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -8.2183555957   0.000269658128       0.0229  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.1137885944   0.016345729729       1.3894  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.3179575502   0.000663516026       0.0564  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -30.1471504834   0.000000000000       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4371261911   0.032156965642       2.7333  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.6504880429   0.000175041400       0.0149  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7902648997   0.000413743269       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.8128650352   0.000148806309       0.0126  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.0545424590   0.002347175804       0.1995  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0556127396   0.017324861303       1.4726  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2014603141   0.000274252782       0.0233  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1110235560   0.006029907815       0.5125  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2440411580   0.005278880882       0.4487  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.3004519182   0.000675233556       0.0574  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.1110206397   0.000002022815       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.2252653917   0.000098518581       0.0084  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3994748917   0.012283788529       1.0441  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6798550011   0.000462041889       0.0393  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.9615253748   0.000006385215       0.0005  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7038106360   0.001226230271       0.1042  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4937345751   0.030387176809       2.5829  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.5274148970   0.000538127575       0.0457  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.9651690984   0.000347352967       0.0295  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.3655140429   0.001719857152       0.1462  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8955365601   0.002751699495       0.2339  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8036021893   0.008200155272       0.6970  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/out b/ete3/test/ete_evol_data/S_example/paml/fb/out
new file mode 100644
index 0000000..b357019
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/out
@@ -0,0 +1,197 @@
+
+seed used = 863360473
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4b, July 2010)  algn
+Model: free dN/dS Ratios for branches for branches
+Codon frequency model: F3x4
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 13):   -511.782035      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.364226 0.013782 0.193136 0.157436 0.084266 0.073477 3.544248 0.000100 999.000000 0.000100 0.106621 0.566150 999.000000
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.88632
+
+((2: 0.013782, (1: 0.157436, 3: 0.084266): 0.193136): 0.364226, 4: 0.073477);
+
+((Hylobates_lar: 0.013782, (Gorilla_gorilla: 0.157436, Pan_troglodytes: 0.084266): 0.193136): 0.364226, Papio_cynocephalus: 0.073477);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54425
+
+w (dN/dS) for branches:  0.00010 999.00000 0.00010 0.10662 0.56615 999.00000
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6      0.364   159.3    95.7  0.0001  0.0000  0.3233   0.0  31.0
+   6..2      0.014   159.3    95.7 999.0000  0.0074  0.0000   1.2   0.0
+   6..7      0.193   159.3    95.7  0.0001  0.0000  0.1714   0.0  16.4
+   7..1      0.157   159.3    95.7  0.1066  0.0127  0.1187   2.0  11.4
+   7..3      0.084   159.3    95.7  0.5662  0.0218  0.0385   3.5   3.7
+   5..4      0.073   159.3    95.7 999.0000  0.0392  0.0000   6.2   0.0
+
+tree length for dN:       0.0811
+tree length for dS:       0.6520
+
+dS tree:
+((Hylobates_lar: 0.000007, (Gorilla_gorilla: 0.118718, Pan_troglodytes: 0.038528): 0.171440): 0.323311, Papio_cynocephalus: 0.000039);
+dN tree:
+((Hylobates_lar: 0.007351, (Gorilla_gorilla: 0.012658, Pan_troglodytes: 0.021813): 0.000017): 0.000032, Papio_cynocephalus: 0.039193);
+
+w ratios as labels for TreeView:
+((Hylobates_lar '#999.0000' , (Gorilla_gorilla '#0.1066' , Pan_troglodytes '#0.5662' ) '#0.0001' ) '#0.0001' , Papio_cynocephalus '#999.0000' );
+
+
+Time used:  0:18
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/rst b/ete3/test/ete_evol_data/S_example/paml/fb/rst
new file mode 100644
index 0000000..2784b87
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/rst
@@ -0,0 +1,656 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+TREE #  1
+
+Ancestral reconstruction by CODONML.
+
+((Hylobates_lar: 0.013782, (Gorilla_gorilla: 0.157436, Pan_troglodytes: 0.084266): 0.193136): 0.364226, Papio_cynocephalus: 0.073477);
+
+((2, (1, 3)), 4);
+
+   5..6     6..2     6..7     7..1     7..3     5..4  
+
+tree with node labels for Rod Page's TreeView
+((2_Hylobates_lar, (1_Gorilla_gorilla, 3_Pan_troglodytes) 7 ) 6 , 4_Papio_cynocephalus) 5 ;
+
+Nodes 5 to 7 are ancestral
+
+(1) Marginal reconstruction of ancestral sequences
+(eqn. 4 in Yang et al. 1995 Genetics 141:1641-1650).
+
+Prob distribs at nodes, those with p < 0.001 not listed
+
+Prob distribution at node 5, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.999) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.001) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.008) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.001) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.874) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.001) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.125) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(1.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(1.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob distribution at node 6, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.875) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.001) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.124) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(1.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(1.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob distribution at node 7, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.990) TGC(0.010) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.002) CGC(0.029) CGA(0.011) CGG(0.959) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.979) TGC(0.021) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.027) CAG(0.973) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.005) CGC(0.981) CGA(0.002) CGG(0.012) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.019) CGC(0.004) CGA(0.966) CGG(0.011) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.001) CGA(0.417) CGG(0.570) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.972) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.025) TGC(0.975) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.999) CGC(0.001) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.841) TGC(0.034) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.001) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.112) CGC(0.012) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.017) TAC(0.983) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.994) CAC(0.006) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(1.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob of best state at each node, listed by site
+
+   site   Freq   Data: 
+
+   1      2   ATG (M) ATG (M) ATG (M) ATG (M) :  ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000)
+   2      2   GCC (A) GCC (A) GCC (A) GCC (A) :  GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000)
+   3      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+   4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+   5      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+   6      2   TGC (C) TGC (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000)
+   7      1   TGT (C) TGC (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGT C 0.990 (C 1.000)
+   8      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+   9      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  11      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  12      1   CGC (R) CGG (R) CGG (R) CGA (R) :  CGA R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.959 (R 1.000)
+  13      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  14      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  15      1   TGT (C) TGT (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  17      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  19      2   AGC (S) AGC (S) AGA (R) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.970 (S 1.000)
+  20      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  21      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  22      2   AGG (R) AGA (R) AGG (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGG R 0.952 (R 1.000)
+  23      2   TGT (C) TGT (C) TGT (C) TGT (C) :  TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) :  TAC Y 0.999 (Y 0.999) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  25      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  27      1   AGA (R) AGG (R) AGG (R) AGA (R) :  AGA R 0.999 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.908 (R 1.000)
+  28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000)
+  29      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) :  CAA Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  31      1   AGC (S) AGT (S) AGT (S) AGC (S) :  AGC S 0.999 (S 1.000) AGT S 1.000 (S 1.000) AGT S 0.947 (S 1.000)
+  32      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  33      1   AGC (S) AGC (S) AGC (S) AGA (R) :  AGC S 0.830 (S 0.999) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  34      1   AGA (R) AGA (R) AGA (R) AGC (S) :  AGA R 0.608 (R 0.999) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  35      1   TGC (C) TGT (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 0.979 (C 1.000)
+  36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  37      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  39      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) :  CAA Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.973 (Q 1.000)
+  41      2   AGC (S) AGC (S) AGA (R) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.970 (S 1.000)
+  42      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  43      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  44      2   AGG (R) AGA (R) AGG (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGG R 0.952 (R 1.000)
+  45      2   TGT (C) TGT (C) TGT (C) TGT (C) :  TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  47      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  49      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000)
+  51      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  52      1   AGT (S) AGT (S) AGT (S) AGT (S) :  AGT S 1.000 (S 1.000) AGT S 1.000 (S 1.000) AGT S 0.999 (S 1.000)
+  53      1   CGC (R) CGG (R) CGC (R) CGT (R) :  CGT R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGC R 0.981 (R 1.000)
+  54      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  55      1   CGT (R) CGA (R) CGA (R) CGA (R) :  CGA R 1.000 (R 1.000) CGA R 1.000 (R 1.000) CGA R 0.966 (R 1.000)
+  56      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  57      1   CGG (R) AGG (R) CGA (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) CGG R 0.570 (R 1.000)
+  58      1   AGG (R) CGG (R) CGG (R) CGA (R) :  CGA R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.972 (R 1.000)
+  59      1   AGC (S) AGC (S) AGC (S) CGC (R) :  AGC S 0.999 (S 0.999) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  60      2   TGC (C) TGC (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000)
+  61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  62      1   ACA (T) ACA (T) ACA (T) ACA (T) :  ACA T 1.000 (T 1.000) ACA T 1.000 (T 1.000) ACA T 1.000 (T 1.000)
+  63      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  64      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  65      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  66      2   GCC (A) GCC (A) GCC (A) GCC (A) :  GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000)
+  67      2   ATG (M) ATG (M) ATG (M) ATG (M) :  ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000)
+  68      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  69      1   TGC (C) TGT (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGC C 0.975 (C 1.000)
+  70      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+  71      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+  72      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  74      1   AGA (R) AGG (R) AGA (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGA R 0.962 (R 1.000)
+  75      1   CTG (L) CTG (L) CTG (L) CTG (L) :  CTG L 1.000 (L 1.000) CTG L 1.000 (L 1.000) CTG L 1.000 (L 1.000)
+  76      1   AGA (R) AGA (R) AGA (R) AGG (R) :  AGG R 0.999 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  77      1   CGT (R) CGT (R) CGT (R) CGT (R) :  CGT R 1.000 (R 1.000) CGT R 1.000 (R 1.000) CGT R 0.999 (R 1.000)
+  78      1   AGA (R) AGA (R) AAA (K) AGG (R) :  AGG R 0.999 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.998 (R 1.000)
+  79      1   AGA (R) AGC (S) AGA (R) AGG (R) :  AGG R 0.998 (R 0.999) AGA R 0.603 (R 0.999) AGA R 0.982 (R 0.999)
+  80      1   CCC (P) TGT (C) TGT (C) CCC (P) :  TGC C 0.874 (C 0.874) TGT C 0.875 (C 0.875) TGT C 0.841 (C 0.875)
+  81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 0.983 (Y 1.000)
+  82      1   CAT (H) CAC (H) CAT (H) CAC (H) :  CAC H 1.000 (H 1.000) CAC H 1.000 (H 1.000) CAT H 0.994 (H 1.000)
+  83      1   ATT (I) ATT (I) ATT (I) ATC (I) :  ATC I 1.000 (I 1.000) ATT I 1.000 (I 1.000) ATT I 1.000 (I 1.000)
+  84      1   GTA (V) GTA (V) GTA (V) GTG (V) :  GTG V 1.000 (V 1.000) GTA V 1.000 (V 1.000) GTA V 1.000 (V 1.000)
+  85      1   TCT (S) TCT (S) TCT (S) TCT (S) :  TCT S 1.000 (S 1.000) TCT S 1.000 (S 1.000) TCT S 1.000 (S 1.000)
+
+Summary of changes along branches.
+Check root of tree for directions of change.
+
+Branch 1:    5..6  (n= 0.0 s=21.0)
+
+	  12 CGA (R) 1.000 -> CGG (R) 1.000
+	  15 TGC (C) 1.000 -> TGT (C) 1.000
+	  16 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  27 AGA (R) 1.000 -> AGG (R) 1.000
+	  28 CAG (Q) 1.000 -> CAA (Q) 1.000
+	  30 CAA (Q) 1.000 -> CAG (Q) 1.000
+	  31 AGC (S) 1.000 -> AGT (S) 1.000
+	  35 TGC (C) 1.000 -> TGT (C) 1.000
+	  36 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  40 CAA (Q) 1.000 -> CAG (Q) 1.000
+	  50 CAG (Q) 1.000 -> CAA (Q) 1.000
+	  53 CGT (R) 1.000 -> CGG (R) 1.000
+	  58 CGA (R) 1.000 -> CGG (R) 1.000
+	  69 TGC (C) 1.000 -> TGT (C) 1.000
+	  76 AGG (R) 1.000 -> AGA (R) 1.000
+	  78 AGG (R) 1.000 -> AGA (R) 1.000
+	  79 AGG (R) 0.999 -> AGA (R) 0.999
+	  80 TGC (C) 0.874 -> TGT (C) 0.875
+	  81 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  83 ATC (I) 1.000 -> ATT (I) 1.000
+	  84 GTG (V) 1.000 -> GTA (V) 1.000
+
+
+Branch 2:    6..2  (Hylobates_lar)  (n= 1.0 s= 0.0)
+
+	  79 AGA (R) 0.999 -> AGC (S)
+
+
+Branch 3:    6..7  (n= 0.0 s=12.0)
+
+	   7 TGC (C) 1.000 -> TGT (C) 1.000
+	  17 CGC (R) 1.000 -> CGG (R) 1.000
+	  22 AGA (R) 1.000 -> AGG (R) 1.000
+	  25 CGC (R) 1.000 -> CGG (R) 1.000
+	  37 CGC (R) 1.000 -> CGG (R) 1.000
+	  44 AGA (R) 1.000 -> AGG (R) 1.000
+	  47 CGC (R) 1.000 -> CGG (R) 1.000
+	  53 CGG (R) 1.000 -> CGC (R) 1.000
+	  57 AGG (R) 1.000 -> CGG (R) 1.000
+	  69 TGT (C) 1.000 -> TGC (C) 1.000
+	  74 AGG (R) 1.000 -> AGA (R) 1.000
+	  82 CAC (H) 1.000 -> CAT (H) 1.000
+
+
+Branch 4:    7..1  (Gorilla_gorilla)  (n= 2.0 s= 9.0)
+
+	  12 CGG (R) 1.000 -> CGC (R)
+	  27 AGG (R) 1.000 -> AGA (R)
+	  31 AGT (S) 1.000 -> AGC (S)
+	  35 TGT (C) 1.000 -> TGC (C)
+	  40 CAG (Q) 1.000 -> CAA (Q)
+	  55 CGA (R) 1.000 -> CGT (R)
+	  58 CGG (R) 1.000 -> AGG (R)
+	  80 TGT (C) 0.875 -> CCC (P)
+	  81 TAC (Y) 1.000 -> TAT (Y)
+
+
+Branch 5:    7..3  (Pan_troglodytes)  (n= 3.0 s= 4.0)
+
+	  19 AGC (S) 1.000 -> AGA (R)
+	  26 CAG (Q) 1.000 -> CAA (Q)
+	  30 CAG (Q) 1.000 -> CAA (Q)
+	  41 AGC (S) 1.000 -> AGA (R)
+	  48 CAG (Q) 1.000 -> CAA (Q)
+	  57 CGG (R) 1.000 -> CGA (R)
+	  78 AGA (R) 1.000 -> AAA (K)
+
+
+Branch 6:    5..4  (Papio_cynocephalus)  (n= 6.0 s= 0.0)
+
+	  24 TAC (Y) 0.999 -> AAC (N)
+	  33 AGC (S) 0.999 -> AGA (R)
+	  34 AGA (R) 0.999 -> AGC (S)
+	  59 AGC (S) 0.999 -> CGC (R)
+	  80 TGC (C) 0.874 -> CCC (P)
+
+
+
+
+List of extant and reconstructed sequences
+
+     7    255
+
+Gorilla_gorilla   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar     ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus   ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+node #5           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGC CAA AGC CGG AGC AGA TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG TGC TAT CAC ATC GTG TCT 
+node #6           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGA TGT TAC CAC ATT GTA TCT 
+node #7           ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGA AGG CGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA TGT TAC CAT ATT GTA TCT 
+
+
+Overall accuracy of the 3 ancestral sequences:
+  0.99172  0.99384  0.97688
+for a site.
+
+  0.43428  0.52657  0.11086
+for the sequence.
+
+
+Amino acid sequences inferred by codonml.
+
+Node #5           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+Node #6           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+Node #7           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+
+
+Counts of changes at sites, listed by site
+
+   1 (S N:   0.000  3.000 Sd Nd:    0.0   0.0)
+   2 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+   3 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+   4 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+   5 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+   6 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+   7  TGC.TGT (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+   8 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+   9 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  10 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  11 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  12  CGG.CGC  CGA.CGG (S N:   1.347  1.653 Sd Nd:    2.0   0.0)
+  13 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  14 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  15  TGC.TGT (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  16  TAT.TAC (S N:   0.429  2.571 Sd Nd:    1.0   0.0)
+  17  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  18 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  19  AGC.AGA (S N:   0.351  2.649 Sd Nd:    0.0   1.0)
+  20 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  21 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  22  AGA.AGG (S N:   0.716  2.284 Sd Nd:    1.0   0.0)
+  23 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  24  TAC.AAC (S N:   0.424  2.576 Sd Nd:    0.0   1.0)
+  25  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  26  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  27  AGG.AGA  AGA.AGG (S N:   0.696  2.304 Sd Nd:    2.0   0.0)
+  28  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  29 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  30  CAG.CAA  CAA.CAG (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  31  AGT.AGC  AGC.AGT (S N:   0.333  2.667 Sd Nd:    2.0   0.0)
+  32 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  33  AGC.AGA (S N:   0.349  2.651 Sd Nd:    0.0   1.0)
+  34  AGA.AGC (S N:   0.731  2.269 Sd Nd:    0.0   1.0)
+  35  TGT.TGC  TGC.TGT (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  36  TAT.TAC (S N:   0.429  2.571 Sd Nd:    1.0   0.0)
+  37  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  38 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  39 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  40  CAG.CAA  CAA.CAG (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  41  AGC.AGA (S N:   0.351  2.649 Sd Nd:    0.0   1.0)
+  42 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  43 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  44  AGA.AGG (S N:   0.716  2.284 Sd Nd:    1.0   0.0)
+  45 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  46 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+  47  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  48  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  49 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  50  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  51 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  52 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  53  CGT.CGG  CGG.CGC (S N:   1.110  1.890 Sd Nd:    2.0   0.0)
+  54 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  55  CGA.CGT (S N:   1.451  1.549 Sd Nd:    1.0   0.0)
+  56 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  57  CGG.CGA  AGG.CGG (S N:   0.926  2.074 Sd Nd:    2.0   0.0)
+  58  CGG.AGG  CGA.CGG (S N:   1.316  1.684 Sd Nd:    2.0   0.0)
+  59  AGC.CGC (S N:   0.361  2.639 Sd Nd:    0.0   1.0)
+  60 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  61 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  62 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  63 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  64 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  65 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  66 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  67 (S N:   0.000  3.000 Sd Nd:    0.0   0.0)
+  68 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  69  TGC.TGT  TGT.TGC (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  70 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  71 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  72 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  73 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+  74  AGG.AGA (S N:   0.696  2.304 Sd Nd:    1.0   0.0)
+  75 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  76  AGG.AGA (S N:   0.724  2.276 Sd Nd:    1.0   0.0)
+  77 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  78  AGA.AAA  AGG.AGA (S N:   0.707  2.293 Sd Nd:    1.0   1.0)
+  79  AGA.AGC  AGG.AGA (S N:   0.720  2.280 Sd Nd:    1.0   1.0)
+  80  TGT.CCC  TGC.CCC  TGC.TGT (S N:   0.465  2.535 Sd Nd:    2.0   4.0)
+  81  TAC.TAT  TAT.TAC (S N:   0.429  2.571 Sd Nd:    2.0   0.0)
+  82  CAC.CAT (S N:   0.333  2.667 Sd Nd:    1.0   0.0)
+  83  ATC.ATT (S N:   0.667  2.333 Sd Nd:    1.0   0.0)
+  84  GTG.GTA (S N:   1.000  2.000 Sd Nd:    1.0   0.0)
+  85 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+
+
+(2) Joint reconstruction of ancestral sequences
+(eqn. 2 in Yang et al. 1995 Genetics 141:1641-1650), using the algorithm of Pupko et al. (2000 Mol Biol Evol 17:890-896),
+modified to generate sub-optimal reconstructions.
+
+Reconstruction (prob.), listed by pattern (use the observed data to find the right site).
+
+Pattern Freq   Data:
+
+   1       1  ACA (T) ACA (T) ACA (T) ACA (T) : ACA ACA ACA  (1.000) ACA ACA ACG  (0.000) ACG ACA ACA  (0.000) ACA ACA ACC  (0.000) ACC ACA ACA  (0.000) ATA ACA ACA  (0.000)  (total  1.000)
+   2       1  AGA (R) AGA (R) AAA (K) AGG (R) : AGG AGA AGA  (0.997) AGG AGA AGG  (0.002) AGA AGA AGA  (0.001) AAG AAA AAA  (0.000) CGG AGA AGA  (0.000) AGG AGA CGA  (0.000)  (total  1.000)
+   3       6  AGA (R) AGA (R) AGA (R) AGA (R) : AGA AGA AGA  (0.997) AGA AGA AGG  (0.003) AGG AGA AGA  (0.000) AGA AGA CGA  (0.000) CGA AGA AGA  (0.000) AGA AGG AGA  (0.000)  (total  1.000)
+   4       1  AGA (R) AGA (R) AGA (R) AGC (S) : AGA AGA AGA  (0.606) AGG AGA AGA  (0.382) CGC AGA AGA  (0.008) AGA AGA AGG  (0.002) AGG AGA AGG  (0.001) AGC AGA AGA  (0.001)  (total  1.000)
+   5       1  AGA (R) AGA (R) AGA (R) AGG (R) : AGG AGA AGA  (0.996) AGG AGA AGG  (0.003) AGA AGA AGA  (0.001) CGG AGA AGA  (0.000) AGG AGA CGA  (0.000) AGG AGG AGA  (0.000)  (total  1.000)
+   6       1  AGA (R) AGC (S) AGA (R) AGG (R) : AGG AGA AGA  (0.600) AGG AGG AGA  (0.381) AGG AGG AGG  (0.015) AGG AGA AGG  (0.002) AGC AGC AGC  (0.001) AGA AGA AGA  (0.000)  (total  0.999)
+   7       1  AGA (R) AGG (R) AGA (R) AGG (R) : AGG AGG AGA  (0.962) AGG AGG AGG  (0.038) AGA AGG AGA  (0.000) CGG AGG AGA  (0.000) AGG AGA AGA  (0.000) AGG AGG CGA  (0.000)  (total  1.000)
+   8       1  AGA (R) AGG (R) AGG (R) AGA (R) : AGA AGG AGG  (0.907) AGA AGG AGA  (0.092) AGG AGG AGG  (0.001) AGG AGG AGA  (0.000) AGA AGG CGG  (0.000) AGA AGA AGA  (0.000)  (total  1.000)
+   9       2  AGC (S) AGC (S) AGA (R) AGC (S) : AGC AGC AGC  (0.970) AGC AGC AGT  (0.030) AGT AGC AGC  (0.000) AGA AGA AGA  (0.000) AGG AGA AGA  (0.000) AGG AGG AGA  (0.000)  (total  1.000)
+  10       1  AGC (S) AGC (S) AGC (S) AGA (R) : AGC AGC AGC  (0.828) AGT AGC AGC  (0.169) AGC AGC AGT  (0.002) AGA AGC AGC  (0.001) AGT AGC AGT  (0.000) AGA AGA AGA  (0.000)  (total  1.000)
+  11       7  AGC (S) AGC (S) AGC (S) AGC (S) : AGC AGC AGC  (0.997) AGC AGC AGT  (0.003) AGT AGC AGC  (0.000) AGC AGT AGC  (0.000) AAC AGC AGC  (0.000) AAC AAC AAC  (0.000)  (total  1.000)
+  12       1  AGC (S) AGC (S) AGC (S) CGC (R) : AGC AGC AGC  (0.997) AGC AGC AGT  (0.003) CGC AGC AGC  (0.001) AGT AGC AGC  (0.000) TGC AGC AGC  (0.000) CGC CGC CGC  (0.000)  (total  1.000)
+  13       1  AGC (S) AGT (S) AGT (S) AGC (S) : AGC AGT AGT  (0.946) AGC AGT AGC  (0.053) AGT AGT AGT  (0.001) AGT AGT AGC  (0.000) AGC AGC AGC  (0.000) AGC AGC AGT  (0.000)  (total  1.000)
+  14       2  AGG (R) AGA (R) AGG (R) AGA (R) : AGA AGA AGG  (0.952) AGA AGA AGA  (0.048) AGG AGA AGG  (0.000) AGA AGA CGG  (0.000) AGA AGG AGG  (0.000) AGG AGA AGA  (0.000)  (total  1.000)
+  15       5  AGG (R) AGG (R) AGG (R) AGG (R) : AGG AGG AGG  (0.996) AGG AGG AGA  (0.004) AGA AGG AGG  (0.000) AGG AGG CGG  (0.000) CGG AGG AGG  (0.000) CGC AGG AGG  (0.000)  (total  1.000)
+  16       1  AGG (R) CGG (R) CGG (R) CGA (R) : CGA CGG CGG  (0.972) CGA CGG AGG  (0.026) CGA CGG CGA  (0.002) CGG CGG CGG  (0.000) CGA CGG AGA  (0.000) CGC CGG CGG  (0.000)  (total  1.000)
+  17       1  AGT (S) AGT (S) AGT (S) AGT (S) : AGT AGT AGT  (0.998) AGT AGT AGC  (0.001) AGC AGT AGT  (0.000) AGT AGC AGT  (0.000) AAT AGT AGT  (0.000) AGG AGT AGT  (0.000)  (total  1.000)
+  18       2  ATG (M) ATG (M) ATG (M) ATG (M) : ATG ATG ATG  (1.000) ACG ATG ATG  (0.000) AGG ATG ATG  (0.000) ATA ATG ATG  (0.000) AAG ATG ATG  (0.000) ATC ATG ATG  (0.000)  (total  1.000)
+  19       1  ATT (I) ATT (I) ATT (I) ATC (I) : ATC ATT ATT  (1.000) ATT ATT ATT  (0.000) ATA ATT ATT  (0.000) ATC ATT ATC  (0.000) ATC ATC ATT  (0.000) AGC ATT ATT  (0.000)  (total  1.000)
+  20       2  CAA (Q) CAA (Q) CAA (Q) CAG (Q) : CAG CAA CAA  (1.000) CAA CAA CAA  (0.000) CAG CAA CAG  (0.000) CAG CAG CAA  (0.000) CGG CAA CAA  (0.000) CAC CAA CAA  (0.000)  (total  1.000)
+  21       1  CAA (Q) CAG (Q) CAG (Q) CAA (Q) : CAA CAG CAG  (0.973) CAA CAG CAA  (0.027) CAG CAG CAG  (0.000) CAA CAA CAA  (0.000) CAG CAG CAA  (0.000) CAA CAA CAG  (0.000)  (total  1.000)
+  22       1  CAG (Q) CAG (Q) CAA (Q) CAA (Q) : CAA CAG CAG  (0.794) CAA CAG CAA  (0.206) CAG CAG CAG  (0.000) CAA CAA CAA  (0.000) CAG CAG CAA  (0.000) CAA CAA CAG  (0.000)  (total  1.000)
+  23       2  CAG (Q) CAG (Q) CAA (Q) CAG (Q) : CAG CAG CAG  (0.794) CAG CAG CAA  (0.206) CAA CAG CAG  (0.000) CAG CAA CAA  (0.000) CAA CAG CAA  (0.000) CGG CAG CAG  (0.000)  (total  1.000)
+  24       4  CAG (Q) CAG (Q) CAG (Q) CAG (Q) : CAG CAG CAG  (1.000) CAG CAG CAA  (0.000) CAA CAG CAG  (0.000) CGG CAG CAG  (0.000) CAG CAA CAG  (0.000) CAC CAG CAG  (0.000)  (total  1.000)
+  25       1  CAT (H) CAC (H) CAT (H) CAC (H) : CAC CAC CAT  (0.994) CAC CAC CAC  (0.006) CAC CAT CAT  (0.000) CAT CAC CAT  (0.000) CGC CAC CAT  (0.000) TAC CAC CAT  (0.000)  (total  1.000)
+  26       1  CCC (P) TGT (C) TGT (C) CCC (P) : TGC TGT TGT  (0.840) CGC CGT CGT  (0.112) TGC TGT TGC  (0.034) CGC CGT CGC  (0.012) CGC TGT TGT  (0.001) CCC CCT CCT  (0.001)  (total  1.000)
+  27       3  CGC (R) CGC (R) CGC (R) CGC (R) : CGC CGC CGC  (0.998) CGC CGC CGT  (0.001) CGC CGC CGG  (0.000) CGC CGC CGA  (0.000) CGT CGC CGC  (0.000) CGG CGC CGC  (0.000)  (total  1.000)
+  28       1  CGC (R) CGG (R) CGC (R) CGT (R) : CGT CGG CGC  (0.981) CGT CGG CGG  (0.012) CGT CGG CGT  (0.005) CGT CGG CGA  (0.002) CGG CGG CGC  (0.000) AGG CGG CGC  (0.000)  (total  1.000)
+  29       1  CGC (R) CGG (R) CGG (R) CGA (R) : CGA CGG CGG  (0.958) CGA CGG CGC  (0.029) CGA CGG CGA  (0.011) CGA CGG CGT  (0.002) CGG CGG CGG  (0.000) CGC CGG CGG  (0.000)  (total  1.000)
+  30       1  CGG (R) AGG (R) CGA (R) AGG (R) : AGG AGG CGG  (0.570) AGG AGG CGA  (0.417) AGG AGG AGG  (0.007) AGG AGG AGA  (0.005) AGA AGG CGG  (0.000) AGA AGG CGA  (0.000)  (total  0.999)
+  31       4  CGG (R) CGC (R) CGG (R) CGC (R) : CGC CGC CGG  (0.978) CGC CGC CGC  (0.013) CGC CGC CGA  (0.008) CGC CGC CGT  (0.001) CGT CGC CGG  (0.000) CGG CGC CGG  (0.000)  (total  1.000)
+  32       4  CGG (R) CGG (R) CGG (R) CGG (R) : CGG CGG CGG  (0.998) CGG CGG CGA  (0.002) CGG CGG CGC  (0.000) CGG CGG AGG  (0.000) AGG CGG CGG  (0.000) CGA CGG CGG  (0.000)  (total  1.000)
+  33       1  CGT (R) CGA (R) CGA (R) CGA (R) : CGA CGA CGA  (0.966) CGA CGA CGT  (0.019) CGA CGA CGG  (0.011) CGA CGA CGC  (0.004) CGG CGA CGA  (0.000) AGA CGA CGA  (0.000)  (total  1.000)
+  34       1  CGT (R) CGT (R) CGT (R) CGT (R) : CGT CGT CGT  (0.999) CGT CGT CGC  (0.001) CGT CGT CGG  (0.000) CGC CGT CGT  (0.000) CGT CGT CGA  (0.000) CGG CGT CGT  (0.000)  (total  1.000)
+  35       1  CTG (L) CTG (L) CTG (L) CTG (L) : CTG CTG CTG  (1.000) CTG CTG CTA  (0.000) CTG CTG TTG  (0.000) TTG CTG CTG  (0.000) CTA CTG CTG  (0.000) CTG CTG CTC  (0.000)  (total  1.000)
+  36       2  GCC (A) GCC (A) GCC (A) GCC (A) : GCC GCC GCC  (1.000) ACC GCC GCC  (0.000) GCT GCC GCC  (0.000) GCC GCC GCT  (0.000) GTC GCC GCC  (0.000) GGC GCC GCC  (0.000)  (total  1.000)
+  37       1  GTA (V) GTA (V) GTA (V) GTG (V) : GTG GTA GTA  (1.000) GTA GTA GTA  (0.000) GTC GTA GTA  (0.000) GTG GTG GTA  (0.000) GTT GTA GTA  (0.000) ATG GTA GTA  (0.000)  (total  1.000)
+  38       1  TAC (Y) TAC (Y) TAC (Y) AAC (N) : TAC TAC TAC  (0.999) AAC TAC TAC  (0.001) CAC TAC TAC  (0.000) TAC TAC TAT  (0.000) GAC TAC TAC  (0.000) TGC TAC TAC  (0.000)  (total  1.000)
+  39       3  TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TAC TAC TAC  (1.000) TAC TAC TAT  (0.000) TAT TAC TAC  (0.000) TGC TAC TAC  (0.000) CAC TAC TAC  (0.000) AAC TAC TAC  (0.000)  (total  1.000)
+  40       2  TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TAT TAC TAC  (1.000) TAC TAC TAC  (0.000) TAT TAC TAT  (0.000) TAT TAT TAC  (0.000) TGT TAC TAC  (0.000) CAT TAC TAC  (0.000)  (total  1.000)
+  41       1  TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TAT TAC TAC  (0.982) TAT TAC TAT  (0.017) TAC TAC TAC  (0.000) TAT TAT TAT  (0.000) TAC TAC TAT  (0.000) TAT TAT TAC  (0.000)  (total  1.000)
+  42       1  TCT (S) TCT (S) TCT (S) TCT (S) : TCT TCT TCT  (1.000) TCT TCT TCC  (0.000) TCC TCT TCT  (0.000) TCG TCT TCT  (0.000) CCT TCT TCT  (0.000) TCA TCT TCT  (0.000)  (total  1.000)
+  43       2  TGC (C) TGC (C) TGC (C) TGC (C) : TGC TGC TGC  (1.000) TGC TGC TGT  (0.000) TGT TGC TGC  (0.000) CGC TGC TGC  (0.000) TAC TGC TGC  (0.000) AGC TGC TGC  (0.000)  (total  1.000)
+  44       1  TGC (C) TGT (C) TGC (C) TGC (C) : TGC TGT TGC  (0.975) TGC TGT TGT  (0.025) TGT TGT TGC  (0.000) TGC TGC TGC  (0.000) TGT TGT TGT  (0.000) CGC TGT TGC  (0.000)  (total  1.000)
+  45       1  TGC (C) TGT (C) TGT (C) TGC (C) : TGC TGT TGT  (0.979) TGC TGT TGC  (0.021) TGT TGT TGT  (0.000) TGT TGT TGC  (0.000) TGC TGC TGC  (0.000) TGC TGC TGT  (0.000)  (total  1.000)
+  46       1  TGT (C) TGC (C) TGT (C) TGC (C) : TGC TGC TGT  (0.990) TGC TGC TGC  (0.010) TGC TGT TGT  (0.000) TGT TGC TGT  (0.000) CGC TGC TGT  (0.000) TAC TGC TGT  (0.000)  (total  1.000)
+  47       1  TGT (C) TGT (C) TGT (C) TGC (C) : TGC TGT TGT  (1.000) TGT TGT TGT  (0.000) TGC TGT TGC  (0.000) TGC TGC TGT  (0.000) CGC TGT TGT  (0.000) TGG TGT TGT  (0.000)  (total  1.000)
+  48       2  TGT (C) TGT (C) TGT (C) TGT (C) : TGT TGT TGT  (1.000) TGT TGT TGC  (0.000) TGC TGT TGT  (0.000) CGT TGT TGT  (0.000) TGT TGC TGT  (0.000) TAT TGT TGT  (0.000)  (total  1.000)
+
+
+
+List of extant and reconstructed sequences
+
+     7    255
+
+Gorilla_gorilla   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar     ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus   ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+node #5           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGC CAA AGC CGG AGC AGA TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG TGC TAT CAC ATC GTG TCT 
+node #6           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGA TGT TAC CAC ATT GTA TCT 
+node #7           ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGA AGG CGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA TGT TAC CAT ATT GTA TCT 
+
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/rst1 b/ete3/test/ete_evol_data/S_example/paml/fb/rst1
new file mode 100644
index 0000000..d94c81e
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/rst1
@@ -0,0 +1,89 @@
+	4	85	48	0.5892	0.364	0.014	0.193	0.157	0.084	0.073	3.544	0.000	999.000	0.000	0.107	0.566	999.000	-511.782	0.0811	0.6520
+List of sites with changes according to ancestral reconstruction
+Suzuki-Gojobori (1999) style test
+   1 S N:   0.000  3.000 Sd Nd:    0.0   0.0 
+   2 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+   3 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+   4 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+   5 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+   6 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+   7 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+   8 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+   9 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  10 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  11 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  12 S N:   1.347  1.653 Sd Nd:    2.0   0.0  - p = 0.202 
+  13 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  14 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  15 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  16 S N:   0.429  2.571 Sd Nd:    1.0   0.0  - p = 0.143 
+  17 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  18 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  19 S N:   0.351  2.649 Sd Nd:    0.0   1.0  + p = 0.883 
+  20 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  21 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  22 S N:   0.716  2.284 Sd Nd:    1.0   0.0  - p = 0.239 
+  23 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  24 S N:   0.424  2.576 Sd Nd:    0.0   1.0  + p = 0.859 
+  25 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  26 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  27 S N:   0.696  2.304 Sd Nd:    2.0   0.0  - p = 0.054 
+  28 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  29 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  30 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  31 S N:   0.333  2.667 Sd Nd:    2.0   0.0  - p = 0.012 *
+  32 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  33 S N:   0.349  2.651 Sd Nd:    0.0   1.0  + p = 0.884 
+  34 S N:   0.731  2.269 Sd Nd:    0.0   1.0  + p = 0.756 
+  35 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  36 S N:   0.429  2.571 Sd Nd:    1.0   0.0  - p = 0.143 
+  37 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  38 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  39 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  40 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  41 S N:   0.351  2.649 Sd Nd:    0.0   1.0  + p = 0.883 
+  42 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  43 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  44 S N:   0.716  2.284 Sd Nd:    1.0   0.0  - p = 0.239 
+  45 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  46 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+  47 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  48 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  49 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  50 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  51 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  52 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  53 S N:   1.110  1.890 Sd Nd:    2.0   0.0  - p = 0.137 
+  54 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  55 S N:   1.451  1.549 Sd Nd:    1.0   0.0  - p = 0.484 
+  56 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  57 S N:   0.926  2.074 Sd Nd:    2.0   0.0  - p = 0.095 
+  58 S N:   1.316  1.684 Sd Nd:    2.0   0.0  - p = 0.193 
+  59 S N:   0.361  2.639 Sd Nd:    0.0   1.0  + p = 0.880 
+  60 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  61 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  62 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  63 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  64 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  65 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  66 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  67 S N:   0.000  3.000 Sd Nd:    0.0   0.0 
+  68 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  69 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  70 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  71 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  72 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  73 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+  74 S N:   0.696  2.304 Sd Nd:    1.0   0.0  - p = 0.232 
+  75 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  76 S N:   0.724  2.276 Sd Nd:    1.0   0.0  - p = 0.241 
+  77 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  78 S N:   0.707  2.293 Sd Nd:    1.0   1.0  - p = 0.416 
+  79 S N:   0.720  2.280 Sd Nd:    1.0   1.0  - p = 0.423 
+  80 S N:   0.465  2.535 Sd Nd:    2.0   4.0  - p = 0.235 
+  81 S N:   0.429  2.571 Sd Nd:    2.0   0.0  - p = 0.020 *
+  82 S N:   0.333  2.667 Sd Nd:    1.0   0.0  - p = 0.111 
+  83 S N:   0.667  2.333 Sd Nd:    1.0   0.0  - p = 0.222 
+  84 S N:   1.000  2.000 Sd Nd:    1.0   0.0  - p = 0.333 
+  85 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/rub b/ete3/test/ete_evol_data/S_example/paml/fb/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/tmp.ctl b/ete3/test/ete_evol_data/S_example/paml/fb/tmp.ctl
new file mode 100644
index 0000000..4e54a60
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 1
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 0
+      fix_omega = 0
+          omega = 0.7
+   RateAncestor = 1
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/ete3/test/ete_evol_data/S_example/paml/fb/tree b/ete3/test/ete_evol_data/S_example/paml/fb/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/paml/fb/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/S_example/tree.nw b/ete3/test/ete_evol_data/S_example/tree.nw
new file mode 100644
index 0000000..687f6ed
--- /dev/null
+++ b/ete3/test/ete_evol_data/S_example/tree.nw
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
diff --git a/ete3/test/ete_evol_data/XS_example/ali.fasta b/ete3/test/ete_evol_data/XS_example/ali.fasta
new file mode 100644
index 0000000..2128007
--- /dev/null
+++ b/ete3/test/ete_evol_data/XS_example/ali.fasta
@@ -0,0 +1,4 @@
+>Gorilla_gorilla
+ATGTTTGCCAGGTACAGATGCTGTTCCGCC
+>Pan_troglodytes
+ATGTTTGCCAGGTCCAGATGCTGTTGTGCC
diff --git a/ete3/test/ete_evol_data/XS_example/tree.nw b/ete3/test/ete_evol_data/XS_example/tree.nw
new file mode 100644
index 0000000..291207f
--- /dev/null
+++ b/ete3/test/ete_evol_data/XS_example/tree.nw
@@ -0,0 +1 @@
+(Gorilla_gorilla,Pan_troglodytes);
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/alignments.fasta_ali b/ete3/test/ete_evol_data/protamine/PRM1/alignments.fasta_ali
new file mode 100644
index 0000000..18ac95b
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/alignments.fasta_ali
@@ -0,0 +1,196 @@
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dN
new file mode 100644
index 0000000..7be5b67
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dN
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      0.2269
+Erinaceus_europaeus    0.2465  0.2841
+Oryctolagus_cuniculus   0.2261  0.2279  0.2187
+Cynocephalus_variegatus   0.1932  0.2121  0.2081  0.1414
+Tupaia_belangeri       0.1350  0.2199  0.2487  0.1305  0.1244
+Otolemur_garnettii     0.1176  0.1630  0.1272  0.0759  0.0744  0.0834
+Cavia_porcellus        0.1662  0.2294  0.1989  0.1312  0.1101  0.0856  0.0933
+Dipodomys_ordii        0.1426  0.1885  0.1475  0.1227  0.1113  0.0974  0.0483  0.1026
+Felis_catus            0.1784  0.2869  0.2543  0.1899  0.2458  0.1980  0.1189  0.2097  0.1742
+Rhinopoma_hardwickei   0.1544  0.2710  0.2156  0.1694  0.1573  0.1577  0.1259  0.1579  0.1142  0.0988
+Pteropus_hypomelanus   0.1601  0.2497  0.1887  0.1236  0.1452  0.1286  0.0828  0.1341  0.0970  0.0624  0.0374
+Pteropus_vampyrus      0.1473  0.2564  0.1889  0.1098  0.1157  0.1071  0.0575  0.1116  0.0788  0.1061  0.0683  0.0284
+Desmodus_rotundus      0.1538  0.2566  0.2062  0.1347  0.1570  0.1123  0.0933  0.1230  0.0917  0.0675  0.0383  0.0093  0.0381
+Equus_asinus           0.2349  0.2837  0.2404  0.1508  0.2139  0.1719  0.1394  0.1663  0.1514  0.1037  0.0946  0.0530  0.0852  0.0643
+Equus_caballus         0.2444  0.2899  0.2752  0.1798  0.2401  0.2020  0.1680  0.1965  0.1816  0.1304  0.1213  0.0783  0.1120  0.0905  0.0181
+Antilocapra_americana   0.2216  0.3388  0.3027  0.2123  0.2537  0.1984  0.1685  0.1979  0.2050  0.1257  0.1239  0.1067  0.1311  0.1123  0.1600  0.1771
+Hylobates_lar          0.2054  0.2468  0.1760  0.1750  0.2258  0.1902  0.1056  0.2166  0.1563  0.2511  0.2362  0.1863  0.1660  0.1984  0.2692  0.2890  0.2997
+Callithrix_jacchus     0.2187  0.2711  0.1744  0.1349  0.1810  0.1725  0.0943  0.1938  0.1445  0.2287  0.2295  0.1798  0.1689  0.1978  0.1858  0.2161  0.2730  0.1527
+Saguinus_imperator     0.2059  0.2530  0.1935  0.1461  0.1943  0.1848  0.1050  0.2068  0.1563  0.2482  0.2432  0.1924  0.1810  0.2108  0.2175  0.2171  0.2742  0.1641  0.0224
+Saimiri_sciureus       0.1868  0.1930  0.1765  0.0997  0.1338  0.1294  0.0697  0.1486  0.0865  0.1833  0.1763  0.1522  0.1317  0.1524  0.1813  0.2116  0.2240  0.1487  0.0696  0.0797
+Hipposideros_commersoni   0.2102  0.3216  0.2216  0.2188  0.2306  0.2109  0.1721  0.2139  0.1732  0.1563  0.1280  0.0895  0.1218  0.0949  0.1847  0.2148  0.2215  0.2419  0.2611  0.2756  0.2501
+Rhinolophus_ferrumequinum   0.2336  0.2972  0.2171  0.2191  0.2440  0.1992  0.1731  0.2270  0.1591  0.1706  0.1340  0.0964  0.1199  0.1039  0.1897  0.2190  0.2293  0.2091  0.2565  0.2708  0.2457  0.0470
+Chilonatalus_micropus   0.1866  0.2824  0.2422  0.1552  0.2021  0.1588  0.1144  0.1687  0.1637  0.0743  0.0683  0.0284  0.0712  0.0381  0.0578  0.0831  0.1124  0.2488  0.2043  0.2232  0.1598  0.1518  0.1605
+Otonycteris_hemprichi   0.1988  0.2744  0.3354  0.2005  0.2198  0.1495  0.1586  0.1551  0.1812  0.1549  0.0879  0.0671  0.1108  0.0773  0.1030  0.1081  0.1651  0.2965  0.2753  0.2786  0.2057  0.1956  0.2041  0.0739
+Monophyllus_redmani    0.1533  0.2558  0.2189  0.1343  0.1565  0.1120  0.0931  0.1227  0.0915  0.0674  0.0382  0.0093  0.0380  0.0000  0.0642  0.0902  0.1120  0.1979  0.1973  0.2102  0.1520  0.0946  0.1037  0.0380  0.0771
+Elaphodus_cephalophus   0.2014  0.2885  0.2997  0.2281  0.2445  0.1963  0.1845  0.1895  0.2300  0.1358  0.1573  0.1173  0.1550  0.1229  0.1347  0.1511  0.0754  0.3063  0.2801  0.2902  0.2526  0.2316  0.2338  0.1104  0.1512  0.1226
+Hippopotamus_amphibius   0.2024  0.2958  0.2904  0.2016  0.2360  0.1596  0.1481  0.1636  0.1851  0.1396  0.1221  0.0948  0.1316  0.0845  0.1142  0.1140  0.1367  0.2764  0.2146  0.2357  0.2008  0.2106  0.2130  0.0841  0.1233  0.0843  0.1148
+Hexaprotodon_liberiensis   0.2024  0.2958  0.2904  0.2016  0.2360  0.1596  0.1481  0.1636  0.1851  0.1396  0.1221  0.0948  0.1316  0.0845  0.1142  0.1140  0.1367  0.2764  0.2146  0.2357  0.2008  0.2106  0.2130  0.0841  0.1233  0.0843  0.1148  0.0000
+Potamochoerus_porcus   0.1801  0.3025  0.2073  0.1588  0.1892  0.1588  0.1088  0.1567  0.1057  0.1282  0.0784  0.0627  0.0711  0.0679  0.0935  0.1199  0.1179  0.2343  0.2201  0.2333  0.1943  0.1685  0.1658  0.0896  0.1293  0.0677  0.1447  0.1326  0.1326
+Sus_scrofa             0.1930  0.3013  0.2065  0.1583  0.1885  0.1582  0.1085  0.1561  0.1053  0.1277  0.0885  0.0726  0.0809  0.0778  0.0932  0.1195  0.1281  0.2335  0.2193  0.2324  0.1936  0.1794  0.1765  0.0994  0.1394  0.0776  0.1551  0.1321  0.1321  0.0000
+Pongo_pygmaeus         0.1641  0.2315  0.2156  0.1322  0.1503  0.1441  0.0695  0.1446  0.1325  0.2061  0.1849  0.1389  0.1220  0.1501  0.1903  0.2080  0.2436  0.0706  0.1615  0.1729  0.1260  0.2344  0.2063  0.1865  0.2070  0.1497  0.2262  0.2119  0.2119  0.1845  0.1952
+Papio_cynocephalus     0.1661  0.2370  0.1494  0.1333  0.1300  0.1419  0.0466  0.1479  0.0980  0.1876  0.1833  0.1366  0.1041  0.1479  0.1928  0.1985  0.2398  0.0912  0.1224  0.1177  0.1080  0.2087  0.2093  0.1831  0.2178  0.1475  0.2557  0.2011  0.2011  0.1830  0.1824  0.0712
+Ateles_sp              0.1803  0.1986  0.1821  0.1560  0.1639  0.1609  0.0856  0.1815  0.1134  0.2181  0.2002  0.1813  0.1704  0.1815  0.2287  0.2607  0.2723  0.1228  0.0737  0.0838  0.0743  0.2178  0.2021  0.2298  0.2598  0.1810  0.2904  0.2121  0.2121  0.2216  0.2208  0.1418  0.1136
+Alouatta_seniculus     0.2045  0.2262  0.2044  0.1667  0.1920  0.1834  0.1042  0.2050  0.1330  0.2060  0.2244  0.2048  0.1930  0.2051  0.2498  0.2827  0.2719  0.1416  0.0736  0.0837  0.0742  0.2406  0.2241  0.2607  0.2872  0.2045  0.3171  0.2421  0.2421  0.2458  0.2449  0.1609  0.1324  0.0177
+Sigmodon_hispidus      0.1691  0.2383  0.1877  0.0811  0.1074  0.1119  0.0514  0.0988  0.0809  0.1948  0.1505  0.1112  0.0848  0.1221  0.1702  0.1999  0.2014  0.1763  0.1440  0.1556  0.1074  0.2027  0.2033  0.1441  0.1918  0.1218  0.2175  0.1791  0.1791  0.1382  0.1377  0.1253  0.1017  0.1436  0.1712
+Micromys_minutus       0.1829  0.2387  0.1823  0.0864  0.1076  0.0943  0.0515  0.1017  0.0811  0.1833  0.1395  0.1007  0.0746  0.1115  0.1646  0.1881  0.1935  0.1824  0.1442  0.1559  0.1076  0.1909  0.1917  0.1387  0.1922  0.1112  0.2117  0.1621  0.1621  0.1329  0.1324  0.1308  0.1019  0.1439  0.1715  0.0177
+Meriones_unguiculatus   0.1594  0.2038  0.1721  0.1117  0.0956  0.0975  0.0423  0.0715  0.0820  0.1776  0.1392  0.1000  0.0738  0.1110  0.1652  0.1953  0.2064  0.1673  0.1385  0.1502  0.1017  0.1932  0.1940  0.1385  0.1675  0.1216  0.2007  0.1679  0.1679  0.1326  0.1321  0.1063  0.0926  0.1400  0.1659  0.0270  0.0271
+Natalus_micropus       0.1866  0.2824  0.2422  0.1552  0.2021  0.1588  0.1144  0.1687  0.1637  0.0743  0.0683  0.0284  0.0712  0.0381  0.0578  0.0831  0.1124  0.2488  0.2043  0.2232  0.1598  0.1518  0.1605  0.0000  0.0739  0.0380  0.1104  0.0841  0.0841  0.0896  0.0994  0.1865  0.1831  0.2298  0.2607  0.1441  0.1387  0.1385
+Natalus_stramineus     0.2004  0.2958  0.2558  0.1664  0.2148  0.1702  0.1252  0.1807  0.1755  0.0841  0.0581  0.0380  0.0812  0.0479  0.0679  0.0935  0.1230  0.2614  0.2162  0.2355  0.1712  0.1631  0.1718  0.0089  0.0837  0.0478  0.1208  0.0941  0.0941  0.0797  0.0893  0.1979  0.1947  0.2422  0.2735  0.1554  0.1500  0.1498  0.0089
+Pteronotus_parnellii   0.1539  0.2568  0.2064  0.1348  0.1571  0.1124  0.0934  0.1231  0.0918  0.0676  0.0383  0.0094  0.0381  0.0000  0.0644  0.0905  0.1124  0.1986  0.1980  0.2110  0.1525  0.0950  0.1040  0.0381  0.0774  0.0000  0.1231  0.0846  0.0846  0.0679  0.0779  0.1502  0.1481  0.1817  0.2053  0.1222  0.1116  0.1111  0.0381  0.0480
+Mormoops_megalophylla   0.1406  0.2315  0.2247  0.1388  0.1615  0.1163  0.0971  0.1271  0.0920  0.0779  0.0483  0.0189  0.0382  0.0094  0.0802  0.0854  0.1122  0.1990  0.2024  0.1852  0.1566  0.1059  0.1149  0.0481  0.0878  0.0094  0.1178  0.0900  0.0900  0.0681  0.0780  0.1561  0.1465  0.1860  0.2097  0.1261  0.1154  0.1149  0.0481  0.0580  0.0094
+Moschus_sp             0.2102  0.3154  0.2731  0.2154  0.2567  0.2077  0.1720  0.2138  0.2168  0.1260  0.1449  0.1054  0.1431  0.1110  0.1467  0.1634  0.0709  0.2973  0.2690  0.2768  0.2395  0.2186  0.2211  0.1008  0.1576  0.1107  0.0456  0.1052  0.1052  0.1403  0.1506  0.2421  0.2427  0.2771  0.3034  0.2046  0.1989  0.1993  0.1008  0.1111  0.1111  0.1058
+Gorilla_gorilla        0.2236  0.2941  0.2529  0.2125  0.2558  0.2227  0.1358  0.2577  0.1944  0.2861  0.2718  0.2199  0.1975  0.2388  0.2998  0.3201  0.3306  0.0662  0.1618  0.1733  0.1797  0.2847  0.2434  0.2775  0.3195  0.2381  0.3509  0.2796  0.2796  0.2689  0.2678  0.0980  0.1197  0.1318  0.1402  0.1858  0.2152  0.1999  0.2775  0.2904  0.2390  0.2394  0.3417
+Nasalis_larvatus       0.2248  0.2915  0.1948  0.1754  0.1821  0.1848  0.0854  0.1928  0.1399  0.2393  0.2304  0.1808  0.1447  0.1928  0.2412  0.2537  0.2932  0.1101  0.1530  0.1644  0.1490  0.2575  0.2320  0.2288  0.2776  0.1923  0.3091  0.2352  0.2352  0.2287  0.2278  0.0895  0.0535  0.1333  0.1525  0.1433  0.1435  0.1342  0.2288  0.2410  0.1930  0.1974  0.2956  0.1288
+Procolobus_badius      0.1985  0.2735  0.1778  0.1506  0.1647  0.1800  0.0757  0.1644  0.1350  0.2102  0.2128  0.1758  0.1400  0.1878  0.2228  0.2287  0.2712  0.1205  0.1289  0.1242  0.1145  0.2522  0.2521  0.2237  0.2598  0.1873  0.3005  0.2301  0.2301  0.2176  0.2228  0.1043  0.0264  0.1462  0.1442  0.1385  0.1414  0.1266  0.2237  0.2360  0.1880  0.1863  0.2870  0.1498  0.0815
+Colobus_guereza        0.2664  0.3045  0.2307  0.1970  0.1956  0.1904  0.1054  0.2100  0.1672  0.2515  0.2493  0.1984  0.1608  0.2169  0.2346  0.2406  0.3102  0.1501  0.1631  0.1584  0.1701  0.2772  0.2768  0.2471  0.2774  0.2163  0.3261  0.2411  0.2411  0.2408  0.2461  0.1331  0.0533  0.1538  0.1734  0.1703  0.1706  0.1612  0.2471  0.2597  0.2171  0.2155  0.2855  0.1589  0.1000  0.0623
+Macaca_fascicularis    0.1786  0.2485  0.1603  0.1435  0.1411  0.1523  0.0561  0.1588  0.1082  0.1985  0.1946  0.1473  0.1140  0.1588  0.2044  0.2102  0.2518  0.1007  0.1325  0.1277  0.1180  0.2204  0.2208  0.1941  0.2291  0.1584  0.2676  0.2122  0.2122  0.1940  0.1933  0.0804  0.0087  0.1235  0.1425  0.1118  0.1120  0.1027  0.1941  0.2059  0.1589  0.1573  0.2546  0.1294  0.0533  0.0353  0.0624
+Macaca_mulatta         0.1661  0.2370  0.1494  0.1333  0.1300  0.1419  0.0466  0.1479  0.0980  0.1876  0.1833  0.1366  0.1041  0.1479  0.1928  0.1985  0.2398  0.0912  0.1224  0.1177  0.1080  0.2087  0.2093  0.1831  0.2178  0.1475  0.2557  0.2011  0.2011  0.1830  0.1824  0.0712  0.0000  0.1136  0.1324  0.1017  0.1019  0.0926  0.1831  0.1947  0.1481  0.1465  0.2427  0.1197  0.0535  0.0264  0.0533  0.0087
+Arvicola_terrestris    0.1745  0.2309  0.1745  0.0808  0.1014  0.1061  0.0464  0.0880  0.0771  0.1630  0.1424  0.1036  0.0776  0.1144  0.1452  0.1681  0.1923  0.1756  0.1272  0.1385  0.0915  0.1957  0.1964  0.1361  0.1930  0.1141  0.2084  0.1592  0.1592  0.1303  0.1299  0.1248  0.0962  0.1377  0.1538  0.0271  0.0271  0.0228  0.1361  0.1472  0.1145  0.1183  0.1956  0.2081  0.1373  0.1219  0.1640  0.1062  0.0962
+Phodopus_sungorus      0.1560  0.2259  0.1572  0.0914  0.0747  0.0995  0.0419  0.0885  0.0724  0.1697  0.1047  0.0884  0.0628  0.0990  0.1452  0.1740  0.1753  0.1653  0.1333  0.1447  0.0971  0.1788  0.1798  0.1203  0.1707  0.0987  0.1914  0.1488  0.1488  0.1147  0.1143  0.1150  0.0915  0.1330  0.1602  0.0319  0.0273  0.0183  0.1203  0.1313  0.0991  0.1028  0.1787  0.1975  0.1326  0.1278  0.1594  0.1015  0.0915  0.0180
+Phodopus_roborovskii   0.1685  0.2253  0.1688  0.0861  0.0962  0.1064  0.0418  0.0883  0.0722  0.1808  0.1372  0.0986  0.0727  0.1094  0.1563  0.1795  0.1868  0.1705  0.1329  0.1443  0.0917  0.1903  0.1910  0.1254  0.1877  0.1091  0.2029  0.1540  0.1540  0.1252  0.1248  0.1199  0.0913  0.1326  0.1598  0.0272  0.0272  0.0091  0.1254  0.1364  0.1095  0.1132  0.1902  0.2028  0.1323  0.1275  0.1589  0.1013  0.0913  0.0179  0.0180
+Peromyscus_californicus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090
+Rattus_norvegicus      0.1960  0.2505  0.1820  0.0911  0.1146  0.1153  0.0610  0.1128  0.1011  0.1865  0.1408  0.1038  0.0778  0.1146  0.1561  0.1793  0.1866  0.1990  0.1546  0.1665  0.1177  0.1961  0.1968  0.1308  0.1875  0.1143  0.2027  0.1767  0.1767  0.1306  0.1301  0.1463  0.1119  0.1543  0.1822  0.0267  0.0088  0.0362  0.1308  0.1419  0.1147  0.1186  0.1900  0.2323  0.1539  0.1527  0.1869  0.1221  0.1119  0.0363  0.0365  0.0364  0.0272
+Acomys_cahirinus       0.1560  0.2140  0.1636  0.0916  0.0966  0.0997  0.0420  0.1099  0.0625  0.1306  0.0890  0.0529  0.0529  0.0630  0.1064  0.1339  0.1636  0.1545  0.1336  0.1451  0.0973  0.1387  0.1514  0.0834  0.1318  0.0628  0.1898  0.1529  0.1529  0.1042  0.1039  0.1050  0.0917  0.1333  0.1606  0.0508  0.0461  0.0371  0.0834  0.0938  0.0630  0.0768  0.1772  0.1865  0.1329  0.1281  0.1597  0.1018  0.0917  0.0365  0.0366  0.0366  0.0273  0.0555
+Acomys_cilicicus       0.1560  0.2140  0.1636  0.0916  0.0966  0.0997  0.0420  0.1099  0.0625  0.1306  0.0890  0.0529  0.0529  0.0630  0.1064  0.1339  0.1636  0.1545  0.1336  0.1451  0.0973  0.1387  0.1514  0.0834  0.1318  0.0628  0.1898  0.1529  0.1529  0.1042  0.1039  0.1050  0.0917  0.1333  0.1606  0.0508  0.0461  0.0371  0.0834  0.0938  0.0630  0.0768  0.1772  0.1865  0.1329  0.1281  0.1597  0.1018  0.0917  0.0365  0.0366  0.0366  0.0273  0.0555  0.0000
+Eptesicus_fuscus       0.1611  0.2546  0.2700  0.1662  0.1819  0.1309  0.1252  0.1223  0.1588  0.1016  0.0656  0.0346  0.0794  0.0345  0.0761  0.1031  0.1007  0.2652  0.2264  0.2403  0.1842  0.1530  0.1679  0.0428  0.0373  0.0345  0.0936  0.0925  0.0925  0.0779  0.0880  0.1753  0.1977  0.2336  0.2657  0.1448  0.1393  0.1162  0.0428  0.0527  0.0346  0.0448  0.1102  0.2955  0.2526  0.2408  0.2656  0.2093  0.1977  0.1365  0.1201  0.1311  0.1200  0.1310  0.0816  0.0816
+Eptesicus_bruneus      0.1474  0.2609  0.2771  0.1638  0.1636  0.1434  0.0847  0.1280  0.1537  0.0772  0.0686  0.0468  0.1178  0.0467  0.0929  0.1224  0.1255  0.2555  0.1914  0.2114  0.1556  0.1156  0.1313  0.0562  0.0767  0.0466  0.1170  0.0993  0.0993  0.1114  0.1225  0.1653  0.1815  0.1871  0.2165  0.1373  0.1260  0.1160  0.0562  0.0669  0.0468  0.0577  0.1296  0.2861  0.2364  0.2118  0.2494  0.1931  0.1815  0.1307  0.1137  0.1252  0.1137  0.1258  0.0741  0.0741  0.0453
+Eptesicus_brasiliensis   0.1611  0.2546  0.2700  0.1662  0.1819  0.1309  0.1252  0.1223  0.1588  0.1016  0.0656  0.0346  0.0794  0.0345  0.0761  0.1031  0.1007  0.2652  0.2264  0.2403  0.1842  0.1530  0.1679  0.0428  0.0373  0.0345  0.0936  0.0925  0.0925  0.0779  0.0880  0.1753  0.1977  0.2336  0.2657  0.1448  0.1393  0.1162  0.0428  0.0527  0.0346  0.0448  0.1102  0.2955  0.2526  0.2408  0.2656  0.2093  0.1977  0.1365  0.1201  0.1311  0.1200  0.1310  0.0816  0.0816  0.0000  0.0453
+Bos_taurus             0.2087  0.3060  0.2713  0.2077  0.2477  0.2001  0.1649  0.1934  0.2088  0.1500  0.1382  0.0993  0.1365  0.1048  0.1292  0.1454  0.0558  0.2860  0.2733  0.2745  0.2314  0.2108  0.2193  0.1155  0.1674  0.1045  0.0360  0.1199  0.1199  0.1233  0.1334  0.2321  0.2345  0.2814  0.3076  0.1969  0.1913  0.1916  0.1155  0.1260  0.1049  0.0997  0.0503  0.3365  0.2932  0.2781  0.3098  0.2462  0.2345  0.1881  0.1715  0.1827  0.1714  0.1826  0.1699  0.1699  0.0935  0.1288  0.0935
+Homo_sapiens           0.2180  0.2765  0.2048  0.1852  0.2309  0.2006  0.1154  0.2215  0.1666  0.2685  0.2224  0.1970  0.1761  0.2154  0.2587  0.2782  0.2912  0.0436  0.1361  0.1579  0.1587  0.2796  0.2448  0.2454  0.3057  0.2148  0.3180  0.2497  0.2497  0.2515  0.2505  0.0796  0.1005  0.1376  0.1567  0.1811  0.1929  0.1777  0.2454  0.2578  0.2156  0.2160  0.3067  0.0704  0.1095  0.1199  0.1391  0.1100  0.1005  0.1803  0.1700  0.1752  0.1643  0.2057  0.1592  0.1592  0.2702  0.2404  0.270 [...]
+Clethrionomys_glareolus   0.2359  0.2611  0.2169  0.1381  0.1620  0.1258  0.0943  0.1194  0.1269  0.2127  0.1904  0.1474  0.1189  0.1594  0.2060  0.2382  0.2652  0.2317  0.1961  0.2092  0.1561  0.2234  0.2111  0.1893  0.2206  0.1708  0.2445  0.1899  0.1899  0.1707  0.1701  0.1752  0.1496  0.1956  0.2261  0.0513  0.0323  0.0415  0.1893  0.2017  0.1595  0.1638  0.2431  0.2674  0.1951  0.1900  0.2311  0.1606  0.1496  0.0570  0.0573  0.0473  0.0474  0.0369  0.0828  0.0828  0.1673  0.1568  0. [...]
+Microtus_agrestis      0.2291  0.2824  0.1990  0.1245  0.1621  0.1531  0.0926  0.1390  0.1034  0.2206  0.1864  0.1445  0.1165  0.1561  0.2142  0.2462  0.2458  0.2147  0.1804  0.1929  0.1417  0.2187  0.2067  0.1854  0.2405  0.1557  0.2513  0.1980  0.1980  0.1791  0.1784  0.1599  0.1356  0.1800  0.2093  0.0504  0.0505  0.0607  0.1854  0.1975  0.1563  0.1605  0.2378  0.2491  0.1795  0.1687  0.2081  0.1462  0.1356  0.0560  0.0612  0.0561  0.0466  0.0551  0.0863  0.0863  0.1880  0.1654  0.188 [...]
+Peromyscus_leucopus    0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.120 [...]
+Apodemus_sylvaticus    0.1827  0.2576  0.1821  0.0862  0.1186  0.1101  0.0661  0.1077  0.0962  0.1869  0.1411  0.1040  0.0779  0.1149  0.1565  0.1797  0.1871  0.1994  0.1606  0.1725  0.1233  0.1966  0.1973  0.1311  0.1879  0.1146  0.2032  0.1542  0.1542  0.1254  0.1249  0.1466  0.1174  0.1602  0.1884  0.0267  0.0088  0.0363  0.1311  0.1422  0.1150  0.1188  0.1904  0.2328  0.1598  0.1476  0.1874  0.1277  0.1174  0.0410  0.0412  0.0411  0.0319  0.0132  0.0556  0.0556  0.1313  0.1258  0.131 [...]
+Murina_cyclotis        0.1607  0.2808  0.2839  0.1676  0.1939  0.1194  0.1248  0.1454  0.1583  0.1119  0.0654  0.0345  0.0792  0.0446  0.0654  0.0920  0.1004  0.2645  0.2321  0.2461  0.1836  0.1525  0.1674  0.0427  0.0372  0.0445  0.0933  0.0975  0.0975  0.0777  0.0877  0.1749  0.1971  0.2393  0.2716  0.1562  0.1506  0.1392  0.0427  0.0526  0.0446  0.0550  0.1099  0.3015  0.2584  0.2401  0.2582  0.2087  0.1971  0.1477  0.1311  0.1423  0.1311  0.1422  0.0923  0.0923  0.0185  0.0452  0.018 [...]
+Ovis_dalli             0.1959  0.3038  0.2589  0.2052  0.2407  0.1975  0.1622  0.1908  0.2062  0.1260  0.1354  0.0964  0.1338  0.1019  0.1139  0.1299  0.0561  0.2882  0.2624  0.2723  0.2290  0.2083  0.2169  0.0905  0.1631  0.1017  0.0179  0.1000  0.1000  0.1241  0.1343  0.2338  0.2322  0.2791  0.3055  0.1944  0.1887  0.1890  0.0905  0.1007  0.1020  0.0968  0.0272  0.3392  0.2910  0.2759  0.3146  0.2439  0.2322  0.1856  0.1688  0.1801  0.1687  0.1800  0.1673  0.1673  0.0941  0.1178  0.094 [...]
+Ovis_aries             0.1951  0.3026  0.2578  0.2045  0.2442  0.1968  0.1617  0.1901  0.2054  0.1255  0.1349  0.0961  0.1334  0.1016  0.1135  0.1294  0.0559  0.2871  0.2614  0.2712  0.2281  0.2075  0.2161  0.0902  0.1625  0.1013  0.0179  0.0997  0.0997  0.1237  0.1339  0.2329  0.2313  0.2781  0.3043  0.1936  0.1880  0.1883  0.0902  0.1004  0.1017  0.0965  0.0271  0.3378  0.2899  0.2748  0.3065  0.2430  0.2313  0.1849  0.1682  0.1795  0.1681  0.1793  0.1666  0.1666  0.0938  0.1174  0.093 [...]
+Pan_paniscus           0.2433  0.2822  0.2333  0.1999  0.2554  0.2158  0.1279  0.2511  0.1812  0.2676  0.2719  0.2189  0.1961  0.2381  0.3004  0.3212  0.3319  0.0678  0.1544  0.1660  0.1724  0.2782  0.2572  0.2776  0.3357  0.2374  0.3525  0.2733  0.2733  0.2624  0.2678  0.1053  0.1121  0.1244  0.1329  0.2018  0.2081  0.1986  0.2776  0.2908  0.2383  0.2388  0.3432  0.0578  0.1321  0.1218  0.1310  0.1218  0.1121  0.2009  0.1903  0.1957  0.1844  0.2254  0.1791  0.1791  0.2903  0.2806  0.290 [...]
+Pan_troglodytes        0.2645  0.3041  0.2522  0.2220  0.2799  0.2324  0.1451  0.2615  0.1984  0.2769  0.2756  0.2238  0.2013  0.2426  0.3104  0.3308  0.3388  0.0748  0.1711  0.1826  0.1891  0.2817  0.2472  0.2875  0.3433  0.2419  0.3613  0.2643  0.2643  0.2725  0.2778  0.1115  0.1286  0.1409  0.1493  0.2246  0.2309  0.2216  0.2875  0.3005  0.2428  0.2433  0.3521  0.0605  0.1377  0.1332  0.1473  0.1383  0.1286  0.2178  0.2072  0.2125  0.2013  0.2421  0.2019  0.2019  0.3060  0.2922  0.306 [...]
+Trachypithecus_cristatus   0.1719  0.2433  0.1611  0.1441  0.1468  0.1529  0.0560  0.1586  0.1193  0.1935  0.1944  0.1471  0.1248  0.1586  0.2041  0.2161  0.2497  0.1011  0.1174  0.1282  0.1184  0.1956  0.1963  0.1891  0.2300  0.1581  0.2656  0.1954  0.1954  0.1832  0.1825  0.0902  0.0355  0.0985  0.1170  0.1117  0.1119  0.1026  0.1891  0.2008  0.1587  0.1628  0.2524  0.1198  0.0535  0.0631  0.0815  0.0445  0.0355  0.1061  0.1014  0.1012  0.0911  0.1220  0.1016  0.1016  0.2040  0.1878  0 [...]
+Peromyscus_maniculatus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.1 [...]
+Peromyscus_polionotus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.12 [...]
+Myotis_lucifugus       0.1611  0.2540  0.2840  0.1538  0.1230  0.1362  0.1048  0.0958  0.1437  0.0970  0.0295  0.0295  0.0987  0.0301  0.0892  0.1173  0.1224  0.2754  0.2181  0.2320  0.1635  0.1185  0.1500  0.0602  0.0490  0.0300  0.1219  0.1045  0.1045  0.1087  0.1195  0.1845  0.2011  0.2070  0.2387  0.1300  0.1189  0.0958  0.0602  0.0707  0.0301  0.0405  0.1324  0.3059  0.2560  0.2314  0.2691  0.2127  0.2011  0.1217  0.0830  0.1163  0.1052  0.1169  0.0669  0.0669  0.0243  0.0494  0.024 [...]
+Myotis_daubentoni      0.1611  0.2751  0.2906  0.1800  0.1434  0.1597  0.1222  0.0961  0.1626  0.1079  0.0510  0.0510  0.1207  0.0509  0.1022  0.1313  0.1323  0.2966  0.2184  0.2389  0.1823  0.1424  0.1579  0.0654  0.0646  0.0508  0.1257  0.0912  0.0912  0.1201  0.1310  0.2029  0.2204  0.2326  0.2653  0.1502  0.1455  0.1218  0.0654  0.0760  0.0510  0.0617  0.1381  0.3279  0.2769  0.2322  0.2903  0.2323  0.2204  0.1396  0.1000  0.1341  0.1228  0.1518  0.0853  0.0853  0.0342  0.0493  0.034 [...]
+Chalinolobus_beatrix   0.1236  0.2339  0.2845  0.1655  0.1470  0.1052  0.1051  0.1190  0.1560  0.0862  0.0509  0.0301  0.0756  0.0301  0.0909  0.1196  0.1339  0.2252  0.2064  0.2201  0.1643  0.1184  0.1337  0.0601  0.0489  0.0300  0.1218  0.1204  0.1204  0.1086  0.1194  0.1615  0.1775  0.2070  0.2386  0.1419  0.1303  0.1070  0.0601  0.0706  0.0301  0.0405  0.1322  0.2548  0.2321  0.2204  0.2451  0.1891  0.1775  0.1334  0.1054  0.1280  0.1167  0.1337  0.0778  0.0778  0.0242  0.0410  0.024 [...]
+Pipistrellus_savii     0.1475  0.2610  0.2772  0.1639  0.1637  0.1435  0.0847  0.1281  0.1538  0.0772  0.0686  0.0468  0.1179  0.0467  0.0930  0.1224  0.1256  0.2556  0.1914  0.2115  0.1557  0.1156  0.1314  0.0562  0.0768  0.0466  0.1171  0.0994  0.0994  0.1115  0.1225  0.1653  0.1816  0.1872  0.2166  0.1374  0.1260  0.1161  0.0562  0.0669  0.0468  0.0577  0.1296  0.2862  0.2365  0.2119  0.2495  0.1932  0.1816  0.1308  0.1138  0.1252  0.1137  0.1258  0.0741  0.0741  0.0453  0.0000  0.045 [...]
+Corynorhinus_townsendii   0.1713  0.2662  0.2534  0.1703  0.1682  0.1438  0.1212  0.1022  0.1717  0.1182  0.0795  0.0484  0.0924  0.0586  0.0967  0.1241  0.1481  0.2625  0.2124  0.2317  0.1908  0.1460  0.1608  0.0621  0.0717  0.0584  0.1414  0.1023  0.1023  0.1245  0.1350  0.1754  0.1912  0.2452  0.2770  0.1534  0.1489  0.1264  0.0621  0.0721  0.0586  0.0690  0.1536  0.2918  0.2441  0.2023  0.2566  0.2024  0.1912  0.1433  0.1273  0.1381  0.1272  0.1550  0.0914  0.0914  0.0342  0.0557  0. [...]
+Trachypithecus_geei    0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0.191 [...]
+Trachypithecus_pileatus   0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0. [...]
+Semnopithecus_entellus   0.1912  0.2498  0.1916  0.1700  0.1594  0.1573  0.0674  0.1515  0.1467  0.2106  0.2120  0.1625  0.1441  0.1745  0.2226  0.2352  0.2837  0.1291  0.1308  0.1422  0.1321  0.2391  0.2392  0.2061  0.2244  0.1860  0.2740  0.2126  0.2126  0.1999  0.1992  0.0975  0.0504  0.1217  0.1412  0.1253  0.1255  0.0926  0.2061  0.2183  0.1747  0.1790  0.2727  0.1487  0.0691  0.0791  0.0982  0.0597  0.0504  0.1194  0.1146  0.1036  0.1039  0.1359  0.1148  0.1148  0.1976  0.1687  0.1 [...]
+Trachypithecus_francoisi   0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0 [...]
+Mus_famulus            0.2019  0.2823  0.2190  0.0908  0.1466  0.1367  0.0856  0.1286  0.1215  0.2176  0.1647  0.1266  0.0999  0.1378  0.1809  0.2047  0.2124  0.1981  0.1821  0.1945  0.1442  0.2198  0.2202  0.1544  0.2084  0.1374  0.2285  0.1838  0.1838  0.1374  0.1369  0.1457  0.1381  0.1817  0.2105  0.0266  0.0266  0.0548  0.1544  0.1657  0.1379  0.1419  0.2156  0.2076  0.1812  0.1688  0.2094  0.1485  0.1381  0.0597  0.0600  0.0598  0.0504  0.0356  0.0746  0.0746  0.1556  0.1490  0.155 [...]
+Mus_pahari             0.2017  0.2888  0.2188  0.1061  0.1464  0.1310  0.0906  0.1284  0.1214  0.1934  0.1704  0.1320  0.1051  0.1432  0.1698  0.1934  0.2185  0.2276  0.1763  0.1885  0.1386  0.2258  0.2261  0.1599  0.2142  0.1428  0.2346  0.1836  0.1836  0.1539  0.1534  0.1728  0.1434  0.1873  0.2044  0.0265  0.0266  0.0595  0.1599  0.1714  0.1433  0.1473  0.2216  0.2371  0.1868  0.1631  0.2151  0.1539  0.1434  0.0408  0.0599  0.0598  0.0503  0.0310  0.0746  0.0746  0.1613  0.1550  0.161 [...]
+Mus_cookii             0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Plecotus_townsemdii    0.1713  0.2662  0.2534  0.1703  0.1682  0.1438  0.1212  0.1022  0.1717  0.1182  0.0795  0.0484  0.0924  0.0586  0.0967  0.1241  0.1481  0.2625  0.2124  0.2317  0.1908  0.1460  0.1608  0.0621  0.0717  0.0584  0.1414  0.1023  0.1023  0.1245  0.1350  0.1754  0.1912  0.2452  0.2770  0.1534  0.1489  0.1264  0.0621  0.0721  0.0586  0.0690  0.1536  0.2918  0.2441  0.2023  0.2566  0.2024  0.1912  0.1433  0.1273  0.1381  0.1272  0.1550  0.0914  0.0914  0.0342  0.0557  0.034 [...]
+Plecotus_auritus       0.1713  0.2690  0.2534  0.1669  0.1904  0.1482  0.1260  0.1348  0.1759  0.0933  0.0796  0.0394  0.0822  0.0492  0.0673  0.0928  0.1273  0.2633  0.2143  0.2354  0.1946  0.1636  0.1778  0.0270  0.0497  0.0491  0.0993  0.0933  0.0933  0.0939  0.1036  0.1775  0.1950  0.2482  0.2796  0.1559  0.1505  0.1284  0.0270  0.0362  0.0492  0.0592  0.1102  0.2921  0.2471  0.2359  0.2594  0.2060  0.1950  0.1478  0.1320  0.1426  0.1319  0.1425  0.0948  0.0948  0.0092  0.0453  0.009 [...]
+Trachypithecus_johnii   0.2047  0.2680  0.1923  0.1547  0.1584  0.1637  0.0657  0.1698  0.1373  0.2049  0.2123  0.1638  0.1458  0.1756  0.2225  0.2348  0.2688  0.1259  0.1276  0.1386  0.1287  0.2387  0.2388  0.2064  0.2481  0.1751  0.2848  0.2069  0.2069  0.1946  0.1997  0.1095  0.0492  0.1187  0.1376  0.1221  0.1223  0.1130  0.2064  0.2184  0.1758  0.1800  0.2715  0.1450  0.0674  0.0583  0.0766  0.0583  0.0492  0.1163  0.1117  0.1114  0.1012  0.1325  0.1119  0.1119  0.2224  0.1814  0.22 [...]
+Trachypithecus_vetulus   0.1912  0.2498  0.1916  0.1700  0.1594  0.1573  0.0674  0.1515  0.1467  0.2106  0.2120  0.1625  0.1441  0.1745  0.2226  0.2352  0.2837  0.1291  0.1308  0.1422  0.1321  0.2391  0.2392  0.2061  0.2244  0.1860  0.2740  0.2126  0.2126  0.1999  0.1992  0.0975  0.0504  0.1217  0.1412  0.1253  0.1255  0.0926  0.2061  0.2183  0.1747  0.1790  0.2727  0.1487  0.0691  0.0791  0.0982  0.0597  0.0504  0.1194  0.1146  0.1036  0.1039  0.1359  0.1148  0.1148  0.1976  0.1687  0.1 [...]
+Trachypithecus_obscurus   0.1719  0.2433  0.1611  0.1441  0.1468  0.1529  0.0560  0.1586  0.1193  0.1935  0.1944  0.1471  0.1248  0.1586  0.2041  0.2161  0.2497  0.1011  0.1174  0.1282  0.1184  0.1956  0.1963  0.1891  0.2300  0.1581  0.2656  0.1954  0.1954  0.1832  0.1825  0.0902  0.0355  0.0985  0.1170  0.1117  0.1119  0.1026  0.1891  0.2008  0.1587  0.1628  0.2524  0.1198  0.0535  0.0631  0.0815  0.0445  0.0355  0.1061  0.1014  0.1012  0.0911  0.1220  0.1016  0.1016  0.2040  0.1878  0. [...]
+Trachypithecus_phayrei   0.1719  0.2495  0.1611  0.1474  0.1505  0.1565  0.0573  0.1625  0.1222  0.1861  0.1993  0.1507  0.1277  0.1625  0.1898  0.2019  0.2366  0.1032  0.1042  0.1203  0.1211  0.2005  0.2012  0.1699  0.2243  0.1620  0.2437  0.1744  0.1744  0.1701  0.1695  0.0921  0.0363  0.1007  0.1196  0.1143  0.1145  0.1050  0.1699  0.1815  0.1626  0.1669  0.2327  0.1224  0.0547  0.0644  0.0832  0.0455  0.0363  0.1085  0.1038  0.1035  0.0932  0.1248  0.1040  0.1040  0.1905  0.1878  0.1 [...]
+Mus_spretus            0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Mus_spicilegus         0.1820  0.2694  0.2000  0.1011  0.1294  0.1204  0.0757  0.1179  0.1060  0.1998  0.1535  0.1160  0.0896  0.1270  0.1693  0.1989  0.2003  0.2043  0.1710  0.1831  0.1334  0.2077  0.2083  0.1433  0.1909  0.1266  0.2164  0.1724  0.1724  0.1375  0.1370  0.1513  0.1275  0.1706  0.1990  0.0176  0.0177  0.0454  0.1433  0.1546  0.1271  0.1310  0.2036  0.2137  0.1702  0.1579  0.1980  0.1378  0.1275  0.0502  0.0505  0.0503  0.0410  0.0221  0.0650  0.0650  0.1441  0.1371  0.144 [...]
+Mus_macedonicus        0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Mus_musculus_domesticus   0.1820  0.2694  0.2000  0.1011  0.1294  0.1204  0.0757  0.1179  0.1060  0.1998  0.1535  0.1160  0.0896  0.1270  0.1693  0.1989  0.2003  0.2043  0.1710  0.1831  0.1334  0.2077  0.2083  0.1433  0.1909  0.1266  0.2164  0.1724  0.1724  0.1375  0.1370  0.1513  0.1275  0.1706  0.1990  0.0176  0.0177  0.0454  0.1433  0.1546  0.1271  0.1310  0.2036  0.2137  0.1702  0.1579  0.1980  0.1378  0.1275  0.0502  0.0505  0.0503  0.0410  0.0221  0.0650  0.0650  0.1441  0.1371  0. [...]
+Mus_musculus_musculus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.14 [...]
+Mus_musculus_bactrianus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0. [...]
+Mus_musculus_castaneus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.1 [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dS
new file mode 100644
index 0000000..6465493
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.dS
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      2.7574
+Erinaceus_europaeus    1.5057  2.4618
+Oryctolagus_cuniculus   1.0248  0.9066  1.0834
+Cynocephalus_variegatus   1.7047  0.5557  3.0000  0.8590
+Tupaia_belangeri       1.0358  1.0317  3.0000  0.6324  0.6795
+Otolemur_garnettii     1.9079  1.0360  3.0000  0.9039  0.5655  0.4615
+Cavia_porcellus        1.8460  1.0556  3.1450  0.5482  0.7126  0.5797  0.4711
+Dipodomys_ordii        0.7942  0.8086  1.0331  0.4404  0.8832  0.8031  0.7386  0.6735
+Felis_catus            2.0076  0.7763  3.2199  0.9585  0.8464  1.0520  0.6385  0.7648  0.9635
+Rhinopoma_hardwickei   0.9829  0.6879  3.0000  0.7863  0.8866  0.6883  0.5171  0.6175  0.6609  0.7449
+Pteropus_hypomelanus   0.8555  0.6060  3.0000  0.6588  0.7963  0.4434  0.3747  0.6321  0.6420  0.6554  0.1152
+Pteropus_vampyrus      0.8469  0.6609  3.0000  0.6499  0.8401  0.4952  0.3983  0.6372  0.6623  0.6788  0.1177  0.0000
+Desmodus_rotundus      1.1330  0.6338  3.0000  0.7249  0.8038  0.6347  0.5841  0.6284  0.9313  0.6187  0.1497  0.1521  0.1521
+Equus_asinus           1.3346  1.0393  2.6016  0.6742  0.6842  0.6035  0.6729  0.8667  0.8776  0.7231  0.4986  0.5090  0.4768  0.3303
+Equus_caballus         1.2353  0.9967  2.2998  0.6450  0.6901  0.5771  0.6437  0.8293  0.8383  0.6927  0.4760  0.4858  0.4537  0.3107  0.0000
+Antilocapra_americana   1.0259  0.5273  2.3472  0.5522  0.6202  0.6684  0.5131  0.6501  0.7701  0.6807  0.3046  0.2104  0.2254  0.3088  0.3642  0.3443
+Hylobates_lar          1.1383  0.7342  1.1242  0.6248  0.5835  0.7150  0.5636  0.7418  0.5626  1.1085  0.6236  0.5742  0.5512  0.7044  0.7223  0.6908  0.4633
+Callithrix_jacchus     1.1011  0.6507  1.3457  0.5348  0.6091  0.5328  0.4493  0.4719  0.6832  0.6929  0.5273  0.4833  0.5079  0.5078  0.6117  0.5843  0.3169  0.1622
+Saguinus_imperator     1.3829  0.6083  1.6139  0.4246  0.4804  0.4232  0.4426  0.3682  0.6708  0.6465  0.4661  0.4251  0.4478  0.3532  0.5112  0.5150  0.3560  0.2328  0.0715
+Saimiri_sciureus       1.2393  0.7241  1.4031  0.3937  0.5401  0.4152  0.4128  0.3636  0.6222  0.8114  0.4854  0.4440  0.4639  0.3939  0.5039  0.4802  0.4425  0.2103  0.0704  0.0134
+Hipposideros_commersoni   0.9596  0.6393  2.0001  0.7649  0.8142  0.6503  0.5610  0.7750  0.5830  0.4971  0.1296  0.1478  0.1478  0.1976  0.4473  0.4259  0.3554  0.6511  0.4975  0.4398  0.4834
+Rhinolophus_ferrumequinum   0.8570  0.7083  3.0000  0.7997  0.8555  0.7449  0.5790  0.8112  0.6152  0.6870  0.1328  0.1515  0.1551  0.2077  0.5073  0.4842  0.3350  0.6528  0.5303  0.4672  0.5143  0.1478
+Chilonatalus_micropus   1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438
+Otonycteris_hemprichi   1.5172  0.7069  3.0000  0.8874  0.6244  0.6630  0.5456  0.6681  1.0319  0.6830  0.3531  0.3600  0.3785  0.3582  0.3377  0.3176  0.2870  0.6882  0.5248  0.5648  0.6131  0.3832  0.4063  0.1518
+Monophyllus_redmani    1.3159  0.5791  3.0000  0.8127  0.9094  0.7090  0.5907  0.7829  0.8473  0.6259  0.2210  0.2248  0.2248  0.1196  0.4275  0.4055  0.3116  0.7133  0.5133  0.4523  0.4981  0.2730  0.2878  0.3464  0.3617
+Elaphodus_cephalophus   1.0603  0.5648  2.3956  0.6072  0.6713  0.6934  0.5676  0.7124  0.7937  0.8535  0.4153  0.3119  0.2782  0.4214  0.4896  0.4675  0.0265  0.4995  0.3484  0.4030  0.4920  0.4688  0.4221  0.3448  0.4044  0.4255
+Hippopotamus_amphibius   0.9590  0.6578  3.0000  0.7053  0.4235  0.4855  0.5344  0.9295  0.9729  0.8589  0.5979  0.3688  0.3309  0.6404  0.5919  0.5964  0.2674  0.5227  0.5143  0.5832  0.6985  0.5701  0.5199  0.4762  0.4988  0.6480  0.2913
+Hexaprotodon_liberiensis   0.9590  0.6578  3.0000  0.7053  0.4235  0.4855  0.5344  0.9295  0.9729  0.8589  0.5979  0.3688  0.3309  0.6404  0.5919  0.5964  0.2674  0.5227  0.5143  0.5832  0.6985  0.5701  0.5199  0.4762  0.4988  0.6480  0.2913  0.0000
+Potamochoerus_porcus   1.3060  0.6826  3.8101  0.6729  0.7802  0.5344  0.3542  0.6372  0.8481  0.6278  0.3406  0.1708  0.1683  0.3453  0.4679  0.4453  0.2182  0.5371  0.3841  0.4255  0.4332  0.3919  0.4149  0.3937  0.4601  0.3486  0.2568  0.3922  0.3922
+Sus_scrofa             1.3458  0.7651  2.4833  0.7561  0.8847  0.5995  0.4063  0.7195  0.7770  0.7044  0.3448  0.1727  0.1701  0.3497  0.4232  0.4015  0.2207  0.6069  0.4377  0.4821  0.4896  0.3968  0.4204  0.3986  0.4664  0.3530  0.2597  0.4453  0.4453  0.0274
+Pongo_pygmaeus         1.4182  1.1987  1.5008  0.7232  0.6814  0.6189  0.5046  0.7112  0.6656  1.0153  0.6613  0.6082  0.5822  0.7505  0.6896  0.6581  0.4883  0.1267  0.2068  0.2842  0.2586  0.6437  0.6219  0.4968  0.6571  0.7606  0.5266  0.6184  0.6184  0.5676  0.5766
+Papio_cynocephalus     1.2032  0.7028  1.0901  0.4872  0.4464  0.5361  0.3881  0.5199  0.5103  0.7247  0.3641  0.3267  0.3370  0.4162  0.5103  0.5430  0.4349  0.0869  0.1242  0.1390  0.1053  0.3569  0.3623  0.3893  0.5611  0.4204  0.4853  0.5209  0.5209  0.3900  0.4439  0.1571
+Ateles_sp              1.2265  0.6460  1.6713  0.4344  0.5801  0.4329  0.4447  0.3766  0.6783  0.6880  0.4952  0.4268  0.4500  0.3766  0.5246  0.4996  0.4116  0.2708  0.1201  0.0570  0.0562  0.5199  0.5550  0.2648  0.4825  0.4810  0.4531  0.5884  0.5884  0.4783  0.5409  0.3276  0.1528
+Alouatta_seniculus     1.4575  0.6281  2.1547  0.4366  0.5624  0.4351  0.5663  0.4275  0.7714  0.8519  0.6152  0.5371  0.5636  0.4785  0.6105  0.5829  0.4648  0.3214  0.1891  0.1192  0.1173  0.6532  0.7026  0.3283  0.4760  0.6010  0.5080  0.5611  0.5611  0.5956  0.6710  0.4361  0.2311  0.0583
+Sigmodon_hispidus      2.1525  0.9995  1.7245  0.8455  1.3378  0.6456  0.8513  0.9123  0.7012  0.9883  0.8332  0.7356  0.7737  0.8947  0.8620  0.8256  0.7199  0.7974  0.7719  0.7573  0.7822  0.9557  0.8201  0.7356  0.6787  0.8193  0.6423  1.0247  1.0247  0.7052  0.7944  0.8998  0.6233  0.7802  0.7467
+Micromys_minutus       1.6972  1.0998  3.3559  0.8809  0.9364  0.6844  0.7638  0.9761  0.6957  0.9782  0.9126  0.7295  0.7670  0.8863  0.6586  0.6640  0.6899  1.0236  0.8456  0.8287  0.8551  0.9462  0.8128  0.6937  0.6060  0.8120  0.6059  0.7811  0.7811  0.6648  0.7483  1.1774  0.7541  0.7000  0.6697  0.1411
+Meriones_unguiculatus   1.6997  0.9916  1.8849  0.8475  1.2423  1.2335  0.8388  1.0718  0.6842  0.9440  0.8344  0.6585  0.6945  0.8084  0.7205  0.6884  0.5540  0.9722  0.8118  0.7952  0.8222  0.8526  0.7239  0.6241  0.6762  0.7370  0.5322  0.9272  0.9272  0.5960  0.6754  1.0939  0.7453  0.6532  0.7844  0.2939  0.2535
+Natalus_micropus       1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438  0.0000  0.1518  0.3464  0.3448  0.4762  0.4762  0.3937  0.3986  0.4968  0.3893  0.2648  0.3283  0.7356  0.6937  0.6241
+Natalus_stramineus     1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438  0.0000  0.1518  0.3464  0.3448  0.4762  0.4762  0.3937  0.3986  0.4968  0.3893  0.2648  0.3283  0.7356  0.6937  0.6241  0.0000
+Pteronotus_parnellii   1.2824  0.6314  3.0000  0.6524  0.5788  0.5163  0.4190  0.5057  0.7467  0.6164  0.1831  0.1861  0.1861  0.1184  0.3741  0.3536  0.2667  0.6323  0.4531  0.3092  0.3478  0.2326  0.2448  0.2222  0.3127  0.1869  0.3739  0.5171  0.5171  0.3018  0.3055  0.6712  0.3682  0.3303  0.4254  0.7280  0.5900  0.6517  0.2222  0.2222
+Mormoops_megalophylla   1.1404  0.6268  2.7097  0.9373  0.9485  0.8145  0.5016  0.7370  1.0242  0.4951  0.1821  0.1851  0.1851  0.1178  0.4438  0.4218  0.3097  0.6956  0.5396  0.5036  0.5235  0.2314  0.1704  0.3844  0.4015  0.1859  0.3941  0.6012  0.6012  0.3868  0.3918  0.7018  0.4701  0.5069  0.6295  0.6984  0.6927  0.6238  0.3844  0.3844  0.1839
+Moschus_sp             0.9596  0.4594  2.1144  0.5435  0.6068  0.5657  0.5064  0.6352  0.6351  0.6824  0.3687  0.2722  0.2411  0.3738  0.4299  0.4095  0.0669  0.5319  0.3841  0.3571  0.4396  0.3758  0.3315  0.2978  0.3727  0.3773  0.0517  0.2852  0.2852  0.3080  0.3115  0.5609  0.4324  0.3575  0.4043  0.5742  0.5417  0.4793  0.2978  0.2978  0.3300  0.3490
+Gorilla_gorilla        1.5199  1.0555  1.3058  0.5583  0.8101  0.7512  0.6573  0.7418  0.6968  1.1932  0.6543  0.6018  0.5764  0.7032  0.8053  0.7695  0.5738  0.0761  0.2052  0.2819  0.2566  0.6484  0.6866  0.5817  0.7254  0.7123  0.6140  0.6463  0.6463  0.5619  0.6368  0.0961  0.1221  0.3248  0.4320  0.8425  1.0941  1.0397  0.5817  0.5817  0.6292  0.6941  0.6505
+Nasalis_larvatus       1.1990  0.6933  1.1508  0.5026  0.4888  0.5531  0.3996  0.5370  0.5273  0.7934  0.4225  0.3821  0.3918  0.4810  0.5274  0.5314  0.4886  0.0889  0.1273  0.1257  0.1078  0.4135  0.4222  0.4009  0.5198  0.4861  0.5425  0.5998  0.5998  0.4514  0.5122  0.1611  0.0000  0.1566  0.2372  0.6452  0.7837  0.7757  0.4009  0.4009  0.4275  0.5123  0.4834  0.1251
+Procolobus_badius      1.1601  0.7139  1.0531  0.5119  0.4528  0.5165  0.3932  0.4995  0.4896  0.7371  0.3464  0.3093  0.3199  0.3976  0.4923  0.5246  0.4157  0.0878  0.1366  0.1516  0.1169  0.3395  0.3441  0.3712  0.5395  0.4015  0.4658  0.5579  0.5579  0.3950  0.4247  0.1414  0.0000  0.1488  0.2274  0.6015  0.7118  0.7390  0.3712  0.3712  0.3503  0.4507  0.4141  0.1234  0.0000
+Colobus_guereza        1.0883  0.6947  1.0499  0.5108  0.4324  0.5264  0.4057  0.5170  0.5069  0.7165  0.3525  0.3146  0.3253  0.3809  0.4996  0.5325  0.4235  0.0900  0.1289  0.1441  0.1091  0.3453  0.3503  0.3779  0.5210  0.3847  0.4747  0.5104  0.5104  0.4023  0.4327  0.1452  0.0000  0.1586  0.2405  0.6238  0.7599  0.7509  0.3779  0.3779  0.3340  0.4337  0.4215  0.1267  0.0000  0.0000
+Macaca_fascicularis    1.2319  0.7125  1.1131  0.4931  0.4520  0.5426  0.3925  0.5264  0.5168  0.7355  0.3682  0.3303  0.3407  0.4211  0.5169  0.5502  0.4401  0.0877  0.1254  0.1403  0.1063  0.3608  0.3665  0.3938  0.5686  0.4253  0.4911  0.5276  0.5276  0.3944  0.4492  0.1587  0.0000  0.1543  0.2335  0.6317  0.7654  0.7570  0.3938  0.3938  0.3723  0.4758  0.4373  0.1232  0.0000  0.0000  0.0000
+Macaca_mulatta         1.2032  0.7028  1.0901  0.4872  0.4464  0.5361  0.3881  0.5199  0.5103  0.7247  0.3641  0.3267  0.3370  0.4162  0.5103  0.5430  0.4349  0.0869  0.1242  0.1390  0.1053  0.3569  0.3623  0.3893  0.5611  0.4204  0.4853  0.5209  0.5209  0.3900  0.4439  0.1571  0.0000  0.1528  0.2311  0.6233  0.7541  0.7453  0.3893  0.3893  0.3682  0.4701  0.4324  0.1221  0.0000  0.0000  0.0000  0.0000
+Arvicola_terrestris    1.4624  0.7142  1.8118  0.7056  0.9174  0.6245  0.6095  0.7577  0.5168  0.7118  0.6721  0.5302  0.5594  0.6502  0.5731  0.5775  0.5741  0.6621  0.5503  0.5414  0.5621  0.6887  0.5812  0.5896  0.6106  0.5930  0.5125  0.6641  0.6641  0.5635  0.6361  0.7424  0.4884  0.5553  0.6530  0.1478  0.1152  0.2474  0.5896  0.5896  0.5255  0.5033  0.4562  0.6959  0.5040  0.4688  0.4846  0.4944  0.4884
+Phodopus_sungorus      1.4974  0.7327  1.8610  0.6888  1.1725  0.5327  0.6269  0.7387  0.5341  0.6593  0.6243  0.4917  0.5189  0.6036  0.6372  0.6092  0.5321  0.7158  0.5672  0.5580  0.5787  0.6404  0.5388  0.5472  0.5963  0.5502  0.4755  0.7185  0.7185  0.5227  0.5896  0.8032  0.5600  0.5724  0.6709  0.1296  0.1447  0.2624  0.5472  0.5472  0.4875  0.4669  0.4232  0.7534  0.5787  0.5395  0.5585  0.5672  0.5600  0.0555
+Phodopus_roborovskii   1.8201  0.7418  1.3820  0.6630  1.0645  0.6827  0.7013  0.6761  0.4835  0.7401  0.7717  0.6140  0.6464  0.7481  0.5797  0.5842  0.6646  0.7626  0.6353  0.6245  0.6793  0.7889  0.6721  0.7157  0.7071  0.6843  0.5934  0.7662  0.7662  0.6515  0.7339  0.8588  0.5661  0.6414  0.7514  0.1797  0.1459  0.3055  0.7157  0.7157  0.6082  0.5833  0.5300  0.8045  0.5852  0.5453  0.5647  0.5734  0.5661  0.0274  0.0842
+Peromyscus_californicus   1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000
+Rattus_norvegicus      1.2847  1.1281  1.5357  0.7735  0.9940  0.6969  0.9539  0.8900  0.7083  0.8688  0.9169  0.7187  0.7561  0.8750  0.7990  0.8064  0.7401  0.8063  0.7056  0.6929  0.7164  0.8323  0.7107  0.6830  0.7103  0.8008  0.6596  0.5620  0.5620  0.6886  0.7762  1.0170  0.6292  0.5809  0.6818  0.2435  0.1420  0.2961  0.6830  0.6830  0.7113  0.6822  0.5893  0.8525  0.6516  0.5867  0.5978  0.6378  0.6292  0.1165  0.1464  0.1476  0.1466
+Acomys_cahirinus       1.7703  0.7253  1.6550  0.7526  0.9273  0.5281  0.7573  0.8931  0.6527  0.8428  0.7922  0.6328  0.6328  0.7685  0.7370  0.7058  0.5885  0.7083  0.5620  0.5531  0.5736  0.8094  0.6918  0.6328  0.6909  0.7040  0.5337  0.8429  0.8429  0.5755  0.6477  0.7938  0.5551  0.5671  0.6643  0.1288  0.1438  0.2605  0.6328  0.6328  0.6267  0.6016  0.4767  0.7449  0.5733  0.5347  0.5532  0.5620  0.5551  0.1146  0.0543  0.1451  0.1442  0.1783
+Acomys_cilicicus       1.7703  0.7253  1.6550  0.7526  0.9273  0.5281  0.7573  0.8931  0.6527  0.8428  0.7922  0.6328  0.6328  0.7685  0.7370  0.7058  0.5885  0.7083  0.5620  0.5531  0.5736  0.8094  0.6918  0.6328  0.6909  0.7040  0.5337  0.8429  0.8429  0.5755  0.6477  0.7938  0.5551  0.5671  0.6643  0.1288  0.1438  0.2605  0.6328  0.6328  0.6267  0.6016  0.4767  0.7449  0.5733  0.5347  0.5532  0.5620  0.5551  0.1146  0.0543  0.1451  0.1442  0.1783  0.0000
+Eptesicus_fuscus       0.9101  0.6394  3.0000  0.6538  0.7620  0.6416  0.5366  0.7334  0.6649  0.7466  0.2987  0.2170  0.2338  0.3454  0.2996  0.2800  0.1956  0.4308  0.3757  0.4707  0.4972  0.3227  0.3191  0.1713  0.1273  0.3488  0.2835  0.3847  0.3847  0.2643  0.2675  0.5137  0.3898  0.4000  0.4823  0.6128  0.5759  0.5015  0.1713  0.1713  0.2996  0.3891  0.2973  0.4788  0.3771  0.3708  0.3778  0.3945  0.3898  0.4803  0.4432  0.5628  0.5575  0.5651  0.5216  0.5216
+Eptesicus_bruneus      1.5816  0.7401  3.0000  0.6230  0.6481  0.6825  0.5183  0.6428  0.9295  0.7485  0.3657  0.3177  0.3567  0.4201  0.3310  0.3090  0.2325  0.5812  0.4340  0.5124  0.5379  0.3984  0.3980  0.1860  0.1547  0.4247  0.3328  0.4705  0.4705  0.4576  0.4644  0.6185  0.4952  0.4534  0.5577  0.8534  0.8322  0.6414  0.1860  0.1860  0.3670  0.4704  0.3247  0.5764  0.4828  0.4739  0.4838  0.5018  0.4952  0.6573  0.6050  0.7681  0.7590  0.8384  0.7081  0.7081  0.1159
+Eptesicus_brasiliensis   0.9101  0.6394  3.0000  0.6538  0.7620  0.6416  0.5366  0.7334  0.6649  0.7466  0.2987  0.2170  0.2338  0.3454  0.2996  0.2800  0.1956  0.4308  0.3757  0.4707  0.4972  0.3227  0.3191  0.1713  0.1273  0.3488  0.2835  0.3847  0.3847  0.2643  0.2675  0.5137  0.3898  0.4000  0.4823  0.6128  0.5759  0.5015  0.1713  0.1713  0.2996  0.3891  0.2973  0.4788  0.3771  0.3708  0.3778  0.3945  0.3898  0.4803  0.4432  0.5628  0.5575  0.5651  0.5216  0.5216  0.0000  0.1159
+Bos_taurus             1.7092  0.5486  4.2543  0.7940  0.8167  0.8996  0.6761  0.8487  1.0633  0.8296  0.5541  0.4329  0.3922  0.5631  0.6323  0.6063  0.1433  0.5884  0.5208  0.5686  0.7125  0.6142  0.5356  0.4585  0.3826  0.5692  0.1094  0.3986  0.3986  0.4236  0.4289  0.6928  0.6415  0.6036  0.6721  0.6896  0.6506  0.5831  0.4585  0.4585  0.4539  0.4267  0.1521  0.7612  0.6815  0.6193  0.6006  0.6503  0.6415  0.5522  0.5126  0.6377  0.6316  0.7083  0.5738  0.5738  0.3262  0.3796  0.3262
+Homo_sapiens           1.3447  1.0789  1.2382  0.7097  0.7873  0.7328  0.6416  0.7228  0.7171  1.0848  0.6387  0.5879  0.5637  0.6858  0.7158  0.6841  0.5608  0.0908  0.1474  0.2567  0.2521  0.6011  0.6007  0.5484  0.7197  0.6944  0.5689  0.5975  0.5975  0.5200  0.5892  0.0946  0.1201  0.2970  0.3983  0.8634  1.0580  1.0055  0.5484  0.5484  0.6143  0.6771  0.6141  0.0613  0.1231  0.1214  0.1247  0.1213  0.1201  0.7154  0.7731  0.8250  0.8157  0.8585  0.7644  0.7644  0.4682  0.6749  0.468 [...]
+Clethrionomys_glareolus   2.2448  1.0445  1.3944  0.9719  2.6311  1.2602  0.9799  0.9819  0.5672  1.1899  0.8732  0.6141  0.6489  0.8455  0.8579  0.8189  0.8038  1.3080  0.9824  0.9591  0.9918  0.8025  0.6765  0.9000  0.9890  0.9589  0.8472  1.3272  1.3272  0.8604  0.7858  1.3228  0.9640  0.8911  1.0637  0.4136  0.4109  0.1735  0.9000  0.9000  0.8415  0.6483  0.7631  1.4356  1.0123  0.9318  0.9267  0.9824  0.9640  0.3176  0.2699  0.2724  0.2703  0.4416  0.3308  0.3308  0.7365  0.9513  0. [...]
+Microtus_agrestis      1.9861  0.7916  1.4632  0.6687  1.4151  0.6545  0.6729  0.7581  0.4784  0.7911  0.6700  0.5853  0.6176  0.7989  0.8083  0.7726  0.6826  0.8602  0.6742  0.6620  0.6858  0.7610  0.6428  0.6869  0.7553  0.7286  0.6625  0.8659  0.8659  0.5899  0.6679  0.9803  0.6646  0.6128  0.7226  0.1645  0.1976  0.2879  0.6869  0.6869  0.6449  0.6176  0.5896  0.9135  0.6897  0.6756  0.6666  0.6742  0.6646  0.1209  0.1030  0.0881  0.0875  0.2179  0.1509  0.1509  0.5644  0.8087  0.564 [...]
+Peromyscus_leucopus    1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000  0.0000  0.1466  0.1442  0.1442  0.5575  0.7590  0.557 [...]
+Apodemus_sylvaticus    2.0896  0.9489  3.5492  0.8891  0.9462  0.8007  0.8097  1.0278  0.6669  0.9537  0.9060  0.7113  0.7481  0.8648  0.7118  0.7180  0.7323  0.8834  0.7343  0.7208  0.7448  0.9089  0.7791  0.7481  0.7802  0.7920  0.6532  0.8441  0.8441  0.7172  0.8081  1.0033  0.6553  0.6709  0.7854  0.1737  0.1107  0.2550  0.7481  0.7481  0.7040  0.6754  0.5839  0.9372  0.6790  0.6769  0.6570  0.6643  0.6553  0.0703  0.0988  0.0995  0.0989  0.1586  0.1133  0.1133  0.5596  0.7485  0.559 [...]
+Murina_cyclotis        1.3780  0.7965  3.0000  0.8923  0.7688  0.7978  0.6764  0.8301  0.8435  0.8389  0.5004  0.3944  0.4138  0.5041  0.4463  0.4231  0.2765  0.6880  0.5119  0.6263  0.6947  0.5208  0.4173  0.2469  0.1283  0.5097  0.3729  0.4649  0.4649  0.4468  0.4529  0.6559  0.6226  0.5437  0.6461  0.6907  0.6493  0.5679  0.2469  0.2469  0.4471  0.5574  0.3869  0.7259  0.5784  0.5993  0.5797  0.6315  0.6226  0.5447  0.5031  0.6353  0.6289  0.6380  0.5887  0.5887  0.1253  0.1929  0.125 [...]
+Ovis_dalli             1.2189  0.5518  2.9753  0.8740  0.7610  0.7422  0.7480  0.8465  1.0556  0.9123  0.5573  0.4378  0.3975  0.5662  0.7091  0.6812  0.1720  0.5712  0.5067  0.5716  0.7130  0.6164  0.5391  0.4239  0.3516  0.5723  0.1367  0.3051  0.3051  0.3695  0.3740  0.6701  0.6434  0.6061  0.6735  0.7618  0.7194  0.6506  0.4239  0.4239  0.4585  0.4805  0.1956  0.7353  0.6827  0.6215  0.5731  0.6519  0.6434  0.6152  0.5722  0.7063  0.6993  0.5805  0.6370  0.6370  0.2777  0.3719  0.277 [...]
+Ovis_aries             1.4342  0.5069  2.2685  0.8065  0.7481  0.8291  0.6882  0.7787  0.9670  0.8424  0.5103  0.3960  0.3578  0.5183  0.6541  0.6277  0.1419  0.5217  0.4615  0.5236  0.6576  0.5677  0.4925  0.3842  0.3137  0.5237  0.1083  0.3500  0.3500  0.3321  0.3360  0.6128  0.5911  0.5554  0.6187  0.7016  0.6623  0.5950  0.3842  0.3842  0.4160  0.4372  0.1659  0.6740  0.6269  0.5699  0.5520  0.5987  0.5911  0.5635  0.5236  0.6494  0.6432  0.6519  0.5851  0.5851  0.2420  0.3295  0.242 [...]
+Pan_paniscus           1.2338  1.0357  1.0655  0.6791  0.8006  0.7813  0.6829  0.6915  0.6113  0.9803  0.6436  0.5905  0.5652  0.6929  0.7959  0.7596  0.5622  0.0767  0.2108  0.2901  0.2637  0.5414  0.6585  0.5704  0.6277  0.7020  0.6030  0.6719  0.6719  0.5822  0.6259  0.0799  0.1251  0.3319  0.4423  0.8803  1.1548  1.0337  0.5704  0.5704  0.6181  0.6838  0.6400  0.0466  0.1261  0.1265  0.1300  0.1264  0.1251  0.7239  0.7846  0.7521  0.7438  0.8913  0.7754  0.7754  0.4306  0.6632  0.430 [...]
+Pan_troglodytes        1.1769  1.0020  1.1641  0.6491  0.6797  0.7091  0.6161  0.7372  0.6165  1.2026  0.5801  0.5301  0.5082  0.6247  0.6771  0.6453  0.4837  0.0460  0.1732  0.2491  0.2247  0.6080  0.6078  0.4828  0.6072  0.6324  0.5128  0.6045  0.6045  0.4932  0.5311  0.0479  0.0922  0.2476  0.3462  0.7544  0.8792  0.7810  0.4828  0.4828  0.5560  0.6167  0.5474  0.0314  0.0945  0.1100  0.0958  0.0931  0.0922  0.6536  0.7099  0.7591  0.7506  0.7226  0.6653  0.6653  0.3850  0.6185  0.385 [...]
+Trachypithecus_cristatus   1.3257  0.6671  1.2161  0.5393  0.5393  0.5901  0.4431  0.5885  0.5666  0.9324  0.4671  0.4253  0.4259  0.5292  0.5797  0.5842  0.5552  0.1179  0.1740  0.1719  0.1364  0.4570  0.4681  0.4608  0.6214  0.4275  0.6106  0.6743  0.6743  0.4875  0.5502  0.1923  0.0271  0.2048  0.2891  0.7027  0.8513  0.8465  0.4608  0.4608  0.4727  0.5619  0.5464  0.1555  0.0276  0.0273  0.0280  0.0273  0.0271  0.5532  0.6316  0.6389  0.6328  0.7099  0.6256  0.6256  0.4650  0.5847  0 [...]
+Peromyscus_maniculatus   1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000  0.0000  0.1466  0.1442  0.1442  0.5575  0.7590  0.5 [...]
+Peromyscus_polionotus   2.1873  0.7342  1.5704  0.7252  1.0496  0.7464  0.6943  0.7403  0.5350  0.7323  0.6914  0.6735  0.7083  0.6695  0.5742  0.5786  0.7292  0.7545  0.6292  0.6186  0.6404  0.7079  0.6000  0.6082  0.6300  0.6117  0.6507  0.8401  0.8401  0.7142  0.8044  0.8487  0.5610  0.6353  0.7435  0.2129  0.1776  0.3459  0.6082  0.6082  0.5432  0.5208  0.5819  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0555  0.1138  0.0271  0.0269  0.1797  0.1767  0.1767  0.6214  0.7590  0.62 [...]
+Myotis_lucifugus       1.3497  0.6459  3.0000  0.5718  0.7060  0.6176  0.5035  0.5871  0.6670  0.6434  0.3237  0.2800  0.3255  0.3835  0.3511  0.3301  0.2271  0.6297  0.5029  0.4944  0.5227  0.3645  0.3449  0.1624  0.1345  0.3876  0.3377  0.4728  0.4728  0.4455  0.4520  0.5316  0.4818  0.4411  0.5310  0.7642  0.7468  0.6603  0.1624  0.1624  0.3340  0.4307  0.2936  0.6264  0.4696  0.4612  0.4706  0.4881  0.4818  0.6015  0.5545  0.5611  0.5556  0.7656  0.6487  0.6487  0.1134  0.1307  0.113 [...]
+Myotis_daubentoni      1.5892  0.6707  3.0000  0.6938  0.9032  0.6754  0.5904  0.7263  0.6939  0.7187  0.3789  0.3312  0.3695  0.4330  0.3696  0.3473  0.2749  0.6567  0.5000  0.5825  0.6092  0.3175  0.3607  0.2193  0.1886  0.4377  0.3695  0.4940  0.4940  0.4976  0.5051  0.5569  0.5624  0.4978  0.5955  0.9719  0.9012  0.8040  0.2193  0.2193  0.3802  0.4828  0.3604  0.6542  0.5510  0.5712  0.5522  0.5701  0.5624  0.7005  0.6460  0.6543  0.6474  0.8646  0.8222  0.8222  0.1486  0.1676  0.148 [...]
+Chalinolobus_beatrix   0.9802  0.7417  3.0000  0.5740  0.6285  0.6400  0.4976  0.7348  0.6639  0.5739  0.3339  0.2886  0.3069  0.3849  0.3193  0.2982  0.2278  0.4759  0.3873  0.3813  0.4055  0.3658  0.3639  0.1629  0.1349  0.3889  0.3388  0.4570  0.4570  0.4471  0.4536  0.4447  0.3547  0.3397  0.4173  0.5451  0.5409  0.4657  0.1629  0.1629  0.3351  0.4322  0.2945  0.5311  0.3414  0.3357  0.3421  0.3590  0.3547  0.4741  0.4361  0.5588  0.5533  0.5939  0.4593  0.4593  0.1137  0.1013  0.113 [...]
+Pipistrellus_savii     1.5737  0.5971  3.0000  0.7746  0.6467  0.6811  0.5173  0.5698  0.9269  0.6685  0.3651  0.3171  0.3561  0.3676  0.3304  0.3085  0.1528  0.5801  0.3306  0.3997  0.4223  0.3977  0.3973  0.1857  0.1545  0.3715  0.2447  0.4696  0.4696  0.3547  0.3595  0.6173  0.4943  0.3474  0.4365  0.7609  0.7433  0.5686  0.1857  0.1857  0.3182  0.4148  0.2391  0.7260  0.4819  0.4730  0.4830  0.5009  0.4943  0.5845  0.5380  0.6848  0.6773  0.7485  0.6321  0.6321  0.1157  0.0624  0.115 [...]
+Corynorhinus_townsendii   1.1615  0.7403  3.0000  0.7439  0.7196  0.6047  0.4814  0.5513  0.7789  0.6584  0.3161  0.2377  0.2549  0.3665  0.3590  0.3374  0.1862  0.5811  0.4572  0.5337  0.5469  0.3536  0.3512  0.1767  0.1444  0.3701  0.2695  0.3946  0.3946  0.3822  0.3873  0.5498  0.4970  0.4227  0.5074  0.7504  0.6993  0.5510  0.1767  0.1767  0.3196  0.4110  0.2635  0.6464  0.4850  0.5045  0.4861  0.5036  0.4970  0.5419  0.5006  0.6317  0.6253  0.6696  0.6401  0.6401  0.0788  0.0475  0. [...]
+Trachypithecus_geei    1.1639  0.7331  1.0806  0.4847  0.4808  0.5334  0.3938  0.5283  0.5075  0.8390  0.4162  0.3766  0.3790  0.4735  0.5187  0.5226  0.4977  0.0865  0.1401  0.1384  0.1049  0.4076  0.4158  0.4109  0.5579  0.4785  0.5505  0.6071  0.6071  0.4358  0.4935  0.1564  0.0000  0.1692  0.2491  0.6341  0.7686  0.7602  0.4109  0.4109  0.4211  0.5042  0.4921  0.1215  0.0000  0.0000  0.0000  0.0000  0.0000  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4124  0.5216  0.412 [...]
+Trachypithecus_pileatus   1.3257  0.6658  1.0806  0.5384  0.5383  0.5890  0.4424  0.5283  0.5655  0.8390  0.4663  0.4246  0.4253  0.4735  0.5786  0.5831  0.4453  0.1178  0.1078  0.1065  0.0748  0.4562  0.4673  0.4600  0.6202  0.4785  0.4959  0.6729  0.6729  0.3881  0.4416  0.1920  0.0270  0.1355  0.2115  0.6341  0.7686  0.7602  0.4600  0.4600  0.4211  0.5042  0.4423  0.1553  0.0276  0.0273  0.0279  0.0273  0.0270  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4642  0.5835  0. [...]
+Semnopithecus_entellus   1.3516  0.9158  1.2435  0.6755  0.6549  0.7942  0.5635  0.6606  0.7039  1.0712  0.5918  0.5440  0.5682  0.6687  0.6609  0.6664  0.5677  0.2057  0.2509  0.2476  0.2434  0.5776  0.5971  0.5245  0.6981  0.6092  0.6801  0.7662  0.7662  0.6816  0.7676  0.2914  0.1008  0.2861  0.3825  0.8832  1.0799  0.5421  0.5245  0.5245  0.5998  0.7076  0.6175  0.2517  0.1032  0.1019  0.1044  0.1017  0.1008  0.6971  0.7920  0.8026  0.7937  0.8938  0.7834  0.7834  0.5264  0.5893  0.5 [...]
+Trachypithecus_francoisi   1.1639  0.7331  1.0806  0.4847  0.4808  0.5334  0.3938  0.5283  0.5075  0.8390  0.4162  0.3766  0.3790  0.4735  0.5187  0.5226  0.4977  0.0865  0.1401  0.1384  0.1049  0.4076  0.4158  0.4109  0.5579  0.4785  0.5505  0.6071  0.6071  0.4358  0.4935  0.1564  0.0000  0.1692  0.2491  0.6341  0.7686  0.7602  0.4109  0.4109  0.4211  0.5042  0.4921  0.1215  0.0000  0.0000  0.0000  0.0000  0.0000  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4124  0.5216  0 [...]
+Mus_famulus            1.4211  0.9829  2.6049  0.9685  0.9293  0.6414  0.7549  1.0705  0.7217  1.0261  0.8315  0.6495  0.6840  0.7927  0.8017  0.8092  0.8236  1.0175  0.8376  0.8206  0.8475  0.8491  0.7245  0.8403  0.7375  0.8913  0.7310  0.8136  0.8136  0.8053  0.9115  1.1737  0.7452  0.7647  0.7313  0.1769  0.0542  0.3423  0.8403  0.8403  0.6431  0.6164  0.6519  1.0888  0.7747  0.7710  0.7506  0.7565  0.7452  0.1021  0.1320  0.1330  0.1321  0.2124  0.1472  0.1472  0.7030  0.9729  0.703 [...]
+Mus_pahari             1.6730  0.7626  1.6476  0.9238  0.9341  0.6117  0.8837  1.0764  0.8026  1.0316  0.7938  0.6189  0.6521  0.7563  0.7834  0.7906  0.7850  0.7850  0.6518  0.6403  0.6631  0.8113  0.6904  0.8016  0.7022  0.8499  0.6975  0.9088  0.9088  0.7680  0.8685  0.8874  0.5799  0.5932  0.5659  0.1774  0.1129  0.3219  0.8016  0.8016  0.7531  0.5874  0.6221  0.8298  0.6000  0.5990  0.5790  0.5876  0.5799  0.1024  0.1323  0.1333  0.1325  0.2307  0.0850  0.0850  0.6688  0.9229  0.668 [...]
+Mus_cookii             1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Plecotus_townsemdii    1.1615  0.7403  3.0000  0.7439  0.7196  0.6047  0.4814  0.5513  0.7789  0.6584  0.3161  0.2377  0.2549  0.3665  0.3590  0.3374  0.1862  0.5811  0.4572  0.5337  0.5469  0.3536  0.3512  0.1767  0.1444  0.3701  0.2695  0.3946  0.3946  0.3822  0.3873  0.5498  0.4970  0.4227  0.5074  0.7504  0.6993  0.5510  0.1767  0.1767  0.3196  0.4110  0.2635  0.6464  0.4850  0.5045  0.4861  0.5036  0.4970  0.5419  0.5006  0.6317  0.6253  0.6696  0.6401  0.6401  0.0788  0.0475  0.078 [...]
+Plecotus_auritus       1.0246  0.7312  3.0000  0.7098  0.7047  0.6004  0.4807  0.6454  0.7672  0.6722  0.3412  0.2628  0.2798  0.3922  0.3559  0.3356  0.1536  0.5257  0.4118  0.5276  0.5444  0.3710  0.3695  0.1501  0.1056  0.3961  0.2352  0.3465  0.3465  0.2970  0.3005  0.4953  0.4959  0.4236  0.5058  0.6792  0.6397  0.5636  0.1501  0.1501  0.3450  0.4369  0.2672  0.5823  0.4841  0.4756  0.4851  0.5022  0.4959  0.5393  0.4993  0.6262  0.6201  0.6288  0.5816  0.5816  0.0291  0.0810  0.029 [...]
+Trachypithecus_johnii   1.1080  0.6709  1.1367  0.5422  0.4843  0.5932  0.3964  0.5321  0.5302  0.7642  0.3950  0.3559  0.3814  0.4507  0.4941  0.4977  0.4232  0.1025  0.1408  0.1391  0.1370  0.3868  0.3939  0.3449  0.4764  0.4553  0.4731  0.5506  0.5506  0.4901  0.5246  0.1573  0.0135  0.1702  0.2506  0.6390  0.7753  0.7671  0.3449  0.3449  0.3996  0.4807  0.4212  0.1390  0.0137  0.0136  0.0139  0.0136  0.0135  0.4996  0.5734  0.5798  0.5745  0.6452  0.5682  0.5682  0.3432  0.4404  0.34 [...]
+Trachypithecus_vetulus   1.3516  0.9158  1.2435  0.6755  0.6549  0.7942  0.5635  0.6606  0.7039  1.0712  0.5918  0.5440  0.5682  0.6687  0.6609  0.6664  0.5677  0.2057  0.2509  0.2476  0.2434  0.5776  0.5971  0.5245  0.6981  0.6092  0.6801  0.7662  0.7662  0.6816  0.7676  0.2914  0.1008  0.2861  0.3825  0.8832  1.0799  0.5421  0.5245  0.5245  0.5998  0.7076  0.6175  0.2517  0.1032  0.1019  0.1044  0.1017  0.1008  0.6971  0.7920  0.8026  0.7937  0.8938  0.7834  0.7834  0.5264  0.5893  0.5 [...]
+Trachypithecus_obscurus   1.3257  0.6671  1.2161  0.5393  0.5393  0.5901  0.4431  0.5885  0.5666  0.9324  0.4671  0.4253  0.4259  0.5292  0.5797  0.5842  0.5552  0.1179  0.1740  0.1719  0.1364  0.4570  0.4681  0.4608  0.6214  0.4275  0.6106  0.6743  0.6743  0.4875  0.5502  0.1923  0.0271  0.2048  0.2891  0.7027  0.8513  0.8465  0.4608  0.4608  0.4727  0.5619  0.5464  0.1555  0.0276  0.0273  0.0280  0.0273  0.0271  0.5532  0.6316  0.6389  0.6328  0.7099  0.6256  0.6256  0.4650  0.5847  0. [...]
+Trachypithecus_phayrei   1.3257  0.6866  1.2161  0.5539  0.5550  0.6062  0.4546  0.6056  0.5830  0.9784  0.4793  0.4363  0.4365  0.5440  0.5739  0.5785  0.5409  0.0884  0.1271  0.1765  0.1391  0.4686  0.4808  0.4760  0.6300  0.4386  0.5808  0.6425  0.6425  0.4735  0.5361  0.1602  0.0275  0.2092  0.2957  0.7247  0.8812  0.8779  0.4760  0.4760  0.4853  0.5778  0.5651  0.1244  0.0282  0.0278  0.0285  0.0278  0.0275  0.5688  0.6502  0.6580  0.6515  0.7324  0.6439  0.6439  0.4503  0.5847  0.4 [...]
+Mus_spretus            1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Mus_spicilegus         1.3121  0.7937  1.7527  0.7837  1.2259  0.6059  0.7500  0.8595  0.6817  0.8662  0.6748  0.5227  0.5516  0.6417  0.7961  0.7619  0.6639  0.8610  0.6791  0.6670  0.6901  0.6914  0.5835  0.6797  0.6243  0.7200  0.5921  0.8976  0.8976  0.6508  0.7341  0.9781  0.6696  0.6190  0.5910  0.1128  0.1122  0.2591  0.6797  0.6797  0.6392  0.4960  0.5282  0.9133  0.6944  0.6921  0.6719  0.6791  0.6696  0.1017  0.0702  0.1325  0.1316  0.2292  0.0845  0.0845  0.5613  0.7683  0.561 [...]
+Mus_macedonicus        1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Mus_musculus_domesticus   1.3121  0.7937  1.7527  0.7837  1.2259  0.6059  0.7500  0.8595  0.6817  0.8662  0.6748  0.5227  0.5516  0.6417  0.7961  0.7619  0.6639  0.8610  0.6791  0.6670  0.6901  0.6914  0.5835  0.6797  0.6243  0.7200  0.5921  0.8976  0.8976  0.6508  0.7341  0.9781  0.6696  0.6190  0.5910  0.1128  0.1122  0.2591  0.6797  0.6797  0.6392  0.4960  0.5282  0.9133  0.6944  0.6921  0.6719  0.6791  0.6696  0.1017  0.0702  0.1325  0.1316  0.2292  0.0845  0.0845  0.5613  0.7683  0. [...]
+Mus_musculus_musculus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.61 [...]
+Mus_musculus_bactrianus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0. [...]
+Mus_musculus_castaneus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.6 [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.t
new file mode 100644
index 0000000..b0e1f16
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/2NG.t
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      2.6314
+Erinaceus_europaeus    1.6631  2.4482
+Oryctolagus_cuniculus   1.2822  1.1927  1.2847
+Cynocephalus_variegatus   1.7499  0.8957  2.6598  0.9631
+Tupaia_belangeri       1.1117  1.2922  2.7833  0.7710  0.8011
+Otolemur_garnettii     1.7084  1.1421  2.4546  0.8389  0.5905  0.5358
+Cavia_porcellus        1.7812  1.3142  2.7267  0.7063  0.7862  0.6343  0.5612
+Dipodomys_ordii        0.9145  1.0277  1.0706  0.5999  0.8973  0.8202  0.6450  0.7267
+Felis_catus            1.9070  1.2255  2.8861  1.1302  1.1792  1.2359  0.7345  1.0356  1.0902
+Rhinopoma_hardwickei   1.1115  1.1345  2.7270  0.9743  1.0224  0.8862  0.6721  0.8223  0.7484  0.7811
+Pteropus_hypomelanus   1.0156  1.0199  2.6333  0.7692  0.9270  0.6275  0.4650  0.7744  0.6893  0.6254  0.1717
+Pteropus_vampyrus      0.9833  1.0761  2.5972  0.7267  0.8940  0.6177  0.4252  0.7256  0.6599  0.7370  0.2426  0.0637
+Desmodus_rotundus      1.2193  1.0575  2.6610  0.8451  0.9566  0.7394  0.6453  0.7481  0.8912  0.6114  0.2004  0.1361  0.2006
+Equus_asinus           1.5437  1.4295  2.4568  0.8405  0.9949  0.8443  0.8143  1.0174  0.9845  0.7699  0.5957  0.5061  0.5507  0.3942
+Equus_caballus         1.4849  1.4083  2.3057  0.8826  1.0566  0.8903  0.8554  1.0556  1.0218  0.8057  0.6366  0.5435  0.5922  0.4371  0.0405
+Antilocapra_americana   1.2815  1.1624  2.4091  0.8905  1.0346  0.9567  0.7620  0.9328  1.0318  0.7865  0.5100  0.3983  0.4640  0.4856  0.6347  0.6574
+Hylobates_lar          1.3015  1.0978  1.1860  0.8469  0.9394  0.9577  0.6471  1.0330  0.7575  1.3579  0.9945  0.8409  0.7744  0.9645  1.1367  1.1573  1.0175
+Callithrix_jacchus     1.3196  1.0953  1.3648  0.6975  0.8629  0.7875  0.5436  0.7882  0.8256  1.0212  0.9123  0.7641  0.7536  0.8239  0.8716  0.9186  0.8514  0.4649
+Saguinus_imperator     1.5137  1.0258  1.6132  0.6445  0.7990  0.7349  0.5656  0.7416  0.8477  1.0353  0.8991  0.7514  0.7394  0.7396  0.8717  0.8724  0.8837  0.5416  0.1032
+Saimiri_sciureus       1.3746  0.9836  1.4401  0.5199  0.7073  0.6078  0.4663  0.6090  0.6598  1.0153  0.7661  0.6773  0.6433  0.6405  0.7870  0.8363  0.8376  0.4910  0.2095  0.1893
+Hipposideros_commersoni   1.2238  1.2135  1.9968  1.0755  1.1430  0.9801  0.8137  1.0741  0.8273  0.7273  0.3854  0.3137  0.3856  0.3647  0.7571  0.8069  0.7679  1.0326  0.9639  0.9537  0.9322
+Rhinolophus_ferrumequinum   1.1656  1.1999  2.6571  1.0837  1.1835  1.0110  0.8163  1.1114  0.8079  0.8865  0.4011  0.3302  0.3858  0.3893  0.8064  0.8543  0.7653  0.9454  0.9696  0.9575  0.9376  0.2177
+Chilonatalus_micropus   1.2535  1.2319  2.7329  0.8172  0.8329  0.7636  0.5362  0.7209  0.8654  0.6955  0.3796  0.2915  0.3985  0.2828  0.2986  0.3420  0.4313  0.9462  0.7563  0.7467  0.6172  0.5897  0.6171
+Otonycteris_hemprichi   1.5851  1.1414  2.9055  1.0956  0.9500  0.8295  0.7531  0.8354  1.1463  0.8417  0.4599  0.4148  0.5253  0.4374  0.4799  0.4761  0.5839  1.1617  1.0035  1.0419  0.9148  0.7272  0.7570  0.2785
+Monophyllus_redmani    1.3525  1.0123  2.6732  0.9062  1.0305  0.7927  0.6470  0.8595  0.8246  0.6133  0.2538  0.1897  0.2542  0.0902  0.4653  0.5062  0.4860  0.9669  0.8250  0.8113  0.7168  0.4219  0.4474  0.3456  0.4380
+Elaphodus_cephalophus   1.2708  1.0790  2.4425  0.9693  1.0577  0.9737  0.8409  0.9637  1.1042  0.9425  0.6713  0.5002  0.5579  0.5970  0.6762  0.6945  0.1885  1.0594  0.8912  0.9556  0.9406  0.8799  0.8424  0.5093  0.6398  0.5978
+Hippopotamus_amphibius   1.1841  1.1572  2.8319  0.9720  0.8446  0.7237  0.7251  1.0515  1.1216  0.9393  0.7230  0.4869  0.5404  0.6659  0.6951  0.6962  0.5070  1.0028  0.8602  0.9608  0.9711  0.9043  0.8617  0.5415  0.6379  0.6680  0.4761
+Hexaprotodon_liberiensis   1.1841  1.1572  2.8319  0.9720  0.8446  0.7237  0.7251  1.0515  1.1216  0.9393  0.7230  0.4869  0.5404  0.6659  0.6951  0.6962  0.5070  1.0028  0.8602  0.9608  0.9711  0.9043  0.8617  0.5415  0.6379  0.6680  0.4761  0.0000
+Potamochoerus_porcus   1.4072  1.1959  3.2537  0.8583  1.0092  0.7638  0.5076  0.8273  0.8612  0.7527  0.4347  0.2693  0.2857  0.4125  0.5605  0.6020  0.4293  0.9205  0.7810  0.8428  0.7632  0.6773  0.6809  0.4972  0.6284  0.4130  0.5192  0.5890  0.5890
+Sus_scrofa             1.4569  1.2525  2.2649  0.9145  1.0803  0.8091  0.5430  0.8829  0.8032  0.8040  0.4587  0.2922  0.3084  0.4361  0.5240  0.5664  0.4535  0.9660  0.8170  0.8811  0.8020  0.7038  0.7074  0.5207  0.6535  0.4366  0.5439  0.6248  0.6248  0.0204
+Pongo_pygmaeus         1.3854  1.3789  1.5111  0.8041  0.8292  0.7704  0.5107  0.8320  0.7625  1.1676  0.8934  0.7453  0.6843  0.8723  0.9202  0.9372  0.9014  0.2496  0.5153  0.5956  0.4710  0.9992  0.9057  0.7745  0.9218  0.8752  0.8894  0.9115  0.9115  0.8187  0.8469
+Papio_cynocephalus     1.2900  1.0616  1.1273  0.6600  0.6286  0.7242  0.3928  0.7227  0.5956  0.9519  0.6871  0.5518  0.4839  0.6450  0.8156  0.8517  0.8642  0.2705  0.3686  0.3688  0.3220  0.7403  0.7406  0.7018  0.8987  0.6457  0.9387  0.8350  0.8350  0.7019  0.7383  0.2731
+Ateles_sp              1.3266  0.9260  1.6106  0.6706  0.7977  0.6851  0.5190  0.6887  0.7488  0.9915  0.8210  0.7246  0.7135  0.6887  0.9029  0.9562  0.9192  0.4725  0.2546  0.2318  0.2096  0.8828  0.8624  0.7151  0.9369  0.7632  0.9917  0.9063  0.9063  0.8525  0.8941  0.5514  0.3692
+Alouatta_seniculus     1.5507  0.9743  2.0013  0.6958  0.8473  0.7368  0.6487  0.7786  0.8590  1.0796  0.9642  0.8581  0.8462  0.8166  1.0128  1.0660  0.9569  0.5510  0.3037  0.2767  0.2545  1.0339  1.0183  0.8313  0.9945  0.9033  1.0920  0.9541  0.9541  0.9922  1.0420  0.6686  0.4684  0.0820
+Sigmodon_hispidus      2.0394  1.2892  1.6765  0.8126  1.2509  0.7424  0.7477  0.9066  0.7013  1.1664  0.9698  0.8007  0.7698  0.9465  1.0228  1.0607  0.9934  0.9808  0.8971  0.9176  0.8326  1.1888  1.0651  0.8747  0.9276  0.8853  0.9739  1.1574  1.1574  0.8367  0.8972  0.9188  0.6949  0.8997  0.9359
+Micromys_minutus       1.7278  1.3691  2.8773  0.8535  0.9517  0.7347  0.6855  0.9641  0.6997  1.1359  1.0084  0.7748  0.7445  0.9192  0.8614  0.9167  0.9552  1.1620  0.9548  0.9741  0.8909  1.1581  1.0357  0.8334  0.8773  0.8586  0.9349  0.9424  0.9424  0.7967  0.8535  1.1296  0.7955  0.8432  0.8819  0.1472
+Meriones_unguiculatus   1.6511  1.1904  1.7305  0.8685  1.1358  1.1445  0.7021  0.9514  0.6792  1.0795  0.9318  0.7068  0.6733  0.8428  0.8998  0.9428  0.8732  1.0712  0.9011  0.9211  0.8362  1.0755  0.9624  0.7690  0.8628  0.8112  0.8488  1.0450  1.0450  0.7335  0.7858  0.9981  0.7528  0.7878  0.9392  0.2787  0.2497
+Natalus_micropus       1.2535  1.2319  2.7329  0.8172  0.8329  0.7636  0.5362  0.7209  0.8654  0.6955  0.3796  0.2915  0.3985  0.2828  0.2986  0.3420  0.4313  0.9462  0.7563  0.7467  0.6172  0.5897  0.6171  0.0000  0.2785  0.3456  0.5093  0.5415  0.5415  0.4972  0.5207  0.7745  0.7018  0.7151  0.8313  0.8747  0.8334  0.7690
+Natalus_stramineus     1.2843  1.2619  2.7639  0.8425  0.8616  0.7890  0.5607  0.7478  0.8921  0.7177  0.3570  0.3133  0.4211  0.3049  0.3212  0.3655  0.4552  0.9749  0.7833  0.7744  0.6426  0.6149  0.6426  0.0201  0.3007  0.3677  0.5326  0.5640  0.5640  0.4748  0.4981  0.8008  0.7280  0.7430  0.8604  0.9002  0.8587  0.7948  0.0201
+Pteronotus_parnellii   1.3364  1.0569  2.6669  0.7922  0.7889  0.6492  0.5232  0.6571  0.7571  0.6108  0.2264  0.1621  0.2266  0.0901  0.4280  0.4701  0.4543  0.9131  0.7841  0.7071  0.6062  0.3924  0.4174  0.2540  0.4047  0.1412  0.5614  0.5754  0.5754  0.3803  0.4037  0.8178  0.6097  0.6552  0.7783  0.8227  0.6967  0.7294  0.2540  0.2760
+Mormoops_megalophylla   1.1936  0.9981  2.5057  1.0174  1.0802  0.8905  0.5946  0.8422  0.9652  0.5455  0.2483  0.1833  0.2265  0.1110  0.5177  0.5112  0.4857  0.9621  0.8598  0.7968  0.7505  0.4161  0.3865  0.4004  0.4946  0.1621  0.5662  0.6519  0.6519  0.4459  0.4697  0.8549  0.6839  0.7969  0.9406  0.8112  0.7851  0.7197  0.4004  0.4228  0.1619
+Moschus_sp             1.2238  1.0593  2.2021  0.8973  1.0383  0.9051  0.7715  0.9658  0.9637  0.8003  0.6108  0.4456  0.5044  0.5375  0.6610  0.6812  0.2095  1.0657  0.8943  0.8919  0.8741  0.7807  0.7473  0.4546  0.6340  0.5381  0.1416  0.4522  0.4522  0.5502  0.5749  0.9541  0.8724  0.8918  0.9860  0.8985  0.8621  0.8082  0.4546  0.4777  0.5041  0.5081
+Gorilla_gorilla        1.5967  1.4245  1.4650  0.8775  1.1606  1.0468  0.7720  1.1157  0.9292  1.4783  1.0893  0.9290  0.8562  1.0449  1.2552  1.2750  1.1624  0.2052  0.5153  0.5954  0.5934  1.1188  1.0382  1.0447  1.2318  1.0473  1.2383  1.0894  1.0894  1.0107  1.0580  0.2928  0.3608  0.5271  0.6191  1.0208  1.2688  1.1752  1.0447  1.0745  0.9937  1.0426  1.2472
+Nasalis_larvatus       1.4000  1.1706  1.2585  0.7613  0.7721  0.8274  0.4839  0.8309  0.6968  1.1104  0.8336  0.6895  0.6123  0.7899  0.9325  0.9629  1.0214  0.3154  0.4407  0.4654  0.4169  0.8901  0.8331  0.8107  1.0020  0.7908  1.0980  0.9638  0.9638  0.8468  0.8868  0.3170  0.1219  0.4164  0.5171  0.7968  0.9008  0.8588  0.8107  0.8387  0.7515  0.8248  1.0267  0.3839
+Procolobus_badius      1.3215  1.1489  1.1587  0.7147  0.7091  0.7923  0.4601  0.7422  0.6619  1.0086  0.7387  0.6261  0.5513  0.7192  0.8669  0.9029  0.9198  0.3383  0.3923  0.3926  0.3452  0.8233  0.8235  0.7791  0.9772  0.7197  1.0238  0.9255  0.9255  0.7825  0.8146  0.3383  0.0599  0.4404  0.4921  0.7580  0.8484  0.8210  0.7791  0.8069  0.6847  0.7568  0.9568  0.4312  0.1862
+Colobus_guereza        1.4039  1.2007  1.2628  0.8142  0.7592  0.8199  0.5313  0.8525  0.7418  1.0834  0.8243  0.6801  0.6008  0.7708  0.8970  0.9335  1.0126  0.4086  0.4653  0.4650  0.4663  0.8830  0.8832  0.8357  1.0022  0.7712  1.0869  0.9139  0.9139  0.8388  0.8714  0.4073  0.1219  0.4649  0.5670  0.8387  0.9398  0.8980  0.8357  0.8643  0.7371  0.8074  0.9576  0.4551  0.2304  0.1430
+Macaca_fascicularis    1.3322  1.0918  1.1626  0.6853  0.6557  0.7500  0.4154  0.7497  0.6209  0.9814  0.7144  0.5774  0.5075  0.6714  0.8446  0.8811  0.8938  0.2928  0.3923  0.3924  0.3452  0.7685  0.7688  0.7287  0.9277  0.6721  0.9685  0.8632  0.8632  0.7287  0.7654  0.2949  0.0197  0.3926  0.4925  0.7206  0.8225  0.7800  0.7287  0.7553  0.6359  0.7105  0.9015  0.3839  0.1219  0.0803  0.1430
+Macaca_mulatta         1.2900  1.0616  1.1273  0.6600  0.6286  0.7242  0.3928  0.7227  0.5956  0.9519  0.6871  0.5518  0.4839  0.6450  0.8156  0.8517  0.8642  0.2705  0.3686  0.3688  0.3220  0.7403  0.7406  0.7018  0.8987  0.6457  0.9387  0.8350  0.8350  0.7019  0.7383  0.2731  0.0000  0.3692  0.4684  0.6949  0.7955  0.7528  0.7018  0.7280  0.6097  0.6839  0.8724  0.3608  0.1219  0.0599  0.1219  0.0197
+Arvicola_terrestris    1.5012  1.0534  1.6953  0.7026  0.9131  0.7090  0.5524  0.7614  0.5502  0.8870  0.8249  0.6265  0.5893  0.7412  0.7537  0.8071  0.8605  0.8768  0.6917  0.7140  0.6265  0.9633  0.8701  0.7438  0.8776  0.6953  0.8527  0.8437  0.8437  0.7099  0.7585  0.8024  0.5784  0.7172  0.8236  0.1713  0.1474  0.2315  0.7438  0.7689  0.6495  0.6431  0.7855  0.9645  0.6770  0.6195  0.7212  0.6030  0.5784
+Phodopus_sungorus      1.5029  1.0616  1.7111  0.7206  1.0559  0.6299  0.5611  0.7555  0.5571  0.8695  0.7101  0.5680  0.5308  0.6773  0.8013  0.8440  0.7948  0.8978  0.7225  0.7449  0.6568  0.8937  0.8052  0.6815  0.8211  0.6340  0.7898  0.8658  0.8658  0.6489  0.6945  0.8294  0.6260  0.7237  0.8567  0.1695  0.1711  0.2348  0.6815  0.7061  0.5907  0.5849  0.7252  0.9864  0.7252  0.6892  0.7676  0.6509  0.6260  0.0820
+Phodopus_roborovskii   1.7693  1.0642  1.3821  0.6863  1.0166  0.7567  0.6128  0.7046  0.5172  0.9511  0.8915  0.6800  0.6458  0.8060  0.7812  0.8355  0.9178  0.9406  0.7696  0.7914  0.7179  1.0308  0.9268  0.8163  0.9372  0.7545  0.9030  0.9093  0.9093  0.7660  0.8216  0.8759  0.6274  0.7712  0.9118  0.1960  0.1711  0.2442  0.8163  0.8411  0.7024  0.6940  0.8313  1.0315  0.7267  0.6905  0.7690  0.6524  0.6274  0.0608  0.1039
+Peromyscus_californicus   1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201
+Rattus_norvegicus      1.4324  1.4097  1.5362  0.7783  1.0034  0.7863  0.8414  0.9186  0.7495  1.0568  1.0080  0.7686  0.7377  0.9113  0.9415  0.9970  0.9729  1.0360  0.8697  0.8914  0.8033  1.0760  0.9673  0.8030  0.9381  0.8515  0.9516  0.8110  0.8110  0.8045  0.8635  1.0453  0.7200  0.7752  0.9109  0.2436  0.1273  0.2998  0.8030  0.8280  0.7905  0.7794  0.8757  1.1317  0.8233  0.7774  0.8559  0.7461  0.7200  0.1683  0.1920  0.1921  0.1712
+Acomys_cahirinus       1.7116  1.0315  1.5833  0.7718  0.9233  0.6288  0.6617  0.9236  0.6247  0.9194  0.8061  0.5967  0.5967  0.7239  0.7910  0.8274  0.8123  0.8704  0.7213  0.7438  0.6556  0.9381  0.8570  0.6652  0.8039  0.6711  0.8321  0.9698  0.9698  0.6669  0.7164  0.8029  0.6248  0.7225  0.8549  0.2117  0.2130  0.2769  0.6652  0.6886  0.6176  0.6311  0.7644  0.9576  0.7239  0.6882  0.7665  0.6497  0.6248  0.1682  0.1234  0.1920  0.1710  0.2593
+Acomys_cilicicus       1.7116  1.0315  1.5833  0.7718  0.9233  0.6288  0.6617  0.9236  0.6247  0.9194  0.8061  0.5967  0.5967  0.7239  0.7910  0.8274  0.8123  0.8704  0.7213  0.7438  0.6556  0.9381  0.8570  0.6652  0.8039  0.6711  0.8321  0.9698  0.9698  0.6669  0.7164  0.8029  0.6248  0.7225  0.8549  0.2117  0.2130  0.2769  0.6652  0.6886  0.6176  0.6311  0.7644  0.9576  0.7239  0.6882  0.7665  0.6497  0.6248  0.1682  0.1234  0.1920  0.1710  0.2593  0.0000
+Eptesicus_fuscus       1.0518  1.0525  2.7931  0.8591  0.9718  0.7792  0.6789  0.8168  0.8419  0.7785  0.3716  0.2406  0.3527  0.3356  0.3956  0.4411  0.3724  0.9139  0.7885  0.8915  0.7846  0.5898  0.6151  0.2246  0.1760  0.3361  0.4232  0.4900  0.4900  0.3732  0.3969  0.7583  0.7342  0.8206  0.9526  0.7827  0.7445  0.6296  0.2246  0.2468  0.3020  0.3933  0.4735  1.0132  0.8471  0.8169  0.8772  0.7628  0.7342  0.6624  0.6016  0.7134  0.6865  0.7140  0.5757  0.5757
+Eptesicus_bruneus      1.5305  1.1406  2.8108  0.8291  0.8457  0.8357  0.5700  0.7584  1.0141  0.7198  0.4274  0.3425  0.5303  0.4172  0.4547  0.5043  0.4557  0.9970  0.7486  0.8534  0.7471  0.5651  0.5902  0.2649  0.2860  0.4180  0.5117  0.5694  0.5694  0.5925  0.6198  0.8038  0.7733  0.7526  0.8936  0.9388  0.9047  0.7307  0.2649  0.2890  0.3785  0.4817  0.5368  1.0570  0.8846  0.8245  0.9148  0.8025  0.7733  0.7749  0.7042  0.8467  0.8173  0.9067  0.6939  0.6939  0.1870
+Eptesicus_brasiliensis   1.0518  1.0525  2.7931  0.8591  0.9718  0.7792  0.6789  0.8168  0.8419  0.7785  0.3716  0.2406  0.3527  0.3356  0.3956  0.4411  0.3724  0.9139  0.7885  0.8915  0.7846  0.5898  0.6151  0.2246  0.1760  0.3361  0.4232  0.4900  0.4900  0.3732  0.3969  0.7583  0.7342  0.8206  0.9526  0.7827  0.7445  0.6296  0.2246  0.2468  0.3020  0.3933  0.4735  1.0132  0.8471  0.8169  0.8772  0.7628  0.7342  0.6624  0.6016  0.7134  0.6865  0.7140  0.5757  0.5757  0.0000  0.1870
+Bos_taurus             1.7936  1.1049  3.7547  1.0627  1.1699  1.1406  0.8772  1.0742  1.2529  0.9555  0.7352  0.5515  0.6017  0.6639  0.7721  0.7867  0.2344  1.0775  1.0038  1.0444  1.0605  0.9465  0.8941  0.6065  0.6602  0.6654  0.1646  0.5670  0.5670  0.5972  0.6219  1.0185  1.0070  1.0820  1.1910  0.9625  0.9221  0.8625  0.6065  0.6300  0.5815  0.5503  0.2306  1.3085  1.1628  1.0861  1.1413  1.0373  1.0070  0.8361  0.7728  0.8902  0.8623  0.9420  0.8175  0.8175  0.4546  0.5734  0.4546
+Homo_sapiens           1.4712  1.4093  1.3217  0.9252  1.0938  0.9886  0.7197  1.0246  0.8849  1.3720  0.9698  0.8709  0.8022  0.9841  1.1030  1.1232  1.0656  0.1634  0.4163  0.5433  0.5430  1.0765  0.9855  0.9507  1.2002  0.9863  1.1338  0.9903  0.9903  0.9443  0.9886  0.2486  0.3153  0.5233  0.6370  1.0319  1.2013  1.1093  0.9507  0.9793  0.9339  0.9818  1.1446  0.2052  0.3379  0.3608  0.4074  0.3379  0.3153  0.9199  0.9437  0.9894  0.9609  1.0817  0.9157  0.9157  0.9498  1.0218  0.949 [...]
+Clethrionomys_glareolus   2.2551  1.3575  1.4942  1.0167  2.3087  1.2261  0.9203  0.9917  0.6985  1.3325  1.0747  0.7810  0.7413  0.9782  1.0856  1.1290  1.1879  1.4536  1.1535  1.1730  1.0823  1.1047  0.9662  1.0838  1.2039  1.0823  1.1808  1.3776  1.3776  1.0101  0.9501  1.3114  1.0397  1.0835  1.2741  0.4215  0.3778  0.2201  1.0838  1.1120  0.9769  0.8473  1.1188  1.5990  1.1643  1.1025  1.1801  1.0725  1.0397  0.3598  0.3283  0.3062  0.3060  0.4077  0.4318  0.4318  0.9156  1.0495  0. [...]
+Microtus_agrestis      2.0379  1.2239  1.5124  0.7706  1.4126  0.8340  0.6995  0.8725  0.5864  1.0717  0.9193  0.7565  0.7170  0.9414  1.0734  1.1182  1.0589  1.1039  0.8997  0.9232  0.8287  1.0663  0.9353  0.9238  1.0858  0.8856  1.0588  1.0737  1.0737  0.8368  0.8885  1.0421  0.7943  0.8522  0.9968  0.2362  0.2616  0.3470  0.9238  0.9513  0.8293  0.8204  0.9793  1.2060  0.9038  0.8738  0.9488  0.8220  0.7943  0.2155  0.2146  0.1920  0.1701  0.2858  0.3071  0.3071  0.8382  0.9648  0.838 [...]
+Peromyscus_leucopus    1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201  0.0000  0.1712  0.1710  0.1710  0.6865  0.8173  0.686 [...]
+Apodemus_sylvaticus    2.0288  1.2945  3.0123  0.8564  0.9806  0.8565  0.7499  1.0141  0.7104  1.1231  1.0041  0.7664  0.7352  0.9078  0.8808  0.9357  0.9706  1.0958  0.9068  0.9283  0.8400  1.1391  1.0212  0.8549  0.9920  0.8487  0.9499  0.9686  0.9686  0.8167  0.8783  1.0403  0.7543  0.8567  1.0031  0.1917  0.1041  0.2707  0.8549  0.8799  0.7884  0.7775  0.8744  1.1955  0.8589  0.8344  0.9015  0.7808  0.7543  0.1449  0.1672  0.1672  0.1462  0.1493  0.2107  0.2107  0.7127  0.8407  0.712 [...]
+Murina_cyclotis        1.3991  1.2263  2.8086  1.0348  1.0018  0.8676  0.7781  0.9363  0.9661  0.8656  0.5199  0.3714  0.4839  0.4740  0.4793  0.5208  0.4308  1.0935  0.8996  1.0177  0.9270  0.7394  0.6850  0.2798  0.1761  0.4752  0.4881  0.5576  0.5576  0.5073  0.5317  0.8524  0.9017  0.9356  1.0816  0.8632  0.8218  0.7285  0.2798  0.3020  0.4326  0.5399  0.5397  1.1958  1.0031  0.9796  1.0034  0.9317  0.9017  0.7328  0.6692  0.7895  0.7618  0.7902  0.6472  0.6472  0.1327  0.2417  0.132 [...]
+Ovis_dalli             1.3965  1.1061  2.8139  1.1269  1.1204  1.0211  0.9336  1.0765  1.2541  0.9739  0.7377  0.5538  0.6035  0.6667  0.8052  0.8170  0.2588  1.0742  0.9722  1.0458  1.0626  0.9485  0.8958  0.5290  0.6302  0.6683  0.1469  0.4556  0.4556  0.5617  0.5861  1.0129  1.0090  1.0835  1.1925  1.0197  0.9764  0.9132  0.5290  0.5517  0.5839  0.5909  0.2158  1.3021  1.1644  1.0877  1.1357  1.0391  1.0090  0.8836  0.8179  0.9437  0.9153  0.8461  0.8666  0.8666  0.4225  0.5460  0.422 [...]
+Ovis_aries             1.5545  1.0668  2.2658  1.0692  1.1145  1.0834  0.8828  1.0183  1.1804  0.9149  0.6970  0.5185  0.5705  0.6256  0.7575  0.7709  0.2343  1.0333  0.9343  1.0050  1.0145  0.9056  0.8566  0.4956  0.5995  0.6269  0.1239  0.4871  0.4871  0.5303  0.5546  0.9673  0.9647  1.0410  1.1464  0.9680  0.9272  0.8668  0.4956  0.5183  0.5477  0.5537  0.1910  1.2526  1.1179  1.0444  1.1001  0.9944  0.9647  0.8400  0.7764  0.8952  0.8673  0.8958  0.8218  0.8218  0.3934  0.5112  0.393 [...]
+Pan_paniscus           1.4312  1.3852  1.2565  0.9316  1.1520  1.0517  0.7706  1.0644  0.8391  1.2913  1.0810  0.9179  0.8445  1.0353  1.2489  1.2695  1.1567  0.2095  0.5019  0.5839  0.5815  1.0257  1.0542  1.0364  1.2050  1.0376  1.2339  1.0913  1.0913  1.0093  1.0494  0.2992  0.3452  0.5152  0.6097  1.0828  1.2938  1.1658  1.0364  1.0669  0.9837  1.0330  1.2426  0.1660  0.3923  0.3686  0.3923  0.3686  0.3452  0.9666  0.9907  0.9777  0.9485  1.1417  0.9614  0.9614  0.9685  1.1057  0.968 [...]
+Pan_troglodytes        1.4367  1.3963  1.3639  0.9544  1.1152  1.0297  0.7557  1.1118  0.8748  1.4456  1.0387  0.8813  0.8117  0.9906  1.1819  1.2063  1.1152  0.2054  0.5146  0.5928  0.5918  1.0763  0.9851  0.9950  1.2024  0.9923  1.1880  1.0188  1.0188  0.9670  1.0031  0.2941  0.3612  0.4934  0.5781  1.0374  1.1400  1.0371  0.9950  1.0252  0.9444  0.9889  1.1932  0.1629  0.3846  0.3841  0.4082  0.3846  0.3612  0.9489  0.9681  1.0113  0.9821  1.0540  0.9273  0.9273  0.9710  1.0984  0.971 [...]
+Trachypithecus_cristatus   1.3857  1.0497  1.2479  0.7234  0.7325  0.7905  0.4514  0.7942  0.6860  1.1174  0.7874  0.6466  0.5968  0.7503  0.8894  0.9186  0.9761  0.3153  0.3935  0.4169  0.3687  0.7856  0.7867  0.7686  0.9706  0.6725  1.0552  0.9342  0.9342  0.7749  0.8171  0.3415  0.1003  0.3727  0.4753  0.7714  0.8842  0.8423  0.7686  0.7951  0.7093  0.7863  0.9815  0.3844  0.1419  0.1631  0.2062  0.1209  0.1003  0.6447  0.6971  0.6990  0.6742  0.7973  0.6955  0.6955  0.8043  0.8537  0 [...]
+Peromyscus_maniculatus   1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201  0.0000  0.1712  0.1710  0.1710  0.6865  0.8173  0.6 [...]
+Peromyscus_polionotus   2.0328  1.0341  1.4981  0.7130  0.9860  0.7847  0.5893  0.7327  0.5345  0.9225  0.8092  0.7039  0.6724  0.7263  0.7539  0.8074  0.9426  0.9128  0.7439  0.7653  0.6800  0.9453  0.8500  0.7267  0.8581  0.6794  0.9222  0.9419  0.9419  0.7914  0.8527  0.8488  0.6033  0.7454  0.8844  0.2013  0.1753  0.2753  0.7267  0.7514  0.6323  0.6253  0.8473  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0616  0.1063  0.0405  0.0204  0.1960  0.1958  0.1958  0.7342  0.8173  0.73 [...]
+Myotis_lucifugus       1.3853  1.0541  2.8305  0.7681  0.7937  0.7695  0.6042  0.6439  0.8035  0.6897  0.3074  0.2749  0.4637  0.3519  0.4647  0.5113  0.4444  1.0767  0.8599  0.8877  0.7534  0.5448  0.5926  0.2566  0.2073  0.3526  0.5268  0.5836  0.5836  0.5768  0.6033  0.7894  0.8077  0.7890  0.9249  0.8555  0.8240  0.6964  0.2566  0.2803  0.3158  0.4126  0.5197  1.1371  0.9200  0.8598  0.9503  0.8368  0.8077  0.7131  0.5965  0.6742  0.6471  0.8314  0.6324  0.6324  0.1372  0.2071  0.137 [...]
+Myotis_daubentoni      1.5653  1.1228  2.8225  0.9185  0.9892  0.8693  0.7104  0.7501  0.8701  0.7689  0.3980  0.3623  0.5465  0.4367  0.5044  0.5528  0.5025  1.1467  0.8594  0.9688  0.8620  0.5625  0.6233  0.3105  0.2827  0.4376  0.5586  0.5639  0.5639  0.6423  0.6696  0.8513  0.9126  0.8879  1.0318  1.0594  0.9994  0.8605  0.3105  0.3344  0.3982  0.5005  0.5832  1.2091  1.0274  0.9432  1.0587  0.9430  0.9126  0.8295  0.7062  0.7863  0.7581  0.9801  0.8079  0.8079  0.1857  0.2336  0.185 [...]
+Chalinolobus_beatrix   1.0133  1.0806  2.8206  0.7955  0.7924  0.7163  0.6030  0.8051  0.8304  0.6156  0.3627  0.2822  0.3966  0.3521  0.4423  0.4908  0.4708  0.8536  0.7513  0.7794  0.6714  0.5450  0.5697  0.2567  0.2073  0.3528  0.5269  0.6035  0.6035  0.5771  0.6036  0.6771  0.6620  0.7159  0.8433  0.7224  0.6948  0.5795  0.2567  0.2804  0.3160  0.4129  0.5198  0.9538  0.7744  0.7445  0.8043  0.6903  0.6620  0.6480  0.5606  0.6998  0.6724  0.7376  0.5172  0.5172  0.1372  0.1663  0.137 [...]
+Pipistrellus_savii     1.5263  1.0344  2.8138  0.9413  0.8453  0.8353  0.5698  0.7059  1.0133  0.6623  0.4273  0.3424  0.5302  0.3786  0.4546  0.5042  0.3969  0.9968  0.6746  0.7718  0.6627  0.5650  0.5901  0.2648  0.2860  0.3793  0.4463  0.5693  0.5693  0.5160  0.5427  0.8035  0.7732  0.6768  0.8073  0.8716  0.8391  0.6783  0.2648  0.2890  0.3425  0.4405  0.4720  1.1602  0.8845  0.8244  0.9147  0.8023  0.7732  0.7226  0.6553  0.7864  0.7576  0.8407  0.6379  0.6379  0.1870  0.0453  0.187 [...]
+Corynorhinus_townsendii   1.2524  1.1486  2.7071  0.9246  0.9108  0.7745  0.6225  0.6316  0.9465  0.7397  0.4141  0.2836  0.3947  0.4017  0.4800  0.5260  0.4722  1.0091  0.8110  0.9121  0.8336  0.5946  0.6195  0.2697  0.2669  0.4023  0.5184  0.5153  0.5153  0.5618  0.5874  0.7763  0.7928  0.8615  0.9937  0.8933  0.8480  0.6807  0.2697  0.2925  0.3679  0.4599  0.5433  1.1142  0.9008  0.8212  0.9301  0.8211  0.7928  0.7157  0.6537  0.7710  0.7440  0.8358  0.6764  0.6764  0.1351  0.1612  0. [...]
+Trachypithecus_geei    1.2636  1.1002  1.1496  0.6596  0.6632  0.7236  0.3938  0.7246  0.6189  1.0241  0.7229  0.5858  0.5390  0.6839  0.8173  0.8457  0.9051  0.2928  0.3456  0.3688  0.3220  0.7757  0.7763  0.7059  0.8980  0.6849  0.9819  0.8597  0.8597  0.7111  0.7501  0.2948  0.0599  0.3470  0.4466  0.6978  0.8000  0.7572  0.7059  0.7320  0.6459  0.7181  0.9122  0.3608  0.1010  0.1219  0.1645  0.0803  0.0599  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7383  0.7804  0.738 [...]
+Trachypithecus_pileatus   1.3857  1.0494  1.1496  0.6991  0.7060  0.7658  0.4294  0.7246  0.6615  1.0241  0.7605  0.6213  0.5732  0.6839  0.8615  0.8902  0.8661  0.3153  0.3220  0.3452  0.2994  0.8127  0.8138  0.7424  0.9428  0.6849  0.9409  0.9076  0.9076  0.6758  0.7121  0.3195  0.0798  0.3225  0.4194  0.6978  0.8000  0.7572  0.7424  0.7685  0.6459  0.7181  0.8742  0.3844  0.1209  0.1419  0.1845  0.1003  0.0798  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7765  0.8258  0. [...]
+Semnopithecus_entellus   1.4633  1.2550  1.3406  0.8844  0.8523  0.9627  0.5673  0.8368  0.8512  1.2607  0.9224  0.7707  0.7473  0.8919  0.9931  1.0240  1.0635  0.4425  0.4806  0.5048  0.4800  0.9766  0.9797  0.8556  1.0171  0.8710  1.1310  1.0423  1.0423  0.9584  1.0165  0.4291  0.1885  0.4850  0.5988  0.9387  1.0887  0.6054  0.8556  0.8832  0.8417  0.9340  1.0827  0.5183  0.2319  0.2540  0.2990  0.2101  0.1885  0.7823  0.8487  0.8280  0.8252  0.9672  0.8460  0.8460  0.8384  0.8190  0.8 [...]
+Trachypithecus_francoisi   1.2636  1.1002  1.1496  0.6596  0.6632  0.7236  0.3938  0.7246  0.6189  1.0241  0.7229  0.5858  0.5390  0.6839  0.8173  0.8457  0.9051  0.2928  0.3456  0.3688  0.3220  0.7757  0.7763  0.7059  0.8980  0.6849  0.9819  0.8597  0.8597  0.7111  0.7501  0.2948  0.0599  0.3470  0.4466  0.6978  0.8000  0.7572  0.7059  0.7320  0.6459  0.7181  0.9122  0.3608  0.1010  0.1219  0.1645  0.0803  0.0599  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7383  0.7804  0 [...]
+Mus_famulus            1.5400  1.3665  2.3715  0.9146  1.0200  0.7881  0.7447  1.0799  0.8007  1.2353  0.9918  0.7643  0.7290  0.8966  0.9941  1.0514  1.0881  1.1800  1.0236  1.0445  0.9555  1.1366  1.0261  0.9673  1.0009  0.9644  1.0591  1.0049  1.0049  0.9006  0.9714  1.1444  0.8602  0.9670  1.0070  0.1919  0.1005  0.3735  0.9673  0.9931  0.7874  0.7784  0.9771  1.2333  0.9699  0.9444  1.0124  0.8883  0.8602  0.2101  0.2334  0.2335  0.2119  0.2379  0.2782  0.2782  0.8667  1.0483  0.866 [...]
+Mus_pahari             1.7295  1.2168  1.6804  0.9151  1.0217  0.7522  0.8485  1.0823  0.8580  1.1825  0.9752  0.7530  0.7163  0.8810  0.9616  1.0180  1.0723  1.0801  0.8742  0.8973  0.8048  1.1204  1.0142  0.9502  0.9883  0.9451  1.0471  1.0718  1.0718  0.9099  0.9767  1.0090  0.7500  0.8549  0.8732  0.1920  0.1444  0.3689  0.9502  0.9762  0.8800  0.7684  0.9673  1.1211  0.8564  0.8055  0.9030  0.7767  0.7500  0.1674  0.2334  0.2335  0.2119  0.2409  0.2316  0.2316  0.8538  1.0238  0.853 [...]
+Mus_cookii             1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Plecotus_townsemdii    1.2524  1.1486  2.7071  0.9246  0.9108  0.7745  0.6225  0.6316  0.9465  0.7397  0.4141  0.2836  0.3947  0.4017  0.4800  0.5260  0.4722  1.0091  0.8110  0.9121  0.8336  0.5946  0.6195  0.2697  0.2669  0.4023  0.5184  0.5153  0.5153  0.5618  0.5874  0.7763  0.7928  0.8615  0.9937  0.8933  0.8480  0.6807  0.2697  0.2925  0.3679  0.4599  0.5433  1.1142  0.9008  0.8212  0.9301  0.8211  0.7928  0.7157  0.6537  0.7710  0.7440  0.8358  0.6764  0.6764  0.1351  0.1612  0.135 [...]
+Plecotus_auritus       1.1503  1.1503  2.7071  0.8950  0.9505  0.7834  0.6347  0.7767  0.9512  0.6972  0.4343  0.2826  0.3905  0.4010  0.4141  0.4559  0.4013  0.9740  0.7850  0.9187  0.8421  0.6475  0.6721  0.1714  0.1887  0.4017  0.3990  0.4625  0.4625  0.4308  0.4540  0.7471  0.8022  0.8701  0.9998  0.8500  0.8107  0.6967  0.1714  0.1923  0.3668  0.4589  0.4494  1.0738  0.9085  0.8790  0.9373  0.8300  0.8022  0.7262  0.6653  0.7799  0.7533  0.7805  0.6436  0.6436  0.0422  0.1617  0.042 [...]
+Trachypithecus_johnii   1.2916  1.1069  1.2578  0.7484  0.7167  0.8159  0.4382  0.7769  0.6990  1.0197  0.7732  0.6327  0.6108  0.7298  0.8672  0.8967  0.9208  0.3610  0.3924  0.4162  0.3923  0.8285  0.8290  0.7215  0.9073  0.7306  0.9949  0.8694  0.8694  0.8016  0.8363  0.3616  0.1213  0.3933  0.4941  0.7464  0.8494  0.8071  0.7215  0.7486  0.6929  0.7636  0.9282  0.4309  0.1637  0.1424  0.1852  0.1424  0.1213  0.6278  0.6759  0.6774  0.6526  0.7722  0.6747  0.6747  0.7559  0.7329  0.75 [...]
+Trachypithecus_vetulus   1.4633  1.2550  1.3406  0.8844  0.8523  0.9627  0.5673  0.8368  0.8512  1.2607  0.9224  0.7707  0.7473  0.8919  0.9931  1.0240  1.0635  0.4425  0.4806  0.5048  0.4800  0.9766  0.9797  0.8556  1.0171  0.8710  1.1310  1.0423  1.0423  0.9584  1.0165  0.4291  0.1885  0.4850  0.5988  0.9387  1.0887  0.6054  0.8556  0.8832  0.8417  0.9340  1.0827  0.5183  0.2319  0.2540  0.2990  0.2101  0.1885  0.7823  0.8487  0.8280  0.8252  0.9672  0.8460  0.8460  0.8384  0.8190  0.8 [...]
+Trachypithecus_obscurus   1.3857  1.0497  1.2479  0.7234  0.7325  0.7905  0.4514  0.7942  0.6860  1.1174  0.7874  0.6466  0.5968  0.7503  0.8894  0.9186  0.9761  0.3153  0.3935  0.4169  0.3687  0.7856  0.7867  0.7686  0.9706  0.6725  1.0552  0.9342  0.9342  0.7749  0.8171  0.3415  0.1003  0.3727  0.4753  0.7714  0.8842  0.8423  0.7686  0.7951  0.7093  0.7863  0.9815  0.3844  0.1419  0.1631  0.2062  0.1209  0.1003  0.6447  0.6971  0.6990  0.6742  0.7973  0.6955  0.6955  0.8043  0.8537  0. [...]
+Trachypithecus_phayrei   1.3857  1.0790  1.2479  0.7423  0.7534  0.8117  0.4632  0.8165  0.7052  1.1321  0.8082  0.6632  0.6116  0.7707  0.8506  0.8798  0.9365  0.2991  0.3292  0.4022  0.3769  0.8062  0.8075  0.7359  0.9670  0.6898  0.9830  0.8622  0.8622  0.7354  0.7777  0.3236  0.1023  0.3810  0.4863  0.7945  0.9135  0.8712  0.7359  0.7622  0.7281  0.8080  0.9510  0.3686  0.1448  0.1665  0.2106  0.1234  0.1023  0.6623  0.7171  0.7192  0.6937  0.8212  0.7154  0.7154  0.7633  0.8537  0.7 [...]
+Mus_spretus            1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Mus_spicilegus         1.4155  1.1985  1.7204  0.8047  1.2042  0.7261  0.7205  0.9023  0.7378  1.0813  0.8511  0.6481  0.6096  0.7622  0.9655  1.0056  0.9442  1.0840  0.8844  0.9070  0.8158  0.9913  0.8979  0.8259  0.8816  0.8161  0.9295  1.0416  1.0416  0.7895  0.8451  1.0251  0.7822  0.8375  0.8808  0.1242  0.1241  0.2923  0.8259  0.8513  0.7616  0.6654  0.8574  1.1278  0.8885  0.8636  0.9317  0.8092  0.7822  0.1886  0.1661  0.2119  0.1906  0.2204  0.2096  0.2096  0.7383  0.8738  0.738 [...]
+Mus_macedonicus        1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Mus_musculus_domesticus   1.4155  1.1985  1.7204  0.8047  1.2042  0.7261  0.7205  0.9023  0.7378  1.0813  0.8511  0.6481  0.6096  0.7622  0.9655  1.0056  0.9442  1.0840  0.8844  0.9070  0.8158  0.9913  0.8979  0.8259  0.8816  0.8161  0.9295  1.0416  1.0416  0.7895  0.8451  1.0251  0.7822  0.8375  0.8808  0.1242  0.1241  0.2923  0.8259  0.8513  0.7616  0.6654  0.8574  1.1278  0.8885  0.8636  0.9317  0.8092  0.7822  0.1886  0.1661  0.2119  0.1906  0.2204  0.2096  0.2096  0.7383  0.8738  0. [...]
+Mus_musculus_musculus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.78 [...]
+Mus_musculus_bactrianus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0. [...]
+Mus_musculus_castaneus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.7 [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/4fold.nuc
new file mode 100644
index 0000000..6a000d4
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Cynocephalus_variegatus
+
+
+Tupaia_belangeri
+
+
+Otolemur_garnettii
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Desmodus_rotundus
+
+
+Equus_asinus
+
+
+Equus_caballus
+
+
+Antilocapra_americana
+
+
+Hylobates_lar
+
+
+Callithrix_jacchus
+
+
+Saguinus_imperator
+
+
+Saimiri_sciureus
+
+
+Hipposideros_commersoni
+
+
+Rhinolophus_ferrumequinum
+
+
+Chilonatalus_micropus
+
+
+Otonycteris_hemprichi
+
+
+Monophyllus_redmani
+
+
+Elaphodus_cephalophus
+
+
+Hippopotamus_amphibius
+
+
+Hexaprotodon_liberiensis
+
+
+Potamochoerus_porcus
+
+
+Sus_scrofa
+
+
+Pongo_pygmaeus
+
+
+Papio_cynocephalus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Sigmodon_hispidus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Natalus_micropus
+
+
+Natalus_stramineus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Gorilla_gorilla
+
+
+Nasalis_larvatus
+
+
+Procolobus_badius
+
+
+Colobus_guereza
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Peromyscus_californicus
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Eptesicus_fuscus
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_brasiliensis
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Clethrionomys_glareolus
+
+
+Microtus_agrestis
+
+
+Peromyscus_leucopus
+
+
+Apodemus_sylvaticus
+
+
+Murina_cyclotis
+
+
+Ovis_dalli
+
+
+Ovis_aries
+
+
+Pan_paniscus
+
+
+Pan_troglodytes
+
+
+Trachypithecus_cristatus
+
+
+Peromyscus_maniculatus
+
+
+Peromyscus_polionotus
+
+
+Myotis_lucifugus
+
+
+Myotis_daubentoni
+
+
+Chalinolobus_beatrix
+
+
+Pipistrellus_savii
+
+
+Corynorhinus_townsendii
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_pahari
+
+
+Mus_cookii
+
+
+Plecotus_townsemdii
+
+
+Plecotus_auritus
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_spicilegus
+
+
+Mus_macedonicus
+
+
+Mus_musculus_domesticus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_bactrianus
+
+
+Mus_musculus_castaneus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/algn
new file mode 100644
index 0000000..2e947fb
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/lnf
new file mode 100644
index 0000000..205361e
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -1.9219973347   0.146314431197       9.5104  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     2      1    -1.9219973347   0.146314431197       9.5104  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGC (S) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     3      1    -4.9346588068   0.007192914701       0.4675  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CTC (L) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     4      1    -2.4255598034   0.088428602553       5.7479  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     5      1    -7.0890327069   0.000834203895       0.0542  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     6      1    -8.6285959930   0.000178915668       0.0116  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R [...]
+     7      1    -6.6982110734   0.001233115884       0.0802  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     8      1   -29.5814107980   0.000000000000       0.0000  --- (-) --- (-) --- (-) --- (-) TGT (C) --- (-) --- (-) --- (-) --- (-) AGG (R) --- (-) --- (-) --- (-) --- (-) AGG (R) AGG (R) AGG (R) --- (-) --- (-) --- (-) --- (-) TAT (Y) TAT (Y) AGG (R) AGG (R) --- (-) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGG (R) AGG (R) --- (-) --- (-) AGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     9      2    -2.3062302227   0.099636150572       6.4763  --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    10      1    -9.4390214312   0.000079558224       0.0052  --- (-) --- (-) CGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) AGA (R) --- (-) --- (-) CGA (R) CGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    11      1    -4.6546204716   0.009517524728       0.6186  --- (-) --- (-) TAC (Y) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    12      1   -47.8785350665   0.000000000000       0.0000  --- (-) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    13      1   -42.1591944100   0.000000000000       0.0000  --- (-) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    14      1   -82.8807797971   0.000000000000       0.0000  --- (-) AGA (R) GTG (V) AGG (R) --- (-) AGG (R) --- (-) --- (-) GTG (V) AGA (R) --- (-) --- (-) ATG (M) --- (-) --- (-) --- (-) AGA (R) ATG (M) AGC (S) AGC (S) AGG (R) --- (-) --- (-) AGA (R) AGA (R) --- (-) AGA (R) AGA (R) AGA (R) GCG (A) GCG (A) ATG (M) ATG (M) AGC (S) AGC (S) --- (-) --- (-) --- (-) AGA (R) AGA (R) --- (-) --- (-) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    15      1  -136.5614135677   0.000000000000       0.0000  --- (-) AGG (R) --- (-) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) CTG (L) CTG (L) ATA (I) AGA (R) CCA (P) ACG (T) AGG (R) AGG (R) AGG (R) GTG (V) ATG (M) AGG (R) GTA (V) GTA (V) GTA (V) ATA (I) ATA (I) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    16      1   -83.2525169780   0.000000000000       0.0000  --- (-) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) TGC (C) AGA (R) AGA (R) AGA (R) --- (-) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) CAG (Q) CAG (Q) CAG (Q) TGC (C) TGC (C) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    17      1    -6.9821556278   0.000928299976       0.0603  --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CCC (P) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    18      1    -7.3042605144   0.000672666755       0.0437  --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGT (R) CGT (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    19      1   -76.5531449019   0.000000000000       0.0000  --- (-) CGT (R) --- (-) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    20      1  -219.3207032575   0.000000000000       0.0000  --- (-) CTG (L) --- (-) CTC (L) CTA (L) CTG (L) CTG (L) CGG (R) CTG (L) GTG (V) GCG (A) GTG (V) GTG (V) GTG (V) GTC (V) GTC (V) GCC (A) CTG (L) CTG (L) CTG (L) CTG (L) GTG (V) GTG (V) GTT (V) GTT (V) GTG (V) GTC (V) ATG (M) ATG (M) GTT (V) GTT (V) CTG (L) CTG (L) TTG (L) TTG (L) CTA (L) TTA (L) TTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) TTT (F [...]
+    21      1   -44.6680471032   0.000000000000       0.0000  --- (-) TCA (S) GAG (E) --- (-) --- (-) GCA (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) --- (-) --- (-) --- (-) --- (-) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    22      1  -112.4214216042   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) --- (-) --- (-) AGG (R) AGA (R) GCC (A) GCC (A) GCC (A) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GGC (G) GCC (A) CGA (R) CGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    23      1   -74.7302172365   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AAA (K) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R [...]
+    24      1   -34.0470580502   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    25      1   -36.9993465971   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    26      1   -41.3525826969   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    27      1   -60.7859406638   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (-) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGC (S) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    28      1   -24.2429634724   0.000000000030       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) --- (-) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    29      1   -15.5251476278   0.000000180931       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    30      1   -20.3034379029   0.000000001522       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    31      1   -68.6263812582   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) AGT (S) TGT (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) GGT (G) GGT (G) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    32      1   -19.4794449280   0.000000003469       0.0000  AGG (R) --- (-) CGC (R) CGC (R) CGC (R) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    33      1   -86.8957545323   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) ACA (T) TCA (S) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) CGA (R) AGA (R) AGA (R) TCA (S [...]
+    34      1   -99.6128627442   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) CGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CAG (Q) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AAG (K) AGG (R) AGG (R) CAG (Q) CAG (Q) AGG (R) AGG (R) ACA (T) GCA (A) AGA (R) AGA (R) AGG (R) CGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) ACA (T) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R [...]
+    35      1   -67.5328024169   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCT (P) CGT (R) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    36      1    -9.0897115679   0.000112820605       0.0073  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+    37      1  -102.8719178621   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) --- (-) CAC (H) CGC (R) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    38      1   -34.4904677757   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    39      1   -31.9280587497   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    40      1   -71.3757503725   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGA (R [...]
+    41      1   -51.7547667392   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1   -52.2535025664   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGT (S) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    43      1   -82.9959954176   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CCC (P) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    44      1  -128.4586216257   0.000000000000       0.0000  CGC (R) AGG (R) --- (-) ACC (T) TCG (S) ACC (T) AGG (R) ACC (T) ACC (T) AGG (R) TCT (S) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGA (R) AGG (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) ACC (T) TCC (S) ACC (T) ACC (T) ACC (T [...]
+    45      1   -51.0584072084   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    46      1  -110.9313592820   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) --- (-) CCC (P) CAA (Q) CCA (P) CGC (R) CAC (H) CGA (R) CAA (Q) CAA (Q) CCA (P) CAG (Q) CAG (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAC (H) CAC (H) CAA (Q) CGA (R) CCA (P) CAT (H) CCC (P) CCC (P) CAT (H) CAT (H) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    47      1   -47.8394190512   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    48      1   -81.4481081570   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) AGA (R) CGC (R) CGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CGG (R) CGG (R) CGG (R) CGT (R) CGT (R) CCG (P) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R [...]
+    49      1   -45.3398511584   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1  -101.2390070560   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGG (R) CAA (Q) CAA (Q) CGA (R) CGG (R) CGG (R) CGG (R) AGG (R) CGT (R) CGA (R) CAG (Q) CAG (Q) CGA (R) CGA (R) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CAG (Q) CCG (P) CGG (R) CAG (Q) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -85.4395144146   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (-) AGG (R) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GCG (A) GCG (A) GTG (V) GTA (V) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    52      1   -75.5937716613   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) GCC (A) CGA (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R [...]
+    53      1   -44.8991294704   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    54      1   -60.6498813957   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    55      1   -77.5145774586   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGA (R) AGA (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R [...]
+    56      1   -19.6890768070   0.000000002813       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+    57      1   -48.0334152524   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    58      1   -98.8911481905   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TCC (S) TTT (F) AGC (S) AGC (S) ACG (T) TGC (C) AGT (S) AGT (S) TGC (C) TGC (C) TGT (C) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) AGA (R) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    59      1   -42.9904821711   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    60      1  -103.9378936259   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) CGT (R) TAT (Y) TGT (C) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    61      1   -26.5534837155   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    62      1   -30.2327045780   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    63      1   -41.9459798508   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    64      1   -42.0678372323   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/out b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/out
new file mode 100644
index 0000000..7a93df9
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/out
@@ -0,0 +1,1569 @@
+
+seed used = 818649917
+     98    195
+
+Loxodonta_africana                         ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                          ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus                        ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus                      ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Cynocephalus_variegatus                    ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                           ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Otolemur_garnettii                         ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                            ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                                ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei                       ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                          ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Desmodus_rotundus                          ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Equus_asinus                               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_caballus                             ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Antilocapra_americana                      ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Callithrix_jacchus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Saimiri_sciureus                           ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Hipposideros_commersoni                    ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum                  ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Chilonatalus_micropus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Otonycteris_hemprichi                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani                        ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Elaphodus_cephalophus                      ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius                     ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hexaprotodon_liberiensis                   ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Potamochoerus_porcus                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Sus_scrofa                                 ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Pongo_pygmaeus                             ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Ateles_sp                                  ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Sigmodon_hispidus                          ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Micromys_minutus                           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Natalus_micropus                           ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_stramineus                         ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii                       ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                                 ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Nasalis_larvatus                           ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                            ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis                        ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                             ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Arvicola_terrestris                        ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_californicus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Rattus_norvegicus                          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                           ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                           ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Eptesicus_fuscus                           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                          ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_brasiliensis                     ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Clethrionomys_glareolus                    ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                          ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus                        ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Apodemus_sylvaticus                        ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                            ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_dalli                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_aries                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Pan_paniscus                               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Trachypithecus_cristatus                   ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Peromyscus_maniculatus                     ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_polionotus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Myotis_lucifugus                           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Myotis_daubentoni                          ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix                       ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Pipistrellus_savii                         ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Corynorhinus_townsendii                    ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_geei                        ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Semnopithecus_entellus                     ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_townsemdii                        ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Plecotus_auritus                           ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii                      ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus                     ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus                    ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei                     ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus                     ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana                          --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGG AGG AGT AGT ATG CAC CAT CGA CGA CGA CGC CGC CGC CGC CGC CGC CGC CGC CGG CGG CGG CGG CGG CGT GCC TAC TCC TGC TGC TGC TGC TGC TGC
+Procavia_capensis                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGG CAC CGC CGC CGT CTG TCA AGA AGA AGA AGG CGA GCT AGC AGC AGC TGC --- AGA AGG CGG ATG TCC TAC AGG CGC CGG AGA AGA AGG CAC CGC CGC CGG TAC AGA AGG AGG AGG CGA CGA GTC TTT TCT CGC GGT TGC TGC TGC TGC
+Erinaceus_europaeus                         --- --- --- --- --- --- --- --- CGC CGG TAC CGC CGG GTG --- TAC --- --- --- --- GAG AGA AGG CGC AGG CGC CGC AGC AGC AGC TGC CGC AGG AGG CGG ATG CGC TAC AGG CGG CGC CGC CGC --- TCC CAG CGC AGG TAC CGC ACG AGG AGG AGG AGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Oryctolagus_cuniculus                       --- --- --- --- --- --- --- --- --- --- --- AGA CGA AGG AGG TAC --- --- TGT CTC --- GTC AGA AGA AGA AGA AGA AGC AGC AGC TGC CGC ACA AGG CGC ATG CGC TAC AGG CGG CGG AGA CGA ACC CGC CAG CGC CAG CGC CGG AAG AGA AGG CGC CGG GTC TAC TGC TGT TGC TGC TGC TGC TGC
+Cynocephalus_variegatus                     --- --- --- --- --- --- --- TGT --- --- --- AGA AGA --- AGG TAC --- --- TGT CTA --- AGG AGA AGA AGG AGA AGA --- AGC AGC TGC CGC AGG CGA CGC ATG --- TAC AGG CGA CGG AGT AGA TCG CGC --- CGC AGA CGC AGG AGG GCC AGG CGA CGA GCC TAC TGT TGC CGT AGC TGC TGC TGC
+Tupaia_belangeri                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGG AGG TAC --- --- TGT CTG GCA CGG AGA AGA AGG AGA ATA AGC AGC AGC AGT --- CTG AGG CGC ATG CAC TAC AGG CGA CGG AGA CGG ACC CGC CCC CGC CGC CGC CGG AGA CGA AGG CGG CGA GCC TAC TGC TGC TAT TGC TGC TGT TGC
+Otolemur_garnettii                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA --- AGG TAC --- --- TGT CTG --- AGG AGA AGG AGA AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CGA AGG AGA CGG AGG CGC CAA CGC CGA CGC CGG AGG AGG AGA CGA CGA GCC TAC TGC TGC TGT TGC TGC TGT TGC
+Cavia_porcellus                             --- --- --- --- --- --- --- --- --- --- --- AAA AGA --- AGG TAC --- --- TGC CGG --- CGG AGA AGG AGA AGA AGA AGC AGC AGC TTC CGC AGG AGA CGC ATG TAT TAC AGG CGG CGG AGA CGG ACC CGC CCA CGC CGG CGC CGC --- AGA AGG CGA CGG GCC TAC TGC TGC CAT TGC TGC TGC TGC
+Dipodomys_ordii                             --- --- --- --- --- CGC CGG --- --- --- --- AGA AGA GTG AGG TGC --- --- TGC CTG --- AGA AGA AGA AGA AGG --- AGC AGC AGC TGC CGC AGA AGA CGC ATG CGC TGC AGG CGG CGG AGA CGC ACC --- CGC CGC CGC CGC CGG AGG AGG AGG CGC AGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Felis_catus                                 --- --- --- --- --- --- --- AGG --- --- --- AGG AGA AGA GGG AGA --- --- TGT GTG --- AAG AGA AGG AGA AGA AGA AGC AGC AGC TGC --- CGC AGG CGC ATG CGC TAC AGG CGC AGG CGA CCG AGG CGT CAC CGC AGG CGC CGC GTG AGG AGG CGA CGA GCC TAC TGT TCC TGC TGT TGC TGC TGC
+Rhinopoma_hardwickei                        --- --- --- --- --- --- --- --- --- AGA --- AGA AGA --- AGG AGA --- --- TGC GCG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCT ATG CGC TAC AGG CGA CGG AGA CGG TCT CGC CGA CGT CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Pteropus_hypomelanus                        --- --- --- --- --- --- --- --- --- AGA --- AGA AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Pteropus_vampyrus                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TGC --- --- TGT GTG GCC AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAA CGC CGG CGC CGG CTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Desmodus_rotundus                           --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGG CGC CGT GTG AGA AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Equus_asinus                                --- --- --- --- --- --- --- AGG --- CGA --- AGG AGA --- CTG AGA --- CGT TGT GTC --- --- AGG AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CGG CGC ATG CGC TAC AGG CGA CAG AGA AGG ACT CGC CAG CGC CGG CGC CGG GTG AGA AGG CGA AGA GCC TAC TGC TGC GTT TGC TGC TGC TGC
+Equus_caballus                              --- --- --- --- --- --- --- AGG --- CGA --- AGG AGA --- CTG AGA --- CGT TGT GTC --- --- AGG AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CAG AGA AGG ACT CGC CAG CGC CGG CGC CGG GTG AGA AGG CGA AGA GCC TAC TCC TGC GTT TGC TGC TGC TGC
+Antilocapra_americana                       --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA ATA --- CCC CGC TGT GCC --- AGG AAA AGA AGA AGA AGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CCC ACC CGC CAT CTC CGG CGC CGA GTG AGG AGG CTA CGC GCC TAC TTT TGC TGT TGC TGC TGC TGC
+Hylobates_lar                               --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG GGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TAC AGG CAA CGG AGA CGC AGG TAC CAG CGC CAG CCC CGG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Callithrix_jacchus                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC CCA TAC --- --- TGT CTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC GGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CAG CGC CGG CGC CAA AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Saguinus_imperator                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC ACG TAC --- --- TGT CTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC GGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CAG CGC CGG CGC CAA AGG AGA AGG CGA CGG GCC TAC ACG TGC TGC TGC TGC TGC TGC
+Saimiri_sciureus                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGG AGG TAC --- --- TGT CTG --- GCC ACA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CGG CGC CGG CGC CGA AGG AGA AGG CGA CGG GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Hipposideros_commersoni                     --- --- --- --- --- --- --- TAT --- --- --- AGA AGA --- AGG AGA --- --- AGA GTG --- AGA AGA AGA AGA AGA AGG AGC AGC AGC TCT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG CGA CGG ACT CGA CAC CGC GGG CGC CGG GCG AGG AGG CGA CGC GCC TAC AGT TAC TGT GGC TGC TGC TGC
+Rhinolophus_ferrumequinum                   --- --- --- AGA AGA --- --- TAT --- AGA --- AGA AGA --- AGG CGA --- --- AGA GTG --- AGA AGA AGA AGA AGG AGC AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGA CAA CGG AGA CGG ACT CGC CAC CGC GGG CGC CGG GCG AGG AGG CGA CGC GCC TAC AGT TAC TGT TGC AGC TGC TGC
+Chilonatalus_micropus                       --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CGC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Otonycteris_hemprichi                       --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATG AGA --- --- TGT GTT --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AAG CGC ATG TAC TAC AGG AGA CGG AAA AGG ACT CGC CGA CGC CGG CGC AGG GTA AGG AGG CGA CGC GCC TAC TGC TGC TCT TGC TGC TGC TGC
+Monophyllus_redmani                         --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGG CGC CGT GTG AGG AGG CGT CGC GCC TAT TGT TGC TGT TGC TGC TGC TGC
+Elaphodus_cephalophus                       --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTC --- AGG AGA AGA AGA AGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CAC TAC AAG CGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGA GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Hippopotamus_amphibius                      --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- --- TGT ATG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CGG AGA AGA ACC CGC CCC CGC CGT CGC CAG GTG CGG AGG CGA CGG GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Hexaprotodon_liberiensis                    --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- --- TGT ATG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CGG AGA AGA ACC CGC CCC CGC CGT CGC CAG GTG CGG AGG CGA CGG GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Potamochoerus_porcus                        --- --- --- --- --- --- --- AGG --- --- --- AGA AGA GCG ATA TGC --- --- TGT GTT --- AGA AGA AGG AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCC ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAT CGC CCG CGC CGA GTG AGG AGG CGA CGA GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Sus_scrofa                                  --- --- --- --- --- --- --- AGG --- --- --- AGA AGA GCG ATA TGC --- --- TGT GTT --- AGA AGA AGG AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCC ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAT CGC CCG CGC CGA GTG AGG AGG CGA AGA GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Pongo_pygmaeus                              --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- TGT CTG GCC AGG AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG ACA CGC ATG CAC TAC AGG CAA CAG AGA CGG AGA TGC CAG CGC CAG CGC CGG AGG AGG AGG CGA CGT GCC TAC TGC TGC TGC TGC TGT TGC TGT
+Papio_cynocephalus                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Ateles_sp                                   --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC AGG TAC --- --- CGT TTG --- GGC AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CCA CGG AGA CGG AGG TAC CGC CGC CGG CGC CAA AGG AGA AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Alouatta_seniculus                          --- AGC CTC --- --- --- --- --- --- --- --- AGA AGA AGC AGG TAC --- --- CGT TTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CCA CGG AGA CCA AGG TAC CGC CGC CGG CGC CAA AGA AGA AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Sigmodon_hispidus                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT CTA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC ACA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGA CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGT
+Micromys_minutus                            --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGA CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Meriones_unguiculatus                       --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTA --- AGA CGC AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA AGG CGC ATG --- TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG CGG AGA CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Natalus_micropus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CGC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Natalus_stramineus                          --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CCC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Pteronotus_parnellii                        --- --- --- --- --- --- --- --- --- --- --- AGA AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGA CGC CGC GTG AGA AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Mormoops_megalophylla                       --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG CGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA AGG AGA CGG ACT CGC CCA CGC CGG CGC CGC GTG AGG AGG CGA CGC GCC TAC TCT TGC TGT TGC TGC TGC TGC
+Moschus_sp                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTG CAG --- CGC TGT GTC --- AGG AGA GGA AGA AGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGC ACC CGC CAC CTC CGG CGC CGA GTG AGG AGG CGA CGC GCC TAC TTT TGC TGT TGC TGC TGC CGC
+Gorilla_gorilla                             --- --- --- --- --- --- --- --- --- --- --- AGA AAA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC AAC AGG CAA CGG ACA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AGG CGA CGG GCC TAC AGC TGT TGC TGC TGT TGC TGT
+Nasalis_larvatus                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AAG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CAA CGG AGA CGG AGG TGC CAG GGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TCC AGC TGC TGC TGC TGC TGC TGT
+Procolobus_badius                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CGG GCC ACA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CAG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Colobus_guereza                             --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CAC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CAG AGG AAG AGG CGA CAG GCC TAC AGA TGC TTC TGC TGC TGC CGT
+Macaca_fascicularis                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG TGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Macaca_mulatta                              --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Arvicola_terrestris                         --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CAA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Phodopus_sungorus                           --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG TCC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Phodopus_roborovskii                        --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGT AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Peromyscus_californicus                     --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Rattus_norvegicus                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTT --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC AGG CGC CGC AGG CGG AGG CGG CGG GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Acomys_cahirinus                            --- --- --- --- --- --- CGC --- --- --- --- AGA AGA --- AGG ATC --- --- TGT CTA --- CGA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Acomys_cilicicus                            --- --- --- --- --- --- CGC --- --- --- --- AGA AGA --- AGG ATC --- --- TGT CTA --- CGA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Eptesicus_fuscus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATA AGA --- --- TGT GTT --- AGA AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Eptesicus_bruneus                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAT TAC AGG AGA CGG AGA AGG AGG CGC --- CGC CGG CGC CGG GCG AGG AGG CGA CGC GCC TAC TGC TGT TGT TGC TGC CGC TGC
+Eptesicus_brasiliensis                      --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATA AGA --- --- TGT GTT --- AGA AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Bos_taurus                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA ATA CAG --- CGC TGT GTC --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA GGG AGA CGC ACC CGC CAT CTC CGG CGT CGC GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Homo_sapiens                                --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG CGA CAC --- --- TGT CCG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TAC AGG CAA CGG AGA CGG AGA TAC CAG CGC CAG CCC CAG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TAT TGC TGT
+Clethrionomys_glareolus                     --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATG --- CGA CGC AGA AGA AGG CGC AGC AGC AGC TGT CGC TCA AGG CGT ATG --- TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG CGG AGA AGA GCC TAC TGC TAC TGC TGC TGC --- TGC
+Microtus_agrestis                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATG --- CGA AGA AGA AGA AGG CGC AGC AGC AGC TGT CGC ACA AGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC AGC AAA CGT CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TAC TGC TGC TGC --- TCC
+Peromyscus_leucopus                         --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Apodemus_sylvaticus                         AGC --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGT AGC AGT TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Murina_cyclotis                             --- --- --- --- --- --- --- AGG --- --- --- AGA AGG AGA ATA AGA --- --- TGT GTT --- AGG AGA AGA AGA AGG AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC AGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TCT TGC TGC TGC TGC
+Ovis_dalli                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTT --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGC GTG CGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Ovis_aries                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTT --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGC GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Pan_paniscus                                --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TCC AGG --- CGG CGA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AAG CGA CAG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Pan_troglodytes                             --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT ATG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TCC AGG CAA CGG AGA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AAG CGA CAG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Trachypithecus_cristatus                    --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Peromyscus_maniculatus                      --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Peromyscus_polionotus                       --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACT CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Myotis_lucifugus                            --- --- --- --- TGC --- --- --- --- AGA --- AGA AGA AGA AGG AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGG CGG AGA AGG TCA CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Myotis_daubentoni                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT AGG AGA AGG AGA AGA AGA AGA AGG --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGG CGG AGA AGG TCA CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Chalinolobus_beatrix                        --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGG AGA --- --- TGT GTA --- AGG AGA AGA AGA AGA AGA --- AGC AGC AGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG --- CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Pipistrellus_savii                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAT TAC AGG AGA CGG AGA AGG AGG CGC --- CGC CGG CGC CGA GCG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC CGC TGC
+Corynorhinus_townsendii                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TAT AGG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAT TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Trachypithecus_geei                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Trachypithecus_pileatus                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCA AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Semnopithecus_entellus                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA CGC AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG --- TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG CGG AGA CGG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_francoisi                    --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Mus_famulus                                 --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CAA CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_pahari                                  --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CAA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_cookii                                  --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Plecotus_townsemdii                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TAT AGG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAT TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Plecotus_auritus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTA AGA --- --- TGT GTT --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Trachypithecus_johnii                       --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CAG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_vetulus                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA CGC AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG --- TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG CGG AGA CGG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_obscurus                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Trachypithecus_phayrei                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG --- TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Mus_spretus                                 --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_spicilegus                              --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA AGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_macedonicus                             --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_domesticus                     --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA AGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_musculus                       --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_bactrianus                     --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_castaneus                      --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+
+
+
+    1    1    1    1    1    1    1    1    2    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  1  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  1  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  5  5
+    CTA  0  0  0  0  1  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  0  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  1  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  1  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  8  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  8  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  1  0 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  4  0  0  3  3  5
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  1  0 | His CAT  0  1  0  0  0  0 | Arg CGT  0  0  0  1  1  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  6  6 10  7  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  4  1  0  3  3  2
+    CTG  1  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  7  4  0  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  9  8 10  7 11 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  9  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  1  2 |     GCG  0  0  0  0  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  1  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  4  2  2  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  1  0 | Arg CGT  1  2  1  1  0  1
+    CTC  0  0  0  0  1  0 |     CCC  0  0  0  0  2  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  6  6  7  5
+    CTA  0  0  0  0  1  0 |     CCA  0  1  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  2  2  3  3  2  1
+    CTG  1  0  1  1  0  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  2  3  0  2 |     CGG  4  3  3  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  1  1  1  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  2  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  2  4
+    ATA  0  0  0  0  1  0 |     ACA  0  0  0  0  1  1 | Lys AAA  0  0  0  0  1  0 | Arg AGA  9 10  9  9  7  8
+Met ATG  2  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  1  1  0  0 |     GCC  2  1  1  1  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  1  2  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  1  1  0 | Cys TGT  1  1  2  1  2  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  3  2 |     TGC  6  6  7  3  3  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  5  5  5  5  6  7
+    CTA  0  0  0  0  0  0 |     CCA  1  0  0  0  0  0 | Gln CAA  1  1  0  0  1  1 |     CGA  2  2  3  4  2  2
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  1  1  0  0  0  0 |     CGG  4  4  5  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  5  4  3  3  5  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA  8  9  8  9 12 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  0  0  0 |     AGG  6  5  7  6  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  1  1  2 |     GCG  0  0  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  1  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  1  0  0  0  0  0 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  2  4  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  1  2  2  2  2 |     TGC  6  5  5  4  4  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  1 | Arg CGT  0  2  0  1  1  0
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  0  0  1  0  0  0 |     CGC  6  7  7  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  1  4  2  2  4
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  1 |     CAG  0  0  1  3  3  0 |     CGG  2  3  2  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  1  1  1  0 | Lys AAA  1  0  0  0  0  0 | Arg AGA 10  9  7  9  9  8
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  1  0  1  0  0  0 |     AGG  7  6  5  4  4  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  0  1  1  1  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  2  1  1  1  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  4  3  1  1  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  2  3  4  4  3 |     TGC  5  6  6  6  6  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  0  1  0  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  2  0  0  0  0 |     CGC  5  4  5  6  6  8
+    CTA  0  0  0  0  0  1 |     CCA  0  0  0  1  2  0 | Gln CAA  0  1  0  1  1  0 |     CGA  3  1  2  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  0  3  1  0  0  0 |     CGG  2  2  5  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  1  0  0  0  0  0 |     ACA  0  1  0  0  0  1 | Lys AAA  0  0  0  0  0  3 | Arg AGA  9  9  9  9 10  5
+Met ATG  1  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  7  8  7  6  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  1  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  7  6  6  5  5
+Leu TTA  1  1  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  1  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  9  7  6  8  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  5  3  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  1  1  0  0 | Lys AAA  2  2  0  0  0  0 | Arg AGA  6  7 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  3
+    TTC  0  0  0  0  1  0 |     TCC  0  0  1  0  0  0 |     TAC  2  2  2  3  3  3 |     TGC  4  3  6  6  5  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  1  0  0  1  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  1  0  0  1  0 |     CGC  9  5  4  5  4  4
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  1  0  0  0 |     CGA  4  1  1  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  4  1  2  3  1 |     CGG  2  2  4  5  3  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  1  0  0  0  0 |     AGC  2  4  4  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  2  0  1  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  6  8  8  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  1  0 |     AGG  6  6  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  1  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  8  8  8  8  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  2  3  5  3  3  3
+    CTG  1  1  1  1  1  0 |     CCG  0  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  5  3  2  4  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  0  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  2  2  2  2  2 | Arg AGA  9  6  5  5  6  5
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  9  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  2  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  1  1  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  5  1  1  1  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  2  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  1  1  0  0  0  0 |     ACC  1  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  1  1  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG 10 10  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  0  0  0 |     TAC  3  4  4  3  3  2 |     TGC  4  5  4  7  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  1  1  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  1  2  3  4  1
+    CTG  0  0  0  1  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  3  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  2  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  2  2
+    ATA  0  0  0  0  1  1 |     ACA  1  0  1  0  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  6  5  6  5  9
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  9  8  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  1  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  4  4  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  1  1  0  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  1  1  0  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  0  0  1  0 |     CAG  1  1  5  5  1  0 |     CGG  3  2  1  1  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  1  1  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  9 10  8  6
+Met ATG  1  1  2  3  1  1 |     ACG  0  0  0  0  1  0 |     AAG  0  0  1  1  0  0 |     AGG  5  6  5  5  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  0  0  1  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  2 | Cys TGT  2  3  3  1  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  2  2 |     TGC  7  7  6  7  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  1  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  6  6  7  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  1 |     CGA  3  1  1  1  2  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  3  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  2  2  2  2  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 12 10 11 12 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  9  7  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  1  0  1 |     GCG  0  0  0  0  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  6  6  5  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  6  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  0  0  0  0  1  1 |     CGA  2  2  1  2  4  3
+    CTG  1  1  1  1  0  0 |     CCG  1  0  1  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  4  4  5  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  0  0  1  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  4
+Met ATG  1  1  1  1  1  1 |     ACG  1  1  0  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  1 | Cys TGT  2  2  3  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  3  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  1  0  0  0 |     CGA  4  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  5 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  7  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  1  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#12: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#13: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#14: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#15: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#22: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#23: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#24: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#25: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#26: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#29: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#30: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#31: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#32: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#33: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#37: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#38: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#39: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#40: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#45: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#48: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#49: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#50: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#51: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#52: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#55: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#56: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#57: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#63: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#64: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#65: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#68: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#69: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#72: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#73: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#74: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#75: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#78: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#79: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#80: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#81: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#87: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Pairwise deletion)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Loxodonta_africana  
+Procavia_capensis    0.0823 (0.2269 2.7574)
+Erinaceus_europaeus  0.1637 (0.2465 1.5057) 0.1154 (0.2841 2.4618)
+Oryctolagus_cuniculus 0.2206 (0.2261 1.0248) 0.2514 (0.2279 0.9066) 0.2019 (0.2187 1.0834)
+Cynocephalus_variegatus 0.1134 (0.1932 1.7047) 0.3817 (0.2121 0.5557)-1.0000 (0.2081 -1.0000) 0.1646 (0.1414 0.8590)
+Tupaia_belangeri     0.1304 (0.1350 1.0358) 0.2132 (0.2199 1.0317)-1.0000 (0.2487 -1.0000) 0.2063 (0.1305 0.6324) 0.1831 (0.1244 0.6795)
+Otolemur_garnettii   0.0617 (0.1176 1.9079) 0.1573 (0.1630 1.0360)-1.0000 (0.1272 -1.0000) 0.0840 (0.0759 0.9039) 0.1315 (0.0744 0.5655) 0.1806 (0.0834 0.4615)
+Cavia_porcellus      0.0900 (0.1662 1.8460) 0.2173 (0.2294 1.0556) 0.0632 (0.1989 3.1450) 0.2394 (0.1312 0.5482) 0.1545 (0.1101 0.7126) 0.1476 (0.0856 0.5797) 0.1981 (0.0933 0.4711)
+Dipodomys_ordii      0.1796 (0.1426 0.7942) 0.2332 (0.1885 0.8086) 0.1428 (0.1475 1.0331) 0.2786 (0.1227 0.4404) 0.1260 (0.1113 0.8832) 0.1213 (0.0974 0.8031) 0.0654 (0.0483 0.7386) 0.1524 (0.1026 0.6735)
+Felis_catus          0.0888 (0.1784 2.0076) 0.3695 (0.2869 0.7763) 0.0790 (0.2543 3.2199) 0.1981 (0.1899 0.9585) 0.2905 (0.2458 0.8464) 0.1882 (0.1980 1.0520) 0.1863 (0.1189 0.6385) 0.2742 (0.2097 0.7648) 0.1808 (0.1742 0.9635)
+Rhinopoma_hardwickei 0.1571 (0.1544 0.9829) 0.3939 (0.2710 0.6879)-1.0000 (0.2156 -1.0000) 0.2154 (0.1694 0.7863) 0.1774 (0.1573 0.8866) 0.2292 (0.1577 0.6883) 0.2434 (0.1259 0.5171) 0.2557 (0.1579 0.6175) 0.1728 (0.1142 0.6609) 0.1327 (0.0988 0.7449)
+Pteropus_hypomelanus 0.1871 (0.1601 0.8555) 0.4120 (0.2497 0.6060)-1.0000 (0.1887 -1.0000) 0.1875 (0.1236 0.6588) 0.1823 (0.1452 0.7963) 0.2901 (0.1286 0.4434) 0.2210 (0.0828 0.3747) 0.2121 (0.1341 0.6321) 0.1511 (0.0970 0.6420) 0.0952 (0.0624 0.6554) 0.3250 (0.0374 0.1152)
+Pteropus_vampyrus    0.1739 (0.1473 0.8469) 0.3879 (0.2564 0.6609)-1.0000 (0.1889 -1.0000) 0.1689 (0.1098 0.6499) 0.1377 (0.1157 0.8401) 0.2164 (0.1071 0.4952) 0.1444 (0.0575 0.3983) 0.1752 (0.1116 0.6372) 0.1190 (0.0788 0.6623) 0.1563 (0.1061 0.6788) 0.5797 (0.0683 0.1177)-1.0000 (0.0284 0.0000)
+Desmodus_rotundus    0.1357 (0.1538 1.1330) 0.4048 (0.2566 0.6338)-1.0000 (0.2062 -1.0000) 0.1858 (0.1347 0.7249) 0.1953 (0.1570 0.8038) 0.1770 (0.1123 0.6347) 0.1598 (0.0933 0.5841) 0.1958 (0.1230 0.6284) 0.0985 (0.0917 0.9313) 0.1091 (0.0675 0.6187) 0.2557 (0.0383 0.1497) 0.0614 (0.0093 0.1521) 0.2504 (0.0381 0.1521)
+Equus_asinus         0.1760 (0.2349 1.3346) 0.2729 (0.2837 1.0393) 0.0924 (0.2404 2.6016) 0.2236 (0.1508 0.6742) 0.3126 (0.2139 0.6842) 0.2849 (0.1719 0.6035) 0.2072 (0.1394 0.6729) 0.1918 (0.1663 0.8667) 0.1725 (0.1514 0.8776) 0.1434 (0.1037 0.7231) 0.1896 (0.0946 0.4986) 0.1041 (0.0530 0.5090) 0.1786 (0.0852 0.4768) 0.1948 (0.0643 0.3303)
+Equus_caballus       0.1978 (0.2444 1.2353) 0.2909 (0.2899 0.9967) 0.1197 (0.2752 2.2998) 0.2788 (0.1798 0.6450) 0.3480 (0.2401 0.6901) 0.3501 (0.2020 0.5771) 0.2610 (0.1680 0.6437) 0.2370 (0.1965 0.8293) 0.2166 (0.1816 0.8383) 0.1882 (0.1304 0.6927) 0.2549 (0.1213 0.4760) 0.1611 (0.0783 0.4858) 0.2468 (0.1120 0.4537) 0.2912 (0.0905 0.3107)-1.0000 (0.0181 0.0000)
+Antilocapra_americana 0.2161 (0.2216 1.0259) 0.6425 (0.3388 0.5273) 0.1290 (0.3027 2.3472) 0.3845 (0.2123 0.5522) 0.4091 (0.2537 0.6202) 0.2969 (0.1984 0.6684) 0.3284 (0.1685 0.5131) 0.3044 (0.1979 0.6501) 0.2662 (0.2050 0.7701) 0.1847 (0.1257 0.6807) 0.4069 (0.1239 0.3046) 0.5071 (0.1067 0.2104) 0.5818 (0.1311 0.2254) 0.3638 (0.1123 0.3088) 0.4392 (0.1600 0.3642) 0.5143 (0.1771 0.3443)
+Hylobates_lar        0.1804 (0.2054 1.1383) 0.3361 (0.2468 0.7342) 0.1565 (0.1760 1.1242) 0.2802 (0.1750 0.6248) 0.3869 (0.2258 0.5835) 0.2659 (0.1902 0.7150) 0.1874 (0.1056 0.5636) 0.2920 (0.2166 0.7418) 0.2777 (0.1563 0.5626) 0.2266 (0.2511 1.1085) 0.3788 (0.2362 0.6236) 0.3245 (0.1863 0.5742) 0.3012 (0.1660 0.5512) 0.2817 (0.1984 0.7044) 0.3726 (0.2692 0.7223) 0.4183 (0.2890 0.6908) 0.6470 (0.2997 0.4633)
+Callithrix_jacchus   0.1986 (0.2187 1.1011) 0.4167 (0.2711 0.6507) 0.1296 (0.1744 1.3457) 0.2523 (0.1349 0.5348) 0.2972 (0.1810 0.6091) 0.3238 (0.1725 0.5328) 0.2098 (0.0943 0.4493) 0.4107 (0.1938 0.4719) 0.2115 (0.1445 0.6832) 0.3300 (0.2287 0.6929) 0.4352 (0.2295 0.5273) 0.3720 (0.1798 0.4833) 0.3325 (0.1689 0.5079) 0.3896 (0.1978 0.5078) 0.3038 (0.1858 0.6117) 0.3699 (0.2161 0.5843) 0.8615 (0.2730 0.3169) 0.9415 (0.1527 0.1622)
+Saguinus_imperator   0.1489 (0.2059 1.3829) 0.4159 (0.2530 0.6083) 0.1199 (0.1935 1.6139) 0.3441 (0.1461 0.4246) 0.4044 (0.1943 0.4804) 0.4367 (0.1848 0.4232) 0.2371 (0.1050 0.4426) 0.5616 (0.2068 0.3682) 0.2331 (0.1563 0.6708) 0.3839 (0.2482 0.6465) 0.5219 (0.2432 0.4661) 0.4526 (0.1924 0.4251) 0.4041 (0.1810 0.4478) 0.5969 (0.2108 0.3532) 0.4254 (0.2175 0.5112) 0.4215 (0.2171 0.5150) 0.7701 (0.2742 0.3560) 0.7052 (0.1641 0.2328) 0.3131 (0.0224 0.0715)
+Saimiri_sciureus     0.1508 (0.1868 1.2393) 0.2666 (0.1930 0.7241) 0.1258 (0.1765 1.4031) 0.2533 (0.0997 0.3937) 0.2477 (0.1338 0.5401) 0.3117 (0.1294 0.4152) 0.1687 (0.0697 0.4128) 0.4088 (0.1486 0.3636) 0.1390 (0.0865 0.6222) 0.2259 (0.1833 0.8114) 0.3632 (0.1763 0.4854) 0.3428 (0.1522 0.4440) 0.2839 (0.1317 0.4639) 0.3869 (0.1524 0.3939) 0.3597 (0.1813 0.5039) 0.4408 (0.2116 0.4802) 0.5061 (0.2240 0.4425) 0.7071 (0.1487 0.2103) 0.9884 (0.0696 0.0704) 5.9387 (0.0797 0.0134)
+Hipposideros_commersoni 0.2190 (0.2102 0.9596) 0.5031 (0.3216 0.6393) 0.1108 (0.2216 2.0001) 0.2860 (0.2188 0.7649) 0.2832 (0.2306 0.8142) 0.3243 (0.2109 0.6503) 0.3068 (0.1721 0.5610) 0.2760 (0.2139 0.7750) 0.2971 (0.1732 0.5830) 0.3145 (0.1563 0.4971) 0.9881 (0.1280 0.1296) 0.6055 (0.0895 0.1478) 0.8245 (0.1218 0.1478) 0.4801 (0.0949 0.1976) 0.4129 (0.1847 0.4473) 0.5044 (0.2148 0.4259) 0.6232 (0.2215 0.3554) 0.3716 (0.2419 0.6511) 0.5248 (0.2611 0.4975) 0.6267 (0.2756 0.4398) 0.5174 ( [...]
+Rhinolophus_ferrumequinum 0.2725 (0.2336 0.8570) 0.4195 (0.2972 0.7083)-1.0000 (0.2171 -1.0000) 0.2741 (0.2191 0.7997) 0.2852 (0.2440 0.8555) 0.2674 (0.1992 0.7449) 0.2990 (0.1731 0.5790) 0.2798 (0.2270 0.8112) 0.2586 (0.1591 0.6152) 0.2482 (0.1706 0.6870) 1.0088 (0.1340 0.1328) 0.6360 (0.0964 0.1515) 0.7731 (0.1199 0.1551) 0.5004 (0.1039 0.2077) 0.3739 (0.1897 0.5073) 0.4523 (0.2190 0.4842) 0.6845 (0.2293 0.3350) 0.3204 (0.2091 0.6528) 0.4837 (0.2565 0.5303) 0.5795 (0.2708 0.4672) 0.477 [...]
+Chilonatalus_micropus 0.1708 (0.1866 1.0926) 0.3582 (0.2824 0.7885)-1.0000 (0.2422 -1.0000) 0.2471 (0.1552 0.6280) 0.4007 (0.2021 0.5043) 0.2977 (0.1588 0.5335) 0.3052 (0.1144 0.3747) 0.3700 (0.1687 0.4561) 0.2431 (0.1637 0.6735) 0.1039 (0.0743 0.7150) 0.2299 (0.0683 0.2969) 0.0938 (0.0284 0.3023) 0.2228 (0.0712 0.3194) 0.1460 (0.0381 0.2609) 0.2579 (0.0578 0.2241) 0.4018 (0.0831 0.2069) 0.4732 (0.1124 0.2375) 0.4726 (0.2488 0.5265) 0.5119 (0.2043 0.3991) 0.6827 (0.2232 0.3269) 0.4674 (0 [...]
+Otonycteris_hemprichi 0.1310 (0.1988 1.5172) 0.3882 (0.2744 0.7069)-1.0000 (0.3354 -1.0000) 0.2260 (0.2005 0.8874) 0.3521 (0.2198 0.6244) 0.2255 (0.1495 0.6630) 0.2907 (0.1586 0.5456) 0.2321 (0.1551 0.6681) 0.1756 (0.1812 1.0319) 0.2268 (0.1549 0.6830) 0.2490 (0.0879 0.3531) 0.1865 (0.0671 0.3600) 0.2927 (0.1108 0.3785) 0.2159 (0.0773 0.3582) 0.3051 (0.1030 0.3377) 0.3404 (0.1081 0.3176) 0.5753 (0.1651 0.2870) 0.4309 (0.2965 0.6882) 0.5245 (0.2753 0.5248) 0.4933 (0.2786 0.5648) 0.3355 (0 [...]
+Monophyllus_redmani  0.1165 (0.1533 1.3159) 0.4418 (0.2558 0.5791)-1.0000 (0.2189 -1.0000) 0.1653 (0.1343 0.8127) 0.1721 (0.1565 0.9094) 0.1580 (0.1120 0.7090) 0.1576 (0.0931 0.5907) 0.1567 (0.1227 0.7829) 0.1080 (0.0915 0.8473) 0.1076 (0.0674 0.6259) 0.1728 (0.0382 0.2210) 0.0415 (0.0093 0.2248) 0.1691 (0.0380 0.2248) 0.0000 (0.0000 0.1196) 0.1501 (0.0642 0.4275) 0.2225 (0.0902 0.4055) 0.3595 (0.1120 0.3116) 0.2774 (0.1979 0.7133) 0.3843 (0.1973 0.5133) 0.4648 (0.2102 0.4523) 0.3051 (0. [...]
+Elaphodus_cephalophus 0.1900 (0.2014 1.0603) 0.5107 (0.2885 0.5648) 0.1251 (0.2997 2.3956) 0.3757 (0.2281 0.6072) 0.3642 (0.2445 0.6713) 0.2831 (0.1963 0.6934) 0.3251 (0.1845 0.5676) 0.2661 (0.1895 0.7124) 0.2897 (0.2300 0.7937) 0.1591 (0.1358 0.8535) 0.3787 (0.1573 0.4153) 0.3761 (0.1173 0.3119) 0.5572 (0.1550 0.2782) 0.2918 (0.1229 0.4214) 0.2752 (0.1347 0.4896) 0.3231 (0.1511 0.4675) 2.8449 (0.0754 0.0265) 0.6132 (0.3063 0.4995) 0.8041 (0.2801 0.3484) 0.7200 (0.2902 0.4030) 0.5133 (0. [...]
+Hippopotamus_amphibius 0.2110 (0.2024 0.9590) 0.4496 (0.2958 0.6578)-1.0000 (0.2904 -1.0000) 0.2858 (0.2016 0.7053) 0.5573 (0.2360 0.4235) 0.3287 (0.1596 0.4855) 0.2772 (0.1481 0.5344) 0.1760 (0.1636 0.9295) 0.1902 (0.1851 0.9729) 0.1625 (0.1396 0.8589) 0.2042 (0.1221 0.5979) 0.2571 (0.0948 0.3688) 0.3976 (0.1316 0.3309) 0.1320 (0.0845 0.6404) 0.1929 (0.1142 0.5919) 0.1911 (0.1140 0.5964) 0.5113 (0.1367 0.2674) 0.5288 (0.2764 0.5227) 0.4172 (0.2146 0.5143) 0.4042 (0.2357 0.5832) 0.2875 ( [...]
+Hexaprotodon_liberiensis 0.2110 (0.2024 0.9590) 0.4496 (0.2958 0.6578)-1.0000 (0.2904 -1.0000) 0.2858 (0.2016 0.7053) 0.5573 (0.2360 0.4235) 0.3287 (0.1596 0.4855) 0.2772 (0.1481 0.5344) 0.1760 (0.1636 0.9295) 0.1902 (0.1851 0.9729) 0.1625 (0.1396 0.8589) 0.2042 (0.1221 0.5979) 0.2571 (0.0948 0.3688) 0.3976 (0.1316 0.3309) 0.1320 (0.0845 0.6404) 0.1929 (0.1142 0.5919) 0.1911 (0.1140 0.5964) 0.5113 (0.1367 0.2674) 0.5288 (0.2764 0.5227) 0.4172 (0.2146 0.5143) 0.4042 (0.2357 0.5832) 0.2875 [...]
+Potamochoerus_porcus 0.1379 (0.1801 1.3060) 0.4431 (0.3025 0.6826) 0.0544 (0.2073 3.8101) 0.2361 (0.1588 0.6729) 0.2426 (0.1892 0.7802) 0.2971 (0.1588 0.5344) 0.3073 (0.1088 0.3542) 0.2459 (0.1567 0.6372) 0.1246 (0.1057 0.8481) 0.2042 (0.1282 0.6278) 0.2302 (0.0784 0.3406) 0.3672 (0.0627 0.1708) 0.4227 (0.0711 0.1683) 0.1965 (0.0679 0.3453) 0.1998 (0.0935 0.4679) 0.2693 (0.1199 0.4453) 0.5401 (0.1179 0.2182) 0.4363 (0.2343 0.5371) 0.5731 (0.2201 0.3841) 0.5482 (0.2333 0.4255) 0.4485 (0.1 [...]
+Sus_scrofa           0.1434 (0.1930 1.3458) 0.3938 (0.3013 0.7651) 0.0832 (0.2065 2.4833) 0.2093 (0.1583 0.7561) 0.2131 (0.1885 0.8847) 0.2639 (0.1582 0.5995) 0.2669 (0.1085 0.4063) 0.2170 (0.1561 0.7195) 0.1355 (0.1053 0.7770) 0.1814 (0.1277 0.7044) 0.2566 (0.0885 0.3448) 0.4204 (0.0726 0.1727) 0.4753 (0.0809 0.1701) 0.2225 (0.0778 0.3497) 0.2201 (0.0932 0.4232) 0.2977 (0.1195 0.4015) 0.5806 (0.1281 0.2207) 0.3847 (0.2335 0.6069) 0.5010 (0.2193 0.4377) 0.4820 (0.2324 0.4821) 0.3954 (0.1 [...]
+Pongo_pygmaeus       0.1157 (0.1641 1.4182) 0.1932 (0.2315 1.1987) 0.1437 (0.2156 1.5008) 0.1828 (0.1322 0.7232) 0.2206 (0.1503 0.6814) 0.2329 (0.1441 0.6189) 0.1378 (0.0695 0.5046) 0.2033 (0.1446 0.7112) 0.1991 (0.1325 0.6656) 0.2030 (0.2061 1.0153) 0.2795 (0.1849 0.6613) 0.2284 (0.1389 0.6082) 0.2096 (0.1220 0.5822) 0.2000 (0.1501 0.7505) 0.2759 (0.1903 0.6896) 0.3160 (0.2080 0.6581) 0.4989 (0.2436 0.4883) 0.5575 (0.0706 0.1267) 0.7809 (0.1615 0.2068) 0.6083 (0.1729 0.2842) 0.4873 (0.1 [...]
+Papio_cynocephalus   0.1381 (0.1661 1.2032) 0.3372 (0.2370 0.7028) 0.1370 (0.1494 1.0901) 0.2736 (0.1333 0.4872) 0.2912 (0.1300 0.4464) 0.2647 (0.1419 0.5361) 0.1200 (0.0466 0.3881) 0.2846 (0.1479 0.5199) 0.1920 (0.0980 0.5103) 0.2588 (0.1876 0.7247) 0.5034 (0.1833 0.3641) 0.4179 (0.1366 0.3267) 0.3089 (0.1041 0.3370) 0.3554 (0.1479 0.4162) 0.3778 (0.1928 0.5103) 0.3656 (0.1985 0.5430) 0.5515 (0.2398 0.4349) 1.0500 (0.0912 0.0869) 0.9854 (0.1224 0.1242) 0.8471 (0.1177 0.1390) 1.0256 (0.1 [...]
+Ateles_sp            0.1470 (0.1803 1.2265) 0.3074 (0.1986 0.6460) 0.1090 (0.1821 1.6713) 0.3591 (0.1560 0.4344) 0.2825 (0.1639 0.5801) 0.3716 (0.1609 0.4329) 0.1925 (0.0856 0.4447) 0.4821 (0.1815 0.3766) 0.1672 (0.1134 0.6783) 0.3170 (0.2181 0.6880) 0.4043 (0.2002 0.4952) 0.4248 (0.1813 0.4268) 0.3787 (0.1704 0.4500) 0.4821 (0.1815 0.3766) 0.4359 (0.2287 0.5246) 0.5218 (0.2607 0.4996) 0.6616 (0.2723 0.4116) 0.4534 (0.1228 0.2708) 0.6135 (0.0737 0.1201) 1.4692 (0.0838 0.0570) 1.3239 (0.0 [...]
+Alouatta_seniculus   0.1403 (0.2045 1.4575) 0.3601 (0.2262 0.6281) 0.0949 (0.2044 2.1547) 0.3818 (0.1667 0.4366) 0.3414 (0.1920 0.5624) 0.4215 (0.1834 0.4351) 0.1840 (0.1042 0.5663) 0.4795 (0.2050 0.4275) 0.1724 (0.1330 0.7714) 0.2418 (0.2060 0.8519) 0.3648 (0.2244 0.6152) 0.3813 (0.2048 0.5371) 0.3424 (0.1930 0.5636) 0.4286 (0.2051 0.4785) 0.4092 (0.2498 0.6105) 0.4850 (0.2827 0.5829) 0.5850 (0.2719 0.4648) 0.4406 (0.1416 0.3214) 0.3893 (0.0736 0.1891) 0.7019 (0.0837 0.1192) 0.6329 (0.0 [...]
+Sigmodon_hispidus    0.0786 (0.1691 2.1525) 0.2384 (0.2383 0.9995) 0.1088 (0.1877 1.7245) 0.0960 (0.0811 0.8455) 0.0803 (0.1074 1.3378) 0.1733 (0.1119 0.6456) 0.0604 (0.0514 0.8513) 0.1083 (0.0988 0.9123) 0.1154 (0.0809 0.7012) 0.1971 (0.1948 0.9883) 0.1806 (0.1505 0.8332) 0.1511 (0.1112 0.7356) 0.1096 (0.0848 0.7737) 0.1365 (0.1221 0.8947) 0.1974 (0.1702 0.8620) 0.2421 (0.1999 0.8256) 0.2797 (0.2014 0.7199) 0.2211 (0.1763 0.7974) 0.1865 (0.1440 0.7719) 0.2055 (0.1556 0.7573) 0.1373 (0.1 [...]
+Micromys_minutus     0.1077 (0.1829 1.6972) 0.2171 (0.2387 1.0998) 0.0543 (0.1823 3.3559) 0.0980 (0.0864 0.8809) 0.1149 (0.1076 0.9364) 0.1377 (0.0943 0.6844) 0.0674 (0.0515 0.7638) 0.1041 (0.1017 0.9761) 0.1165 (0.0811 0.6957) 0.1874 (0.1833 0.9782) 0.1528 (0.1395 0.9126) 0.1380 (0.1007 0.7295) 0.0973 (0.0746 0.7670) 0.1258 (0.1115 0.8863) 0.2499 (0.1646 0.6586) 0.2833 (0.1881 0.6640) 0.2805 (0.1935 0.6899) 0.1782 (0.1824 1.0236) 0.1706 (0.1442 0.8456) 0.1881 (0.1559 0.8287) 0.1258 (0.1 [...]
+Meriones_unguiculatus 0.0938 (0.1594 1.6997) 0.2056 (0.2038 0.9916) 0.0913 (0.1721 1.8849) 0.1318 (0.1117 0.8475) 0.0770 (0.0956 1.2423) 0.0790 (0.0975 1.2335) 0.0505 (0.0423 0.8388) 0.0667 (0.0715 1.0718) 0.1198 (0.0820 0.6842) 0.1882 (0.1776 0.9440) 0.1669 (0.1392 0.8344) 0.1519 (0.1000 0.6585) 0.1062 (0.0738 0.6945) 0.1373 (0.1110 0.8084) 0.2293 (0.1652 0.7205) 0.2836 (0.1953 0.6884) 0.3725 (0.2064 0.5540) 0.1721 (0.1673 0.9722) 0.1706 (0.1385 0.8118) 0.1889 (0.1502 0.7952) 0.1237 (0. [...]
+Natalus_micropus     0.1708 (0.1866 1.0926) 0.3582 (0.2824 0.7885)-1.0000 (0.2422 -1.0000) 0.2471 (0.1552 0.6280) 0.4007 (0.2021 0.5043) 0.2977 (0.1588 0.5335) 0.3052 (0.1144 0.3747) 0.3700 (0.1687 0.4561) 0.2431 (0.1637 0.6735) 0.1039 (0.0743 0.7150) 0.2299 (0.0683 0.2969) 0.0938 (0.0284 0.3023) 0.2228 (0.0712 0.3194) 0.1460 (0.0381 0.2609) 0.2579 (0.0578 0.2241) 0.4018 (0.0831 0.2069) 0.4732 (0.1124 0.2375) 0.4726 (0.2488 0.5265) 0.5119 (0.2043 0.3991) 0.6827 (0.2232 0.3269) 0.4674 (0. [...]
+Natalus_stramineus   0.1834 (0.2004 1.0926) 0.3752 (0.2958 0.7885)-1.0000 (0.2558 -1.0000) 0.2650 (0.1664 0.6280) 0.4260 (0.2148 0.5043) 0.3190 (0.1702 0.5335) 0.3341 (0.1252 0.3747) 0.3961 (0.1807 0.4561) 0.2606 (0.1755 0.6735) 0.1176 (0.0841 0.7150) 0.1958 (0.0581 0.2969) 0.1259 (0.0380 0.3023) 0.2542 (0.0812 0.3194) 0.1837 (0.0479 0.2609) 0.3029 (0.0679 0.2241) 0.4521 (0.0935 0.2069) 0.5180 (0.1230 0.2375) 0.4965 (0.2614 0.5265) 0.5418 (0.2162 0.3991) 0.7203 (0.2355 0.3269) 0.5005 (0. [...]
+Pteronotus_parnellii 0.1200 (0.1539 1.2824) 0.4068 (0.2568 0.6314)-1.0000 (0.2064 -1.0000) 0.2067 (0.1348 0.6524) 0.2715 (0.1571 0.5788) 0.2178 (0.1124 0.5163) 0.2229 (0.0934 0.4190) 0.2435 (0.1231 0.5057) 0.1229 (0.0918 0.7467) 0.1097 (0.0676 0.6164) 0.2093 (0.0383 0.1831) 0.0502 (0.0094 0.1861) 0.2048 (0.0381 0.1861) 0.0000 (0.0000 0.1184) 0.1721 (0.0644 0.3741) 0.2561 (0.0905 0.3536) 0.4216 (0.1124 0.2667) 0.3141 (0.1986 0.6323) 0.4370 (0.1980 0.4531) 0.6826 (0.2110 0.3092) 0.4386 (0. [...]
+Mormoops_megalophylla 0.1233 (0.1406 1.1404) 0.3693 (0.2315 0.6268) 0.0829 (0.2247 2.7097) 0.1481 (0.1388 0.9373) 0.1703 (0.1615 0.9485) 0.1428 (0.1163 0.8145) 0.1935 (0.0971 0.5016) 0.1725 (0.1271 0.7370) 0.0898 (0.0920 1.0242) 0.1573 (0.0779 0.4951) 0.2652 (0.0483 0.1821) 0.1018 (0.0189 0.1851) 0.2063 (0.0382 0.1851) 0.0796 (0.0094 0.1178) 0.1807 (0.0802 0.4438) 0.2024 (0.0854 0.4218) 0.3623 (0.1122 0.3097) 0.2861 (0.1990 0.6956) 0.3751 (0.2024 0.5396) 0.3678 (0.1852 0.5036) 0.2992 (0. [...]
+Moschus_sp           0.2190 (0.2102 0.9596) 0.6864 (0.3154 0.4594) 0.1292 (0.2731 2.1144) 0.3963 (0.2154 0.5435) 0.4230 (0.2567 0.6068) 0.3672 (0.2077 0.5657) 0.3397 (0.1720 0.5064) 0.3366 (0.2138 0.6352) 0.3413 (0.2168 0.6351) 0.1847 (0.1260 0.6824) 0.3930 (0.1449 0.3687) 0.3873 (0.1054 0.2722) 0.5934 (0.1431 0.2411) 0.2969 (0.1110 0.3738) 0.3413 (0.1467 0.4299) 0.3990 (0.1634 0.4095) 1.0596 (0.0709 0.0669) 0.5589 (0.2973 0.5319) 0.7004 (0.2690 0.3841) 0.7752 (0.2768 0.3571) 0.5449 (0.2 [...]
+Gorilla_gorilla      0.1471 (0.2236 1.5199) 0.2787 (0.2941 1.0555) 0.1937 (0.2529 1.3058) 0.3806 (0.2125 0.5583) 0.3157 (0.2558 0.8101) 0.2964 (0.2227 0.7512) 0.2066 (0.1358 0.6573) 0.3474 (0.2577 0.7418) 0.2790 (0.1944 0.6968) 0.2398 (0.2861 1.1932) 0.4155 (0.2718 0.6543) 0.3654 (0.2199 0.6018) 0.3426 (0.1975 0.5764) 0.3395 (0.2388 0.7032) 0.3722 (0.2998 0.8053) 0.4160 (0.3201 0.7695) 0.5762 (0.3306 0.5738) 0.8693 (0.0662 0.0761) 0.7888 (0.1618 0.2052) 0.6147 (0.1733 0.2819) 0.7005 (0.1 [...]
+Nasalis_larvatus     0.1875 (0.2248 1.1990) 0.4205 (0.2915 0.6933) 0.1692 (0.1948 1.1508) 0.3489 (0.1754 0.5026) 0.3726 (0.1821 0.4888) 0.3341 (0.1848 0.5531) 0.2137 (0.0854 0.3996) 0.3591 (0.1928 0.5370) 0.2654 (0.1399 0.5273) 0.3016 (0.2393 0.7934) 0.5452 (0.2304 0.4225) 0.4731 (0.1808 0.3821) 0.3694 (0.1447 0.3918) 0.4009 (0.1928 0.4810) 0.4572 (0.2412 0.5274) 0.4774 (0.2537 0.5314) 0.6001 (0.2932 0.4886) 1.2380 (0.1101 0.0889) 1.2022 (0.1530 0.1273) 1.3077 (0.1644 0.1257) 1.3824 (0.1 [...]
+Procolobus_badius    0.1711 (0.1985 1.1601) 0.3831 (0.2735 0.7139) 0.1688 (0.1778 1.0531) 0.2942 (0.1506 0.5119) 0.3638 (0.1647 0.4528) 0.3484 (0.1800 0.5165) 0.1926 (0.0757 0.3932) 0.3292 (0.1644 0.4995) 0.2758 (0.1350 0.4896) 0.2852 (0.2102 0.7371) 0.6142 (0.2128 0.3464) 0.5684 (0.1758 0.3093) 0.4378 (0.1400 0.3199) 0.4723 (0.1878 0.3976) 0.4525 (0.2228 0.4923) 0.4359 (0.2287 0.5246) 0.6524 (0.2712 0.4157) 1.3729 (0.1205 0.0878) 0.9439 (0.1289 0.1366) 0.8195 (0.1242 0.1516) 0.9796 (0.1 [...]
+Colobus_guereza      0.2448 (0.2664 1.0883) 0.4383 (0.3045 0.6947) 0.2197 (0.2307 1.0499) 0.3858 (0.1970 0.5108) 0.4525 (0.1956 0.4324) 0.3617 (0.1904 0.5264) 0.2597 (0.1054 0.4057) 0.4062 (0.2100 0.5170) 0.3299 (0.1672 0.5069) 0.3510 (0.2515 0.7165) 0.7072 (0.2493 0.3525) 0.6306 (0.1984 0.3146) 0.4943 (0.1608 0.3253) 0.5694 (0.2169 0.3809) 0.4696 (0.2346 0.4996) 0.4517 (0.2406 0.5325) 0.7324 (0.3102 0.4235) 1.6678 (0.1501 0.0900) 1.2659 (0.1631 0.1289) 1.0987 (0.1584 0.1441) 1.5598 (0.1 [...]
+Macaca_fascicularis  0.1450 (0.1786 1.2319) 0.3488 (0.2485 0.7125) 0.1440 (0.1603 1.1131) 0.2910 (0.1435 0.4931) 0.3123 (0.1411 0.4520) 0.2807 (0.1523 0.5426) 0.1429 (0.0561 0.3925) 0.3016 (0.1588 0.5264) 0.2093 (0.1082 0.5168) 0.2699 (0.1985 0.7355) 0.5287 (0.1946 0.3682) 0.4458 (0.1473 0.3303) 0.3346 (0.1140 0.3407) 0.3771 (0.1588 0.4211) 0.3955 (0.2044 0.5169) 0.3821 (0.2102 0.5502) 0.5721 (0.2518 0.4401) 1.1486 (0.1007 0.0877) 1.0562 (0.1325 0.1254) 0.9106 (0.1277 0.1403) 1.1102 (0.1 [...]
+Macaca_mulatta       0.1381 (0.1661 1.2032) 0.3372 (0.2370 0.7028) 0.1370 (0.1494 1.0901) 0.2736 (0.1333 0.4872) 0.2912 (0.1300 0.4464) 0.2647 (0.1419 0.5361) 0.1200 (0.0466 0.3881) 0.2846 (0.1479 0.5199) 0.1920 (0.0980 0.5103) 0.2588 (0.1876 0.7247) 0.5034 (0.1833 0.3641) 0.4179 (0.1366 0.3267) 0.3089 (0.1041 0.3370) 0.3554 (0.1479 0.4162) 0.3778 (0.1928 0.5103) 0.3656 (0.1985 0.5430) 0.5515 (0.2398 0.4349) 1.0500 (0.0912 0.0869) 0.9854 (0.1224 0.1242) 0.8471 (0.1177 0.1390) 1.0256 (0.1 [...]
+Arvicola_terrestris  0.1193 (0.1745 1.4624) 0.3233 (0.2309 0.7142) 0.0963 (0.1745 1.8118) 0.1146 (0.0808 0.7056) 0.1105 (0.1014 0.9174) 0.1699 (0.1061 0.6245) 0.0762 (0.0464 0.6095) 0.1162 (0.0880 0.7577) 0.1492 (0.0771 0.5168) 0.2290 (0.1630 0.7118) 0.2118 (0.1424 0.6721) 0.1954 (0.1036 0.5302) 0.1388 (0.0776 0.5594) 0.1760 (0.1144 0.6502) 0.2533 (0.1452 0.5731) 0.2911 (0.1681 0.5775) 0.3350 (0.1923 0.5741) 0.2653 (0.1756 0.6621) 0.2312 (0.1272 0.5503) 0.2558 (0.1385 0.5414) 0.1627 (0.0 [...]
+Phodopus_sungorus    0.1042 (0.1560 1.4974) 0.3084 (0.2259 0.7327) 0.0845 (0.1572 1.8610) 0.1327 (0.0914 0.6888) 0.0637 (0.0747 1.1725) 0.1868 (0.0995 0.5327) 0.0668 (0.0419 0.6269) 0.1198 (0.0885 0.7387) 0.1356 (0.0724 0.5341) 0.2573 (0.1697 0.6593) 0.1677 (0.1047 0.6243) 0.1797 (0.0884 0.4917) 0.1209 (0.0628 0.5189) 0.1640 (0.0990 0.6036) 0.2279 (0.1452 0.6372) 0.2857 (0.1740 0.6092) 0.3294 (0.1753 0.5321) 0.2309 (0.1653 0.7158) 0.2350 (0.1333 0.5672) 0.2594 (0.1447 0.5580) 0.1678 (0.0 [...]
+Phodopus_roborovskii 0.0926 (0.1685 1.8201) 0.3037 (0.2253 0.7418) 0.1222 (0.1688 1.3820) 0.1299 (0.0861 0.6630) 0.0903 (0.0962 1.0645) 0.1558 (0.1064 0.6827) 0.0595 (0.0418 0.7013) 0.1305 (0.0883 0.6761) 0.1494 (0.0722 0.4835) 0.2443 (0.1808 0.7401) 0.1778 (0.1372 0.7717) 0.1606 (0.0986 0.6140) 0.1125 (0.0727 0.6464) 0.1462 (0.1094 0.7481) 0.2696 (0.1563 0.5797) 0.3072 (0.1795 0.5842) 0.2811 (0.1868 0.6646) 0.2235 (0.1705 0.7626) 0.2092 (0.1329 0.6353) 0.2312 (0.1443 0.6245) 0.1350 (0.0 [...]
+Peromyscus_californicus 0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 ( [...]
+Rattus_norvegicus    0.1526 (0.1960 1.2847) 0.2221 (0.2505 1.1281) 0.1185 (0.1820 1.5357) 0.1178 (0.0911 0.7735) 0.1153 (0.1146 0.9940) 0.1654 (0.1153 0.6969) 0.0640 (0.0610 0.9539) 0.1268 (0.1128 0.8900) 0.1427 (0.1011 0.7083) 0.2146 (0.1865 0.8688) 0.1535 (0.1408 0.9169) 0.1444 (0.1038 0.7187) 0.1028 (0.0778 0.7561) 0.1310 (0.1146 0.8750) 0.1954 (0.1561 0.7990) 0.2224 (0.1793 0.8064) 0.2521 (0.1866 0.7401) 0.2468 (0.1990 0.8063) 0.2192 (0.1546 0.7056) 0.2403 (0.1665 0.6929) 0.1643 (0.1 [...]
+Acomys_cahirinus     0.0881 (0.1560 1.7703) 0.2950 (0.2140 0.7253) 0.0989 (0.1636 1.6550) 0.1217 (0.0916 0.7526) 0.1042 (0.0966 0.9273) 0.1889 (0.0997 0.5281) 0.0554 (0.0420 0.7573) 0.1231 (0.1099 0.8931) 0.0957 (0.0625 0.6527) 0.1550 (0.1306 0.8428) 0.1124 (0.0890 0.7922) 0.0836 (0.0529 0.6328) 0.0836 (0.0529 0.6328) 0.0820 (0.0630 0.7685) 0.1444 (0.1064 0.7370) 0.1897 (0.1339 0.7058) 0.2780 (0.1636 0.5885) 0.2181 (0.1545 0.7083) 0.2376 (0.1336 0.5620) 0.2623 (0.1451 0.5531) 0.1696 (0.0 [...]
+Acomys_cilicicus     0.0881 (0.1560 1.7703) 0.2950 (0.2140 0.7253) 0.0989 (0.1636 1.6550) 0.1217 (0.0916 0.7526) 0.1042 (0.0966 0.9273) 0.1889 (0.0997 0.5281) 0.0554 (0.0420 0.7573) 0.1231 (0.1099 0.8931) 0.0957 (0.0625 0.6527) 0.1550 (0.1306 0.8428) 0.1124 (0.0890 0.7922) 0.0836 (0.0529 0.6328) 0.0836 (0.0529 0.6328) 0.0820 (0.0630 0.7685) 0.1444 (0.1064 0.7370) 0.1897 (0.1339 0.7058) 0.2780 (0.1636 0.5885) 0.2181 (0.1545 0.7083) 0.2376 (0.1336 0.5620) 0.2623 (0.1451 0.5531) 0.1696 (0.0 [...]
+Eptesicus_fuscus     0.1771 (0.1611 0.9101) 0.3982 (0.2546 0.6394)-1.0000 (0.2700 -1.0000) 0.2541 (0.1662 0.6538) 0.2387 (0.1819 0.7620) 0.2041 (0.1309 0.6416) 0.2333 (0.1252 0.5366) 0.1668 (0.1223 0.7334) 0.2388 (0.1588 0.6649) 0.1361 (0.1016 0.7466) 0.2196 (0.0656 0.2987) 0.1595 (0.0346 0.2170) 0.3397 (0.0794 0.2338) 0.1000 (0.0345 0.3454) 0.2541 (0.0761 0.2996) 0.3684 (0.1031 0.2800) 0.5147 (0.1007 0.1956) 0.6155 (0.2652 0.4308) 0.6027 (0.2264 0.3757) 0.5105 (0.2403 0.4707) 0.3704 (0. [...]
+Eptesicus_bruneus    0.0932 (0.1474 1.5816) 0.3525 (0.2609 0.7401)-1.0000 (0.2771 -1.0000) 0.2630 (0.1638 0.6230) 0.2524 (0.1636 0.6481) 0.2101 (0.1434 0.6825) 0.1633 (0.0847 0.5183) 0.1991 (0.1280 0.6428) 0.1654 (0.1537 0.9295) 0.1031 (0.0772 0.7485) 0.1875 (0.0686 0.3657) 0.1473 (0.0468 0.3177) 0.3303 (0.1178 0.3567) 0.1112 (0.0467 0.4201) 0.2808 (0.0929 0.3310) 0.3960 (0.1224 0.3090) 0.5400 (0.1255 0.2325) 0.4396 (0.2555 0.5812) 0.4409 (0.1914 0.4340) 0.4126 (0.2114 0.5124) 0.2892 (0. [...]
+Eptesicus_brasiliensis 0.1771 (0.1611 0.9101) 0.3982 (0.2546 0.6394)-1.0000 (0.2700 -1.0000) 0.2541 (0.1662 0.6538) 0.2387 (0.1819 0.7620) 0.2041 (0.1309 0.6416) 0.2333 (0.1252 0.5366) 0.1668 (0.1223 0.7334) 0.2388 (0.1588 0.6649) 0.1361 (0.1016 0.7466) 0.2196 (0.0656 0.2987) 0.1595 (0.0346 0.2170) 0.3397 (0.0794 0.2338) 0.1000 (0.0345 0.3454) 0.2541 (0.0761 0.2996) 0.3684 (0.1031 0.2800) 0.5147 (0.1007 0.1956) 0.6155 (0.2652 0.4308) 0.6027 (0.2264 0.3757) 0.5105 (0.2403 0.4707) 0.3704 ( [...]
+Bos_taurus           0.1221 (0.2087 1.7092) 0.5577 (0.3060 0.5486) 0.0638 (0.2713 4.2543) 0.2616 (0.2077 0.7940) 0.3033 (0.2477 0.8167) 0.2224 (0.2001 0.8996) 0.2439 (0.1649 0.6761) 0.2279 (0.1934 0.8487) 0.1964 (0.2088 1.0633) 0.1808 (0.1500 0.8296) 0.2493 (0.1382 0.5541) 0.2294 (0.0993 0.4329) 0.3481 (0.1365 0.3922) 0.1861 (0.1048 0.5631) 0.2043 (0.1292 0.6323) 0.2398 (0.1454 0.6063) 0.3891 (0.0558 0.1433) 0.4861 (0.2860 0.5884) 0.5247 (0.2733 0.5208) 0.4827 (0.2745 0.5686) 0.3247 (0.2 [...]
+Homo_sapiens         0.1621 (0.2180 1.3447) 0.2563 (0.2765 1.0789) 0.1654 (0.2048 1.2382) 0.2609 (0.1852 0.7097) 0.2932 (0.2309 0.7873) 0.2737 (0.2006 0.7328) 0.1798 (0.1154 0.6416) 0.3064 (0.2215 0.7228) 0.2324 (0.1666 0.7171) 0.2475 (0.2685 1.0848) 0.3482 (0.2224 0.6387) 0.3352 (0.1970 0.5879) 0.3124 (0.1761 0.5637) 0.3140 (0.2154 0.6858) 0.3614 (0.2587 0.7158) 0.4066 (0.2782 0.6841) 0.5192 (0.2912 0.5608) 0.4804 (0.0436 0.0908) 0.9237 (0.1361 0.1474) 0.6151 (0.1579 0.2567) 0.6295 (0.1 [...]
+Clethrionomys_glareolus 0.1051 (0.2359 2.2448) 0.2500 (0.2611 1.0445) 0.1556 (0.2169 1.3944) 0.1421 (0.1381 0.9719) 0.0616 (0.1620 2.6311) 0.0998 (0.1258 1.2602) 0.0963 (0.0943 0.9799) 0.1216 (0.1194 0.9819) 0.2237 (0.1269 0.5672) 0.1787 (0.2127 1.1899) 0.2180 (0.1904 0.8732) 0.2400 (0.1474 0.6141) 0.1832 (0.1189 0.6489) 0.1885 (0.1594 0.8455) 0.2401 (0.2060 0.8579) 0.2909 (0.2382 0.8189) 0.3299 (0.2652 0.8038) 0.1771 (0.2317 1.3080) 0.1996 (0.1961 0.9824) 0.2181 (0.2092 0.9591) 0.1574 ( [...]
+Microtus_agrestis    0.1153 (0.2291 1.9861) 0.3568 (0.2824 0.7916) 0.1360 (0.1990 1.4632) 0.1862 (0.1245 0.6687) 0.1146 (0.1621 1.4151) 0.2340 (0.1531 0.6545) 0.1375 (0.0926 0.6729) 0.1833 (0.1390 0.7581) 0.2162 (0.1034 0.4784) 0.2789 (0.2206 0.7911) 0.2782 (0.1864 0.6700) 0.2468 (0.1445 0.5853) 0.1887 (0.1165 0.6176) 0.1955 (0.1561 0.7989) 0.2650 (0.2142 0.8083) 0.3187 (0.2462 0.7726) 0.3602 (0.2458 0.6826) 0.2496 (0.2147 0.8602) 0.2675 (0.1804 0.6742) 0.2914 (0.1929 0.6620) 0.2067 (0.1 [...]
+Peromyscus_leucopus  0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0.0 [...]
+Apodemus_sylvaticus  0.0874 (0.1827 2.0896) 0.2715 (0.2576 0.9489) 0.0513 (0.1821 3.5492) 0.0970 (0.0862 0.8891) 0.1254 (0.1186 0.9462) 0.1375 (0.1101 0.8007) 0.0816 (0.0661 0.8097) 0.1048 (0.1077 1.0278) 0.1442 (0.0962 0.6669) 0.1960 (0.1869 0.9537) 0.1557 (0.1411 0.9060) 0.1463 (0.1040 0.7113) 0.1042 (0.0779 0.7481) 0.1329 (0.1149 0.8648) 0.2199 (0.1565 0.7118) 0.2503 (0.1797 0.7180) 0.2554 (0.1871 0.7323) 0.2257 (0.1994 0.8834) 0.2187 (0.1606 0.7343) 0.2394 (0.1725 0.7208) 0.1655 (0.1 [...]
+Murina_cyclotis      0.1166 (0.1607 1.3780) 0.3526 (0.2808 0.7965)-1.0000 (0.2839 -1.0000) 0.1879 (0.1676 0.8923) 0.2522 (0.1939 0.7688) 0.1497 (0.1194 0.7978) 0.1846 (0.1248 0.6764) 0.1752 (0.1454 0.8301) 0.1877 (0.1583 0.8435) 0.1334 (0.1119 0.8389) 0.1307 (0.0654 0.5004) 0.0875 (0.0345 0.3944) 0.1915 (0.0792 0.4138) 0.0885 (0.0446 0.5041) 0.1465 (0.0654 0.4463) 0.2173 (0.0920 0.4231) 0.3631 (0.1004 0.2765) 0.3844 (0.2645 0.6880) 0.4535 (0.2321 0.5119) 0.3929 (0.2461 0.6263) 0.2643 (0. [...]
+Ovis_dalli           0.1607 (0.1959 1.2189) 0.5506 (0.3038 0.5518) 0.0870 (0.2589 2.9753) 0.2348 (0.2052 0.8740) 0.3163 (0.2407 0.7610) 0.2662 (0.1975 0.7422) 0.2169 (0.1622 0.7480) 0.2254 (0.1908 0.8465) 0.1954 (0.2062 1.0556) 0.1381 (0.1260 0.9123) 0.2430 (0.1354 0.5573) 0.2203 (0.0964 0.4378) 0.3367 (0.1338 0.3975) 0.1800 (0.1019 0.5662) 0.1606 (0.1139 0.7091) 0.1906 (0.1299 0.6812) 0.3262 (0.0561 0.1720) 0.5046 (0.2882 0.5712) 0.5179 (0.2624 0.5067) 0.4763 (0.2723 0.5716) 0.3211 (0.2 [...]
+Ovis_aries           0.1360 (0.1951 1.4342) 0.5971 (0.3026 0.5069) 0.1137 (0.2578 2.2685) 0.2535 (0.2045 0.8065) 0.3264 (0.2442 0.7481) 0.2374 (0.1968 0.8291) 0.2349 (0.1617 0.6882) 0.2441 (0.1901 0.7787) 0.2124 (0.2054 0.9670) 0.1490 (0.1255 0.8424) 0.2644 (0.1349 0.5103) 0.2427 (0.0961 0.3960) 0.3727 (0.1334 0.3578) 0.1960 (0.1016 0.5183) 0.1735 (0.1135 0.6541) 0.2062 (0.1294 0.6277) 0.3943 (0.0559 0.1419) 0.5504 (0.2871 0.5217) 0.5664 (0.2614 0.4615) 0.5179 (0.2712 0.5236) 0.3468 (0.2 [...]
+Pan_paniscus         0.1972 (0.2433 1.2338) 0.2724 (0.2822 1.0357) 0.2189 (0.2333 1.0655) 0.2943 (0.1999 0.6791) 0.3191 (0.2554 0.8006) 0.2762 (0.2158 0.7813) 0.1873 (0.1279 0.6829) 0.3631 (0.2511 0.6915) 0.2965 (0.1812 0.6113) 0.2729 (0.2676 0.9803) 0.4224 (0.2719 0.6436) 0.3707 (0.2189 0.5905) 0.3470 (0.1961 0.5652) 0.3436 (0.2381 0.6929) 0.3774 (0.3004 0.7959) 0.4229 (0.3212 0.7596) 0.5904 (0.3319 0.5622) 0.8833 (0.0678 0.0767) 0.7325 (0.1544 0.2108) 0.5723 (0.1660 0.2901) 0.6539 (0.1 [...]
+Pan_troglodytes      0.2248 (0.2645 1.1769) 0.3035 (0.3041 1.0020) 0.2167 (0.2522 1.1641) 0.3420 (0.2220 0.6491) 0.4118 (0.2799 0.6797) 0.3277 (0.2324 0.7091) 0.2356 (0.1451 0.6161) 0.3547 (0.2615 0.7372) 0.3217 (0.1984 0.6165) 0.2303 (0.2769 1.2026) 0.4751 (0.2756 0.5801) 0.4222 (0.2238 0.5301) 0.3960 (0.2013 0.5082) 0.3883 (0.2426 0.6247) 0.4583 (0.3104 0.6771) 0.5126 (0.3308 0.6453) 0.7004 (0.3388 0.4837) 1.6255 (0.0748 0.0460) 0.9878 (0.1711 0.1732) 0.7330 (0.1826 0.2491) 0.8418 (0.1 [...]
+Trachypithecus_cristatus 0.1296 (0.1719 1.3257) 0.3648 (0.2433 0.6671) 0.1324 (0.1611 1.2161) 0.2671 (0.1441 0.5393) 0.2722 (0.1468 0.5393) 0.2591 (0.1529 0.5901) 0.1264 (0.0560 0.4431) 0.2695 (0.1586 0.5885) 0.2106 (0.1193 0.5666) 0.2076 (0.1935 0.9324) 0.4162 (0.1944 0.4671) 0.3458 (0.1471 0.4253) 0.2930 (0.1248 0.4259) 0.2996 (0.1586 0.5292) 0.3521 (0.2041 0.5797) 0.3700 (0.2161 0.5842) 0.4497 (0.2497 0.5552) 0.8572 (0.1011 0.1179) 0.6743 (0.1174 0.1740) 0.7458 (0.1282 0.1719) 0.8680  [...]
+Peromyscus_maniculatus 0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0 [...]
+Peromyscus_polionotus 0.0713 (0.1560 2.1873) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1051 (0.0762 0.7252) 0.0814 (0.0854 1.0496) 0.1285 (0.0959 0.7464) 0.0466 (0.0323 0.6943) 0.1055 (0.0781 0.7403) 0.1165 (0.0623 0.5350) 0.2316 (0.1696 0.7323) 0.1828 (0.1264 0.6914) 0.1312 (0.0883 0.6735) 0.0886 (0.0627 0.7083) 0.1478 (0.0990 0.6695) 0.2528 (0.1451 0.5742) 0.2904 (0.1680 0.5786) 0.2402 (0.1752 0.7292) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0. [...]
+Myotis_lucifugus     0.1194 (0.1611 1.3497) 0.3933 (0.2540 0.6459)-1.0000 (0.2840 -1.0000) 0.2690 (0.1538 0.5718) 0.1742 (0.1230 0.7060) 0.2205 (0.1362 0.6176) 0.2081 (0.1048 0.5035) 0.1632 (0.0958 0.5871) 0.2154 (0.1437 0.6670) 0.1507 (0.0970 0.6434) 0.0911 (0.0295 0.3237) 0.1053 (0.0295 0.2800) 0.3034 (0.0987 0.3255) 0.0785 (0.0301 0.3835) 0.2539 (0.0892 0.3511) 0.3554 (0.1173 0.3301) 0.5390 (0.1224 0.2271) 0.4373 (0.2754 0.6297) 0.4337 (0.2181 0.5029) 0.4693 (0.2320 0.4944) 0.3129 (0. [...]
+Myotis_daubentoni    0.1013 (0.1611 1.5892) 0.4102 (0.2751 0.6707)-1.0000 (0.2906 -1.0000) 0.2595 (0.1800 0.6938) 0.1587 (0.1434 0.9032) 0.2364 (0.1597 0.6754) 0.2070 (0.1222 0.5904) 0.1324 (0.0961 0.7263) 0.2343 (0.1626 0.6939) 0.1501 (0.1079 0.7187) 0.1346 (0.0510 0.3789) 0.1540 (0.0510 0.3312) 0.3267 (0.1207 0.3695) 0.1176 (0.0509 0.4330) 0.2765 (0.1022 0.3696) 0.3781 (0.1313 0.3473) 0.4812 (0.1323 0.2749) 0.4517 (0.2966 0.6567) 0.4369 (0.2184 0.5000) 0.4102 (0.2389 0.5825) 0.2992 (0. [...]
+Chalinolobus_beatrix 0.1261 (0.1236 0.9802) 0.3154 (0.2339 0.7417)-1.0000 (0.2845 -1.0000) 0.2884 (0.1655 0.5740) 0.2339 (0.1470 0.6285) 0.1644 (0.1052 0.6400) 0.2111 (0.1051 0.4976) 0.1619 (0.1190 0.7348) 0.2350 (0.1560 0.6639) 0.1503 (0.0862 0.5739) 0.1524 (0.0509 0.3339) 0.1044 (0.0301 0.2886) 0.2464 (0.0756 0.3069) 0.0781 (0.0301 0.3849) 0.2846 (0.0909 0.3193) 0.4011 (0.1196 0.2982) 0.5879 (0.1339 0.2278) 0.4733 (0.2252 0.4759) 0.5329 (0.2064 0.3873) 0.5771 (0.2201 0.3813) 0.4051 (0. [...]
+Pipistrellus_savii   0.0937 (0.1475 1.5737) 0.4371 (0.2610 0.5971)-1.0000 (0.2772 -1.0000) 0.2116 (0.1639 0.7746) 0.2531 (0.1637 0.6467) 0.2107 (0.1435 0.6811) 0.1637 (0.0847 0.5173) 0.2247 (0.1281 0.5698) 0.1659 (0.1538 0.9269) 0.1155 (0.0772 0.6685) 0.1879 (0.0686 0.3651) 0.1476 (0.0468 0.3171) 0.3310 (0.1179 0.3561) 0.1271 (0.0467 0.3676) 0.2814 (0.0930 0.3304) 0.3969 (0.1224 0.3085) 0.8221 (0.1256 0.1528) 0.4407 (0.2556 0.5801) 0.5791 (0.1914 0.3306) 0.5292 (0.2115 0.3997) 0.3686 (0. [...]
+Corynorhinus_townsendii 0.1475 (0.1713 1.1615) 0.3597 (0.2662 0.7403)-1.0000 (0.2534 -1.0000) 0.2290 (0.1703 0.7439) 0.2337 (0.1682 0.7196) 0.2378 (0.1438 0.6047) 0.2518 (0.1212 0.4814) 0.1853 (0.1022 0.5513) 0.2205 (0.1717 0.7789) 0.1794 (0.1182 0.6584) 0.2514 (0.0795 0.3161) 0.2037 (0.0484 0.2377) 0.3625 (0.0924 0.2549) 0.1598 (0.0586 0.3665) 0.2694 (0.0967 0.3590) 0.3679 (0.1241 0.3374) 0.7954 (0.1481 0.1862) 0.4517 (0.2625 0.5811) 0.4646 (0.2124 0.4572) 0.4342 (0.2317 0.5337) 0.3489  [...]
+Trachypithecus_geei  0.1477 (0.1719 1.1639) 0.3321 (0.2435 0.7331) 0.1491 (0.1611 1.0806) 0.2754 (0.1335 0.4847) 0.2812 (0.1352 0.4808) 0.2664 (0.1421 0.5334) 0.1179 (0.0464 0.3938) 0.2789 (0.1473 0.5283) 0.2141 (0.1087 0.5075) 0.2170 (0.1821 0.8390) 0.4386 (0.1826 0.4162) 0.3612 (0.1360 0.3766) 0.3020 (0.1145 0.3790) 0.3111 (0.1473 0.4735) 0.3700 (0.1920 0.5187) 0.3900 (0.2038 0.5226) 0.4761 (0.2370 0.4977) 1.1684 (0.1011 0.0865) 0.7652 (0.1072 0.1401) 0.8516 (0.1179 0.1384) 1.0308 (0.1 [...]
+Trachypithecus_pileatus 0.1296 (0.1719 1.3257) 0.3656 (0.2435 0.6658) 0.1491 (0.1611 1.0806) 0.2480 (0.1335 0.5384) 0.2512 (0.1352 0.5383) 0.2412 (0.1421 0.5890) 0.1049 (0.0464 0.4424) 0.2789 (0.1473 0.5283) 0.1921 (0.1087 0.5655) 0.2170 (0.1821 0.8390) 0.3915 (0.1826 0.4663) 0.3203 (0.1360 0.4246) 0.2692 (0.1145 0.4253) 0.3111 (0.1473 0.4735) 0.3318 (0.1920 0.5786) 0.3496 (0.2038 0.5831) 0.5322 (0.2370 0.4453) 0.8586 (0.1011 0.1178) 0.9945 (0.1072 0.1078) 1.1065 (0.1179 0.1065) 1.4456 ( [...]
+Semnopithecus_entellus 0.1415 (0.1912 1.3516) 0.2728 (0.2498 0.9158) 0.1540 (0.1916 1.2435) 0.2516 (0.1700 0.6755) 0.2434 (0.1594 0.6549) 0.1981 (0.1573 0.7942) 0.1195 (0.0674 0.5635) 0.2293 (0.1515 0.6606) 0.2084 (0.1467 0.7039) 0.1966 (0.2106 1.0712) 0.3583 (0.2120 0.5918) 0.2987 (0.1625 0.5440) 0.2536 (0.1441 0.5682) 0.2610 (0.1745 0.6687) 0.3368 (0.2226 0.6609) 0.3529 (0.2352 0.6664) 0.4998 (0.2837 0.5677) 0.6275 (0.1291 0.2057) 0.5215 (0.1308 0.2509) 0.5743 (0.1422 0.2476) 0.5425 (0 [...]
+Trachypithecus_francoisi 0.1477 (0.1719 1.1639) 0.3321 (0.2435 0.7331) 0.1491 (0.1611 1.0806) 0.2754 (0.1335 0.4847) 0.2812 (0.1352 0.4808) 0.2664 (0.1421 0.5334) 0.1179 (0.0464 0.3938) 0.2789 (0.1473 0.5283) 0.2141 (0.1087 0.5075) 0.2170 (0.1821 0.8390) 0.4386 (0.1826 0.4162) 0.3612 (0.1360 0.3766) 0.3020 (0.1145 0.3790) 0.3111 (0.1473 0.4735) 0.3700 (0.1920 0.5187) 0.3900 (0.2038 0.5226) 0.4761 (0.2370 0.4977) 1.1684 (0.1011 0.0865) 0.7652 (0.1072 0.1401) 0.8516 (0.1179 0.1384) 1.0308  [...]
+Mus_famulus          0.1421 (0.2019 1.4211) 0.2872 (0.2823 0.9829) 0.0841 (0.2190 2.6049) 0.0937 (0.0908 0.9685) 0.1577 (0.1466 0.9293) 0.2131 (0.1367 0.6414) 0.1134 (0.0856 0.7549) 0.1201 (0.1286 1.0705) 0.1684 (0.1215 0.7217) 0.2121 (0.2176 1.0261) 0.1981 (0.1647 0.8315) 0.1950 (0.1266 0.6495) 0.1460 (0.0999 0.6840) 0.1738 (0.1378 0.7927) 0.2256 (0.1809 0.8017) 0.2529 (0.2047 0.8092) 0.2579 (0.2124 0.8236) 0.1947 (0.1981 1.0175) 0.2174 (0.1821 0.8376) 0.2370 (0.1945 0.8206) 0.1701 (0.1 [...]
+Mus_pahari           0.1205 (0.2017 1.6730) 0.3786 (0.2888 0.7626) 0.1328 (0.2188 1.6476) 0.1148 (0.1061 0.9238) 0.1568 (0.1464 0.9341) 0.2142 (0.1310 0.6117) 0.1025 (0.0906 0.8837) 0.1193 (0.1284 1.0764) 0.1513 (0.1214 0.8026) 0.1875 (0.1934 1.0316) 0.2146 (0.1704 0.7938) 0.2132 (0.1320 0.6189) 0.1611 (0.1051 0.6521) 0.1894 (0.1432 0.7563) 0.2168 (0.1698 0.7834) 0.2447 (0.1934 0.7906) 0.2783 (0.2185 0.7850) 0.2900 (0.2276 0.7850) 0.2704 (0.1763 0.6518) 0.2943 (0.1885 0.6403) 0.2090 (0.1 [...]
+Mus_cookii           0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Plecotus_townsemdii  0.1475 (0.1713 1.1615) 0.3597 (0.2662 0.7403)-1.0000 (0.2534 -1.0000) 0.2290 (0.1703 0.7439) 0.2337 (0.1682 0.7196) 0.2378 (0.1438 0.6047) 0.2518 (0.1212 0.4814) 0.1853 (0.1022 0.5513) 0.2205 (0.1717 0.7789) 0.1794 (0.1182 0.6584) 0.2514 (0.0795 0.3161) 0.2037 (0.0484 0.2377) 0.3625 (0.0924 0.2549) 0.1598 (0.0586 0.3665) 0.2694 (0.0967 0.3590) 0.3679 (0.1241 0.3374) 0.7954 (0.1481 0.1862) 0.4517 (0.2625 0.5811) 0.4646 (0.2124 0.4572) 0.4342 (0.2317 0.5337) 0.3489 (0. [...]
+Plecotus_auritus     0.1672 (0.1713 1.0246) 0.3679 (0.2690 0.7312)-1.0000 (0.2534 -1.0000) 0.2351 (0.1669 0.7098) 0.2702 (0.1904 0.7047) 0.2468 (0.1482 0.6004) 0.2620 (0.1260 0.4807) 0.2088 (0.1348 0.6454) 0.2293 (0.1759 0.7672) 0.1388 (0.0933 0.6722) 0.2333 (0.0796 0.3412) 0.1498 (0.0394 0.2628) 0.2938 (0.0822 0.2798) 0.1254 (0.0492 0.3922) 0.1892 (0.0673 0.3559) 0.2764 (0.0928 0.3356) 0.8291 (0.1273 0.1536) 0.5008 (0.2633 0.5257) 0.5204 (0.2143 0.4118) 0.4462 (0.2354 0.5276) 0.3576 (0. [...]
+Trachypithecus_johnii 0.1848 (0.2047 1.1080) 0.3995 (0.2680 0.6709) 0.1692 (0.1923 1.1367) 0.2852 (0.1547 0.5422) 0.3270 (0.1584 0.4843) 0.2759 (0.1637 0.5932) 0.1658 (0.0657 0.3964) 0.3191 (0.1698 0.5321) 0.2590 (0.1373 0.5302) 0.2682 (0.2049 0.7642) 0.5374 (0.2123 0.3950) 0.4604 (0.1638 0.3559) 0.3823 (0.1458 0.3814) 0.3897 (0.1756 0.4507) 0.4504 (0.2225 0.4941) 0.4718 (0.2348 0.4977) 0.6353 (0.2688 0.4232) 1.2283 (0.1259 0.1025) 0.9060 (0.1276 0.1408) 0.9962 (0.1386 0.1391) 0.9399 (0. [...]
+Trachypithecus_vetulus 0.1415 (0.1912 1.3516) 0.2728 (0.2498 0.9158) 0.1540 (0.1916 1.2435) 0.2516 (0.1700 0.6755) 0.2434 (0.1594 0.6549) 0.1981 (0.1573 0.7942) 0.1195 (0.0674 0.5635) 0.2293 (0.1515 0.6606) 0.2084 (0.1467 0.7039) 0.1966 (0.2106 1.0712) 0.3583 (0.2120 0.5918) 0.2987 (0.1625 0.5440) 0.2536 (0.1441 0.5682) 0.2610 (0.1745 0.6687) 0.3368 (0.2226 0.6609) 0.3529 (0.2352 0.6664) 0.4998 (0.2837 0.5677) 0.6275 (0.1291 0.2057) 0.5215 (0.1308 0.2509) 0.5743 (0.1422 0.2476) 0.5425 (0 [...]
+Trachypithecus_obscurus 0.1296 (0.1719 1.3257) 0.3648 (0.2433 0.6671) 0.1324 (0.1611 1.2161) 0.2671 (0.1441 0.5393) 0.2722 (0.1468 0.5393) 0.2591 (0.1529 0.5901) 0.1264 (0.0560 0.4431) 0.2695 (0.1586 0.5885) 0.2106 (0.1193 0.5666) 0.2076 (0.1935 0.9324) 0.4162 (0.1944 0.4671) 0.3458 (0.1471 0.4253) 0.2930 (0.1248 0.4259) 0.2996 (0.1586 0.5292) 0.3521 (0.2041 0.5797) 0.3700 (0.2161 0.5842) 0.4497 (0.2497 0.5552) 0.8572 (0.1011 0.1179) 0.6743 (0.1174 0.1740) 0.7458 (0.1282 0.1719) 0.8680 ( [...]
+Trachypithecus_phayrei 0.1296 (0.1719 1.3257) 0.3634 (0.2495 0.6866) 0.1324 (0.1611 1.2161) 0.2662 (0.1474 0.5539) 0.2712 (0.1505 0.5550) 0.2582 (0.1565 0.6062) 0.1260 (0.0573 0.4546) 0.2683 (0.1625 0.6056) 0.2095 (0.1222 0.5830) 0.1902 (0.1861 0.9784) 0.4158 (0.1993 0.4793) 0.3453 (0.1507 0.4363) 0.2925 (0.1277 0.4365) 0.2987 (0.1625 0.5440) 0.3308 (0.1898 0.5739) 0.3490 (0.2019 0.5785) 0.4373 (0.2366 0.5409) 1.1673 (0.1032 0.0884) 0.8199 (0.1042 0.1271) 0.6818 (0.1203 0.1765) 0.8708 (0 [...]
+Mus_spretus          0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Mus_spicilegus       0.1387 (0.1820 1.3121) 0.3394 (0.2694 0.7937) 0.1141 (0.2000 1.7527) 0.1290 (0.1011 0.7837) 0.1056 (0.1294 1.2259) 0.1987 (0.1204 0.6059) 0.1009 (0.0757 0.7500) 0.1371 (0.1179 0.8595) 0.1555 (0.1060 0.6817) 0.2306 (0.1998 0.8662) 0.2275 (0.1535 0.6748) 0.2219 (0.1160 0.5227) 0.1624 (0.0896 0.5516) 0.1978 (0.1270 0.6417) 0.2126 (0.1693 0.7961) 0.2610 (0.1989 0.7619) 0.3017 (0.2003 0.6639) 0.2372 (0.2043 0.8610) 0.2518 (0.1710 0.6791) 0.2745 (0.1831 0.6670) 0.1934 (0.1 [...]
+Mus_macedonicus      0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Mus_musculus_domesticus 0.1387 (0.1820 1.3121) 0.3394 (0.2694 0.7937) 0.1141 (0.2000 1.7527) 0.1290 (0.1011 0.7837) 0.1056 (0.1294 1.2259) 0.1987 (0.1204 0.6059) 0.1009 (0.0757 0.7500) 0.1371 (0.1179 0.8595) 0.1555 (0.1060 0.6817) 0.2306 (0.1998 0.8662) 0.2275 (0.1535 0.6748) 0.2219 (0.1160 0.5227) 0.1624 (0.0896 0.5516) 0.1978 (0.1270 0.6417) 0.2126 (0.1693 0.7961) 0.2610 (0.1989 0.7619) 0.3017 (0.2003 0.6639) 0.2372 (0.2043 0.8610) 0.2518 (0.1710 0.6791) 0.2745 (0.1831 0.6670) 0.1934 ( [...]
+Mus_musculus_musculus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0. [...]
+Mus_musculus_bactrianus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 ( [...]
+Mus_musculus_castaneus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0 [...]
+
+
+TREE #  1:  ((1, 2), ((((5, 6), ((((18, (32, (44, ((69, 70), 61)))), (((45, (((79, 80), ((88, 89), 81)), (((90, 91), 82), 71))), (46, 47)), ((48, 49), 33))), ((19, 20), (21, (34, 35)))), 7)), ((8, (((((50, (62, 63)), (51, 52)), (36, (53, (64, (72, 73))))), ((37, (((((((93, 94), (((97, 98), 96), 95)), 92), 83), (84, 85)), 65), 54)), (38, (55, 56)))), 9)), 4)), (3, ((((11, (22, 23)), (12, 13)), (((24, (39, 40)), ((((66, (74, 75)), ((76, 77), (78, (86, 87)))), (57, 58, 59)), 25)), (14, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:195):  -3393.537520      +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..5   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..32  109..110 110..44  110..111 111..112 112..69  112..70  111..61  107..113 113..114 114..115 115..45  115..116 116..117 117..118 118..79  118..80  117..119 119..120 120..88  120..89  119..81  116..121 121..122 122..123 123..90  123..91  122..82  121..71  114..124 124..46  124..47  113..125 125..126 126..48  126..49  125..33  106..127 127..128 128.. [...]
+ 0.017193 0.784533 0.938480 0.105619 0.000004 0.000004 0.000004 0.500859 0.430502 0.050633 0.158263 0.042588 0.144023 0.083088 0.006059 0.161639 0.052813 0.090270 0.000004 0.069817 0.020652 0.021297 0.119648 0.051713 0.000004 0.038545 0.081484 0.019514 0.000004 0.000004 0.000004 0.019184 0.120961 0.000004 0.100698 0.000004 0.000004 0.038535 0.000004 0.000004 0.000004 0.000004 0.038536 0.000004 0.019099 0.038488 0.101162 0.000004 0.000004 0.018723 0.000004 0.000004 0.180495 0.054942 0.060 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  14.49379
+
+((1: 0.784533, 2: 0.938480): 0.017193, ((((5: 0.500859, 6: 0.430502): 0.000004, ((((18: 0.083088, (32: 0.161639, (44: 0.090270, ((69: 0.020652, 70: 0.021297): 0.069817, 61: 0.119648): 0.000004): 0.052813): 0.006059): 0.144023, (((45: 0.081484, (((79: 0.000004, 80: 0.019184): 0.000004, ((88: 0.100698, 89: 0.000004): 0.000004, 81: 0.000004): 0.120961): 0.000004, (((90: 0.000004, 91: 0.000004): 0.000004, 82: 0.038536): 0.000004, 71: 0.000004): 0.038535): 0.019514): 0.038545, (46: 0.038488,  [...]
+
+((Loxodonta_africana: 0.784533, Procavia_capensis: 0.938480): 0.017193, ((((Cynocephalus_variegatus: 0.500859, Tupaia_belangeri: 0.430502): 0.000004, ((((Hylobates_lar: 0.083088, (Pongo_pygmaeus: 0.161639, (Gorilla_gorilla: 0.090270, ((Pan_paniscus: 0.020652, Pan_troglodytes: 0.021297): 0.069817, Homo_sapiens: 0.119648): 0.000004): 0.052813): 0.006059): 0.144023, (((Nasalis_larvatus: 0.081484, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.019184): 0.000004, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.43282
+
+omega (dN/dS) =  0.53748
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+  99..100    0.017   128.5    66.5  0.5375  0.0044  0.0082   0.6   0.5
+ 100..1      0.785   128.5    66.5  0.5375  0.2022  0.3762  26.0  25.0
+ 100..2      0.938   128.5    66.5  0.5375  0.2419  0.4500  31.1  29.9
+  99..101    0.106   128.5    66.5  0.5375  0.0272  0.0506   3.5   3.4
+ 101..102    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 102..103    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 103..104    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 104..5      0.501   128.5    66.5  0.5375  0.1291  0.2402  16.6  16.0
+ 104..6      0.431   128.5    66.5  0.5375  0.1110  0.2064  14.3  13.7
+ 103..105    0.051   128.5    66.5  0.5375  0.0131  0.0243   1.7   1.6
+ 105..106    0.158   128.5    66.5  0.5375  0.0408  0.0759   5.2   5.0
+ 106..107    0.043   128.5    66.5  0.5375  0.0110  0.0204   1.4   1.4
+ 107..108    0.144   128.5    66.5  0.5375  0.0371  0.0691   4.8   4.6
+ 108..18     0.083   128.5    66.5  0.5375  0.0214  0.0398   2.8   2.6
+ 108..109    0.006   128.5    66.5  0.5375  0.0016  0.0029   0.2   0.2
+ 109..32     0.162   128.5    66.5  0.5375  0.0417  0.0775   5.4   5.2
+ 109..110    0.053   128.5    66.5  0.5375  0.0136  0.0253   1.7   1.7
+ 110..44     0.090   128.5    66.5  0.5375  0.0233  0.0433   3.0   2.9
+ 110..111    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 111..112    0.070   128.5    66.5  0.5375  0.0180  0.0335   2.3   2.2
+ 112..69     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+ 112..70     0.021   128.5    66.5  0.5375  0.0055  0.0102   0.7   0.7
+ 111..61     0.120   128.5    66.5  0.5375  0.0308  0.0574   4.0   3.8
+ 107..113    0.052   128.5    66.5  0.5375  0.0133  0.0248   1.7   1.6
+ 113..114    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 114..115    0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 115..45     0.081   128.5    66.5  0.5375  0.0210  0.0391   2.7   2.6
+ 115..116    0.020   128.5    66.5  0.5375  0.0050  0.0094   0.6   0.6
+ 116..117    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 117..118    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 118..79     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 118..80     0.019   128.5    66.5  0.5375  0.0049  0.0092   0.6   0.6
+ 117..119    0.121   128.5    66.5  0.5375  0.0312  0.0580   4.0   3.9
+ 119..120    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 120..88     0.101   128.5    66.5  0.5375  0.0260  0.0483   3.3   3.2
+ 120..89     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 119..81     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 116..121    0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 121..122    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 122..123    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 123..90     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 123..91     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 122..82     0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 121..71     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 114..124    0.019   128.5    66.5  0.5375  0.0049  0.0092   0.6   0.6
+ 124..46     0.038   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 124..47     0.101   128.5    66.5  0.5375  0.0261  0.0485   3.4   3.2
+ 113..125    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 125..126    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 126..48     0.019   128.5    66.5  0.5375  0.0048  0.0090   0.6   0.6
+ 126..49     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 125..33     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 106..127    0.180   128.5    66.5  0.5375  0.0465  0.0866   6.0   5.8
+ 127..128    0.055   128.5    66.5  0.5375  0.0142  0.0263   1.8   1.8
+ 128..19     0.060   128.5    66.5  0.5375  0.0155  0.0288   2.0   1.9
+ 128..20     0.043   128.5    66.5  0.5375  0.0112  0.0208   1.4   1.4
+ 127..129    0.020   128.5    66.5  0.5375  0.0052  0.0096   0.7   0.6
+ 129..21     0.066   128.5    66.5  0.5375  0.0171  0.0319   2.2   2.1
+ 129..130    0.116   128.5    66.5  0.5375  0.0298  0.0555   3.8   3.7
+ 130..34     0.020   128.5    66.5  0.5375  0.0052  0.0098   0.7   0.6
+ 130..35     0.057   128.5    66.5  0.5375  0.0148  0.0275   1.9   1.8
+ 105..7      0.110   128.5    66.5  0.5375  0.0283  0.0526   3.6   3.5
+ 102..131    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 131..132    0.018   128.5    66.5  0.5375  0.0047  0.0087   0.6   0.6
+ 132..8      0.401   128.5    66.5  0.5375  0.1033  0.1921  13.3  12.8
+ 132..133    0.054   128.5    66.5  0.5375  0.0138  0.0258   1.8   1.7
+ 133..134    0.188   128.5    66.5  0.5375  0.0485  0.0902   6.2   6.0
+ 134..135    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 135..136    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 136..137    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 137..50     0.037   128.5    66.5  0.5375  0.0095  0.0176   1.2   1.2
+ 137..138    0.106   128.5    66.5  0.5375  0.0272  0.0507   3.5   3.4
+ 138..62     0.175   128.5    66.5  0.5375  0.0452  0.0840   5.8   5.6
+ 138..63     0.056   128.5    66.5  0.5375  0.0145  0.0269   1.9   1.8
+ 136..139    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 139..51     0.039   128.5    66.5  0.5375  0.0101  0.0187   1.3   1.2
+ 139..52     0.056   128.5    66.5  0.5375  0.0145  0.0270   1.9   1.8
+ 135..140    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 140..36     0.118   128.5    66.5  0.5375  0.0304  0.0565   3.9   3.8
+ 140..141    0.036   128.5    66.5  0.5375  0.0093  0.0174   1.2   1.2
+ 141..53     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 141..142    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 142..64     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 142..143    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 143..72     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 143..73     0.019   128.5    66.5  0.5375  0.0048  0.0089   0.6   0.6
+ 134..144    0.023   128.5    66.5  0.5375  0.0059  0.0109   0.8   0.7
+ 144..145    0.072   128.5    66.5  0.5375  0.0185  0.0343   2.4   2.3
+ 145..37     0.037   128.5    66.5  0.5375  0.0095  0.0176   1.2   1.2
+ 145..146    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 146..147    0.021   128.5    66.5  0.5375  0.0054  0.0100   0.7   0.7
+ 147..148    0.077   128.5    66.5  0.5375  0.0199  0.0370   2.6   2.5
+ 148..149    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 149..150    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 150..151    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 151..152    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 152..93     0.019   128.5    66.5  0.5375  0.0049  0.0091   0.6   0.6
+ 152..94     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 151..153    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 153..154    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 154..155    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 155..97     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 155..98     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 154..96     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 153..95     0.019   128.5    66.5  0.5375  0.0049  0.0091   0.6   0.6
+ 150..92     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 149..83     0.038   128.5    66.5  0.5375  0.0099  0.0184   1.3   1.2
+ 148..156    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 156..84     0.038   128.5    66.5  0.5375  0.0099  0.0184   1.3   1.2
+ 156..85     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 147..65     0.037   128.5    66.5  0.5375  0.0095  0.0177   1.2   1.2
+ 146..54     0.078   128.5    66.5  0.5375  0.0200  0.0373   2.6   2.5
+ 144..157    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 157..38     0.136   128.5    66.5  0.5375  0.0350  0.0651   4.5   4.3
+ 157..158    0.102   128.5    66.5  0.5375  0.0264  0.0491   3.4   3.3
+ 158..55     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 158..56     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 133..9      0.318   128.5    66.5  0.5375  0.0819  0.1524  10.5  10.1
+ 131..4      0.473   128.5    66.5  0.5375  0.1218  0.2266  15.7  15.1
+ 101..159    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 159..3      1.342   128.5    66.5  0.5375  0.3458  0.6434  44.5  42.8
+ 159..160    0.258   128.5    66.5  0.5375  0.0666  0.1238   8.6   8.2
+ 160..161    0.056   128.5    66.5  0.5375  0.0143  0.0266   1.8   1.8
+ 161..162    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 162..163    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 163..11     0.120   128.5    66.5  0.5375  0.0309  0.0576   4.0   3.8
+ 163..164    0.263   128.5    66.5  0.5375  0.0677  0.1260   8.7   8.4
+ 164..22     0.094   128.5    66.5  0.5375  0.0242  0.0450   3.1   3.0
+ 164..23     0.123   128.5    66.5  0.5375  0.0318  0.0592   4.1   3.9
+ 162..165    0.046   128.5    66.5  0.5375  0.0120  0.0223   1.5   1.5
+ 165..12     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 165..13     0.074   128.5    66.5  0.5375  0.0191  0.0356   2.5   2.4
+ 161..166    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 166..167    0.194   128.5    66.5  0.5375  0.0499  0.0928   6.4   6.2
+ 167..168    0.080   128.5    66.5  0.5375  0.0206  0.0383   2.6   2.5
+ 168..24     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 168..169    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 169..39     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 169..40     0.020   128.5    66.5  0.5375  0.0051  0.0095   0.7   0.6
+ 167..170    0.075   128.5    66.5  0.5375  0.0193  0.0360   2.5   2.4
+ 170..171    0.048   128.5    66.5  0.5375  0.0124  0.0230   1.6   1.5
+ 171..172    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 172..173    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 173..66     0.103   128.5    66.5  0.5375  0.0265  0.0493   3.4   3.3
+ 173..174    0.158   128.5    66.5  0.5375  0.0408  0.0759   5.2   5.0
+ 174..74     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 174..75     0.029   128.5    66.5  0.5375  0.0076  0.0141   1.0   0.9
+ 172..175    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 175..176    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 176..76     0.104   128.5    66.5  0.5375  0.0267  0.0498   3.4   3.3
+ 176..77     0.147   128.5    66.5  0.5375  0.0378  0.0703   4.9   4.7
+ 175..177    0.017   128.5    66.5  0.5375  0.0043  0.0081   0.6   0.5
+ 177..78     0.095   128.5    66.5  0.5375  0.0246  0.0458   3.2   3.0
+ 177..178    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 178..86     0.095   128.5    66.5  0.5375  0.0246  0.0458   3.2   3.0
+ 178..87     0.017   128.5    66.5  0.5375  0.0043  0.0081   0.6   0.5
+ 171..179    0.019   128.5    66.5  0.5375  0.0050  0.0093   0.6   0.6
+ 179..57     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 179..58     0.169   128.5    66.5  0.5375  0.0435  0.0810   5.6   5.4
+ 179..59     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 170..25     0.123   128.5    66.5  0.5375  0.0318  0.0591   4.1   3.9
+ 166..180    0.064   128.5    66.5  0.5375  0.0164  0.0305   2.1   2.0
+ 180..14     0.017   128.5    66.5  0.5375  0.0045  0.0084   0.6   0.6
+ 180..181    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 181..182    0.016   128.5    66.5  0.5375  0.0041  0.0077   0.5   0.5
+ 182..41     0.083   128.5    66.5  0.5375  0.0213  0.0397   2.7   2.6
+ 182..42     0.069   128.5    66.5  0.5375  0.0177  0.0330   2.3   2.2
+ 181..26     0.064   128.5    66.5  0.5375  0.0166  0.0309   2.1   2.1
+ 160..183    0.017   128.5    66.5  0.5375  0.0044  0.0082   0.6   0.5
+ 183..184    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 184..10     0.454   128.5    66.5  0.5375  0.1170  0.2178  15.0  14.5
+ 184..185    0.337   128.5    66.5  0.5375  0.0868  0.1614  11.2  10.7
+ 185..15     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 185..16     0.040   128.5    66.5  0.5375  0.0104  0.0194   1.3   1.3
+ 183..186    0.187   128.5    66.5  0.5375  0.0483  0.0898   6.2   6.0
+ 186..187    0.198   128.5    66.5  0.5375  0.0511  0.0951   6.6   6.3
+ 187..17     0.091   128.5    66.5  0.5375  0.0234  0.0435   3.0   2.9
+ 187..188    0.063   128.5    66.5  0.5375  0.0163  0.0304   2.1   2.0
+ 188..27     0.044   128.5    66.5  0.5375  0.0113  0.0211   1.5   1.4
+ 188..189    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 189..190    0.065   128.5    66.5  0.5375  0.0168  0.0313   2.2   2.1
+ 190..60     0.064   128.5    66.5  0.5375  0.0165  0.0307   2.1   2.0
+ 190..191    0.021   128.5    66.5  0.5375  0.0055  0.0103   0.7   0.7
+ 191..67     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+ 191..68     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 189..43     0.105   128.5    66.5  0.5375  0.0271  0.0504   3.5   3.3
+ 186..192    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 192..193    0.325   128.5    66.5  0.5375  0.0839  0.1560  10.8  10.4
+ 193..28     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 193..29     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 192..194    0.254   128.5    66.5  0.5375  0.0655  0.1219   8.4   8.1
+ 194..30     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 194..31     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+
+tree length for dN:       3.7356
+tree length for dS:       6.9502
+
+
+Time used: 1:14:47
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst1
new file mode 100644
index 0000000..be5f870
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rst1
@@ -0,0 +1 @@
+	98	65	64	0.6212	0.017	0.785	0.938	0.106	0.000	0.000	0.000	0.501	0.431	0.051	0.158	0.043	0.144	0.083	0.006	0.162	0.053	0.090	0.000	0.070	0.021	0.021	0.120	0.052	0.000	0.039	0.081	0.020	0.000	0.000	0.000	0.019	0.121	0.000	0.101	0.000	0.000	0.039	0.000	0.000	0.000	0.000	0.039	0.000	0.019	0.038	0.101	0.000	0.000	0.019	0.000	0.000	0.180	0.055	0.060	0.043	0.020	0.066	0.116	0.020	0.057	0.110	0.000	0.018	0.401	0.054	0.188	0.000	0.000	0.000	0.037	0.106	0.175	0.056	0.000	0.039	0.056	0.000	0.118	0 [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tmp.ctl
new file mode 100644
index 0000000..2b89d6c
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 3
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tree
new file mode 100644
index 0000000..cb3443b
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M0/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/M1.out b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/M1.out
new file mode 100644
index 0000000..828b000
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/M1.out
@@ -0,0 +1,1465 @@
+
+seed used = 816749121
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  NearlyNeutral
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:196):  -3305.853967     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.032757 1.066674 1.243736 0.068284 0.000000 0.000000 0.000000 0.586361 0.500995 0.051407 0.178646 0.041435 0.157289 0.088961 0.005750 0.174600 0.055413 0.095045 0.000000 0.073407 0.021924 0.022489 0.127636 0.056085 0.000000 0.041368 0.087370 0.021093 0.000000 0.000000 0.000004 0.020621 0.130594 0.000000 0.108563 0.000004 0.000004 0.041320 0.000000 0.000000 0.000004 0.000004 0.041320 0.000004 0.020789 0.041431 0.110589 0.000000 0.000000 0.020195 0.000004 0.000004 0.202534 0.062081 0.066 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  16.82509
+
+((1: 1.066674, 2: 1.243736): 0.032757, ((((7: 0.586361, 6: 0.500995): 0.000000, ((((18: 0.088961, (33: 0.174600, (49: 0.095045, ((71: 0.021924, 70: 0.022489): 0.073407, 61: 0.127636): 0.000000): 0.055413): 0.005750): 0.157289, (((44: 0.087370, (((80: 0.000004, 81: 0.020621): 0.000000, ((88: 0.108563, 89: 0.000004): 0.000000, 79: 0.000004): 0.130594): 0.000000, (((90: 0.000004, 91: 0.000004): 0.000000, 82: 0.041320): 0.000000, 69: 0.000004): 0.041320): 0.021093): 0.041368, (46: 0.041431,  [...]
+
+((Loxodonta_africana: 1.066674, Procavia_capensis: 1.243736): 0.032757, ((((Cynocephalus_variegatus: 0.586361, Tupaia_belangeri: 0.500995): 0.000000, ((((Hylobates_lar: 0.088961, (Pongo_pygmaeus: 0.174600, (Gorilla_gorilla: 0.095045, ((Pan_paniscus: 0.021924, Pan_troglodytes: 0.022489): 0.073407, Homo_sapiens: 0.127636): 0.000000): 0.055413): 0.005750): 0.157289, (((Nasalis_larvatus: 0.087370, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.020621): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.37460
+
+
+dN/dS for site classes (K=2)
+
+p:   0.50872  0.49128
+w:   0.14044  1.00000
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.033    128.8     66.2   0.5627   0.0086   0.0154    1.1    1.0
+ 100..1       1.067    128.8     66.2   0.5627   0.2813   0.4999   36.2   33.1
+ 100..2       1.244    128.8     66.2   0.5627   0.3280   0.5829   42.2   38.6
+  99..101     0.068    128.8     66.2   0.5627   0.0180   0.0320    2.3    2.1
+ 101..102     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 104..7       0.586    128.8     66.2   0.5627   0.1547   0.2748   19.9   18.2
+ 104..6       0.501    128.8     66.2   0.5627   0.1321   0.2348   17.0   15.5
+ 103..105     0.051    128.8     66.2   0.5627   0.0136   0.0241    1.7    1.6
+ 105..106     0.179    128.8     66.2   0.5627   0.0471   0.0837    6.1    5.5
+ 106..107     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 107..108     0.157    128.8     66.2   0.5627   0.0415   0.0737    5.3    4.9
+ 108..18      0.089    128.8     66.2   0.5627   0.0235   0.0417    3.0    2.8
+ 108..109     0.006    128.8     66.2   0.5627   0.0015   0.0027    0.2    0.2
+ 109..33      0.175    128.8     66.2   0.5627   0.0461   0.0818    5.9    5.4
+ 109..110     0.055    128.8     66.2   0.5627   0.0146   0.0260    1.9    1.7
+ 110..49      0.095    128.8     66.2   0.5627   0.0251   0.0445    3.2    2.9
+ 110..111     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 111..112     0.073    128.8     66.2   0.5627   0.0194   0.0344    2.5    2.3
+ 112..71      0.022    128.8     66.2   0.5627   0.0058   0.0103    0.7    0.7
+ 112..70      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+ 111..61      0.128    128.8     66.2   0.5627   0.0337   0.0598    4.3    4.0
+ 107..113     0.056    128.8     66.2   0.5627   0.0148   0.0263    1.9    1.7
+ 113..114     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 114..115     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 115..44      0.087    128.8     66.2   0.5627   0.0230   0.0409    3.0    2.7
+ 115..116     0.021    128.8     66.2   0.5627   0.0056   0.0099    0.7    0.7
+ 116..117     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 118..81      0.021    128.8     66.2   0.5627   0.0054   0.0097    0.7    0.6
+ 117..119     0.131    128.8     66.2   0.5627   0.0344   0.0612    4.4    4.1
+ 119..120     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 120..88      0.109    128.8     66.2   0.5627   0.0286   0.0509    3.7    3.4
+ 120..89      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 116..121     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 121..122     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 122..123     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 123..90      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 122..82      0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 121..69      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 114..124     0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 124..46      0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 124..45      0.111    128.8     66.2   0.5627   0.0292   0.0518    3.8    3.4
+ 113..125     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 126..47      0.020    128.8     66.2   0.5627   0.0053   0.0095    0.7    0.6
+ 126..48      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 106..127     0.203    128.8     66.2   0.5627   0.0534   0.0949    6.9    6.3
+ 127..128     0.062    128.8     66.2   0.5627   0.0164   0.0291    2.1    1.9
+ 128..21      0.067    128.8     66.2   0.5627   0.0176   0.0314    2.3    2.1
+ 128..20      0.047    128.8     66.2   0.5627   0.0123   0.0219    1.6    1.5
+ 127..129     0.021    128.8     66.2   0.5627   0.0055   0.0098    0.7    0.6
+ 129..19      0.073    128.8     66.2   0.5627   0.0192   0.0341    2.5    2.3
+ 129..130     0.129    128.8     66.2   0.5627   0.0340   0.0605    4.4    4.0
+ 130..34      0.022    128.8     66.2   0.5627   0.0058   0.0103    0.7    0.7
+ 130..35      0.062    128.8     66.2   0.5627   0.0163   0.0290    2.1    1.9
+ 105..5       0.124    128.8     66.2   0.5627   0.0328   0.0583    4.2    3.9
+ 102..131     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 131..132     0.016    128.8     66.2   0.5627   0.0042   0.0074    0.5    0.5
+ 132..8       0.462    128.8     66.2   0.5627   0.1218   0.2165   15.7   14.3
+ 132..133     0.053    128.8     66.2   0.5627   0.0139   0.0247    1.8    1.6
+ 133..134     0.226    128.8     66.2   0.5627   0.0596   0.1059    7.7    7.0
+ 134..135     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 137..54      0.039    128.8     66.2   0.5627   0.0104   0.0185    1.3    1.2
+ 137..138     0.116    128.8     66.2   0.5627   0.0306   0.0545    3.9    3.6
+ 138..65      0.192    128.8     66.2   0.5627   0.0506   0.0899    6.5    6.0
+ 138..64      0.060    128.8     66.2   0.5627   0.0159   0.0282    2.0    1.9
+ 136..139     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 139..55      0.044    128.8     66.2   0.5627   0.0116   0.0206    1.5    1.4
+ 139..56      0.061    128.8     66.2   0.5627   0.0161   0.0286    2.1    1.9
+ 135..140     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 140..38      0.131    128.8     66.2   0.5627   0.0346   0.0615    4.5    4.1
+ 140..141     0.039    128.8     66.2   0.5627   0.0103   0.0183    1.3    1.2
+ 141..53      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 143..72      0.020    128.8     66.2   0.5627   0.0054   0.0096    0.7    0.6
+ 134..144     0.025    128.8     66.2   0.5627   0.0067   0.0118    0.9    0.8
+ 144..145     0.079    128.8     66.2   0.5627   0.0209   0.0371    2.7    2.5
+ 145..36      0.041    128.8     66.2   0.5627   0.0108   0.0193    1.4    1.3
+ 145..146     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 146..147     0.023    128.8     66.2   0.5627   0.0062   0.0109    0.8    0.7
+ 147..148     0.086    128.8     66.2   0.5627   0.0226   0.0402    2.9    2.7
+ 148..149     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 152..95      0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 152..94      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 153..93      0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 150..92      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 149..83      0.042    128.8     66.2   0.5627   0.0111   0.0198    1.4    1.3
+ 148..156     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 156..85      0.042    128.8     66.2   0.5627   0.0111   0.0197    1.4    1.3
+ 156..84      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 147..62      0.041    128.8     66.2   0.5627   0.0107   0.0191    1.4    1.3
+ 146..50      0.087    128.8     66.2   0.5627   0.0230   0.0408    3.0    2.7
+ 144..157     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 157..37      0.153    128.8     66.2   0.5627   0.0404   0.0718    5.2    4.8
+ 157..158     0.116    128.8     66.2   0.5627   0.0305   0.0543    3.9    3.6
+ 158..51      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 133..9       0.363    128.8     66.2   0.5627   0.0958   0.1703   12.3   11.3
+ 131..4       0.538    128.8     66.2   0.5627   0.1420   0.2523   18.3   16.7
+ 101..159     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 159..3       1.792    128.8     66.2   0.5627   0.4725   0.8397   60.9   55.6
+ 159..160     0.286    128.8     66.2   0.5627   0.0755   0.1342    9.7    8.9
+ 160..161     0.058    128.8     66.2   0.5627   0.0153   0.0273    2.0    1.8
+ 161..162     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 163..12      0.133    128.8     66.2   0.5627   0.0351   0.0624    4.5    4.1
+ 163..164     0.289    128.8     66.2   0.5627   0.0762   0.1354    9.8    9.0
+ 164..26      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 164..25      0.129    128.8     66.2   0.5627   0.0341   0.0605    4.4    4.0
+ 162..165     0.046    128.8     66.2   0.5627   0.0122   0.0216    1.6    1.4
+ 165..13      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 165..14      0.072    128.8     66.2   0.5627   0.0191   0.0339    2.5    2.2
+ 161..166     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 166..167     0.235    128.8     66.2   0.5627   0.0621   0.1103    8.0    7.3
+ 167..168     0.090    128.8     66.2   0.5627   0.0239   0.0424    3.1    2.8
+ 168..23      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 169..39      0.021    128.8     66.2   0.5627   0.0057   0.0101    0.7    0.7
+ 167..170     0.078    128.8     66.2   0.5627   0.0207   0.0367    2.7    2.4
+ 170..171     0.052    128.8     66.2   0.5627   0.0137   0.0243    1.8    1.6
+ 171..172     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 173..66      0.111    128.8     66.2   0.5627   0.0293   0.0520    3.8    3.4
+ 173..174     0.170    128.8     66.2   0.5627   0.0449   0.0797    5.8    5.3
+ 174..78      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 174..77      0.032    128.8     66.2   0.5627   0.0084   0.0149    1.1    1.0
+ 172..175     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 176..76      0.113    128.8     66.2   0.5627   0.0298   0.0529    3.8    3.5
+ 176..75      0.160    128.8     66.2   0.5627   0.0421   0.0749    5.4    5.0
+ 175..177     0.018    128.8     66.2   0.5627   0.0047   0.0083    0.6    0.5
+ 177..74      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 177..178     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 178..87      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 178..86      0.018    128.8     66.2   0.5627   0.0047   0.0083    0.6    0.5
+ 171..179     0.021    128.8     66.2   0.5627   0.0054   0.0096    0.7    0.6
+ 179..59      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 179..58      0.184    128.8     66.2   0.5627   0.0484   0.0860    6.2    5.7
+ 179..57      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 170..22      0.136    128.8     66.2   0.5627   0.0358   0.0636    4.6    4.2
+ 166..180     0.071    128.8     66.2   0.5627   0.0188   0.0334    2.4    2.2
+ 180..11      0.019    128.8     66.2   0.5627   0.0051   0.0090    0.7    0.6
+ 180..181     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 181..182     0.017    128.8     66.2   0.5627   0.0045   0.0080    0.6    0.5
+ 182..41      0.093    128.8     66.2   0.5627   0.0245   0.0435    3.2    2.9
+ 182..42      0.078    128.8     66.2   0.5627   0.0205   0.0364    2.6    2.4
+ 181..24      0.072    128.8     66.2   0.5627   0.0191   0.0339    2.5    2.2
+ 160..183     0.024    128.8     66.2   0.5627   0.0064   0.0113    0.8    0.7
+ 183..184     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 184..10      0.515    128.8     66.2   0.5627   0.1357   0.2412   17.5   16.0
+ 184..185     0.399    128.8     66.2   0.5627   0.1053   0.1872   13.6   12.4
+ 185..17      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 185..16      0.045    128.8     66.2   0.5627   0.0119   0.0212    1.5    1.4
+ 183..186     0.219    128.8     66.2   0.5627   0.0578   0.1026    7.4    6.8
+ 186..187     0.226    128.8     66.2   0.5627   0.0595   0.1057    7.7    7.0
+ 187..15      0.104    128.8     66.2   0.5627   0.0275   0.0488    3.5    3.2
+ 187..188     0.069    128.8     66.2   0.5627   0.0181   0.0322    2.3    2.1
+ 188..27      0.049    128.8     66.2   0.5627   0.0129   0.0229    1.7    1.5
+ 188..189     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 189..190     0.072    128.8     66.2   0.5627   0.0190   0.0338    2.5    2.2
+ 190..60      0.069    128.8     66.2   0.5627   0.0183   0.0325    2.4    2.2
+ 190..191     0.023    128.8     66.2   0.5627   0.0062   0.0109    0.8    0.7
+ 191..68      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+ 191..67      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 189..43      0.117    128.8     66.2   0.5627   0.0309   0.0549    4.0    3.6
+ 186..192     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 192..193     0.370    128.8     66.2   0.5627   0.0976   0.1734   12.6   11.5
+ 193..31      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 192..194     0.285    128.8     66.2   0.5627   0.0753   0.1338    9.7    8.9
+ 194..29      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 194..28      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+
+
+Naive Empirical Bayes (NEB) analysis
+Time used: 5:31:55
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/lnf
new file mode 100644
index 0000000..7c17d1c
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8963625771   0.001011457846       0.0657  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.3219342803   0.000000001494       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -35.1723863015   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -46.5085795219   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.7570345301   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -38.8095583824   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -39.2618323920   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.6975758419   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.5422779512   0.000000003258       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.1281188115   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -8.8102494190   0.000149196039       0.0097  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -53.4714047200   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -13.5313060991   0.000001328705       0.0001  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.6950088498   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -25.7713384261   0.000000000006       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.0300230578   0.000884911376       0.0575  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1613880309   0.000775976726       0.0504  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -54.2975474752   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -67.1575478079   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -101.3951136092   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.0040426319   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.9612300522   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -53.2594437061   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -67.8343282510   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.9750687865   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.3628234880   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9277956542   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.6650393128   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -29.7550462678   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.5112743191   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -97.8332082332   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -101.6977188942   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -82.0783486557   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -100.5863053104   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -83.4800852962   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8892667004   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -109.7703450671   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -41.8686281226   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -76.6830602844   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.6079070366   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -21.7513490492   0.000000000358       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -40.8807191045   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4641606492   0.000210892792       0.0137  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.3866923803   0.001683816425       0.1094  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.5557271188   0.000000008737       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.1585693935   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.4791301537   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.3660787789   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -121.0544166795   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -207.1209516808   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -131.7493796875   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.8197551682   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -73.2102470830   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -49.3278829781   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -43.4593002134   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -80.4774190426   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.1727827185   0.000103827186       0.0067  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7805572450   0.001135641891       0.0738  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst
new file mode 100644
index 0000000..cf98276
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst
@@ -0,0 +1,85 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=2)
+
+p:   0.50872  0.49128
+w:   0.14044  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 2 classes& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.99943 0.00057 ( 1)  0.141
+   2 A   0.28992 0.71008 ( 2)  0.751
+   3 R   0.99965 0.00035 ( 1)  0.141
+   4 Y   0.99868 0.00132 ( 1)  0.142
+   5 R   0.14963 0.85037 ( 2)  0.871
+   6 C   0.99999 0.00001 ( 1)  0.140
+   7 C   0.99999 0.00001 ( 1)  0.140
+   8 R   0.99979 0.00021 ( 1)  0.141
+   9 S   1.00000 0.00000 ( 1)  0.140
+  10 R   0.00000 1.00000 ( 2)  1.000
+  11 *   0.50872 0.49128 ( 1)  0.563
+  12 *   0.50872 0.49128 ( 1)  0.563
+  13 S   1.00000 0.00000 ( 1)  0.140
+  14 R   0.74298 0.25702 ( 1)  0.361
+  15 S   1.00000 0.00000 ( 1)  0.140
+  16 R   0.99861 0.00139 ( 1)  0.142
+  17 C   1.00000 0.00000 ( 1)  0.140
+  18 *   0.85753 0.14247 ( 1)  0.263
+  19 *   0.27169 0.72831 ( 2)  0.766
+  20 R   0.20944 0.79056 ( 2)  0.820
+  21 S   0.99449 0.00551 ( 1)  0.145
+  22 R   0.01334 0.98666 ( 2)  0.989
+  23 *   0.50872 0.49128 ( 1)  0.563
+  24 *   0.50872 0.49128 ( 1)  0.563
+  25 *   0.50872 0.49128 ( 1)  0.563
+  26 R   0.99845 0.00155 ( 1)  0.142
+  27 R   0.01724 0.98276 ( 2)  0.985
+  28 R   0.79371 0.20629 ( 1)  0.318
+  29 S   0.00053 0.99947 ( 2)  1.000
+  30 H   0.00000 1.00000 ( 2)  1.000
+  31 *   0.50872 0.49128 ( 1)  0.563
+  32 R   0.03889 0.96111 ( 2)  0.967
+  33 R   0.74592 0.25408 ( 1)  0.359
+  34 R   0.99987 0.00013 ( 1)  0.141
+  35 R   0.99990 0.00010 ( 1)  0.141
+  36 R   0.65228 0.34772 ( 1)  0.439
+  37 S   0.00001 0.99999 ( 2)  1.000
+  38 C   0.00000 1.00000 ( 2)  1.000
+  39 R   0.04329 0.95671 ( 2)  0.963
+  40 S   0.05782 0.94218 ( 2)  0.950
+  41 R   0.12219 0.87781 ( 2)  0.895
+  42 R   0.94990 0.05010 ( 1)  0.184
+  43 R   0.00000 1.00000 ( 2)  1.000
+  44 *   0.00043 0.99957 ( 2)  1.000
+  45 *   0.00000 1.00000 ( 2)  1.000
+  46 R   0.00018 0.99982 ( 2)  1.000
+  47 C   1.00000 0.00000 ( 1)  0.140
+  48 C   0.99997 0.00003 ( 1)  0.140
+  49 *   0.83412 0.16588 ( 1)  0.283
+  50 *   0.87568 0.12432 ( 1)  0.247
+  51 R   0.99070 0.00930 ( 1)  0.148
+  52 R   0.97911 0.02089 ( 1)  0.158
+  53 R   0.03362 0.96638 ( 2)  0.971
+  54 H   0.96510 0.03490 ( 1)  0.170
+  55 R   0.00000 1.00000 ( 2)  1.000
+  56 *   0.00000 1.00000 ( 2)  1.000
+  57 *   0.00000 1.00000 ( 2)  1.000
+  58 *   0.00182 0.99818 ( 2)  0.998
+  59 *   0.00000 1.00000 ( 2)  1.000
+  60 *   0.11211 0.88789 ( 2)  0.904
+  61 *   0.93988 0.06012 ( 1)  0.192
+  62 *   0.00000 1.00000 ( 2)  1.000
+  63 *   0.77240 0.22760 ( 1)  0.336
+  64 *   0.05642 0.94358 ( 2)  0.952
+  65 *   0.50872 0.49128 ( 1)  0.563
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+
+
+lnL = -3305.853967
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tmp.ctl
new file mode 100644
index 0000000..3516237
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 1
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M1.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M1/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/M2.out b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/M2.out
new file mode 100644
index 0000000..6600cbd
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/M2.out
@@ -0,0 +1,1521 @@
+
+seed used = 816749077
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  PositiveSelection
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:198):  -3284.673112     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.060855 1.306171 1.379678 0.022941 0.000000 0.000000 0.000000 0.706864 0.554767 0.040151 0.205362 0.048506 0.177571 0.098267 0.005207 0.192895 0.060901 0.103460 0.000000 0.079528 0.024091 0.024268 0.142771 0.062600 0.000000 0.045460 0.094783 0.022452 0.000000 0.000000 0.000004 0.022465 0.142500 0.000000 0.118265 0.000004 0.000004 0.000000 0.000000 0.045011 0.000004 0.000004 0.000004 0.045011 0.022750 0.044786 0.119598 0.000000 0.000000 0.021972 0.000004 0.000004 0.215713 0.066747 0.072 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  19.09024
+
+((1: 1.306171, 2: 1.379678): 0.060855, ((((7: 0.706864, 6: 0.554767): 0.000000, ((((18: 0.098267, (33: 0.192895, (49: 0.103460, ((71: 0.024091, 70: 0.024268): 0.079528, 61: 0.142771): 0.000000): 0.060901): 0.005207): 0.177571, (((44: 0.094783, (((80: 0.000004, 81: 0.022465): 0.000000, ((88: 0.118265, 89: 0.000004): 0.000000, 79: 0.000004): 0.142500): 0.000000, (((90: 0.000004, 91: 0.000004): 0.045011, 82: 0.000004): 0.000000, 69: 0.045011): 0.000000): 0.022452): 0.045460, (46: 0.044786,  [...]
+
+((Loxodonta_africana: 1.306171, Procavia_capensis: 1.379678): 0.060855, ((((Cynocephalus_variegatus: 0.706864, Tupaia_belangeri: 0.554767): 0.000000, ((((Hylobates_lar: 0.098267, (Pongo_pygmaeus: 0.192895, (Gorilla_gorilla: 0.103460, ((Pan_paniscus: 0.024091, Pan_troglodytes: 0.024268): 0.079528, Homo_sapiens: 0.142771): 0.000000): 0.060901): 0.005207): 0.177571, (((Nasalis_larvatus: 0.094783, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.022465): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.63066
+
+
+dN/dS for site classes (K=3)
+
+p:   0.49161  0.37297  0.13542
+w:   0.15802  1.00000  3.33823
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.061    127.7     67.3   0.9027   0.0196   0.0217    2.5    1.5
+ 100..1       1.306    127.7     67.3   0.9027   0.4198   0.4650   53.6   31.3
+ 100..2       1.380    127.7     67.3   0.9027   0.4434   0.4912   56.6   33.0
+  99..101     0.023    127.7     67.3   0.9027   0.0074   0.0082    0.9    0.5
+ 101..102     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 104..7       0.707    127.7     67.3   0.9027   0.2272   0.2517   29.0   16.9
+ 104..6       0.555    127.7     67.3   0.9027   0.1783   0.1975   22.8   13.3
+ 103..105     0.040    127.7     67.3   0.9027   0.0129   0.0143    1.6    1.0
+ 105..106     0.205    127.7     67.3   0.9027   0.0660   0.0731    8.4    4.9
+ 106..107     0.049    127.7     67.3   0.9027   0.0156   0.0173    2.0    1.2
+ 107..108     0.178    127.7     67.3   0.9027   0.0571   0.0632    7.3    4.3
+ 108..18      0.098    127.7     67.3   0.9027   0.0316   0.0350    4.0    2.4
+ 108..109     0.005    127.7     67.3   0.9027   0.0017   0.0019    0.2    0.1
+ 109..33      0.193    127.7     67.3   0.9027   0.0620   0.0687    7.9    4.6
+ 109..110     0.061    127.7     67.3   0.9027   0.0196   0.0217    2.5    1.5
+ 110..49      0.103    127.7     67.3   0.9027   0.0333   0.0368    4.2    2.5
+ 110..111     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 111..112     0.080    127.7     67.3   0.9027   0.0256   0.0283    3.3    1.9
+ 112..71      0.024    127.7     67.3   0.9027   0.0077   0.0086    1.0    0.6
+ 112..70      0.024    127.7     67.3   0.9027   0.0078   0.0086    1.0    0.6
+ 111..61      0.143    127.7     67.3   0.9027   0.0459   0.0508    5.9    3.4
+ 107..113     0.063    127.7     67.3   0.9027   0.0201   0.0223    2.6    1.5
+ 113..114     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 114..115     0.045    127.7     67.3   0.9027   0.0146   0.0162    1.9    1.1
+ 115..44      0.095    127.7     67.3   0.9027   0.0305   0.0337    3.9    2.3
+ 115..116     0.022    127.7     67.3   0.9027   0.0072   0.0080    0.9    0.5
+ 116..117     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 118..81      0.022    127.7     67.3   0.9027   0.0072   0.0080    0.9    0.5
+ 117..119     0.143    127.7     67.3   0.9027   0.0458   0.0507    5.8    3.4
+ 119..120     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 120..88      0.118    127.7     67.3   0.9027   0.0380   0.0421    4.9    2.8
+ 120..89      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 122..123     0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 123..90      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 121..69      0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 114..124     0.023    127.7     67.3   0.9027   0.0073   0.0081    0.9    0.5
+ 124..46      0.045    127.7     67.3   0.9027   0.0144   0.0159    1.8    1.1
+ 124..45      0.120    127.7     67.3   0.9027   0.0384   0.0426    4.9    2.9
+ 113..125     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 126..47      0.022    127.7     67.3   0.9027   0.0071   0.0078    0.9    0.5
+ 126..48      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 106..127     0.216    127.7     67.3   0.9027   0.0693   0.0768    8.9    5.2
+ 127..128     0.067    127.7     67.3   0.9027   0.0215   0.0238    2.7    1.6
+ 128..21      0.073    127.7     67.3   0.9027   0.0234   0.0259    3.0    1.7
+ 128..20      0.050    127.7     67.3   0.9027   0.0162   0.0179    2.1    1.2
+ 127..129     0.013    127.7     67.3   0.9027   0.0040   0.0045    0.5    0.3
+ 129..19      0.088    127.7     67.3   0.9027   0.0283   0.0313    3.6    2.1
+ 129..130     0.149    127.7     67.3   0.9027   0.0479   0.0530    6.1    3.6
+ 130..34      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 130..35      0.066    127.7     67.3   0.9027   0.0213   0.0236    2.7    1.6
+ 105..5       0.152    127.7     67.3   0.9027   0.0488   0.0541    6.2    3.6
+ 102..131     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 131..132     0.012    127.7     67.3   0.9027   0.0038   0.0042    0.5    0.3
+ 132..8       0.532    127.7     67.3   0.9027   0.1708   0.1892   21.8   12.7
+ 132..133     0.076    127.7     67.3   0.9027   0.0245   0.0271    3.1    1.8
+ 133..134     0.244    127.7     67.3   0.9027   0.0783   0.0867   10.0    5.8
+ 134..135     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 137..54      0.045    127.7     67.3   0.9027   0.0146   0.0161    1.9    1.1
+ 137..138     0.128    127.7     67.3   0.9027   0.0411   0.0455    5.2    3.1
+ 138..65      0.211    127.7     67.3   0.9027   0.0677   0.0750    8.6    5.0
+ 138..64      0.067    127.7     67.3   0.9027   0.0216   0.0240    2.8    1.6
+ 136..139     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 139..55      0.049    127.7     67.3   0.9027   0.0156   0.0173    2.0    1.2
+ 139..56      0.070    127.7     67.3   0.9027   0.0224   0.0249    2.9    1.7
+ 135..140     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 140..38      0.146    127.7     67.3   0.9027   0.0470   0.0521    6.0    3.5
+ 140..141     0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 141..53      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 143..72      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 134..144     0.029    127.7     67.3   0.9027   0.0092   0.0102    1.2    0.7
+ 144..145     0.090    127.7     67.3   0.9027   0.0290   0.0321    3.7    2.2
+ 145..36      0.047    127.7     67.3   0.9027   0.0150   0.0166    1.9    1.1
+ 145..146     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 146..147     0.026    127.7     67.3   0.9027   0.0083   0.0092    1.1    0.6
+ 147..148     0.096    127.7     67.3   0.9027   0.0307   0.0340    3.9    2.3
+ 148..149     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 152..95      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 152..94      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 153..93      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 150..92      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 149..83      0.047    127.7     67.3   0.9027   0.0151   0.0168    1.9    1.1
+ 148..156     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 156..85      0.047    127.7     67.3   0.9027   0.0150   0.0167    1.9    1.1
+ 156..84      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 147..62      0.046    127.7     67.3   0.9027   0.0147   0.0163    1.9    1.1
+ 146..50      0.099    127.7     67.3   0.9027   0.0317   0.0351    4.0    2.4
+ 144..157     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 157..37      0.171    127.7     67.3   0.9027   0.0550   0.0609    7.0    4.1
+ 157..158     0.130    127.7     67.3   0.9027   0.0416   0.0461    5.3    3.1
+ 158..51      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 133..9       0.388    127.7     67.3   0.9027   0.1248   0.1382   15.9    9.3
+ 131..4       0.588    127.7     67.3   0.9027   0.1888   0.2092   24.1   14.1
+ 101..159     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 159..3       2.123    127.7     67.3   0.9027   0.6824   0.7560   87.2   50.9
+ 159..160     0.317    127.7     67.3   0.9027   0.1017   0.1127   13.0    7.6
+ 160..161     0.075    127.7     67.3   0.9027   0.0243   0.0269    3.1    1.8
+ 161..162     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 163..12      0.155    127.7     67.3   0.9027   0.0499   0.0552    6.4    3.7
+ 163..164     0.323    127.7     67.3   0.9027   0.1039   0.1151   13.3    7.7
+ 164..26      0.121    127.7     67.3   0.9027   0.0388   0.0429    5.0    2.9
+ 164..25      0.146    127.7     67.3   0.9027   0.0468   0.0519    6.0    3.5
+ 162..165     0.050    127.7     67.3   0.9027   0.0159   0.0176    2.0    1.2
+ 165..13      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 165..14      0.075    127.7     67.3   0.9027   0.0242   0.0268    3.1    1.8
+ 161..166     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 166..167     0.263    127.7     67.3   0.9027   0.0844   0.0935   10.8    6.3
+ 167..168     0.103    127.7     67.3   0.9027   0.0330   0.0366    4.2    2.5
+ 168..23      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 169..39      0.025    127.7     67.3   0.9027   0.0079   0.0088    1.0    0.6
+ 167..170     0.089    127.7     67.3   0.9027   0.0286   0.0317    3.6    2.1
+ 170..171     0.056    127.7     67.3   0.9027   0.0180   0.0199    2.3    1.3
+ 171..172     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 173..66      0.126    127.7     67.3   0.9027   0.0405   0.0448    5.2    3.0
+ 173..174     0.189    127.7     67.3   0.9027   0.0607   0.0673    7.8    4.5
+ 174..78      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 174..77      0.036    127.7     67.3   0.9027   0.0117   0.0129    1.5    0.9
+ 172..175     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 176..76      0.133    127.7     67.3   0.9027   0.0426   0.0472    5.4    3.2
+ 176..75      0.180    127.7     67.3   0.9027   0.0580   0.0643    7.4    4.3
+ 175..177     0.021    127.7     67.3   0.9027   0.0068   0.0075    0.9    0.5
+ 177..74      0.117    127.7     67.3   0.9027   0.0375   0.0415    4.8    2.8
+ 177..178     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 178..87      0.117    127.7     67.3   0.9027   0.0375   0.0415    4.8    2.8
+ 178..86      0.021    127.7     67.3   0.9027   0.0067   0.0074    0.9    0.5
+ 171..179     0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 179..59      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 179..58      0.209    127.7     67.3   0.9027   0.0671   0.0743    8.6    5.0
+ 179..57      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 170..22      0.155    127.7     67.3   0.9027   0.0497   0.0550    6.3    3.7
+ 166..180     0.084    127.7     67.3   0.9027   0.0270   0.0299    3.4    2.0
+ 180..11      0.023    127.7     67.3   0.9027   0.0073   0.0080    0.9    0.5
+ 180..181     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 181..182     0.020    127.7     67.3   0.9027   0.0066   0.0073    0.8    0.5
+ 182..41      0.108    127.7     67.3   0.9027   0.0347   0.0385    4.4    2.6
+ 182..42      0.090    127.7     67.3   0.9027   0.0289   0.0320    3.7    2.2
+ 181..24      0.084    127.7     67.3   0.9027   0.0270   0.0299    3.4    2.0
+ 160..183     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 184..10      0.584    127.7     67.3   0.9027   0.1877   0.2079   24.0   14.0
+ 184..185     0.466    127.7     67.3   0.9027   0.1499   0.1660   19.1   11.2
+ 185..17      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 185..16      0.053    127.7     67.3   0.9027   0.0171   0.0189    2.2    1.3
+ 183..186     0.272    127.7     67.3   0.9027   0.0875   0.0969   11.2    6.5
+ 186..187     0.269    127.7     67.3   0.9027   0.0866   0.0959   11.1    6.5
+ 187..15      0.122    127.7     67.3   0.9027   0.0392   0.0434    5.0    2.9
+ 187..188     0.069    127.7     67.3   0.9027   0.0223   0.0247    2.9    1.7
+ 188..27      0.055    127.7     67.3   0.9027   0.0177   0.0196    2.3    1.3
+ 188..189     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 189..190     0.081    127.7     67.3   0.9027   0.0261   0.0289    3.3    1.9
+ 190..60      0.077    127.7     67.3   0.9027   0.0248   0.0275    3.2    1.8
+ 190..191     0.026    127.7     67.3   0.9027   0.0084   0.0093    1.1    0.6
+ 191..68      0.025    127.7     67.3   0.9027   0.0082   0.0090    1.0    0.6
+ 191..67      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 189..43      0.129    127.7     67.3   0.9027   0.0415   0.0459    5.3    3.1
+ 186..192     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 192..193     0.426    127.7     67.3   0.9027   0.1368   0.1516   17.5   10.2
+ 193..31      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 192..194     0.319    127.7     67.3   0.9027   0.1027   0.1137   13.1    7.7
+ 194..29      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 194..28      0.026    127.7     67.3   0.9027   0.0083   0.0092    1.1    0.6
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.937         3.190
+    44 *      0.931         3.176
+    45 *      0.997**       3.330
+    55 R      0.993**       3.322
+    56 *      1.000**       3.338
+    57 *      0.885         3.070
+    59 *      0.706         2.651
+    64 *      0.516         2.175
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.887         3.188 +- 0.875
+    44 *      0.926         3.339 +- 0.823
+    45 *      0.995**       3.511 +- 0.531
+    55 R      0.982*        3.461 +- 0.564
+    56 *      1.000**       3.525 +- 0.515
+    57 *      0.834         3.055 +- 0.996
+    59 *      0.626         2.504 +- 1.203
+    64 *      0.521         2.280 +- 1.337
+
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.000  0.989  0.011  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.000  0.097  0.798  0.095  0.008  0.002  0.001  0.000  0.000  0.000
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.001
+ 0.000 0.000 0.000 0.000 0.000 0.002 0.022 0.014 0.006
+ 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.057 0.177 0.070 0.010
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.051 0.187 0.184 0.059 0.003
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.016 0.017 0.067 0.021 0.007 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.002 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+
+sum of density on p0-p1 =   1.000000
+
+Time used: 8:45:14
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/lnf
new file mode 100644
index 0000000..9a46fcc
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8606661118   0.001048215471       0.0681  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.3481766924   0.000000001455       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -34.3465608574   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.8966932333   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.5174497812   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -38.9392701343   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -39.3623925657   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.1022089660   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.3185519622   0.000000004074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.8440090572   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -8.4118187656   0.000222225313       0.0144  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -52.2089603967   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -13.2420704788   0.000001774361       0.0001  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -31.8529069573   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -25.7203635156   0.000000000007       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -6.9474963714   0.000961038227       0.0625  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1685652972   0.000770427273       0.0501  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.0472717880   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -66.9769296351   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -102.2706790408   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -39.4988290367   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.7677947679   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -52.7897506285   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -68.3388788695   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.3444554854   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.2130009804   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9697758175   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.3275410120   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -28.5742525299   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.6187487817   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -98.8407103468   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -102.3211495918   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -82.1321269342   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -101.2217375593   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -84.2270167602   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -76.2809088696   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -110.9501821723   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -40.6294627408   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -73.3527973744   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.8050184621   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -21.7300923087   0.000000000365       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.0930971675   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4275883962   0.000218748389       0.0142  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4559150831   0.001571200844       0.1021  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.2008514944   0.000000012459       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -46.1435774569   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.6683914024   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.5681454596   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -119.5214038587   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -195.8505136566   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -130.5619514368   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.9629561218   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -71.8463831231   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.4030045217   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -42.4728200210   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -81.8407480821   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.2687756321   0.000094323930       0.0061  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.5984224754   0.001362515745       0.0886  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst
new file mode 100644
index 0000000..1872104
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst
@@ -0,0 +1,175 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=3)
+
+p:   0.49161  0.37297  0.13542
+w:   0.15802  1.00000  3.33823
+
+Naive Empirical Bayes (NEB) probabilities for 3 classes& postmean_w & P(w>1)
+Loxodonta_africana used as reference
+
+   1 M   0.99832 0.00168 0.00000 ( 1)  0.159  0.000
+   2 A   0.29194 0.70548 0.00258 ( 2)  0.760  0.003
+   3 R   0.99871 0.00129 0.00000 ( 1)  0.159  0.000
+   4 Y   0.99704 0.00296 0.00000 ( 1)  0.161  0.000
+   5 R   0.08653 0.91336 0.00012 ( 2)  0.927  0.000
+   6 C   0.99995 0.00005 0.00000 ( 1)  0.158  0.000
+   7 C   0.99993 0.00007 0.00000 ( 1)  0.158  0.000
+   8 R   0.99915 0.00085 0.00000 ( 1)  0.159  0.000
+   9 S   0.99999 0.00001 0.00000 ( 1)  0.158  0.000
+  10 R   0.00000 0.06341 0.93659 ( 3)  3.190  0.937
+  11 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  12 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  13 S   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  14 R   0.68108 0.31889 0.00003 ( 1)  0.427  0.000
+  15 S   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  16 R   0.99516 0.00484 0.00000 ( 1)  0.162  0.000
+  17 C   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  18 *   0.85866 0.13657 0.00478 ( 1)  0.288  0.005
+  19 *   0.25644 0.55077 0.19279 ( 2)  1.235  0.193
+  20 R   0.10791 0.89209 0.00000 ( 2)  0.909  0.000
+  21 S   0.98344 0.01656 0.00000 ( 1)  0.172  0.000
+  22 R   0.01294 0.98403 0.00304 ( 2)  0.996  0.003
+  23 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  24 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  25 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  26 R   0.99463 0.00537 0.00000 ( 1)  0.163  0.000
+  27 R   0.01874 0.92299 0.05828 ( 2)  1.120  0.058
+  28 R   0.58834 0.41166 0.00000 ( 1)  0.505  0.000
+  29 S   0.00050 0.99245 0.00705 ( 2)  1.016  0.007
+  30 H   0.00000 0.99987 0.00013 ( 2)  1.000  0.000
+  31 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  32 R   0.01796 0.97004 0.01201 ( 2)  1.013  0.012
+  33 R   0.72852 0.26829 0.00320 ( 1)  0.394  0.003
+  34 R   0.99944 0.00056 0.00000 ( 1)  0.158  0.000
+  35 R   0.99953 0.00047 0.00000 ( 1)  0.158  0.000
+  36 R   0.56490 0.43507 0.00003 ( 1)  0.524  0.000
+  37 S   0.00000 0.99994 0.00005 ( 2)  1.000  0.000
+  38 C   0.00000 0.99844 0.00156 ( 2)  1.004  0.002
+  39 R   0.04218 0.95537 0.00246 ( 2)  0.970  0.002
+  40 S   0.03583 0.96382 0.00035 ( 2)  0.971  0.000
+  41 R   0.09563 0.90295 0.00142 ( 2)  0.923  0.001
+  42 R   0.86539 0.13461 0.00000 ( 1)  0.271  0.000
+  43 R   0.00000 0.70321 0.29679 ( 2)  1.694  0.297
+  44 *   0.00006 0.06922 0.93072 ( 3)  3.176  0.931
+  45 *   0.00000 0.00338 0.99662 ( 3)  3.330  0.997
+  46 R   0.00017 0.97454 0.02529 ( 2)  1.059  0.025
+  47 C   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  48 C   0.99983 0.00017 0.00000 ( 1)  0.158  0.000
+  49 *   0.82935 0.16728 0.00337 ( 1)  0.310  0.003
+  50 *   0.86761 0.13120 0.00118 ( 1)  0.272  0.001
+  51 R   0.98059 0.01941 0.00000 ( 1)  0.174  0.000
+  52 R   0.93316 0.06684 0.00000 ( 1)  0.214  0.000
+  53 R   0.01731 0.98265 0.00004 ( 2)  0.986  0.000
+  54 H   0.93438 0.06562 0.00000 ( 1)  0.213  0.000
+  55 R   0.00000 0.00679 0.99321 ( 3)  3.322  0.993
+  56 *   0.00000 0.00000 1.00000 ( 3)  3.338  1.000
+  57 *   0.00000 0.11487 0.88513 ( 3)  3.070  0.885
+  58 *   0.00179 0.74711 0.25110 ( 2)  1.586  0.251
+  59 *   0.00000 0.29396 0.70604 ( 3)  2.651  0.706
+  60 *   0.06229 0.93763 0.00008 ( 2)  0.948  0.000
+  61 *   0.86512 0.13488 0.00000 ( 1)  0.272  0.000
+  62 *   0.00000 0.99776 0.00224 ( 2)  1.005  0.002
+  63 *   0.76843 0.21237 0.01920 ( 1)  0.398  0.019
+  64 *   0.03583 0.44867 0.51551 ( 3)  2.175  0.516
+  65 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.937         3.190
+    44 *      0.931         3.176
+    45 *      0.997**       3.330
+    55 R      0.993**       3.322
+    56 *      1.000**       3.338
+    57 *      0.885         3.070
+    59 *      0.706         2.651
+    64 *      0.516         2.175
+
+
+lnL = -3284.673112
+
+Bayes Empirical Bayes (BEB) probabilities for 3 classes (class)& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.99826 0.00174 0.00000 ( 1)  0.153 +-  0.037
+   2 A   0.27538 0.72070 0.00392 ( 2)  0.774 +-  0.403
+   3 R   0.99864 0.00136 0.00000 ( 1)  0.152 +-  0.033
+   4 Y   0.99672 0.00328 0.00000 ( 1)  0.154 +-  0.050
+   5 R   0.07801 0.92154 0.00045 ( 2)  0.935 +-  0.230
+   6 C   0.99995 0.00005 0.00000 ( 1)  0.151 +-  0.012
+   7 C   0.99993 0.00007 0.00000 ( 1)  0.151 +-  0.013
+   8 R   0.99906 0.00094 0.00000 ( 1)  0.152 +-  0.028
+   9 S   0.99999 0.00001 0.00000 ( 1)  0.151 +-  0.011
+  10 R   0.00000 0.11261 0.88739 ( 3)  3.188 +-  0.875
+  11 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  12 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  13 S   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  14 R   0.65141 0.34849 0.00010 ( 1)  0.447 +-  0.405
+  15 S   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  16 R   0.99483 0.00517 0.00000 ( 1)  0.156 +-  0.062
+  17 C   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  18 *   0.85183 0.14303 0.00514 ( 1)  0.289 +-  0.370
+  19 *   0.24322 0.55384 0.20294 ( 2)  1.294 +-  1.169
+  20 R   0.08943 0.91057 0.00000 ( 2)  0.925 +-  0.241
+  21 S   0.98042 0.01958 0.00000 ( 1)  0.168 +-  0.118
+  22 R   0.01148 0.98365 0.00486 ( 2)  1.000 +-  0.163
+  23 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  24 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  25 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  26 R   0.99426 0.00574 0.00000 ( 1)  0.156 +-  0.065
+  27 R   0.01681 0.92146 0.06173 ( 2)  1.124 +-  0.566
+  28 R   0.55900 0.44097 0.00003 ( 1)  0.526 +-  0.421
+  29 S   0.00048 0.98869 0.01082 ( 2)  1.020 +-  0.204
+  30 H   0.00001 0.99921 0.00078 ( 2)  1.001 +-  0.045
+  31 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  32 R   0.01634 0.96567 0.01798 ( 2)  1.020 +-  0.284
+  33 R   0.71276 0.28355 0.00370 ( 1)  0.403 +-  0.419
+  34 R   0.99941 0.00059 0.00000 ( 1)  0.152 +-  0.023
+  35 R   0.99951 0.00049 0.00000 ( 1)  0.152 +-  0.022
+  36 R   0.53344 0.46645 0.00011 ( 1)  0.548 +-  0.424
+  37 S   0.00001 0.99952 0.00047 ( 2)  1.001 +-  0.034
+  38 C   0.00000 0.99487 0.00512 ( 2)  1.008 +-  0.120
+  39 R   0.03746 0.95858 0.00395 ( 2)  0.976 +-  0.203
+  40 S   0.03141 0.96777 0.00082 ( 2)  0.975 +-  0.156
+  41 R   0.08467 0.91303 0.00231 ( 2)  0.933 +-  0.255
+  42 R   0.84538 0.15461 0.00000 ( 1)  0.282 +-  0.307
+  43 R   0.00000 0.72190 0.27809 ( 2)  1.650 +-  1.072
+  44 *   0.00005 0.07436 0.92559 ( 3)  3.339 +-  0.823
+  45 *   0.00000 0.00469 0.99531 ( 3)  3.511 +-  0.531
+  46 R   0.00017 0.96813 0.03170 ( 2)  1.064 +-  0.366
+  47 C   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  48 C   0.99980 0.00020 0.00000 ( 1)  0.151 +-  0.016
+  49 *   0.82116 0.17515 0.00370 ( 1)  0.311 +-  0.370
+  50 *   0.86075 0.13789 0.00136 ( 1)  0.272 +-  0.312
+  51 R   0.97916 0.02084 0.00000 ( 1)  0.169 +-  0.122
+  52 R   0.91616 0.08384 0.00000 ( 1)  0.222 +-  0.235
+  53 R   0.01526 0.98454 0.00020 ( 2)  0.988 +-  0.105
+  54 H   0.92195 0.07805 0.00000 ( 1)  0.217 +-  0.228
+  55 R   0.00000 0.01763 0.98237 ( 3)  3.461 +-  0.564
+  56 *   0.00000 0.00000 1.00000 ( 3)  3.525 +-  0.515
+  57 *   0.00000 0.16570 0.83430 ( 3)  3.055 +-  0.996
+  58 *   0.00159 0.75271 0.24570 ( 2)  1.583 +-  1.048
+  59 *   0.00000 0.37365 0.62635 ( 3)  2.504 +-  1.203
+  60 *   0.05529 0.94438 0.00033 ( 2)  0.954 +-  0.195
+  61 *   0.84701 0.15298 0.00000 ( 1)  0.281 +-  0.306
+  62 *   0.00000 0.99162 0.00838 ( 2)  1.014 +-  0.151
+  63 *   0.75894 0.22058 0.02048 ( 1)  0.405 +-  0.560
+  64 *   0.03263 0.44612 0.52125 ( 3)  2.280 +-  1.337
+  65 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.887         3.188 +- 0.875
+    44 *      0.926         3.339 +- 0.823
+    45 *      0.995**       3.511 +- 0.531
+    55 R      0.982*        3.461 +- 0.564
+    56 *      1.000**       3.525 +- 0.515
+    57 *      0.834         3.055 +- 0.996
+    59 *      0.626         2.504 +- 1.203
+    64 *      0.521         2.280 +- 1.337
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tmp.ctl
new file mode 100644
index 0000000..e0fcbf6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 2
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M2.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M2/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/M7.out b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/M7.out
new file mode 100644
index 0000000..67375e7
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/M7.out
@@ -0,0 +1,1468 @@
+
+seed used = 816749133
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  beta (10 categories)
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:196):  -3310.726824     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.037701 1.069630 1.252057 0.066094 0.000000 0.000000 0.000000 0.586916 0.507595 0.051764 0.180212 0.043398 0.160883 0.091780 0.004986 0.178790 0.057637 0.097817 0.000000 0.075808 0.022501 0.023191 0.131060 0.056885 0.000000 0.042240 0.089505 0.021497 0.000000 0.000000 0.000004 0.021065 0.133154 0.000000 0.110725 0.000004 0.000004 0.042219 0.000000 0.000000 0.000004 0.000004 0.042219 0.000004 0.021183 0.042295 0.112872 0.000000 0.000000 0.020596 0.000004 0.000004 0.205534 0.063072 0.068 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.05167
+
+((1: 1.069630, 2: 1.252057): 0.037701, ((((7: 0.586916, 6: 0.507595): 0.000000, ((((18: 0.091780, (33: 0.178790, (49: 0.097817, ((71: 0.022501, 70: 0.023191): 0.075808, 61: 0.131060): 0.000000): 0.057637): 0.004986): 0.160883, (((44: 0.089505, (((80: 0.000004, 81: 0.021065): 0.000000, ((88: 0.110725, 89: 0.000004): 0.000000, 79: 0.000004): 0.133154): 0.000000, (((90: 0.000004, 91: 0.000004): 0.000000, 82: 0.042219): 0.000000, 69: 0.000004): 0.042219): 0.021497): 0.042240, (46: 0.042295,  [...]
+
+((Loxodonta_africana: 1.069630, Procavia_capensis: 1.252057): 0.037701, ((((Cynocephalus_variegatus: 0.586916, Tupaia_belangeri: 0.507595): 0.000000, ((((Hylobates_lar: 0.091780, (Pongo_pygmaeus: 0.178790, (Gorilla_gorilla: 0.097817, ((Pan_paniscus: 0.022501, Pan_troglodytes: 0.023191): 0.075808, Homo_sapiens: 0.131060): 0.000000): 0.057637): 0.004986): 0.160883, (((Nasalis_larvatus: 0.089505, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.021065): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.25308
+
+Parameters in M8 beta:
+ p=  0.50811  q=  0.43617
+
+
+dN/dS for site classes (K=10)
+
+p:   0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000
+w:   0.00815  0.06916  0.18051  0.32696  0.48998  0.65042  0.79114  0.89930  0.96800  0.99740
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.038    129.3     65.7   0.5381   0.0097   0.0181    1.3    1.2
+ 100..1       1.070    129.3     65.7   0.5381   0.2766   0.5140   35.8   33.8
+ 100..2       1.252    129.3     65.7   0.5381   0.3238   0.6017   41.9   39.5
+  99..101     0.066    129.3     65.7   0.5381   0.0171   0.0318    2.2    2.1
+ 101..102     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 104..7       0.587    129.3     65.7   0.5381   0.1518   0.2820   19.6   18.5
+ 104..6       0.508    129.3     65.7   0.5381   0.1313   0.2439   17.0   16.0
+ 103..105     0.052    129.3     65.7   0.5381   0.0134   0.0249    1.7    1.6
+ 105..106     0.180    129.3     65.7   0.5381   0.0466   0.0866    6.0    5.7
+ 106..107     0.043    129.3     65.7   0.5381   0.0112   0.0209    1.5    1.4
+ 107..108     0.161    129.3     65.7   0.5381   0.0416   0.0773    5.4    5.1
+ 108..18      0.092    129.3     65.7   0.5381   0.0237   0.0441    3.1    2.9
+ 108..109     0.005    129.3     65.7   0.5381   0.0013   0.0024    0.2    0.2
+ 109..33      0.179    129.3     65.7   0.5381   0.0462   0.0859    6.0    5.6
+ 109..110     0.058    129.3     65.7   0.5381   0.0149   0.0277    1.9    1.8
+ 110..49      0.098    129.3     65.7   0.5381   0.0253   0.0470    3.3    3.1
+ 110..111     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 111..112     0.076    129.3     65.7   0.5381   0.0196   0.0364    2.5    2.4
+ 112..71      0.023    129.3     65.7   0.5381   0.0058   0.0108    0.8    0.7
+ 112..70      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+ 111..61      0.131    129.3     65.7   0.5381   0.0339   0.0630    4.4    4.1
+ 107..113     0.057    129.3     65.7   0.5381   0.0147   0.0273    1.9    1.8
+ 113..114     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 114..115     0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 115..44      0.090    129.3     65.7   0.5381   0.0231   0.0430    3.0    2.8
+ 115..116     0.021    129.3     65.7   0.5381   0.0056   0.0103    0.7    0.7
+ 116..117     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 118..81      0.021    129.3     65.7   0.5381   0.0054   0.0101    0.7    0.7
+ 117..119     0.133    129.3     65.7   0.5381   0.0344   0.0640    4.5    4.2
+ 119..120     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 120..88      0.111    129.3     65.7   0.5381   0.0286   0.0532    3.7    3.5
+ 120..89      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 116..121     0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 121..122     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 122..123     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 123..90      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 122..82      0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 121..69      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 114..124     0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 124..46      0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 124..45      0.113    129.3     65.7   0.5381   0.0292   0.0542    3.8    3.6
+ 113..125     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    129.3     65.7   0.5381   0.0053   0.0099    0.7    0.6
+ 126..48      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 106..127     0.206    129.3     65.7   0.5381   0.0531   0.0988    6.9    6.5
+ 127..128     0.063    129.3     65.7   0.5381   0.0163   0.0303    2.1    2.0
+ 128..21      0.068    129.3     65.7   0.5381   0.0177   0.0328    2.3    2.2
+ 128..20      0.048    129.3     65.7   0.5381   0.0124   0.0231    1.6    1.5
+ 127..129     0.021    129.3     65.7   0.5381   0.0055   0.0103    0.7    0.7
+ 129..19      0.074    129.3     65.7   0.5381   0.0192   0.0356    2.5    2.3
+ 129..130     0.132    129.3     65.7   0.5381   0.0340   0.0632    4.4    4.2
+ 130..34      0.022    129.3     65.7   0.5381   0.0058   0.0108    0.8    0.7
+ 130..35      0.063    129.3     65.7   0.5381   0.0164   0.0304    2.1    2.0
+ 105..5       0.127    129.3     65.7   0.5381   0.0328   0.0609    4.2    4.0
+ 102..131     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 131..132     0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 132..8       0.470    129.3     65.7   0.5381   0.1215   0.2259   15.7   14.8
+ 132..133     0.052    129.3     65.7   0.5381   0.0135   0.0251    1.7    1.7
+ 133..134     0.228    129.3     65.7   0.5381   0.0589   0.1095    7.6    7.2
+ 134..135     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 137..54      0.040    129.3     65.7   0.5381   0.0104   0.0193    1.3    1.3
+ 137..138     0.118    129.3     65.7   0.5381   0.0306   0.0568    4.0    3.7
+ 138..65      0.196    129.3     65.7   0.5381   0.0506   0.0941    6.5    6.2
+ 138..64      0.062    129.3     65.7   0.5381   0.0161   0.0300    2.1    2.0
+ 136..139     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 139..55      0.045    129.3     65.7   0.5381   0.0116   0.0215    1.5    1.4
+ 139..56      0.062    129.3     65.7   0.5381   0.0161   0.0299    2.1    2.0
+ 135..140     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 140..38      0.134    129.3     65.7   0.5381   0.0346   0.0643    4.5    4.2
+ 140..141     0.040    129.3     65.7   0.5381   0.0103   0.0191    1.3    1.3
+ 141..53      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 143..72      0.021    129.3     65.7   0.5381   0.0054   0.0100    0.7    0.7
+ 134..144     0.026    129.3     65.7   0.5381   0.0067   0.0124    0.9    0.8
+ 144..145     0.080    129.3     65.7   0.5381   0.0207   0.0386    2.7    2.5
+ 145..36      0.042    129.3     65.7   0.5381   0.0108   0.0200    1.4    1.3
+ 145..146     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 146..147     0.024    129.3     65.7   0.5381   0.0061   0.0114    0.8    0.7
+ 147..148     0.087    129.3     65.7   0.5381   0.0225   0.0419    2.9    2.7
+ 148..149     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 152..95      0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 152..94      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 153..93      0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 150..92      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 149..83      0.043    129.3     65.7   0.5381   0.0111   0.0207    1.4    1.4
+ 148..156     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 156..85      0.043    129.3     65.7   0.5381   0.0111   0.0206    1.4    1.4
+ 156..84      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 147..62      0.041    129.3     65.7   0.5381   0.0107   0.0198    1.4    1.3
+ 146..50      0.088    129.3     65.7   0.5381   0.0229   0.0425    3.0    2.8
+ 144..157     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 157..37      0.156    129.3     65.7   0.5381   0.0403   0.0750    5.2    4.9
+ 157..158     0.118    129.3     65.7   0.5381   0.0304   0.0566    3.9    3.7
+ 158..51      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 133..9       0.367    129.3     65.7   0.5381   0.0949   0.1764   12.3   11.6
+ 131..4       0.547    129.3     65.7   0.5381   0.1416   0.2631   18.3   17.3
+ 101..159     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 159..3       1.772    129.3     65.7   0.5381   0.4582   0.8514   59.3   55.9
+ 159..160     0.292    129.3     65.7   0.5381   0.0755   0.1403    9.8    9.2
+ 160..161     0.058    129.3     65.7   0.5381   0.0151   0.0281    2.0    1.8
+ 161..162     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 163..12      0.136    129.3     65.7   0.5381   0.0352   0.0654    4.6    4.3
+ 163..164     0.295    129.3     65.7   0.5381   0.0764   0.1420    9.9    9.3
+ 164..26      0.107    129.3     65.7   0.5381   0.0277   0.0515    3.6    3.4
+ 164..25      0.134    129.3     65.7   0.5381   0.0348   0.0646    4.5    4.2
+ 162..165     0.047    129.3     65.7   0.5381   0.0122   0.0227    1.6    1.5
+ 165..13      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 165..14      0.074    129.3     65.7   0.5381   0.0192   0.0356    2.5    2.3
+ 161..166     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 166..167     0.238    129.3     65.7   0.5381   0.0617   0.1146    8.0    7.5
+ 167..168     0.092    129.3     65.7   0.5381   0.0238   0.0442    3.1    2.9
+ 168..23      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    129.3     65.7   0.5381   0.0057   0.0106    0.7    0.7
+ 167..170     0.081    129.3     65.7   0.5381   0.0211   0.0392    2.7    2.6
+ 170..171     0.053    129.3     65.7   0.5381   0.0138   0.0257    1.8    1.7
+ 171..172     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 173..66      0.114    129.3     65.7   0.5381   0.0294   0.0546    3.8    3.6
+ 173..174     0.174    129.3     65.7   0.5381   0.0450   0.0836    5.8    5.5
+ 174..78      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 174..77      0.033    129.3     65.7   0.5381   0.0084   0.0156    1.1    1.0
+ 172..175     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 176..76      0.116    129.3     65.7   0.5381   0.0299   0.0556    3.9    3.7
+ 176..75      0.163    129.3     65.7   0.5381   0.0422   0.0784    5.5    5.1
+ 175..177     0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 177..74      0.108    129.3     65.7   0.5381   0.0280   0.0521    3.6    3.4
+ 177..178     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 178..87      0.108    129.3     65.7   0.5381   0.0280   0.0521    3.6    3.4
+ 178..86      0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 171..179     0.021    129.3     65.7   0.5381   0.0055   0.0101    0.7    0.7
+ 179..59      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 179..58      0.188    129.3     65.7   0.5381   0.0485   0.0901    6.3    5.9
+ 179..57      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 170..22      0.139    129.3     65.7   0.5381   0.0360   0.0669    4.7    4.4
+ 166..180     0.073    129.3     65.7   0.5381   0.0188   0.0350    2.4    2.3
+ 180..11      0.020    129.3     65.7   0.5381   0.0050   0.0094    0.7    0.6
+ 180..181     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 181..182     0.018    129.3     65.7   0.5381   0.0045   0.0085    0.6    0.6
+ 182..41      0.095    129.3     65.7   0.5381   0.0245   0.0456    3.2    3.0
+ 182..42      0.080    129.3     65.7   0.5381   0.0206   0.0383    2.7    2.5
+ 181..24      0.074    129.3     65.7   0.5381   0.0191   0.0355    2.5    2.3
+ 160..183     0.025    129.3     65.7   0.5381   0.0064   0.0120    0.8    0.8
+ 183..184     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 184..10      0.525    129.3     65.7   0.5381   0.1358   0.2524   17.6   16.6
+ 184..185     0.403    129.3     65.7   0.5381   0.1043   0.1938   13.5   12.7
+ 185..17      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 185..16      0.046    129.3     65.7   0.5381   0.0120   0.0223    1.6    1.5
+ 183..186     0.223    129.3     65.7   0.5381   0.0576   0.1070    7.4    7.0
+ 186..187     0.229    129.3     65.7   0.5381   0.0592   0.1100    7.7    7.2
+ 187..15      0.106    129.3     65.7   0.5381   0.0275   0.0511    3.6    3.4
+ 187..188     0.069    129.3     65.7   0.5381   0.0179   0.0332    2.3    2.2
+ 188..27      0.050    129.3     65.7   0.5381   0.0129   0.0239    1.7    1.6
+ 188..189     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 189..190     0.074    129.3     65.7   0.5381   0.0190   0.0353    2.5    2.3
+ 190..60      0.071    129.3     65.7   0.5381   0.0184   0.0342    2.4    2.2
+ 190..191     0.024    129.3     65.7   0.5381   0.0062   0.0115    0.8    0.8
+ 191..68      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+ 191..67      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 189..43      0.119    129.3     65.7   0.5381   0.0307   0.0571    4.0    3.8
+ 186..192     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 192..193     0.376    129.3     65.7   0.5381   0.0971   0.1805   12.6   11.8
+ 193..31      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 192..194     0.291    129.3     65.7   0.5381   0.0753   0.1400    9.7    9.2
+ 194..29      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 194..28      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+
+
+Naive Empirical Bayes (NEB) analysis
+Time used: 23:18:25
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/lnf
new file mode 100644
index 0000000..52d83f3
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.7616717097   0.001157292898       0.0752  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.1207959994   0.000000001827       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.1582648438   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -47.1294638446   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.2476260816   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -39.9541868417   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -40.3660315318   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -47.8941703490   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.8367964175   0.000000002427       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.1450349677   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -7.0536233099   0.000864271753       0.0562  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -53.5211370191   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -11.7651026845   0.000007771070       0.0005  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -33.6041261694   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -26.6050452576   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1226487696   0.000806627349       0.0524  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1182589537   0.000810176078       0.0527  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -52.8908686948   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -67.6453403949   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -100.9445900869   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.7886678622   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -72.1060683681   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -53.0660455491   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -67.6794816746   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -102.4330654691   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.2610713561   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -61.1447853169   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -43.3240244529   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.6753164142   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.1439974791   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -97.5274075783   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -101.8057235353   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -81.7282529338   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -99.6977073992   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -82.6620254146   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8717273158   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -110.0176931284   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -41.9831194878   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -77.1233564675   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.8640311656   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -22.5768388948   0.000000000157       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.9354176927   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.5472540379   0.000194077297       0.0126  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4513717738   0.001578355536       0.1026  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -19.2884025141   0.000000004199       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -46.9964511527   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.6614112445   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.0401079597   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -121.1748334138   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -206.7947608632   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -132.2550001291   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.9734772724   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -73.7293204633   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.8380736318   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -43.8357703971   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -80.4330189899   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.1908331116   0.000101969877       0.0066  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7448334731   0.001176944656       0.0765  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst
new file mode 100644
index 0000000..3336b43
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst
@@ -0,0 +1,85 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=10)
+
+p:   0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000
+w:   0.00815  0.06916  0.18051  0.32696  0.48998  0.65042  0.79114  0.89930  0.96800  0.99740
+
+Naive Empirical Bayes (NEB) probabilities for 10 classes& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.54132 0.30922 0.11143 0.02918 0.00659 0.00153 0.00042 0.00016 0.00009 0.00007 ( 1)  0.060
+   2 A   0.00025 0.01453 0.06612 0.12767 0.15891 0.15666 0.13928 0.12168 0.10995 0.10496 ( 5)  0.665
+   3 R   0.13797 0.49323 0.27797 0.07292 0.01409 0.00274 0.00066 0.00023 0.00011 0.00009 ( 2)  0.119
+   4 Y   0.00749 0.25221 0.42767 0.22481 0.06573 0.01561 0.00399 0.00134 0.00066 0.00049 ( 3)  0.216
+   5 R   0.00000 0.00216 0.04041 0.13891 0.20439 0.19122 0.14644 0.10913 0.08781 0.07952 ( 5)  0.656
+   6 C   0.00304 0.40877 0.48633 0.09307 0.00809 0.00062 0.00006 0.00001 0.00000 0.00000 ( 3)  0.151
+   7 C   0.00267 0.37998 0.49903 0.10705 0.01031 0.00085 0.00009 0.00002 0.00001 0.00000 ( 3)  0.157
+   8 R   0.00155 0.26753 0.50917 0.18331 0.03228 0.00486 0.00088 0.00024 0.00010 0.00007 ( 3)  0.190
+   9 S   0.28509 0.58248 0.12239 0.00948 0.00053 0.00003 0.00000 0.00000 0.00000 0.00000 ( 2)  0.068
+  10 R   0.00000 0.00000 0.00000 0.00001 0.00082 0.01282 0.07019 0.19126 0.32529 0.39961 (10)  0.950
+  11 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  12 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 7)  0.538
+  13 S   0.82245 0.16731 0.00995 0.00029 0.00001 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.020
+  14 R   0.00008 0.02773 0.16761 0.25803 0.21029 0.13186 0.07919 0.05167 0.03901 0.03452 ( 4)  0.487
+  15 S   0.82226 0.16746 0.00998 0.00029 0.00001 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.020
+  16 R   0.11985 0.45164 0.29391 0.09881 0.02569 0.00657 0.00197 0.00078 0.00043 0.00034 ( 2)  0.137
+  17 C   0.04451 0.66166 0.26826 0.02432 0.00119 0.00006 0.00000 0.00000 0.00000 0.00000 ( 2)  0.103
+  18 *   0.26011 0.21555 0.15646 0.10700 0.07357 0.05303 0.04090 0.03399 0.03039 0.02900 ( 1)  0.272
+  19 *   0.00379 0.02915 0.06425 0.09517 0.11672 0.12970 0.13675 0.14026 0.14183 0.14237 (10)  0.700
+  20 R   0.00000 0.00012 0.03084 0.24009 0.33464 0.20459 0.09436 0.04565 0.02762 0.02210 ( 5)  0.546
+  21 S   0.00004 0.06375 0.40804 0.35728 0.12505 0.03175 0.00848 0.00297 0.00151 0.00113 ( 3)  0.289
+  22 R   0.00000 0.00007 0.00674 0.05458 0.13320 0.17705 0.17756 0.16171 0.14776 0.14132 ( 7)  0.769
+  23 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  24 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  25 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  26 R   0.11660 0.44564 0.29692 0.10253 0.02731 0.00712 0.00216 0.00086 0.00048 0.00038 ( 2)  0.140
+  27 R   0.00000 0.00031 0.00794 0.04091 0.09480 0.14229 0.16931 0.17978 0.18224 0.18242 (10)  0.808
+  28 R   0.00014 0.03990 0.19812 0.27059 0.20806 0.12269 0.06760 0.04026 0.02835 0.02430 ( 4)  0.450
+  29 S   0.00000 0.00000 0.00064 0.01518 0.07184 0.14421 0.18609 0.19648 0.19415 0.19141 ( 8)  0.837
+  30 H   0.00000 0.00000 0.00002 0.00298 0.04005 0.12947 0.19833 0.21564 0.20966 0.20385 ( 8)  0.862
+  31 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  32 R   0.00000 0.00130 0.01851 0.06034 0.11009 0.14867 0.16642 0.16826 0.16452 0.16190 ( 8)  0.778
+  33 R   0.01800 0.11447 0.18114 0.17803 0.14260 0.10705 0.08152 0.06578 0.05734 0.05407 ( 3)  0.472
+  34 R   0.16360 0.52704 0.24766 0.05201 0.00801 0.00127 0.00026 0.00008 0.00004 0.00003 ( 2)  0.105
+  35 R   0.16423 0.52887 0.24695 0.05089 0.00758 0.00115 0.00022 0.00007 0.00003 0.00002 ( 2)  0.104
+  36 R   0.00006 0.02100 0.13974 0.24026 0.21598 0.14522 0.09079 0.06037 0.04589 0.04069 ( 4)  0.517
+  37 S   0.00000 0.00000 0.00003 0.00420 0.05079 0.14901 0.20813 0.20968 0.19382 0.18434 ( 8)  0.848
+  38 C   0.00000 0.00000 0.00001 0.00170 0.02528 0.09716 0.17743 0.22227 0.23676 0.23939 (10)  0.884
+  39 R   0.00000 0.00037 0.01547 0.08017 0.15344 0.17888 0.16730 0.14696 0.13198 0.12543 ( 6)  0.738
+  40 S   0.00000 0.00027 0.02050 0.12192 0.21217 0.20343 0.15418 0.11379 0.09121 0.08253 ( 5)  0.675
+  41 R   0.00000 0.00100 0.03397 0.13707 0.20246 0.18722 0.14577 0.11259 0.09366 0.08625 ( 5)  0.665
+  42 R   0.00012 0.04884 0.29268 0.34344 0.18388 0.07299 0.02899 0.01374 0.00847 0.00687 ( 4)  0.356
+  43 R   0.00000 0.00000 0.00001 0.00118 0.01583 0.06711 0.14659 0.21944 0.26550 0.28434 (10)  0.906
+  44 *   0.00000 0.00001 0.00036 0.00401 0.02040 0.06201 0.13042 0.20883 0.27185 0.30212 (10)  0.907
+  45 *   0.00000 0.00000 0.00000 0.00001 0.00085 0.01222 0.06657 0.18651 0.32660 0.40723 (10)  0.951
+  46 R   0.00000 0.00000 0.00027 0.00796 0.04719 0.11600 0.17602 0.20841 0.22051 0.22363 (10)  0.864
+  47 C   0.04575 0.66817 0.26221 0.02275 0.00106 0.00005 0.00000 0.00000 0.00000 0.00000 ( 2)  0.102
+  48 C   0.00018 0.19803 0.58779 0.18942 0.02230 0.00200 0.00022 0.00004 0.00001 0.00001 ( 3)  0.194
+  49 *   0.22474 0.19771 0.15705 0.11683 0.08484 0.06252 0.04820 0.03966 0.03511 0.03334 ( 1)  0.305
+  50 *   0.25058 0.21552 0.16413 0.11534 0.07847 0.05414 0.03935 0.03093 0.02659 0.02493 ( 1)  0.268
+  51 R   0.08545 0.36785 0.30587 0.14390 0.05564 0.02138 0.00921 0.00482 0.00319 0.00268 ( 2)  0.187
+  52 R   0.00000 0.00741 0.23862 0.45188 0.21860 0.05959 0.01510 0.00484 0.00229 0.00166 ( 4)  0.357
+  53 R   0.00000 0.00009 0.01381 0.10923 0.21564 0.21517 0.16127 0.11523 0.08964 0.07992 ( 5)  0.682
+  54 H   0.00001 0.02402 0.24874 0.37706 0.21788 0.08145 0.02818 0.01148 0.00632 0.00486 ( 4)  0.373
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00024 0.00658 0.05148 0.17471 0.33516 0.43183 (10)  0.957
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00051 0.01303 0.10435 0.33846 0.54364 (10)  0.974
+  57 *   0.00000 0.00000 0.00000 0.00003 0.00173 0.02030 0.08808 0.20378 0.31462 0.37146 (10)  0.942
+  58 *   0.00000 0.00002 0.00138 0.01332 0.04986 0.10657 0.16271 0.20356 0.22675 0.23582 (10)  0.865
+  59 *   0.00000 0.00000 0.00000 0.00013 0.00379 0.02970 0.10267 0.20969 0.30384 0.35018 (10)  0.934
+  60 *   0.00000 0.00091 0.03167 0.13670 0.21434 0.19947 0.14850 0.10750 0.08479 0.07612 ( 5)  0.657
+  61 *   0.00021 0.06002 0.28532 0.32001 0.18225 0.07962 0.03457 0.01751 0.01123 0.00927 ( 4)  0.365
+  62 *   0.00000 0.00000 0.00000 0.00035 0.00967 0.05881 0.14770 0.22678 0.27054 0.28616 (10)  0.911
+  63 *   0.21095 0.18276 0.14405 0.10970 0.08461 0.06783 0.05708 0.05053 0.04695 0.04554 ( 1)  0.343
+  64 *   0.00031 0.00435 0.01802 0.04463 0.08086 0.11951 0.15385 0.17981 0.19594 0.20273 (10)  0.811
+  65 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 2)  0.538
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+
+
+lnL = -3310.726824
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tmp.ctl
new file mode 100644
index 0000000..f22697c
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 7
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M7.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M7/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/M8.out b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/M8.out
new file mode 100644
index 0000000..221647e
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/M8.out
@@ -0,0 +1,1515 @@
+
+seed used = 816750677
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  beta&w>1 (11 categories)
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+lnL(ntime:193  np:198):  -3286.339925     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.039165 1.300442 1.380397 0.044350 0.000000 0.000000 0.000000 0.689356 0.554990 0.040486 0.202985 0.050266 0.178544 0.099402 0.004175 0.194437 0.062081 0.104291 0.000000 0.080399 0.024257 0.024565 0.144047 0.062440 0.000000 0.045502 0.095219 0.022477 0.000000 0.000000 0.000004 0.022503 0.142616 0.000000 0.118406 0.000004 0.000004 0.000000 0.000000 0.045071 0.000004 0.000004 0.000004 0.045071 0.022905 0.044773 0.119908 0.000000 0.000000 0.021979 0.000004 0.000004 0.213709 0.066942 0.073 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  19.02079
+
+((1: 1.300442, 2: 1.380397): 0.039165, ((((7: 0.689356, 6: 0.554990): 0.000000, ((((18: 0.099402, (33: 0.194437, (49: 0.104291, ((71: 0.024257, 70: 0.024565): 0.080399, 61: 0.144047): 0.000000): 0.062081): 0.004175): 0.178544, (((44: 0.095219, (((80: 0.000004, 81: 0.022503): 0.000000, ((88: 0.118406, 89: 0.000004): 0.000000, 79: 0.000004): 0.142616): 0.000000, (((90: 0.000004, 91: 0.000004): 0.045071, 82: 0.000004): 0.000000, 69: 0.045071): 0.000000): 0.022477): 0.045502, (46: 0.044773,  [...]
+
+((Loxodonta_africana: 1.300442, Procavia_capensis: 1.380397): 0.039165, ((((Cynocephalus_variegatus: 0.689356, Tupaia_belangeri: 0.554990): 0.000000, ((((Hylobates_lar: 0.099402, (Pongo_pygmaeus: 0.194437, (Gorilla_gorilla: 0.104291, ((Pan_paniscus: 0.024257, Pan_troglodytes: 0.024565): 0.080399, Homo_sapiens: 0.144047): 0.000000): 0.062081): 0.004175): 0.178544, (((Nasalis_larvatus: 0.095219, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.022503): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.50513
+
+Parameters in M9 beta&w>1:
+  p0=  0.85010  p=  0.71723 q=  0.88553
+ (p1=  0.14990) w=  3.02123
+
+
+dN/dS for site classes (K=11)
+
+p:   0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.14990
+w:   0.01757  0.08091  0.16394  0.26012  0.36597  0.47899  0.59697  0.71763  0.83795  0.95226  3.02123
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.039    128.2     66.8   0.8331   0.0122   0.0147    1.6    1.0
+ 100..1       1.300    128.2     66.8   0.8331   0.4057   0.4869   52.0   32.5
+ 100..2       1.380    128.2     66.8   0.8331   0.4306   0.5169   55.2   34.5
+  99..101     0.044    128.2     66.8   0.8331   0.0138   0.0166    1.8    1.1
+ 101..102     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 104..7       0.689    128.2     66.8   0.8331   0.2150   0.2581   27.6   17.2
+ 104..6       0.555    128.2     66.8   0.8331   0.1731   0.2078   22.2   13.9
+ 103..105     0.040    128.2     66.8   0.8331   0.0126   0.0152    1.6    1.0
+ 105..106     0.203    128.2     66.8   0.8331   0.0633   0.0760    8.1    5.1
+ 106..107     0.050    128.2     66.8   0.8331   0.0157   0.0188    2.0    1.3
+ 107..108     0.179    128.2     66.8   0.8331   0.0557   0.0669    7.1    4.5
+ 108..18      0.099    128.2     66.8   0.8331   0.0310   0.0372    4.0    2.5
+ 108..109     0.004    128.2     66.8   0.8331   0.0013   0.0016    0.2    0.1
+ 109..33      0.194    128.2     66.8   0.8331   0.0607   0.0728    7.8    4.9
+ 109..110     0.062    128.2     66.8   0.8331   0.0194   0.0232    2.5    1.6
+ 110..49      0.104    128.2     66.8   0.8331   0.0325   0.0391    4.2    2.6
+ 110..111     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 111..112     0.080    128.2     66.8   0.8331   0.0251   0.0301    3.2    2.0
+ 112..71      0.024    128.2     66.8   0.8331   0.0076   0.0091    1.0    0.6
+ 112..70      0.025    128.2     66.8   0.8331   0.0077   0.0092    1.0    0.6
+ 111..61      0.144    128.2     66.8   0.8331   0.0449   0.0539    5.8    3.6
+ 107..113     0.062    128.2     66.8   0.8331   0.0195   0.0234    2.5    1.6
+ 113..114     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 114..115     0.046    128.2     66.8   0.8331   0.0142   0.0170    1.8    1.1
+ 115..44      0.095    128.2     66.8   0.8331   0.0297   0.0357    3.8    2.4
+ 115..116     0.022    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 116..117     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 118..81      0.023    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 117..119     0.143    128.2     66.8   0.8331   0.0445   0.0534    5.7    3.6
+ 119..120     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 120..88      0.118    128.2     66.8   0.8331   0.0369   0.0443    4.7    3.0
+ 120..89      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 122..123     0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 123..90      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 121..69      0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 114..124     0.023    128.2     66.8   0.8331   0.0071   0.0086    0.9    0.6
+ 124..46      0.045    128.2     66.8   0.8331   0.0140   0.0168    1.8    1.1
+ 124..45      0.120    128.2     66.8   0.8331   0.0374   0.0449    4.8    3.0
+ 113..125     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 126..47      0.022    128.2     66.8   0.8331   0.0069   0.0082    0.9    0.5
+ 126..48      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 106..127     0.214    128.2     66.8   0.8331   0.0667   0.0800    8.5    5.3
+ 127..128     0.067    128.2     66.8   0.8331   0.0209   0.0251    2.7    1.7
+ 128..21      0.073    128.2     66.8   0.8331   0.0229   0.0275    2.9    1.8
+ 128..20      0.051    128.2     66.8   0.8331   0.0160   0.0192    2.0    1.3
+ 127..129     0.013    128.2     66.8   0.8331   0.0041   0.0049    0.5    0.3
+ 129..19      0.088    128.2     66.8   0.8331   0.0274   0.0329    3.5    2.2
+ 129..130     0.150    128.2     66.8   0.8331   0.0467   0.0560    6.0    3.7
+ 130..34      0.023    128.2     66.8   0.8331   0.0073   0.0088    0.9    0.6
+ 130..35      0.067    128.2     66.8   0.8331   0.0208   0.0249    2.7    1.7
+ 105..5       0.151    128.2     66.8   0.8331   0.0471   0.0565    6.0    3.8
+ 102..131     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 131..132     0.015    128.2     66.8   0.8331   0.0046   0.0055    0.6    0.4
+ 132..8       0.531    128.2     66.8   0.8331   0.1657   0.1989   21.3   13.3
+ 132..133     0.073    128.2     66.8   0.8331   0.0228   0.0273    2.9    1.8
+ 133..134     0.243    128.2     66.8   0.8331   0.0759   0.0911    9.7    6.1
+ 134..135     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 137..54      0.045    128.2     66.8   0.8331   0.0142   0.0170    1.8    1.1
+ 137..138     0.129    128.2     66.8   0.8331   0.0401   0.0482    5.1    3.2
+ 138..65      0.213    128.2     66.8   0.8331   0.0663   0.0796    8.5    5.3
+ 138..64      0.069    128.2     66.8   0.8331   0.0215   0.0258    2.8    1.7
+ 136..139     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 139..55      0.049    128.2     66.8   0.8331   0.0152   0.0183    2.0    1.2
+ 139..56      0.070    128.2     66.8   0.8331   0.0219   0.0262    2.8    1.8
+ 135..140     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 140..38      0.147    128.2     66.8   0.8331   0.0459   0.0552    5.9    3.7
+ 140..141     0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 141..53      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 143..72      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 134..144     0.029    128.2     66.8   0.8331   0.0090   0.0108    1.2    0.7
+ 144..145     0.090    128.2     66.8   0.8331   0.0281   0.0338    3.6    2.3
+ 145..36      0.047    128.2     66.8   0.8331   0.0146   0.0175    1.9    1.2
+ 145..146     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 146..147     0.026    128.2     66.8   0.8331   0.0081   0.0097    1.0    0.6
+ 147..148     0.096    128.2     66.8   0.8331   0.0299   0.0359    3.8    2.4
+ 148..149     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 152..95      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 152..94      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 153..93      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 150..92      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 149..83      0.047    128.2     66.8   0.8331   0.0148   0.0177    1.9    1.2
+ 148..156     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 156..85      0.047    128.2     66.8   0.8331   0.0147   0.0176    1.9    1.2
+ 156..84      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 147..62      0.046    128.2     66.8   0.8331   0.0143   0.0172    1.8    1.1
+ 146..50      0.099    128.2     66.8   0.8331   0.0308   0.0369    3.9    2.5
+ 144..157     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 157..37      0.172    128.2     66.8   0.8331   0.0535   0.0642    6.9    4.3
+ 157..158     0.130    128.2     66.8   0.8331   0.0405   0.0486    5.2    3.2
+ 158..51      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 133..9       0.388    128.2     66.8   0.8331   0.1209   0.1452   15.5    9.7
+ 131..4       0.586    128.2     66.8   0.8331   0.1827   0.2193   23.4   14.6
+ 101..159     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 159..3       2.072    128.2     66.8   0.8331   0.6462   0.7757   82.9   51.8
+ 159..160     0.316    128.2     66.8   0.8331   0.0985   0.1183   12.6    7.9
+ 160..161     0.075    128.2     66.8   0.8331   0.0233   0.0280    3.0    1.9
+ 161..162     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 163..12      0.155    128.2     66.8   0.8331   0.0483   0.0580    6.2    3.9
+ 163..164     0.320    128.2     66.8   0.8331   0.0999   0.1199   12.8    8.0
+ 164..26      0.119    128.2     66.8   0.8331   0.0372   0.0447    4.8    3.0
+ 164..25      0.149    128.2     66.8   0.8331   0.0465   0.0558    6.0    3.7
+ 162..165     0.050    128.2     66.8   0.8331   0.0155   0.0186    2.0    1.2
+ 165..13      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 165..14      0.076    128.2     66.8   0.8331   0.0236   0.0283    3.0    1.9
+ 161..166     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 166..167     0.262    128.2     66.8   0.8331   0.0816   0.0980   10.5    6.5
+ 167..168     0.102    128.2     66.8   0.8331   0.0317   0.0381    4.1    2.5
+ 168..23      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 169..39      0.025    128.2     66.8   0.8331   0.0077   0.0092    1.0    0.6
+ 167..170     0.090    128.2     66.8   0.8331   0.0282   0.0338    3.6    2.3
+ 170..171     0.056    128.2     66.8   0.8331   0.0175   0.0210    2.2    1.4
+ 171..172     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 173..66      0.126    128.2     66.8   0.8331   0.0392   0.0471    5.0    3.1
+ 173..174     0.189    128.2     66.8   0.8331   0.0591   0.0709    7.6    4.7
+ 174..78      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 174..77      0.037    128.2     66.8   0.8331   0.0114   0.0137    1.5    0.9
+ 172..175     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 176..76      0.133    128.2     66.8   0.8331   0.0415   0.0499    5.3    3.3
+ 176..75      0.181    128.2     66.8   0.8331   0.0564   0.0677    7.2    4.5
+ 175..177     0.021    128.2     66.8   0.8331   0.0065   0.0078    0.8    0.5
+ 177..74      0.118    128.2     66.8   0.8331   0.0368   0.0442    4.7    2.9
+ 177..178     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 178..87      0.118    128.2     66.8   0.8331   0.0368   0.0442    4.7    2.9
+ 178..86      0.021    128.2     66.8   0.8331   0.0064   0.0077    0.8    0.5
+ 171..179     0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 179..59      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 179..58      0.210    128.2     66.8   0.8331   0.0655   0.0786    8.4    5.2
+ 179..57      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 170..22      0.155    128.2     66.8   0.8331   0.0483   0.0580    6.2    3.9
+ 166..180     0.084    128.2     66.8   0.8331   0.0262   0.0314    3.4    2.1
+ 180..11      0.022    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 180..181     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 181..182     0.021    128.2     66.8   0.8331   0.0064   0.0077    0.8    0.5
+ 182..41      0.108    128.2     66.8   0.8331   0.0337   0.0405    4.3    2.7
+ 182..42      0.090    128.2     66.8   0.8331   0.0282   0.0338    3.6    2.3
+ 181..24      0.084    128.2     66.8   0.8331   0.0262   0.0315    3.4    2.1
+ 160..183     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 184..10      0.583    128.2     66.8   0.8331   0.1818   0.2182   23.3   14.6
+ 184..185     0.464    128.2     66.8   0.8331   0.1446   0.1736   18.5   11.6
+ 185..17      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 185..16      0.053    128.2     66.8   0.8331   0.0166   0.0200    2.1    1.3
+ 183..186     0.272    128.2     66.8   0.8331   0.0849   0.1019   10.9    6.8
+ 186..187     0.268    128.2     66.8   0.8331   0.0835   0.1002   10.7    6.7
+ 187..15      0.123    128.2     66.8   0.8331   0.0382   0.0459    4.9    3.1
+ 187..188     0.068    128.2     66.8   0.8331   0.0211   0.0253    2.7    1.7
+ 188..27      0.055    128.2     66.8   0.8331   0.0171   0.0205    2.2    1.4
+ 188..189     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 189..190     0.081    128.2     66.8   0.8331   0.0253   0.0303    3.2    2.0
+ 190..60      0.078    128.2     66.8   0.8331   0.0242   0.0290    3.1    1.9
+ 190..191     0.026    128.2     66.8   0.8331   0.0082   0.0098    1.0    0.7
+ 191..68      0.025    128.2     66.8   0.8331   0.0079   0.0095    1.0    0.6
+ 191..67      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 189..43      0.128    128.2     66.8   0.8331   0.0400   0.0480    5.1    3.2
+ 186..192     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 192..193     0.422    128.2     66.8   0.8331   0.1317   0.1581   16.9   10.6
+ 193..31      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 192..194     0.320    128.2     66.8   0.8331   0.0997   0.1197   12.8    8.0
+ 194..29      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 194..28      0.026    128.2     66.8   0.8331   0.0081   0.0097    1.0    0.6
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.984*        2.988
+    43 R      0.502         1.944
+    44 *      0.963*        2.939
+    45 *      0.999**       3.019
+    55 R      0.998**       3.017
+    56 *      1.000**       3.021
+    57 *      0.958*        2.931
+    59 *      0.889         2.785
+    64 *      0.573         2.035
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.975*        2.979 +- 0.606
+    43 R      0.527         1.918 +- 1.067
+    44 *      0.961*        2.959 +- 0.666
+    45 *      0.998**       3.039 +- 0.529
+    55 R      0.996**       3.032 +- 0.535
+    56 *      1.000**       3.042 +- 0.523
+    57 *      0.943         2.901 +- 0.701
+    59 *      0.855         2.680 +- 0.874
+    64 *      0.603         2.111 +- 1.216
+
+
+
+The grid 
+
+p0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+p :   0.100  0.300  0.500  0.700  0.900  1.100  1.300  1.500  1.700  1.900
+q :   0.100  0.300  0.500  0.700  0.900  1.100  1.300  1.500  1.700  1.900
+ws:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+p0:   0.000  0.000  0.000  0.000  0.000  0.000  0.010  0.213  0.734  0.043
+p :   0.002  0.108  0.295  0.288  0.182  0.086  0.030  0.007  0.001  0.000
+q :   0.002  0.066  0.151  0.199  0.181  0.142  0.103  0.072  0.050  0.034
+ws:   0.000  0.470  0.519  0.011  0.000  0.000  0.000  0.000  0.000  0.000
+
+Time used: 24:40:59
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/lnf
new file mode 100644
index 0000000..e3d2db7
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8110110698   0.001101578564       0.0716  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.1792824092   0.000000001723       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -35.1246720229   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -49.2075480319   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.1819680331   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -39.7838759172   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -40.1672894953   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.9576424917   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.5692655261   0.000000003171       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.0661689658   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -7.1194996053   0.000809171555       0.0526  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -52.0970983640   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -11.9243694399   0.000006626926       0.0004  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.5496643798   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -26.3892338874   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -6.9948510192   0.000916589337       0.0596  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1569967809   0.000779391726       0.0507  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -51.9338140769   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -66.9952200167   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -101.9261599250   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.0498388551   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.9870262555   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -52.3969500292   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -68.4946137260   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -102.1326703659   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.4605014821   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9395936022   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.8202423738   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -29.3487616737   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.0271011058   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -98.9916068875   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -102.8977366438   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -81.8565538741   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -100.4678238520   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -83.4304229614   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8218574993   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -111.2540086720   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -40.5150397776   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -73.4319867227   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -85.3835081136   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -22.4161504252   0.000000000184       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.8001284403   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4561022826   0.000212599109       0.0138  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4594140671   0.001565712844       0.1018  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.6609744755   0.000000007864       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -45.5770021313   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.1042591338   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -34.9791340617   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -119.1628681063   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -195.5584828452   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -130.7182936627   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -29.2961795767   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -72.0225784750   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.1279035294   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -42.5199165343   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -82.3075205560   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.2436157455   0.000096727216       0.0063  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.6146309130   0.001340609506       0.0871  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst
new file mode 100644
index 0000000..d402e36
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst
@@ -0,0 +1,177 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=11)
+
+p:   0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.14990
+w:   0.01757  0.08091  0.16394  0.26012  0.36597  0.47899  0.59697  0.71763  0.83795  0.95226  3.02123
+
+Naive Empirical Bayes (NEB) probabilities for 11 classes& postmean_w & P(w>1)
+Loxodonta_africana used as reference
+
+   1 M   0.45460 0.27812 0.14613 0.06940 0.03062 0.01279 0.00515 0.00204 0.00081 0.00034 0.00000 ( 1)  0.095  0.000
+   2 A   0.00084 0.01454 0.04597 0.08548 0.12122 0.14545 0.15580 0.15398 0.14374 0.12953 0.00346 ( 7)  0.603  0.003
+   3 R   0.15797 0.34163 0.26255 0.13958 0.06104 0.02382 0.00873 0.00312 0.00112 0.00043 0.00000 ( 2)  0.152  0.000
+   4 Y   0.01745 0.18121 0.29124 0.24717 0.14777 0.07051 0.02886 0.01068 0.00375 0.00134 0.00000 ( 3)  0.244  0.000
+   5 R   0.00001 0.00153 0.01496 0.05144 0.10491 0.15514 0.18372 0.18501 0.16562 0.13754 0.00013 ( 8)  0.641  0.000
+   6 C   0.01134 0.28128 0.39981 0.21579 0.07035 0.01710 0.00351 0.00066 0.00012 0.00003 0.00000 ( 3)  0.181  0.000
+   7 C   0.01000 0.26105 0.39527 0.22821 0.07946 0.02050 0.00443 0.00087 0.00017 0.00004 0.00000 ( 3)  0.188  0.000
+   8 R   0.00584 0.18115 0.34763 0.26729 0.12915 0.04776 0.01512 0.00441 0.00126 0.00038 0.00000 ( 3)  0.225  0.000
+   9 S   0.32540 0.43397 0.18000 0.04809 0.01021 0.00192 0.00034 0.00006 0.00001 0.00000 0.00000 ( 2)  0.088  0.000
+  10 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00015 0.00091 0.00373 0.01092 0.98428 (11)  2.988  0.984
+  11 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  12 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  13 S   0.77046 0.19216 0.03242 0.00438 0.00052 0.00006 0.00001 0.00000 0.00000 0.00000 0.00000 ( 1)  0.036  0.000
+  14 R   0.00039 0.02190 0.08893 0.15890 0.18843 0.17578 0.14122 0.10337 0.07180 0.04924 0.00004 ( 5)  0.477  0.000
+  15 S   0.77024 0.19230 0.03248 0.00439 0.00052 0.00006 0.00001 0.00000 0.00000 0.00000 0.00000 ( 1)  0.036  0.000
+  16 R   0.13298 0.30228 0.25578 0.15707 0.08236 0.03934 0.01770 0.00769 0.00332 0.00149 0.00000 ( 2)  0.179  0.000
+  17 C   0.09390 0.47639 0.30926 0.09623 0.02023 0.00339 0.00050 0.00007 0.00001 0.00000 0.00000 ( 2)  0.125  0.000
+  18 *   0.21354 0.18030 0.14597 0.11596 0.09155 0.07241 0.05770 0.04651 0.03806 0.03182 0.00617 ( 1)  0.289  0.006
+  19 *   0.00616 0.02598 0.04719 0.06649 0.08281 0.09601 0.10632 0.11416 0.11990 0.12389 0.21110 (11)  1.105  0.211
+  20 R   0.00000 0.00010 0.00712 0.05872 0.16370 0.23759 0.22527 0.16060 0.09526 0.05164 0.00000 ( 6)  0.569  0.000
+  21 S   0.00026 0.04280 0.19715 0.28805 0.23452 0.13507 0.06277 0.02566 0.00986 0.00385 0.00000 ( 4)  0.329  0.000
+  22 R   0.00000 0.00009 0.00296 0.01963 0.06025 0.11739 0.17086 0.20445 0.21418 0.20588 0.00430 ( 9)  0.721  0.004
+  23 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  24 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  25 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  26 R   0.12912 0.29724 0.25546 0.15950 0.08504 0.04126 0.01884 0.00829 0.00362 0.00163 0.00000 ( 2)  0.182  0.000
+  27 R   0.00000 0.00041 0.00477 0.01976 0.04918 0.09029 0.13568 0.17735 0.20966 0.23028 0.08262 (10)  0.920  0.083
+  28 R   0.00044 0.02208 0.08292 0.14502 0.17714 0.17499 0.14912 0.11379 0.08020 0.05429 0.00000 ( 5)  0.491  0.000
+  29 S   0.00000 0.00000 0.00021 0.00334 0.01929 0.06050 0.12728 0.20326 0.26695 0.30504 0.01411 (10)  0.816  0.014
+  30 H   0.00000 0.00000 0.00000 0.00025 0.00441 0.02851 0.09534 0.20110 0.30487 0.36506 0.00047 (10)  0.821  0.000
+  31 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  32 R   0.00000 0.00083 0.00677 0.02190 0.04787 0.08528 0.13261 0.18460 0.23293 0.26925 0.01796 (10)  0.783  0.018
+  33 R   0.02537 0.09024 0.13204 0.14622 0.14129 0.12642 0.10813 0.09016 0.07433 0.06153 0.00427 ( 4)  0.443  0.004
+  34 R   0.18755 0.37043 0.25401 0.11915 0.04578 0.01570 0.00507 0.00161 0.00052 0.00018 0.00000 ( 2)  0.135  0.000
+  35 R   0.18807 0.37193 0.25456 0.11857 0.04495 0.01511 0.00475 0.00145 0.00045 0.00015 0.00000 ( 2)  0.134  0.000
+  36 R   0.00027 0.01602 0.07045 0.13713 0.17696 0.17860 0.15376 0.11916 0.08648 0.06114 0.00004 ( 6)  0.507  0.000
+  37 S   0.00000 0.00000 0.00000 0.00028 0.00472 0.03008 0.09925 0.20575 0.30474 0.35499 0.00018 (10)  0.817  0.000
+  38 C   0.00000 0.00000 0.00000 0.00016 0.00278 0.01918 0.07148 0.17278 0.30439 0.42365 0.00558 (10)  0.852  0.006
+  39 R   0.00000 0.00046 0.00770 0.03493 0.08343 0.13675 0.17614 0.19307 0.18984 0.17443 0.00326 ( 8)  0.685  0.003
+  40 S   0.00000 0.00023 0.00637 0.03675 0.09657 0.15932 0.19479 0.19505 0.17122 0.13938 0.00031 ( 8)  0.656  0.000
+  41 R   0.00000 0.00096 0.01419 0.05630 0.11657 0.16531 0.18490 0.17752 0.15480 0.12830 0.00116 ( 7)  0.632  0.001
+  42 R   0.00038 0.02768 0.12387 0.21416 0.22511 0.17559 0.11353 0.06535 0.03534 0.01900 0.00000 ( 5)  0.407  0.000
+  43 R   0.00000 0.00000 0.00000 0.00008 0.00112 0.00719 0.02744 0.07271 0.14724 0.24173 0.50249 (11)  1.944  0.502
+  44 *   0.00000 0.00000 0.00001 0.00009 0.00038 0.00114 0.00275 0.00570 0.01041 0.01692 0.96259 (11)  2.939  0.963
+  45 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00028 0.00087 0.99877 (11)  3.019  0.999
+  46 R   0.00000 0.00000 0.00009 0.00162 0.01087 0.03970 0.09714 0.17939 0.26983 0.34773 0.05363 (10)  0.929  0.054
+  47 C   0.09597 0.48074 0.30683 0.09357 0.01923 0.00314 0.00045 0.00006 0.00001 0.00000 0.00000 ( 2)  0.124  0.000
+  48 C   0.00120 0.13418 0.37363 0.30634 0.13314 0.03968 0.00940 0.00196 0.00039 0.00008 0.00000 ( 3)  0.227  0.000
+  49 *   0.18313 0.16349 0.14112 0.11928 0.09942 0.08213 0.06752 0.05547 0.04578 0.03827 0.00439 ( 1)  0.315  0.004
+  50 *   0.20183 0.17641 0.14805 0.12107 0.09724 0.07717 0.06080 0.04781 0.03774 0.03025 0.00162 ( 1)  0.282  0.002
+  51 R   0.09953 0.24860 0.23872 0.17095 0.10735 0.06295 0.03549 0.01958 0.01076 0.00608 0.00000 ( 2)  0.225  0.000
+  52 R   0.00000 0.00531 0.08170 0.23547 0.28802 0.21003 0.10973 0.04625 0.01723 0.00626 0.00000 ( 5)  0.400  0.000
+  53 R   0.00000 0.00007 0.00343 0.02605 0.08133 0.15053 0.19840 0.20721 0.18435 0.14858 0.00005 ( 8)  0.672  0.000
+  54 H   0.00009 0.01880 0.11529 0.22770 0.24877 0.18794 0.11079 0.05516 0.02472 0.01075 0.00000 ( 5)  0.397  0.000
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00042 0.00163 0.99787 (11)  3.017  0.998
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.00000 (11)  3.021  1.000
+  57 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00007 0.00061 0.00312 0.01089 0.02774 0.95757 (11)  2.931  0.958
+  58 *   0.00000 0.00003 0.00058 0.00383 0.01394 0.03525 0.06968 0.11529 0.16679 0.21673 0.37787 (11)  1.635  0.378
+  59 *   0.00000 0.00000 0.00000 0.00000 0.00005 0.00048 0.00278 0.01074 0.03041 0.06639 0.88916 (11)  2.785  0.889
+  60 *   0.00000 0.00067 0.01042 0.04482 0.10217 0.15887 0.19079 0.19053 0.16690 0.13476 0.00009 ( 7)  0.646  0.000
+  61 *   0.00072 0.03674 0.13317 0.20818 0.21228 0.16768 0.11251 0.06803 0.03878 0.02192 0.00000 ( 5)  0.406  0.000
+  62 *   0.00000 0.00000 0.00000 0.00003 0.00081 0.00821 0.04248 0.13539 0.29994 0.50092 0.01223 (10)  0.892  0.012
+  63 *   0.17306 0.15270 0.13112 0.11157 0.09495 0.08125 0.07011 0.06110 0.05387 0.04820 0.02206 ( 1)  0.383  0.022
+  64 *   0.00035 0.00263 0.00771 0.01597 0.02729 0.04123 0.05713 0.07426 0.09173 0.10840 0.57330 (11)  2.035  0.573
+  65 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.984*        2.988
+    43 R      0.502         1.944
+    44 *      0.963*        2.939
+    45 *      0.999**       3.019
+    55 R      0.998**       3.017
+    56 *      1.000**       3.021
+    57 *      0.958*        2.931
+    59 *      0.889         2.785
+    64 *      0.573         2.035
+
+
+lnL = -3286.339925
+
+Bayes Empirical Bayes (BEB) probabilities for 11 classes (class)& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.67972 0.18668 0.07599 0.03240 0.01409 0.00619 0.00275 0.00123 0.00057 0.00037 0.00000 ( 1)  0.106 +-  0.104
+   2 A   0.01368 0.04812 0.08357 0.10844 0.12163 0.12511 0.12178 0.11485 0.10850 0.14592 0.00839 (10)  0.608 +-  0.308
+   3 R   0.51017 0.27173 0.12668 0.05389 0.02217 0.00904 0.00370 0.00154 0.00067 0.00042 0.00000 ( 1)  0.136 +-  0.118
+   4 Y   0.19724 0.30628 0.23661 0.13666 0.06830 0.03136 0.01367 0.00580 0.00248 0.00159 0.00000 ( 2)  0.228 +-  0.151
+   5 R   0.00063 0.01408 0.04911 0.09209 0.12727 0.14632 0.14879 0.13939 0.12575 0.15582 0.00075 (10)  0.642 +-  0.222
+   6 C   0.25143 0.43509 0.21619 0.07108 0.01960 0.00498 0.00123 0.00030 0.00008 0.00003 0.00000 ( 2)  0.169 +-  0.101
+   7 C   0.23073 0.42904 0.22858 0.08001 0.02330 0.00620 0.00159 0.00040 0.00011 0.00004 0.00000 ( 2)  0.176 +-  0.104
+   8 R   0.15484 0.37323 0.26613 0.12648 0.05053 0.01858 0.00658 0.00232 0.00085 0.00047 0.00000 ( 2)  0.215 +-  0.126
+   9 S   0.74452 0.19755 0.04544 0.00979 0.00210 0.00046 0.00010 0.00002 0.00001 0.00000 0.00000 ( 1)  0.083 +-  0.064
+  10 R   0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00037 0.00142 0.00453 0.01832 0.97528 (11)  2.979 +-  0.606
+  11 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  12 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  13 S   0.92434 0.06716 0.00744 0.00092 0.00012 0.00002 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.059 +-  0.032
+  14 R   0.01553 0.09088 0.15501 0.17160 0.15555 0.12653 0.09685 0.07206 0.05430 0.06150 0.00019 ( 4)  0.475 +-  0.233
+  15 S   0.92421 0.06726 0.00746 0.00092 0.00012 0.00002 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.059 +-  0.032
+  16 R   0.45338 0.26459 0.14228 0.07159 0.03518 0.01711 0.00830 0.00405 0.00204 0.00149 0.00000 ( 1)  0.160 +-  0.142
+  17 C   0.56766 0.32025 0.08839 0.01907 0.00374 0.00071 0.00013 0.00003 0.00001 0.00000 0.00000 ( 1)  0.107 +-  0.077
+  18 *   0.38307 0.16647 0.11370 0.08315 0.06309 0.04916 0.03920 0.03208 0.02749 0.03460 0.00798 ( 1)  0.285 +-  0.344
+  19 *   0.03482 0.04978 0.06303 0.07145 0.07671 0.07991 0.08188 0.08360 0.08732 0.13094 0.24054 (11)  1.161 +-  1.084
+  20 R   0.00001 0.00538 0.05239 0.13911 0.19854 0.19851 0.15884 0.11035 0.07152 0.06536 0.00000 ( 5)  0.570 +-  0.189
+  21 S   0.02352 0.20056 0.28550 0.22464 0.13469 0.06984 0.03342 0.01541 0.00720 0.00524 0.00000 ( 3)  0.325 +-  0.160
+  22 R   0.00002 0.00247 0.01819 0.05146 0.09246 0.12826 0.15139 0.16124 0.16329 0.21955 0.01168 (10)  0.732 +-  0.279
+  23 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  24 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  25 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  26 R   0.44514 0.26428 0.14455 0.07389 0.03683 0.01814 0.00890 0.00439 0.00223 0.00165 0.00000 ( 1)  0.163 +-  0.144
+  27 R   0.00015 0.00429 0.01827 0.04142 0.06916 0.09661 0.12044 0.13956 0.15666 0.23490 0.11853 (10)  0.967 +-  0.688
+  28 R   0.01640 0.08563 0.14170 0.16057 0.15273 0.13086 0.10451 0.07980 0.06050 0.06727 0.00004 ( 4)  0.489 +-  0.235
+  29 S   0.00000 0.00015 0.00296 0.01567 0.04403 0.08563 0.13156 0.17257 0.20565 0.30392 0.03786 (10)  0.849 +-  0.378
+  30 H   0.00000 0.00000 0.00021 0.00335 0.01901 0.05834 0.12020 0.18826 0.24506 0.36141 0.00416 (10)  0.823 +-  0.173
+  31 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  32 R   0.00036 0.00655 0.02119 0.04186 0.06692 0.09475 0.12315 0.15013 0.17653 0.27098 0.04758 (10)  0.825 +-  0.436
+  33 R   0.13148 0.14223 0.13986 0.12469 0.10651 0.08918 0.07418 0.06210 0.05379 0.06937 0.00661 ( 2)  0.428 +-  0.332
+  34 R   0.56304 0.26415 0.10834 0.04080 0.01496 0.00547 0.00202 0.00076 0.00030 0.00017 0.00000 ( 1)  0.121 +-  0.104
+  35 R   0.56464 0.26475 0.10787 0.04014 0.01447 0.00518 0.00186 0.00068 0.00026 0.00014 0.00000 ( 1)  0.120 +-  0.103
+  36 R   0.01102 0.07144 0.13335 0.16006 0.15578 0.13472 0.10854 0.08417 0.06545 0.07527 0.00019 ( 4)  0.506 +-  0.235
+  37 S   0.00000 0.00000 0.00023 0.00359 0.02007 0.06095 0.12407 0.19135 0.24439 0.35321 0.00213 (10)  0.817 +-  0.157
+  38 C   0.00000 0.00000 0.00013 0.00211 0.01251 0.04168 0.09513 0.16709 0.24538 0.40482 0.03115 (10)  0.888 +-  0.318
+  39 R   0.00012 0.00686 0.03291 0.07248 0.11043 0.13654 0.14835 0.14874 0.14429 0.19065 0.00862 (10)  0.693 +-  0.272
+  40 S   0.00004 0.00536 0.03398 0.08299 0.12891 0.15477 0.15837 0.14668 0.12993 0.15776 0.00122 ( 7)  0.658 +-  0.215
+  41 R   0.00027 0.01275 0.05308 0.10202 0.13671 0.14992 0.14581 0.13223 0.11743 0.14657 0.00320 ( 6)  0.636 +-  0.243
+  42 R   0.01804 0.12543 0.20944 0.20850 0.16266 0.11108 0.07035 0.04295 0.02649 0.02505 0.00000 ( 3)  0.404 +-  0.202
+  43 R   0.00000 0.00000 0.00006 0.00075 0.00410 0.01379 0.03373 0.06648 0.11428 0.24019 0.52663 (11)  1.918 +-  1.067
+  44 *   0.00000 0.00001 0.00008 0.00030 0.00078 0.00166 0.00308 0.00525 0.00855 0.01896 0.96132 (11)  2.959 +-  0.666
+  45 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00002 0.00009 0.00028 0.00111 0.99849 (11)  3.039 +-  0.529
+  46 R   0.00000 0.00006 0.00138 0.00842 0.02713 0.06012 0.10449 0.15396 0.20442 0.33129 0.10872 (10)  1.003 +-  0.585
+  47 C   0.57395 0.31772 0.08591 0.01814 0.00348 0.00065 0.00012 0.00002 0.00000 0.00000 0.00000 ( 1)  0.106 +-  0.077
+  48 C   0.08402 0.40048 0.31429 0.13699 0.04585 0.01339 0.00364 0.00096 0.00026 0.00011 0.00000 ( 2)  0.222 +-  0.109
+  49 *   0.34150 0.15964 0.11627 0.08954 0.07073 0.05678 0.04622 0.03832 0.03305 0.04177 0.00617 ( 1)  0.308 +-  0.331
+  50 *   0.37018 0.16791 0.11830 0.08805 0.06717 0.05204 0.04087 0.03267 0.02717 0.03308 0.00255 ( 1)  0.275 +-  0.283
+  51 R   0.37299 0.24858 0.15596 0.09271 0.05444 0.03196 0.01884 0.01124 0.00695 0.00634 0.00000 ( 1)  0.202 +-  0.180
+  52 R   0.00124 0.07358 0.22527 0.26744 0.20286 0.11961 0.06056 0.02806 0.01267 0.00870 0.00000 ( 4)  0.398 +-  0.162
+  53 R   0.00001 0.00274 0.02374 0.06896 0.11966 0.15465 0.16579 0.15730 0.13995 0.16685 0.00035 (10)  0.673 +-  0.200
+  54 H   0.00939 0.11359 0.22180 0.23114 0.17732 0.11374 0.06518 0.03489 0.01835 0.01459 0.00000 ( 4)  0.394 +-  0.182
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00002 0.00013 0.00056 0.00299 0.99629 (11)  3.032 +-  0.535
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.00000 (11)  3.042 +-  0.523
+  57 *   0.00000 0.00000 0.00000 0.00000 0.00004 0.00027 0.00124 0.00416 0.01150 0.03994 0.94285 (11)  2.901 +-  0.701
+  58 *   0.00001 0.00046 0.00327 0.01076 0.02421 0.04339 0.06695 0.09349 0.12380 0.21504 0.41861 (11)  1.675 +-  1.092
+  59 *   0.00000 0.00000 0.00000 0.00004 0.00030 0.00146 0.00504 0.01365 0.03171 0.09325 0.85456 (11)  2.680 +-  0.874
+  60 *   0.00019 0.00933 0.04220 0.08883 0.12948 0.15190 0.15457 0.14313 0.12663 0.15320 0.00054 ( 7)  0.647 +-  0.214
+  61 *   0.02722 0.13751 0.20404 0.19610 0.15380 0.10784 0.07086 0.04511 0.02903 0.02849 0.00001 ( 3)  0.402 +-  0.210
+  62 *   0.00000 0.00000 0.00002 0.00057 0.00487 0.02181 0.06384 0.13840 0.24261 0.45805 0.06982 (10)  0.976 +-  0.435
+  63 *   0.32082 0.14848 0.10867 0.08520 0.06926 0.05772 0.04913 0.04283 0.03902 0.05214 0.02673 ( 1)  0.382 +-  0.505
+  64 *   0.00268 0.00750 0.01446 0.02235 0.03066 0.03909 0.04751 0.05617 0.06659 0.11045 0.60253 (11)  2.111 +-  1.216
+  65 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.975*        2.979 +- 0.606
+    43 R      0.527         1.918 +- 1.067
+    44 *      0.961*        2.959 +- 0.666
+    45 *      0.998**       3.039 +- 0.529
+    55 R      0.996**       3.032 +- 0.535
+    56 *      1.000**       3.042 +- 0.523
+    57 *      0.943         2.901 +- 0.701
+    59 *      0.855         2.680 +- 0.874
+    64 *      0.603         2.111 +- 1.216
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tmp.ctl
new file mode 100644
index 0000000..4b02b86
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 8
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M8.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/M8/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/algn b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/fb.out b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/fb.out
new file mode 100644
index 0000000..c839095
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/fb.out
@@ -0,0 +1,1468 @@
+
+seed used = 816748657
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: free dN/dS Ratios for branches 
+Codon frequencies: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:387):  -3265.316569     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.000000 1.917587 0.845013 0.128851 0.034834 0.000000 0.000000 0.492087 0.425498 0.043211 0.162745 0.044815 0.144087 0.080453 0.016944 0.158477 0.054084 0.094369 0.000000 0.074893 0.020114 0.021688 0.125578 0.054399 0.000000 0.043415 0.090097 0.022039 0.000000 0.000000 0.000004 0.017567 0.118573 0.000000 0.098523 0.000004 0.000004 0.000000 0.000000 0.038846 0.000004 0.000004 0.000004 0.038845 0.022082 0.044009 0.114124 0.000000 0.000000 0.021482 0.000004 0.000004 0.191723 0.056837 0.062 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.81891
+
+((1: 1.917587, 2: 0.845013): 0.000000, ((((7: 0.492087, 6: 0.425498): 0.000000, ((((18: 0.080453, (33: 0.158477, (49: 0.094369, ((71: 0.020114, 70: 0.021688): 0.074893, 61: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((44: 0.090097, (((80: 0.000004, 81: 0.017567): 0.000000, ((88: 0.098523, 89: 0.000004): 0.000000, 79: 0.000004): 0.118573): 0.000000, (((90: 0.000004, 91: 0.000004): 0.038846, 82: 0.000004): 0.000000, 69: 0.038845): 0.000000): 0.022039): 0.043415, (46: 0.044009,  [...]
+
+((Loxodonta_africana: 1.917587, Procavia_capensis: 0.845013): 0.000000, ((((Cynocephalus_variegatus: 0.492087, Tupaia_belangeri: 0.425498): 0.000000, ((((Hylobates_lar: 0.080453, (Pongo_pygmaeus: 0.158477, (Gorilla_gorilla: 0.094369, ((Pan_paniscus: 0.020114, Pan_troglodytes: 0.021688): 0.074893, Homo_sapiens: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((Nasalis_larvatus: 0.090097, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.017567): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.66780
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.000    127.6     67.4   0.4600   0.0000   0.0000    0.0    0.0
+ 100..1       1.918    127.6     67.4   0.0430   0.0735   1.7097    9.4  115.3
+ 100..2       0.845    127.6     67.4   0.7654   0.2547   0.3327   32.5   22.4
+  99..101     0.129    127.6     67.4 632.3127   0.0656   0.0001    8.4    0.0
+ 101..102     0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 102..103     0.000    127.6     67.4   0.4784   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.6     67.4   0.5158   0.0000   0.0000    0.0    0.0
+ 104..7       0.492    127.6     67.4   0.3617   0.1019   0.2816   13.0   19.0
+ 104..6       0.425    127.6     67.4   0.4382   0.0983   0.2243   12.5   15.1
+ 103..105     0.043    127.6     67.4 400.4027   0.0220   0.0001    2.8    0.0
+ 105..106     0.163    127.6     67.4   0.2769   0.0285   0.1030    3.6    6.9
+ 106..107     0.045    127.6     67.4   0.5228   0.0114   0.0217    1.4    1.5
+ 107..108     0.144    127.6     67.4   1.5911   0.0551   0.0346    7.0    2.3
+ 108..18      0.080    127.6     67.4   1.6533   0.0311   0.0188    4.0    1.3
+ 108..109     0.017    127.6     67.4   0.0001   0.0000   0.0163    0.0    1.1
+ 109..33      0.158    127.6     67.4   1.6828   0.0614   0.0365    7.8    2.5
+ 109..110     0.054    127.6     67.4 736.2809   0.0275   0.0000    3.5    0.0
+ 110..49      0.094    127.6     67.4   2.0913   0.0384   0.0184    4.9    1.2
+ 110..111     0.000    127.6     67.4   0.4327   0.0000   0.0000    0.0    0.0
+ 111..112     0.075    127.6     67.4 839.5575   0.0381   0.0000    4.9    0.0
+ 112..71      0.020    127.6     67.4   0.0001   0.0000   0.0194    0.0    1.3
+ 112..70      0.022    127.6     67.4 535.6837   0.0110   0.0000    1.4    0.0
+ 111..61      0.126    127.6     67.4   3.0407   0.0545   0.0179    7.0    1.2
+ 107..113     0.054    127.6     67.4 754.8444   0.0277   0.0000    3.5    0.0
+ 113..114     0.000    127.6     67.4   0.4593   0.0000   0.0000    0.0    0.0
+ 114..115     0.043    127.6     67.4 720.2270   0.0221   0.0000    2.8    0.0
+ 115..44      0.090    127.6     67.4 913.0786   0.0459   0.0001    5.9    0.0
+ 115..116     0.022    127.6     67.4 563.2359   0.0112   0.0000    1.4    0.0
+ 116..117     0.000    127.6     67.4   0.3772   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.6     67.4   0.3996   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.6     67.4   0.7592   0.0000   0.0000    0.0    0.0
+ 118..81      0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 117..119     0.119    127.6     67.4   0.1284   0.0118   0.0920    1.5    6.2
+ 119..120     0.000    127.6     67.4   0.4694   0.0000   0.0000    0.0    0.0
+ 120..88      0.099    127.6     67.4   0.1755   0.0125   0.0713    1.6    4.8
+ 120..89      0.000    127.6     67.4   0.7371   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.6     67.4   0.7411   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.6     67.4   0.3440   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.6     67.4   0.4090   0.0000   0.0000    0.0    0.0
+ 122..123     0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 123..90      0.000    127.6     67.4   0.8103   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.6     67.4   0.8072   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.6     67.4   0.7688   0.0000   0.0000    0.0    0.0
+ 121..69      0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 114..124     0.022    127.6     67.4 584.2037   0.0112   0.0000    1.4    0.0
+ 124..46      0.044    127.6     67.4 726.4823   0.0224   0.0000    2.9    0.0
+ 124..45      0.114    127.6     67.4 999.0000   0.0581   0.0001    7.4    0.0
+ 113..125     0.000    127.6     67.4   0.3920   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.6     67.4   0.4279   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    127.6     67.4 565.2714   0.0109   0.0000    1.4    0.0
+ 126..48      0.000    127.6     67.4   0.8758   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.6     67.4   0.8712   0.0000   0.0000    0.0    0.0
+ 106..127     0.192    127.6     67.4   2.2857   0.0793   0.0347   10.1    2.3
+ 127..128     0.057    127.6     67.4 758.5477   0.0289   0.0000    3.7    0.0
+ 128..21      0.062    127.6     67.4   0.2830   0.0110   0.0390    1.4    2.6
+ 128..20      0.043    127.6     67.4 656.3045   0.0220   0.0000    2.8    0.0
+ 127..129     0.020    127.6     67.4 527.3671   0.0100   0.0000    1.3    0.0
+ 129..19      0.076    127.6     67.4 883.6820   0.0388   0.0000    5.0    0.0
+ 129..130     0.116    127.6     67.4   1.1394   0.0402   0.0353    5.1    2.4
+ 130..34      0.020    127.6     67.4 531.5903   0.0103   0.0000    1.3    0.0
+ 130..35      0.058    127.6     67.4   0.2936   0.0105   0.0359    1.3    2.4
+ 105..5       0.101    127.6     67.4   0.0001   0.0000   0.0972    0.0    6.6
+ 102..131     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 131..132     0.026    127.6     67.4 414.9941   0.0131   0.0000    1.7    0.0
+ 132..8       0.388    127.6     67.4   0.4067   0.0859   0.2112   11.0   14.2
+ 132..133     0.000    127.6     67.4   0.1919   0.0000   0.0000    0.0    0.0
+ 133..134     0.286    127.6     67.4   0.0447   0.0114   0.2546    1.5   17.2
+ 134..135     0.000    127.6     67.4   0.4022   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.6     67.4   0.3751   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.6     67.4   0.3993   0.0000   0.0000    0.0    0.0
+ 137..54      0.020    127.6     67.4 303.2147   0.0102   0.0000    1.3    0.0
+ 137..138     0.139    127.6     67.4   0.4392   0.0322   0.0733    4.1    4.9
+ 138..65      0.201    127.6     67.4   0.0645   0.0112   0.1730    1.4   11.7
+ 138..64      0.042    127.6     67.4 322.6508   0.0212   0.0001    2.7    0.0
+ 136..139     0.000    127.6     67.4   0.4475   0.0000   0.0000    0.0    0.0
+ 139..55      0.056    127.6     67.4   0.3025   0.0104   0.0344    1.3    2.3
+ 139..56      0.038    127.6     67.4   0.5882   0.0102   0.0174    1.3    1.2
+ 135..140     0.000    127.6     67.4   0.4013   0.0000   0.0000    0.0    0.0
+ 140..38      0.136    127.6     67.4   0.2274   0.0209   0.0917    2.7    6.2
+ 140..141     0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 141..53      0.000    127.6     67.4   0.6864   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.6     67.4   0.4357   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.6     67.4   0.6796   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.6     67.4   0.5773   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.6     67.4   0.6904   0.0000   0.0000    0.0    0.0
+ 143..72      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 134..144     0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 144..145     0.040    127.6     67.4 176.5524   0.0205   0.0001    2.6    0.0
+ 145..36      0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 145..146     0.000    127.6     67.4   0.4138   0.0000   0.0000    0.0    0.0
+ 146..147     0.020    127.6     67.4 512.2765   0.0101   0.0000    1.3    0.0
+ 147..148     0.075    127.6     67.4   0.1958   0.0104   0.0529    1.3    3.6
+ 148..149     0.000    127.6     67.4   0.3982   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.6     67.4   0.4324   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.6     67.4   0.3875   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 152..95      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 152..94      0.000    127.6     67.4   0.7227   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.6     67.4   0.5439   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.6     67.4   0.4896   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.6     67.4   0.7199   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.6     67.4   0.7525   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.6     67.4   0.7382   0.0000   0.0000    0.0    0.0
+ 153..93      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 150..92      0.000    127.6     67.4   0.7319   0.0000   0.0000    0.0    0.0
+ 149..83      0.039    127.6     67.4   0.6233   0.0106   0.0170    1.4    1.1
+ 148..156     0.000    127.6     67.4   0.4306   0.0000   0.0000    0.0    0.0
+ 156..85      0.038    127.6     67.4   0.6173   0.0105   0.0171    1.3    1.2
+ 156..84      0.000    127.6     67.4   0.7215   0.0000   0.0000    0.0    0.0
+ 147..62      0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 146..50      0.076    127.6     67.4   0.1900   0.0102   0.0536    1.3    3.6
+ 144..157     0.015    127.6     67.4   0.0001   0.0000   0.0148    0.0    1.0
+ 157..37      0.129    127.6     67.4   0.0001   0.0000   0.1247    0.0    8.4
+ 157..158     0.120    127.6     67.4   0.6158   0.0329   0.0534    4.2    3.6
+ 158..51      0.000    127.6     67.4   0.7490   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.6     67.4   0.7737   0.0000   0.0000    0.0    0.0
+ 133..9       0.422    127.6     67.4   0.1550   0.0488   0.3147    6.2   21.2
+ 131..4       0.503    127.6     67.4   0.2905   0.0908   0.3127   11.6   21.1
+ 101..159     0.000    127.6     67.4   0.3253   0.0000   0.0000    0.0    0.0
+ 159..3       3.224    127.6     67.4   0.0355   0.1033   2.9128   13.2  196.4
+ 159..160     0.249    127.6     67.4 876.4966   0.1268   0.0001   16.2    0.0
+ 160..161     0.070    127.6     67.4   0.0001   0.0000   0.0676    0.0    4.6
+ 161..162     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 162..163     0.012    127.6     67.4   0.0001   0.0000   0.0115    0.0    0.8
+ 163..12      0.117    127.6     67.4   2.3772   0.0488   0.0205    6.2    1.4
+ 163..164     0.303    127.6     67.4 999.0000   0.1541   0.0002   19.7    0.0
+ 164..26      0.112    127.6     67.4   0.8464   0.0351   0.0414    4.5    2.8
+ 164..25      0.109    127.6     67.4   0.5392   0.0282   0.0522    3.6    3.5
+ 162..165     0.045    127.6     67.4   0.0001   0.0000   0.0437    0.0    2.9
+ 165..13      0.000    127.6     67.4   1.0585   0.0000   0.0000    0.0    0.0
+ 165..14      0.096    127.6     67.4 854.8049   0.0488   0.0001    6.2    0.0
+ 161..166     0.000    127.6     67.4   0.2865   0.0000   0.0000    0.0    0.0
+ 166..167     0.150    127.6     67.4   0.1874   0.0200   0.1066    2.5    7.2
+ 167..168     0.079    127.6     67.4   0.6956   0.0229   0.0329    2.9    2.2
+ 168..23      0.000    127.6     67.4   0.7992   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.6     67.4   0.3963   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.6     67.4   0.7971   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    127.6     67.4 565.8176   0.0113   0.0000    1.4    0.0
+ 167..170     0.090    127.6     67.4   1.8993   0.0357   0.0188    4.6    1.3
+ 170..171     0.052    127.6     67.4   1.0497   0.0178   0.0169    2.3    1.1
+ 171..172     0.000    127.6     67.4   0.4399   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 173..66      0.102    127.6     67.4   0.4192   0.0229   0.0547    2.9    3.7
+ 173..174     0.174    127.6     67.4   1.1249   0.0603   0.0536    7.7    3.6
+ 174..78      0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 174..77      0.018    127.6     67.4   0.0001   0.0000   0.0172    0.0    1.2
+ 172..175     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 175..176     0.000    127.6     67.4   0.3904   0.0000   0.0000    0.0    0.0
+ 176..76      0.124    127.6     67.4   0.3198   0.0238   0.0744    3.0    5.0
+ 176..75      0.138    127.6     67.4   3.5141   0.0613   0.0174    7.8    1.2
+ 175..177     0.016    127.6     67.4 351.4580   0.0083   0.0000    1.1    0.0
+ 177..74      0.085    127.6     67.4 636.5685   0.0433   0.0001    5.5    0.0
+ 177..178     0.000    127.6     67.4   0.3674   0.0000   0.0000    0.0    0.0
+ 178..87      0.085    127.6     67.4 534.6989   0.0432   0.0001    5.5    0.0
+ 178..86      0.034    127.6     67.4   0.4682   0.0081   0.0173    1.0    1.2
+ 171..179     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 179..59      0.000    127.6     67.4   0.7732   0.0000   0.0000    0.0    0.0
+ 179..58      0.176    127.6     67.4   1.1482   0.0614   0.0535    7.8    3.6
+ 179..57      0.000    127.6     67.4   0.7751   0.0000   0.0000    0.0    0.0
+ 170..22      0.126    127.6     67.4   1.2759   0.0456   0.0357    5.8    2.4
+ 166..180     0.061    127.6     67.4   0.3424   0.0122   0.0356    1.6    2.4
+ 180..11      0.016    127.6     67.4   0.0001   0.0000   0.0150    0.0    1.0
+ 180..181     0.000    127.6     67.4   0.4621   0.0000   0.0000    0.0    0.0
+ 181..182     0.013    127.6     67.4   0.0001   0.0000   0.0125    0.0    0.8
+ 182..41      0.077    127.6     67.4   0.0001   0.0000   0.0741    0.0    5.0
+ 182..42      0.067    127.6     67.4   0.2875   0.0120   0.0419    1.5    2.8
+ 181..24      0.058    127.6     67.4   0.0001   0.0000   0.0555    0.0    3.7
+ 160..183     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.6     67.4   0.3893   0.0000   0.0000    0.0    0.0
+ 184..10      0.466    127.6     67.4   0.2858   0.0834   0.2918   10.6   19.7
+ 184..185     0.371    127.6     67.4   0.1841   0.0489   0.2656    6.2   17.9
+ 185..17      0.000    127.6     67.4   0.9118   0.0000   0.0000    0.0    0.0
+ 185..16      0.047    127.6     67.4 727.2422   0.0237   0.0000    3.0    0.0
+ 183..186     0.167    127.6     67.4   0.6539   0.0472   0.0721    6.0    4.9
+ 186..187     0.194    127.6     67.4   0.3640   0.0403   0.1107    5.1    7.5
+ 187..15      0.099    127.6     67.4 890.6329   0.0502   0.0001    6.4    0.0
+ 187..188     0.067    127.6     67.4   1.3459   0.0243   0.0181    3.1    1.2
+ 188..27      0.047    127.6     67.4 710.7597   0.0238   0.0000    3.0    0.0
+ 188..189     0.000    127.6     67.4   0.4529   0.0000   0.0000    0.0    0.0
+ 189..190     0.063    127.6     67.4   0.0001   0.0000   0.0607    0.0    4.1
+ 190..60      0.064    127.6     67.4   1.3526   0.0233   0.0172    3.0    1.2
+ 190..191     0.022    127.6     67.4   0.0001   0.0000   0.0210    0.0    1.4
+ 191..68      0.019    127.6     67.4   0.0001   0.0000   0.0186    0.0    1.3
+ 191..67      0.000    127.6     67.4   0.6460   0.0000   0.0000    0.0    0.0
+ 189..43      0.109    127.6     67.4   0.9654   0.0360   0.0373    4.6    2.5
+ 186..192     0.000    127.6     67.4   0.4010   0.0000   0.0000    0.0    0.0
+ 192..193     0.327    127.6     67.4   0.3859   0.0703   0.1822    9.0   12.3
+ 193..31      0.000    127.6     67.4   0.8316   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.6     67.4   0.8306   0.0000   0.0000    0.0    0.0
+ 192..194     0.264    127.6     67.4   1.3584   0.0968   0.0713   12.4    4.8
+ 194..29      0.000    127.6     67.4   0.8232   0.0000   0.0000    0.0    0.0
+ 194..28      0.018    127.6     67.4   0.0001   0.0000   0.0175    0.0    1.2
+
+tree length for dN:      3.57496
+tree length for dS:     10.41452
+
+dS tree:
+((Loxodonta_africana: 1.709655, Procavia_capensis: 0.332739): 0.000000, ((((Cynocephalus_variegatus: 0.281643, Tupaia_belangeri: 0.224256): 0.000000, ((((Hylobates_lar: 0.018788, (Pongo_pygmaeus: 0.036514, (Gorilla_gorilla: 0.018353, ((Pan_paniscus: 0.019389, Pan_troglodytes: 0.000021): 0.000045, Homo_sapiens: 0.017926): 0.000000): 0.000037): 0.016333): 0.034635, (((Nasalis_larvatus: 0.000050, (((Trachypithecus_geei: 0.000002, Trachypithecus_pileatus: 0.016934): 0.000000, ((Trachypithecu [...]
+dN tree:
+((Loxodonta_africana: 0.073528, Procavia_capensis: 0.254685): 0.000000, ((((Cynocephalus_variegatus: 0.101877, Tupaia_belangeri: 0.098278): 0.000000, ((((Hylobates_lar: 0.031061, (Pongo_pygmaeus: 0.061445, (Gorilla_gorilla: 0.038381, ((Pan_paniscus: 0.000002, Pan_troglodytes: 0.011039): 0.038132, Homo_sapiens: 0.054506): 0.000000): 0.027535): 0.000002): 0.055107, (((Nasalis_larvatus: 0.045876, (((Trachypithecus_geei: 0.000001, Trachypithecus_pileatus: 0.000002): 0.000000, ((Trachypithecu [...]
+
+w ratios as labels for TreeView:
+((Loxodonta_africana#1 #0.0430 : 0.073528, Procavia_capensis#2 #0.7654 : 0.254685) #0.4600 : 0.000000, ((((Cynocephalus_variegatus#7 #0.3617 : 0.101877, Tupaia_belangeri#8 #0.4382 : 0.098278)#6 #0.5158 : 0.000000, ((((Hylobates_lar#13 #1.6533 : 0.031061, (Pongo_pygmaeus#15 #1.6828 : 0.061445, (Gorilla_gorilla#17 #2.0913 : 0.038381, ((Pan_paniscus#20 #0.0001 : 0.000002, Pan_troglodytes#21 #535.6837 : 0.011039)#19 #839.5575 : 0.038132, Homo_sapiens#22 #3.0407 : 0.054506)#18 #0.4327 : 0.000 [...]
+
+
+Time used: 37:35:07
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/lnf b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/lnf
new file mode 100644
index 0000000..334b449
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -8.8210899796   0.000147587405       0.0096  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -19.8200178202   0.000000002468       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.0830102777   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.6666478270   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -60.1549452542   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -40.3858431022   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -38.8426661385   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -48.0566862880   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -23.3218022100   0.000000000074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -108.8109202449   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1   -14.9801109709   0.000000312047       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -48.6373947771   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -19.1445540297   0.000000004849       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.1525222309   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -29.7189469859   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1113425502   0.000815799005       0.0530  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -6.8282546204   0.001082746273       0.0704  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.1677375344   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -62.7565845864   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1   -97.2305915462   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -38.7442892539   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -70.4619912099   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -48.0642170277   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -65.2946761522   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.1296023810   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -71.1270692284   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -52.2165611001   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -41.2594714153   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.3086787727   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -71.9565070530   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -93.9973955704   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -100.4285448422   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -75.3692447719   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -95.3196946499   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -78.3719986461   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -72.3764583584   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -108.5310189228   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -45.1108970051   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -80.7500471833   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -81.4803280490   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -26.0349733719   0.000000000005       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -42.8345684375   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.3145235040   0.000244933576       0.0159  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -5.9833392188   0.002520396071       0.1638  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -17.5414983126   0.000000024089       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.4575053575   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.7435550702   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -33.3327603021   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -124.4011208760   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -210.1481506982   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -137.5444841908   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -27.2953532653   0.000000000001       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -70.2225178384   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -43.6572396581   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -41.1946204630   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -78.9386963498   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -8.4983047941   0.000203813582       0.0132  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7117030164   0.001216590486       0.0791  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst.fb b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst.fb
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst.fb
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rub b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tmp.ctl
new file mode 100644
index 0000000..d28f914
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tmp.ctl
@@ -0,0 +1,27 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 8
+cleandata    = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+fix_alpha    = 1
+Small_Diff   = .5e-6
+method       = 0
+Malpha       = 0
+aaDist       = 0
+RateAncestor = 0
+outfile      = fb.out
+icode        = 0
+alpha        = 0.0
+seqtype      = 1
+omega        = 0.4
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 2
+treefile     = tree
+model        = 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tree b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/paml/fb/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dN b/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dS b/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.t b/ete3/test/ete_evol_data/protamine/PRM1/slr/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/4fold.nuc b/ete3/test/ete_evol_data/protamine/PRM1/slr/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/algn b/ete3/test/ete_evol_data/protamine/PRM1/slr/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/fb.out b/ete3/test/ete_evol_data/protamine/PRM1/slr/fb.out
new file mode 100644
index 0000000..c839095
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/fb.out
@@ -0,0 +1,1468 @@
+
+seed used = 816748657
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: free dN/dS Ratios for branches 
+Codon frequencies: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:387):  -3265.316569     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.000000 1.917587 0.845013 0.128851 0.034834 0.000000 0.000000 0.492087 0.425498 0.043211 0.162745 0.044815 0.144087 0.080453 0.016944 0.158477 0.054084 0.094369 0.000000 0.074893 0.020114 0.021688 0.125578 0.054399 0.000000 0.043415 0.090097 0.022039 0.000000 0.000000 0.000004 0.017567 0.118573 0.000000 0.098523 0.000004 0.000004 0.000000 0.000000 0.038846 0.000004 0.000004 0.000004 0.038845 0.022082 0.044009 0.114124 0.000000 0.000000 0.021482 0.000004 0.000004 0.191723 0.056837 0.062 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.81891
+
+((1: 1.917587, 2: 0.845013): 0.000000, ((((7: 0.492087, 6: 0.425498): 0.000000, ((((18: 0.080453, (33: 0.158477, (49: 0.094369, ((71: 0.020114, 70: 0.021688): 0.074893, 61: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((44: 0.090097, (((80: 0.000004, 81: 0.017567): 0.000000, ((88: 0.098523, 89: 0.000004): 0.000000, 79: 0.000004): 0.118573): 0.000000, (((90: 0.000004, 91: 0.000004): 0.038846, 82: 0.000004): 0.000000, 69: 0.038845): 0.000000): 0.022039): 0.043415, (46: 0.044009,  [...]
+
+((Loxodonta_africana: 1.917587, Procavia_capensis: 0.845013): 0.000000, ((((Cynocephalus_variegatus: 0.492087, Tupaia_belangeri: 0.425498): 0.000000, ((((Hylobates_lar: 0.080453, (Pongo_pygmaeus: 0.158477, (Gorilla_gorilla: 0.094369, ((Pan_paniscus: 0.020114, Pan_troglodytes: 0.021688): 0.074893, Homo_sapiens: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((Nasalis_larvatus: 0.090097, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.017567): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.66780
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.000    127.6     67.4   0.4600   0.0000   0.0000    0.0    0.0
+ 100..1       1.918    127.6     67.4   0.0430   0.0735   1.7097    9.4  115.3
+ 100..2       0.845    127.6     67.4   0.7654   0.2547   0.3327   32.5   22.4
+  99..101     0.129    127.6     67.4 632.3127   0.0656   0.0001    8.4    0.0
+ 101..102     0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 102..103     0.000    127.6     67.4   0.4784   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.6     67.4   0.5158   0.0000   0.0000    0.0    0.0
+ 104..7       0.492    127.6     67.4   0.3617   0.1019   0.2816   13.0   19.0
+ 104..6       0.425    127.6     67.4   0.4382   0.0983   0.2243   12.5   15.1
+ 103..105     0.043    127.6     67.4 400.4027   0.0220   0.0001    2.8    0.0
+ 105..106     0.163    127.6     67.4   0.2769   0.0285   0.1030    3.6    6.9
+ 106..107     0.045    127.6     67.4   0.5228   0.0114   0.0217    1.4    1.5
+ 107..108     0.144    127.6     67.4   1.5911   0.0551   0.0346    7.0    2.3
+ 108..18      0.080    127.6     67.4   1.6533   0.0311   0.0188    4.0    1.3
+ 108..109     0.017    127.6     67.4   0.0001   0.0000   0.0163    0.0    1.1
+ 109..33      0.158    127.6     67.4   1.6828   0.0614   0.0365    7.8    2.5
+ 109..110     0.054    127.6     67.4 736.2809   0.0275   0.0000    3.5    0.0
+ 110..49      0.094    127.6     67.4   2.0913   0.0384   0.0184    4.9    1.2
+ 110..111     0.000    127.6     67.4   0.4327   0.0000   0.0000    0.0    0.0
+ 111..112     0.075    127.6     67.4 839.5575   0.0381   0.0000    4.9    0.0
+ 112..71      0.020    127.6     67.4   0.0001   0.0000   0.0194    0.0    1.3
+ 112..70      0.022    127.6     67.4 535.6837   0.0110   0.0000    1.4    0.0
+ 111..61      0.126    127.6     67.4   3.0407   0.0545   0.0179    7.0    1.2
+ 107..113     0.054    127.6     67.4 754.8444   0.0277   0.0000    3.5    0.0
+ 113..114     0.000    127.6     67.4   0.4593   0.0000   0.0000    0.0    0.0
+ 114..115     0.043    127.6     67.4 720.2270   0.0221   0.0000    2.8    0.0
+ 115..44      0.090    127.6     67.4 913.0786   0.0459   0.0001    5.9    0.0
+ 115..116     0.022    127.6     67.4 563.2359   0.0112   0.0000    1.4    0.0
+ 116..117     0.000    127.6     67.4   0.3772   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.6     67.4   0.3996   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.6     67.4   0.7592   0.0000   0.0000    0.0    0.0
+ 118..81      0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 117..119     0.119    127.6     67.4   0.1284   0.0118   0.0920    1.5    6.2
+ 119..120     0.000    127.6     67.4   0.4694   0.0000   0.0000    0.0    0.0
+ 120..88      0.099    127.6     67.4   0.1755   0.0125   0.0713    1.6    4.8
+ 120..89      0.000    127.6     67.4   0.7371   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.6     67.4   0.7411   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.6     67.4   0.3440   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.6     67.4   0.4090   0.0000   0.0000    0.0    0.0
+ 122..123     0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 123..90      0.000    127.6     67.4   0.8103   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.6     67.4   0.8072   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.6     67.4   0.7688   0.0000   0.0000    0.0    0.0
+ 121..69      0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 114..124     0.022    127.6     67.4 584.2037   0.0112   0.0000    1.4    0.0
+ 124..46      0.044    127.6     67.4 726.4823   0.0224   0.0000    2.9    0.0
+ 124..45      0.114    127.6     67.4 999.0000   0.0581   0.0001    7.4    0.0
+ 113..125     0.000    127.6     67.4   0.3920   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.6     67.4   0.4279   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    127.6     67.4 565.2714   0.0109   0.0000    1.4    0.0
+ 126..48      0.000    127.6     67.4   0.8758   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.6     67.4   0.8712   0.0000   0.0000    0.0    0.0
+ 106..127     0.192    127.6     67.4   2.2857   0.0793   0.0347   10.1    2.3
+ 127..128     0.057    127.6     67.4 758.5477   0.0289   0.0000    3.7    0.0
+ 128..21      0.062    127.6     67.4   0.2830   0.0110   0.0390    1.4    2.6
+ 128..20      0.043    127.6     67.4 656.3045   0.0220   0.0000    2.8    0.0
+ 127..129     0.020    127.6     67.4 527.3671   0.0100   0.0000    1.3    0.0
+ 129..19      0.076    127.6     67.4 883.6820   0.0388   0.0000    5.0    0.0
+ 129..130     0.116    127.6     67.4   1.1394   0.0402   0.0353    5.1    2.4
+ 130..34      0.020    127.6     67.4 531.5903   0.0103   0.0000    1.3    0.0
+ 130..35      0.058    127.6     67.4   0.2936   0.0105   0.0359    1.3    2.4
+ 105..5       0.101    127.6     67.4   0.0001   0.0000   0.0972    0.0    6.6
+ 102..131     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 131..132     0.026    127.6     67.4 414.9941   0.0131   0.0000    1.7    0.0
+ 132..8       0.388    127.6     67.4   0.4067   0.0859   0.2112   11.0   14.2
+ 132..133     0.000    127.6     67.4   0.1919   0.0000   0.0000    0.0    0.0
+ 133..134     0.286    127.6     67.4   0.0447   0.0114   0.2546    1.5   17.2
+ 134..135     0.000    127.6     67.4   0.4022   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.6     67.4   0.3751   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.6     67.4   0.3993   0.0000   0.0000    0.0    0.0
+ 137..54      0.020    127.6     67.4 303.2147   0.0102   0.0000    1.3    0.0
+ 137..138     0.139    127.6     67.4   0.4392   0.0322   0.0733    4.1    4.9
+ 138..65      0.201    127.6     67.4   0.0645   0.0112   0.1730    1.4   11.7
+ 138..64      0.042    127.6     67.4 322.6508   0.0212   0.0001    2.7    0.0
+ 136..139     0.000    127.6     67.4   0.4475   0.0000   0.0000    0.0    0.0
+ 139..55      0.056    127.6     67.4   0.3025   0.0104   0.0344    1.3    2.3
+ 139..56      0.038    127.6     67.4   0.5882   0.0102   0.0174    1.3    1.2
+ 135..140     0.000    127.6     67.4   0.4013   0.0000   0.0000    0.0    0.0
+ 140..38      0.136    127.6     67.4   0.2274   0.0209   0.0917    2.7    6.2
+ 140..141     0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 141..53      0.000    127.6     67.4   0.6864   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.6     67.4   0.4357   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.6     67.4   0.6796   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.6     67.4   0.5773   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.6     67.4   0.6904   0.0000   0.0000    0.0    0.0
+ 143..72      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 134..144     0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 144..145     0.040    127.6     67.4 176.5524   0.0205   0.0001    2.6    0.0
+ 145..36      0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 145..146     0.000    127.6     67.4   0.4138   0.0000   0.0000    0.0    0.0
+ 146..147     0.020    127.6     67.4 512.2765   0.0101   0.0000    1.3    0.0
+ 147..148     0.075    127.6     67.4   0.1958   0.0104   0.0529    1.3    3.6
+ 148..149     0.000    127.6     67.4   0.3982   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.6     67.4   0.4324   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.6     67.4   0.3875   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 152..95      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 152..94      0.000    127.6     67.4   0.7227   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.6     67.4   0.5439   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.6     67.4   0.4896   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.6     67.4   0.7199   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.6     67.4   0.7525   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.6     67.4   0.7382   0.0000   0.0000    0.0    0.0
+ 153..93      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 150..92      0.000    127.6     67.4   0.7319   0.0000   0.0000    0.0    0.0
+ 149..83      0.039    127.6     67.4   0.6233   0.0106   0.0170    1.4    1.1
+ 148..156     0.000    127.6     67.4   0.4306   0.0000   0.0000    0.0    0.0
+ 156..85      0.038    127.6     67.4   0.6173   0.0105   0.0171    1.3    1.2
+ 156..84      0.000    127.6     67.4   0.7215   0.0000   0.0000    0.0    0.0
+ 147..62      0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 146..50      0.076    127.6     67.4   0.1900   0.0102   0.0536    1.3    3.6
+ 144..157     0.015    127.6     67.4   0.0001   0.0000   0.0148    0.0    1.0
+ 157..37      0.129    127.6     67.4   0.0001   0.0000   0.1247    0.0    8.4
+ 157..158     0.120    127.6     67.4   0.6158   0.0329   0.0534    4.2    3.6
+ 158..51      0.000    127.6     67.4   0.7490   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.6     67.4   0.7737   0.0000   0.0000    0.0    0.0
+ 133..9       0.422    127.6     67.4   0.1550   0.0488   0.3147    6.2   21.2
+ 131..4       0.503    127.6     67.4   0.2905   0.0908   0.3127   11.6   21.1
+ 101..159     0.000    127.6     67.4   0.3253   0.0000   0.0000    0.0    0.0
+ 159..3       3.224    127.6     67.4   0.0355   0.1033   2.9128   13.2  196.4
+ 159..160     0.249    127.6     67.4 876.4966   0.1268   0.0001   16.2    0.0
+ 160..161     0.070    127.6     67.4   0.0001   0.0000   0.0676    0.0    4.6
+ 161..162     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 162..163     0.012    127.6     67.4   0.0001   0.0000   0.0115    0.0    0.8
+ 163..12      0.117    127.6     67.4   2.3772   0.0488   0.0205    6.2    1.4
+ 163..164     0.303    127.6     67.4 999.0000   0.1541   0.0002   19.7    0.0
+ 164..26      0.112    127.6     67.4   0.8464   0.0351   0.0414    4.5    2.8
+ 164..25      0.109    127.6     67.4   0.5392   0.0282   0.0522    3.6    3.5
+ 162..165     0.045    127.6     67.4   0.0001   0.0000   0.0437    0.0    2.9
+ 165..13      0.000    127.6     67.4   1.0585   0.0000   0.0000    0.0    0.0
+ 165..14      0.096    127.6     67.4 854.8049   0.0488   0.0001    6.2    0.0
+ 161..166     0.000    127.6     67.4   0.2865   0.0000   0.0000    0.0    0.0
+ 166..167     0.150    127.6     67.4   0.1874   0.0200   0.1066    2.5    7.2
+ 167..168     0.079    127.6     67.4   0.6956   0.0229   0.0329    2.9    2.2
+ 168..23      0.000    127.6     67.4   0.7992   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.6     67.4   0.3963   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.6     67.4   0.7971   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    127.6     67.4 565.8176   0.0113   0.0000    1.4    0.0
+ 167..170     0.090    127.6     67.4   1.8993   0.0357   0.0188    4.6    1.3
+ 170..171     0.052    127.6     67.4   1.0497   0.0178   0.0169    2.3    1.1
+ 171..172     0.000    127.6     67.4   0.4399   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 173..66      0.102    127.6     67.4   0.4192   0.0229   0.0547    2.9    3.7
+ 173..174     0.174    127.6     67.4   1.1249   0.0603   0.0536    7.7    3.6
+ 174..78      0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 174..77      0.018    127.6     67.4   0.0001   0.0000   0.0172    0.0    1.2
+ 172..175     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 175..176     0.000    127.6     67.4   0.3904   0.0000   0.0000    0.0    0.0
+ 176..76      0.124    127.6     67.4   0.3198   0.0238   0.0744    3.0    5.0
+ 176..75      0.138    127.6     67.4   3.5141   0.0613   0.0174    7.8    1.2
+ 175..177     0.016    127.6     67.4 351.4580   0.0083   0.0000    1.1    0.0
+ 177..74      0.085    127.6     67.4 636.5685   0.0433   0.0001    5.5    0.0
+ 177..178     0.000    127.6     67.4   0.3674   0.0000   0.0000    0.0    0.0
+ 178..87      0.085    127.6     67.4 534.6989   0.0432   0.0001    5.5    0.0
+ 178..86      0.034    127.6     67.4   0.4682   0.0081   0.0173    1.0    1.2
+ 171..179     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 179..59      0.000    127.6     67.4   0.7732   0.0000   0.0000    0.0    0.0
+ 179..58      0.176    127.6     67.4   1.1482   0.0614   0.0535    7.8    3.6
+ 179..57      0.000    127.6     67.4   0.7751   0.0000   0.0000    0.0    0.0
+ 170..22      0.126    127.6     67.4   1.2759   0.0456   0.0357    5.8    2.4
+ 166..180     0.061    127.6     67.4   0.3424   0.0122   0.0356    1.6    2.4
+ 180..11      0.016    127.6     67.4   0.0001   0.0000   0.0150    0.0    1.0
+ 180..181     0.000    127.6     67.4   0.4621   0.0000   0.0000    0.0    0.0
+ 181..182     0.013    127.6     67.4   0.0001   0.0000   0.0125    0.0    0.8
+ 182..41      0.077    127.6     67.4   0.0001   0.0000   0.0741    0.0    5.0
+ 182..42      0.067    127.6     67.4   0.2875   0.0120   0.0419    1.5    2.8
+ 181..24      0.058    127.6     67.4   0.0001   0.0000   0.0555    0.0    3.7
+ 160..183     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.6     67.4   0.3893   0.0000   0.0000    0.0    0.0
+ 184..10      0.466    127.6     67.4   0.2858   0.0834   0.2918   10.6   19.7
+ 184..185     0.371    127.6     67.4   0.1841   0.0489   0.2656    6.2   17.9
+ 185..17      0.000    127.6     67.4   0.9118   0.0000   0.0000    0.0    0.0
+ 185..16      0.047    127.6     67.4 727.2422   0.0237   0.0000    3.0    0.0
+ 183..186     0.167    127.6     67.4   0.6539   0.0472   0.0721    6.0    4.9
+ 186..187     0.194    127.6     67.4   0.3640   0.0403   0.1107    5.1    7.5
+ 187..15      0.099    127.6     67.4 890.6329   0.0502   0.0001    6.4    0.0
+ 187..188     0.067    127.6     67.4   1.3459   0.0243   0.0181    3.1    1.2
+ 188..27      0.047    127.6     67.4 710.7597   0.0238   0.0000    3.0    0.0
+ 188..189     0.000    127.6     67.4   0.4529   0.0000   0.0000    0.0    0.0
+ 189..190     0.063    127.6     67.4   0.0001   0.0000   0.0607    0.0    4.1
+ 190..60      0.064    127.6     67.4   1.3526   0.0233   0.0172    3.0    1.2
+ 190..191     0.022    127.6     67.4   0.0001   0.0000   0.0210    0.0    1.4
+ 191..68      0.019    127.6     67.4   0.0001   0.0000   0.0186    0.0    1.3
+ 191..67      0.000    127.6     67.4   0.6460   0.0000   0.0000    0.0    0.0
+ 189..43      0.109    127.6     67.4   0.9654   0.0360   0.0373    4.6    2.5
+ 186..192     0.000    127.6     67.4   0.4010   0.0000   0.0000    0.0    0.0
+ 192..193     0.327    127.6     67.4   0.3859   0.0703   0.1822    9.0   12.3
+ 193..31      0.000    127.6     67.4   0.8316   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.6     67.4   0.8306   0.0000   0.0000    0.0    0.0
+ 192..194     0.264    127.6     67.4   1.3584   0.0968   0.0713   12.4    4.8
+ 194..29      0.000    127.6     67.4   0.8232   0.0000   0.0000    0.0    0.0
+ 194..28      0.018    127.6     67.4   0.0001   0.0000   0.0175    0.0    1.2
+
+tree length for dN:      3.57496
+tree length for dS:     10.41452
+
+dS tree:
+((Loxodonta_africana: 1.709655, Procavia_capensis: 0.332739): 0.000000, ((((Cynocephalus_variegatus: 0.281643, Tupaia_belangeri: 0.224256): 0.000000, ((((Hylobates_lar: 0.018788, (Pongo_pygmaeus: 0.036514, (Gorilla_gorilla: 0.018353, ((Pan_paniscus: 0.019389, Pan_troglodytes: 0.000021): 0.000045, Homo_sapiens: 0.017926): 0.000000): 0.000037): 0.016333): 0.034635, (((Nasalis_larvatus: 0.000050, (((Trachypithecus_geei: 0.000002, Trachypithecus_pileatus: 0.016934): 0.000000, ((Trachypithecu [...]
+dN tree:
+((Loxodonta_africana: 0.073528, Procavia_capensis: 0.254685): 0.000000, ((((Cynocephalus_variegatus: 0.101877, Tupaia_belangeri: 0.098278): 0.000000, ((((Hylobates_lar: 0.031061, (Pongo_pygmaeus: 0.061445, (Gorilla_gorilla: 0.038381, ((Pan_paniscus: 0.000002, Pan_troglodytes: 0.011039): 0.038132, Homo_sapiens: 0.054506): 0.000000): 0.027535): 0.000002): 0.055107, (((Nasalis_larvatus: 0.045876, (((Trachypithecus_geei: 0.000001, Trachypithecus_pileatus: 0.000002): 0.000000, ((Trachypithecu [...]
+
+w ratios as labels for TreeView:
+((Loxodonta_africana#1 #0.0430 : 0.073528, Procavia_capensis#2 #0.7654 : 0.254685) #0.4600 : 0.000000, ((((Cynocephalus_variegatus#7 #0.3617 : 0.101877, Tupaia_belangeri#8 #0.4382 : 0.098278)#6 #0.5158 : 0.000000, ((((Hylobates_lar#13 #1.6533 : 0.031061, (Pongo_pygmaeus#15 #1.6828 : 0.061445, (Gorilla_gorilla#17 #2.0913 : 0.038381, ((Pan_paniscus#20 #0.0001 : 0.000002, Pan_troglodytes#21 #535.6837 : 0.011039)#19 #839.5575 : 0.038132, Homo_sapiens#22 #3.0407 : 0.054506)#18 #0.4327 : 0.000 [...]
+
+
+Time used: 37:35:07
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/lnf b/ete3/test/ete_evol_data/protamine/PRM1/slr/lnf
new file mode 100644
index 0000000..334b449
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -8.8210899796   0.000147587405       0.0096  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -19.8200178202   0.000000002468       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.0830102777   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.6666478270   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -60.1549452542   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -40.3858431022   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -38.8426661385   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -48.0566862880   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -23.3218022100   0.000000000074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -108.8109202449   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1   -14.9801109709   0.000000312047       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -48.6373947771   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -19.1445540297   0.000000004849       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.1525222309   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -29.7189469859   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1113425502   0.000815799005       0.0530  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -6.8282546204   0.001082746273       0.0704  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.1677375344   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -62.7565845864   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1   -97.2305915462   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -38.7442892539   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -70.4619912099   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -48.0642170277   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -65.2946761522   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.1296023810   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -71.1270692284   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -52.2165611001   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -41.2594714153   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.3086787727   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -71.9565070530   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -93.9973955704   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -100.4285448422   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -75.3692447719   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -95.3196946499   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -78.3719986461   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -72.3764583584   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -108.5310189228   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -45.1108970051   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -80.7500471833   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -81.4803280490   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -26.0349733719   0.000000000005       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -42.8345684375   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.3145235040   0.000244933576       0.0159  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -5.9833392188   0.002520396071       0.1638  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -17.5414983126   0.000000024089       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.4575053575   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.7435550702   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -33.3327603021   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -124.4011208760   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -210.1481506982   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -137.5444841908   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -27.2953532653   0.000000000001       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -70.2225178384   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -43.6572396581   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -41.1946204630   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -78.9386963498   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -8.4983047941   0.000203813582       0.0132  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7117030164   0.001216590486       0.0791  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/rst.fb b/ete3/test/ete_evol_data/protamine/PRM1/slr/rst.fb
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/rst.fb
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/rst1 b/ete3/test/ete_evol_data/protamine/PRM1/slr/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/rst1
@@ -0,0 +1 @@
+
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/rub b/ete3/test/ete_evol_data/protamine/PRM1/slr/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/slr.ctl b/ete3/test/ete_evol_data/protamine/PRM1/slr/slr.ctl
new file mode 100644
index 0000000..de37360
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/slr.ctl
@@ -0,0 +1,4 @@
+seqfile: algn
+treefile: tree.slr
+outfile: eutherians_prm1_slr.txt
+positive_only: 0
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/tmp.ctl b/ete3/test/ete_evol_data/protamine/PRM1/slr/tmp.ctl
new file mode 100644
index 0000000..d28f914
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/tmp.ctl
@@ -0,0 +1,27 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 8
+cleandata    = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+fix_alpha    = 1
+Small_Diff   = .5e-6
+method       = 0
+Malpha       = 0
+aaDist       = 0
+RateAncestor = 0
+outfile      = fb.out
+icode        = 0
+alpha        = 0.0
+seqtype      = 1
+omega        = 0.4
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 2
+treefile     = tree
+model        = 1
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/tree b/ete3/test/ete_evol_data/protamine/PRM1/slr/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/slr/tree.slr b/ete3/test/ete_evol_data/protamine/PRM1/slr/tree.slr
new file mode 100644
index 0000000..aac35f4
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/slr/tree.slr
@@ -0,0 +1,2 @@
+98 1
+((1,2),((((7,6),((((18,(33,(49,((71,70),61)))),(((44,(((80,81),((88,89),79)),(((90,91),82),69))),(46,45)),((47,48),32))),((21,20),(19,(34,35)))),5)),((8,(((((54,(65,64)),(55,56)),(38,(53,(63,(73,72))))),((36,(((((((95,94),(((98,97),96),93)),92),83),(85,84)),62),50)),(37,(51,52)))),9)),4)),(3,((((12,(26,25)),(13,14)),(((23,(40,39)),((((66,(78,77)),((76,75),(74,(87,86)))),(59,58,57)),22)),(11,((41,42),24)))),((10,(17,16)),((15,(27,((60,(68,67)),43))),((31,30),(29,28))))))));
diff --git a/ete3/test/ete_evol_data/protamine/PRM1/tree.nw b/ete3/test/ete_evol_data/protamine/PRM1/tree.nw
new file mode 100644
index 0000000..c99b4ff
--- /dev/null
+++ b/ete3/test/ete_evol_data/protamine/PRM1/tree.nw
@@ -0,0 +1 @@
+((((((((((((((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus),(Trachypithecus_geei,Trachypithecus_pileatus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus)),Nasalis_larvatus),(Colobus_guereza,Procolobus_badius)),(Papio_cynocephalus,(Macaca_fascicularis,Macaca_mulatta))),(((((Pan_troglodytes,Pan_paniscus),Homo_sapiens),Gorilla_gorilla),Pongo_pygmaeus),Hylobates_lar)),(((Ateles_sp,Alouatta_seniculus),Saimiri_sciu [...]
\ No newline at end of file
diff --git a/ete3/test/test_all.py b/ete3/test/test_all.py
new file mode 100644
index 0000000..466dd36
--- /dev/null
+++ b/ete3/test/test_all.py
@@ -0,0 +1,13 @@
+from __future__ import absolute_import
+
+import unittest
+
+from .test_api import *
+from .test_ete_evol import *
+from .test_ete_build import *
+
+def run():
+    unittest.main()
+
+if __name__ == '__main__':
+    run()
diff --git a/ete3/test/test_api.py b/ete3/test/test_api.py
new file mode 100644
index 0000000..80ec062
--- /dev/null
+++ b/ete3/test/test_api.py
@@ -0,0 +1,23 @@
+from __future__ import absolute_import
+
+import unittest
+from .datasets import *
+from .test_tree import *
+from .test_interop import *
+from .test_seqgroup import *
+from .test_phylotree import *
+from .test_ncbiquery import *
+
+from .test_arraytable import *
+from .test_clustertree import *
+
+from .test_evol import *
+#from .test_xml_parsers import *
+
+from .test_treeview.test_all_treeview import *
+
+def run():
+    unittest.main()
+
+if __name__ == '__main__':
+    run()
diff --git a/ete3/test/test_arraytable.py b/ete3/test/test_arraytable.py
new file mode 100644
index 0000000..aa270fd
--- /dev/null
+++ b/ete3/test/test_arraytable.py
@@ -0,0 +1,47 @@
+from __future__ import absolute_import
+import unittest
+
+from .. import ClusterTree, ArrayTable
+from .datasets import *
+
+class Test_Coretype_ArrayTable(unittest.TestCase):
+    """ Tests reading clustering or phylogenetic profile data"""
+    def test_arraytable_parser(self):
+        """ Tests reading numneric tables"""
+        A = ArrayTable(expression)
+        self.assertEqual(A.get_row_vector("A").tolist(), \
+                             [-1.23, -0.81, 1.79, 0.78,-0.42,-0.69, 0.58])
+        self.assertEqual(A.get_several_row_vectors(["A","C"]).tolist(), \
+                             [[-1.23, -0.81, 1.79, 0.78, -0.42, -0.69, 0.58],
+                         [-2.19, 0.13, 0.65, -0.51, 0.52, 1.04, 0.36]])
+
+        self.assertEqual(A.get_several_column_vectors(["col2", "col7"]).tolist(), \
+                             [[-0.81000000000000005, -0.93999999999999995,\
+                                0.13, -0.97999999999999998, -0.82999999999999996,\
+                                    -1.1100000000000001, -1.1699999999999999,\
+                                    -1.25],
+                              [0.57999999999999996, 1.1200000000000001, \
+                                   0.35999999999999999, 0.93000000000000005, \
+                                   0.65000000000000002, 0.47999999999999998, \
+                                   0.26000000000000001, 0.77000000000000002]])
+
+
+        self.assertEqual(A.get_column_vector("col4").tolist(), \
+                             [0.78000000000000003, 0.35999999999999999, \
+                                  -0.51000000000000001, -0.76000000000000001, \
+                                  0.070000000000000007, -0.14000000000000001, \
+                                  0.23000000000000001, -0.29999999999999999])
+
+        A.remove_column("col4")
+        self.assert_(A.get_column_vector("col4") is None )
+
+        Abis = A.merge_columns({"merged1": \
+                                    ["col1", "col2"],\
+                                    "merged2": \
+                                    ["col5", "col6"]}, \
+                                   "mean")
+
+        #self.assert_((Abis.get_column_vector("merged1")==numpy.array([-1.02, -1.35, -1.03, -1.1, -1.15, -1.075, -1.37, -1.39, ])).all()==True )
+
+        # Continue this......
+
diff --git a/ete3/test/test_circle_label.py b/ete3/test/test_circle_label.py
new file mode 100755
index 0000000..58b8170
--- /dev/null
+++ b/ete3/test/test_circle_label.py
@@ -0,0 +1,124 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import os
+import sys
+
+import math
+
+from .. import Tree, CircleFace, RectFace, TextFace, add_face_to_node, TreeStyle
+
+NEWLINE = '\n'
+TAB = '\t'
+UNDERBAR = '_'
+SPACE = ' '
+COMMA = ','
+
+_circle_tested = False
+
+def node_layout(annotation):
+  def _node_layout(node):
+    global _circle_tested
+    node.img_style["size"] = 0
+    
+    if node.is_leaf():
+        if node.name not in annotation:
+            print('Got unknown leaf "%s"' % (node.name))
+            return
+        size = annotation[node.name]
+    else:
+        children = COMMA.join(sorted([leaf.name for leaf in node]))
+        if children not in annotation:
+            print('Got unknown node ' + children)
+            return
+        size = annotation[children]
+    dimension = 4*math.sqrt(size)
+    labeld = {
+        'text' : "%d" % (size),
+        'color' : 'white',
+        'font' : 'Helvetica',
+        'size' : 8
+        }
+    if size % 2:
+        clabel = dict(labeld)
+        if size == 35:
+            if not _circle_tested:
+                _circle_tested = True
+                clabel['text'] = 'Ly'
+            clabel['size'] = 12
+            thisFace = CircleFace(dimension/2, "steelblue",  "circle", label=clabel)
+        elif size == 43:
+            clabel['size'] = 6
+            del clabel['color']
+            thisFace = CircleFace(dimension/2, "steelblue",  "sphere", label=clabel)
+        else:
+            thisFace = CircleFace(dimension/2, "steelblue",  "sphere", label="%d" % (size))
+    else:
+        thisFace = RectFace(dimension, dimension, 'green', 'blue', label=labeld)
+    thisFace.opacity = 0.7
+    add_face_to_node(thisFace, node, column=0, position="float")
+    textF = TextFace(str(size), fsize=12, fgcolor="steelblue")
+    add_face_to_node(textF, node, column=0, position="aligned")
+
+  return _node_layout
+
+TREE = '''
+(S032     	:0.68575,(S032 473 	:0.29028,(S032 476 	:0.19027,
+(S032 477 	:0.21930,(S032 478 	:0.15731,(S032 475 	:0.08076,
+S032 474 	:0.08914):0.04624):0.04277):0.01821):0.07911):0.02825,S032 202 	:0.31425);
+'''
+
+SETS = '''
+  43	S032_477
+  42	S032_202
+  35	S032_476
+  35	S032_474
+  33	S032_475
+  32	S032_478
+  29	S032_473
+  25	S032_474,S032_475
+  20	S032_476,S032_477
+  20	S032_475,S032_478
+  20	S032_475,S032_477
+  20	S032_474,S032_478
+  20	S032_474,S032_476
+  19	S032_474,S032_475,S032_478
+  19	S032_474,S032_475,S032_477
+  19	S032_475,S032_476
+  18	S032_474,S032_475,S032_476
+  18	S032_477,S032_478
+  17	S032_475,S032_477,S032_478
+  17	S032_476,S032_478
+  16	S032_474,S032_475,S032_477,S032_478
+  16	S032_474,S032_476,S032_478
+  15	S032_474,S032_475,S032_476,S032_478
+  15	S032_474,S032_475,S032_476,S032_477
+  15	S032_473,S032_477
+  14	S032_473,S032_476
+  13	S032_474,S032_475,S032_476,S032_477,S032_478
+  12	S032_202,S032_475
+  11	S032_473,S032_475,S032_476
+  11	S032_202,S032_474,S032_475
+  10	S032_473,S032_474,S032_475,S032_476,S032_478
+  10	S032_202,S032_474,S032_475,S032_477,S032_478
+   9	S032_473,S032_476,S032_477
+   8	S032_473,S032_474,S032_475,S032_476,S032_477,S032_478
+   8	S032_202,S032_473,S032_475,S032_476
+   7	S032_202,S032_473,S032_474,S032_475,S032_476,S032_477,S032_478
+'''
+
+treesets = SETS.strip().split(NEWLINE)
+thesets = dict()
+for s in treesets:
+    num, namelist = s.strip().split(TAB)
+    thesets[namelist.replace(UNDERBAR, SPACE)] = int(num)
+
+t = Tree(TREE)
+ts = TreeStyle()
+ts.layout_fn = node_layout(thesets)
+ts.show_leaf_name = True
+ts.show_branch_length = True
+
+t.show(tree_style=ts)
+#t.render('S032.png', tree_style=ts)
+    
+
diff --git a/ete3/test/test_clustertree.py b/ete3/test/test_clustertree.py
new file mode 100644
index 0000000..2db14b1
--- /dev/null
+++ b/ete3/test/test_clustertree.py
@@ -0,0 +1,29 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import unittest
+
+from .. import ClusterTree
+from .datasets import *
+
+class Test_ClusterTree(unittest.TestCase):
+    """ Tests specific methods for trees linked to ArrayTables"""
+    def test_clustertree(self):
+        """ Tests tree-ArrayTable association """
+
+        t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));", text_array=expression)
+        # Now we can ask the expression profile of a single gene
+        node = t.get_common_ancestor("C", "D", "E")
+        self.assertEqual((t&"A").profile.tolist(), \
+                             [-1.23, -0.81, 1.79, 0.78,-0.42,-0.69, 0.58])
+        print(node.profile)
+        print(node.deviation)
+        print(node.silhouette)
+        print(node.intracluster_dist)
+        print(node.intercluster_dist)
+
+
+        c1 = t.get_common_ancestor("A", "B")
+        c2 = t.get_common_ancestor("C", "D", "E")
+        c3 = t.get_common_ancestor("F", "G", "H")
+        print(t.get_dunn([c1, c2, c3]))
+
diff --git a/ete3/test/test_ete_build/NUP62.aa.fa b/ete3/test/test_ete_build/NUP62.aa.fa
new file mode 100644
index 0000000..09f6f96
--- /dev/null
+++ b/ete3/test/test_ete_build/NUP62.aa.fa
@@ -0,0 +1,51 @@
+>Phy004Z0OU_MELUD
+MSQFSFGTGGGFTLGTSGTAASTAATGFSFSSPAGSGGFGLGSAAPAAGSSSQSSGLFSF
+SRPAATAAQPGGFSFGTAGTSSAAPAASVFQLGANAPKLSFGSSSATPATGITGSFTFGS
+SAPTSAPSSQAAAPGFVFGSAGTSSTAQAGTTAGFTFSSGTTTQAGAGSLSMGAAVPQTA
+PTGLSFGAAPAAAATSAATLGAATQPAAPFSLGGQSTATATVSTSTSSGPALSFGAKLGV
+TSTSAATASTSTTSVLGSTGPTLFASVASSAAPASSTTTGLSLGAPSTGTASLGTLGFGL
+KAPGTTSAATTSTATGTTTASGFALNLKPLTTTGATGAVTSTAAITTTTSTSAPPVMTYA
+QLESLINKWSLELEDQEKHFLHQATQVNAWDQTLIENGEKITSLHREVEKVKLDQKRLDQ
+ELDFILSQQKELEDLLTPLEESVKEQSGTIYLQHADEEREKTYKLAENIDAQLKRMAQDL
+KDITEHLNTSRGPADTSDPLQQICKILNAHMDSLQWIDQNSAVLQRKVEEVTKVCESRRK
+EQERSFRITFD
+>Phy004Y35P_HALLE
+KTAATTATTGFSFSTPAASGGFSFGSAAQAPAGSQPAGLFSFSRPGAAAQPASFSFGTPA
+TATATPAANVFPLGANAPKLNFGGSTATQATGITGGFGFGSSAPTSVPSSQAAAPSGFVF
+GSAGTTATTTAATTAQSGTTGGFTFSSGTTTQAGTASFNVGTAAPQAAPTGLTFGTAPAA
+AATTAATLGAATQSTTPFSLGGQSSATLTASTSQGPALSFGTKLGVPSTAATTASTTTTS
+ILGSTGPTLFASIASSSAPTSSTTTGLSLGAPSTGTASLGTLGFGLKAPGTTAAATSTAT
+STTSASGFALNLKPLTTTGAIGAVTSTAAITTTTATSAPPVMTYAQLESLINKWSLELED
+QEKHFLHQATQVNAWDQTLIENGEKITSLHREVEKVKLDQKRLDQELDFILSQQKELEDL
+LTPLEESVKEQSGTIYLQHADEERERTYKLAENIDAQLKHMAQDLKDIIEHLNTSXXXXL
+IPMHTSDPLQQICKILNAHMDSLQWIDQNS
+>Phy00535AU_PYGAD
+AAQTPASSQPAGLFSFSTPGAAAQPASFSFGTPATAAAAPAANVFPLGANAPKLNFGGSA
+ATQATGITGGFGFGSSVPTSVPSSQAAAPSGFVFGCAGTTTTTTTTSAQSGTTGTFTFSS
+GTATQAGTPSFNIGAAAPQAAPTGLTFGTAPAAAATTAATLGAATQSTTPFCLGGQSAAT
+LTTSTSQGPTLSFGAKLGGRNTAPAAPPAAATTTTSILGSAGPTLFASIASSSAPTSATT
+TGLSLGAPSTGTASLGTLGFGLKVPGTTAAATSTATSTTSASGFALNLKPLTTTGAIGAG
+TSTAAITTATTASAPPVMTYAQLESLINKWSLELEDQEKHFLHQATQVNAWDRTLIENGE
+KITSLHREVEKVKLDQKRLDQELDFILSQQKELEDLLTPLEESVKEQSGTIYLQHADEER
+ERT
+>Phy004Y9VQ_LEPDC
+STPKINFGGSTAAPATGITGGFGFGSSVPTSAPSSQAAAPSGFVFGSAGTSTAAPSGTTG
+GFTFSSGTTTQAGTAGLNTSTAAPQAAPTGLTFGAAPTAAATSAATLGAATQSTAPFNLG
+GQFAATTSAPTATLTTSTSQAPALSFGAKLGVTSTAATTASTTTTSVLGSTGPTLFASVV
+SSAAPTSSATTGLSLGAPSTGTASLGTLGFGLKVPGTTAAATSTATSTTSASGFALNLKP
+LTTTGAIGAVTSTAAITTTTTTGAPPVMTYAQLESLINKWSLELEDQEKHFLHQATQVNA
+WDRMLIENGEKITSLHKEVEKVKLDQKRLDQELDFILSQQKELEDLLSPLEESVKEQSGT
+IYLQHADEERERT
+>Phy004XRVA_HALAL
+NAPKLNFGGSTATQATGITGGFGFGSSAPTSVPSSQAAAPSGFVFGSAGTTATTTAATTA
+QSGTTGGFTFSSGTTTQAGTASFNVGTAAPQAAPTGLTFGTAPAAAATTAATLGAATQST
+TPFSLGGQSSATLTASTSQGPALSFGTKLGVPSTAATTASTTTTSILGSTGPTLFASIAS
+SSAPTSSTTTGLSLGAPSTGTASLGTLGFGLKAPGTTAAATSTATSTTSASGFALNLKPL
+TTTGAIGAVTSTAAITTTTATSAPPVMTYAQLESLINKWSLELEDQEKHFLHQATQVNAW
+D
+>Phy004Z7RR_MERNU
+NAPKLNFGSSTATQGTGITGAFGFGSSAPTSVPSSQAAAPSGFVFGSAAASSSTTTAAPQ
+PGTTGGFTFSSGTTTQAGTAAFGIGAAAPQAAPAALPFGTATPGLNFGMLPSTAATSAPT
+ATLATSTSQGPTLSFGAKLGGTSTAATAASTTTTSALGSAGPALFASIVSSAAATSSTTT
+SLSLGAPSTGTASLGTVGFGLKVPGTTAAATSTATGTTSASGFALNLKPLTTTGAIGAVT
+STAAVTTTTPSVPPVMTYAQLESLINKWSLELEDQEKHFLHQATQVNAWDRTLIENGEK
diff --git a/ete3/test/test_ete_build/NUP62.nt.fa b/ete3/test/test_ete_build/NUP62.nt.fa
new file mode 100644
index 0000000..f0b7ae8
--- /dev/null
+++ b/ete3/test/test_ete_build/NUP62.nt.fa
@@ -0,0 +1,101 @@
+>Phy004Z0OU_MELUD
+ATGAGCCAGTTCAGCTTCGGGACGGGCGGCGGCTTCACTCTGGGCACGTCGGGCACCGCCGCCAGCACGGCCGCCACCGG
+CTTCTCCTTCTCGTCCCCCGCGGGCTCGGGGGGCTTCGGGCTGGGGAGCGCGGCGCCGGCGGCCGGCAGCAGCAGCCAGT
+CCTCCGGGCTGTTCTCCTTCAGCAGGCCCGCGGCCACTGCCGCGCAGCCCGGCGGCTTCAGCTTCGGGACGGCGGGCACG
+AGCAGCGCGGCTCCGGCAGCGAGCGTGTTCCAGCTGGGGGCAAATGCACCCAAATTAAGCTTTGGAAGCAGTTCTGCAAC
+TCCAGCCACGGGAATCACAGGGAGCTTTACGTTTGGTAGCTCGGCACCGACCAGCGCGCCCTCAAGTCAAGCAGCAGCTC
+CTGGCTTTGTGTTTGGATCCGCTGGCACAAGCAGCACCGCTCAGGCTGGGACAACTGCAGGGTTCACCTTTTCCAGCGGC
+ACCACGACTCAGGCCGGAGCAGGCAGCTTGAGCATGGGTGCTGCAGTGCCGCAGACAGCGCCCACGGGGCTGAGCTTTGG
+AGCAGCACCTGCGGCTGCTGCCACCTCTGCTGCCACCTTGGGAGCTGCAACGCAGCCTGCAGCCCCGTTCAGCCTTGGGG
+GGCAGAGCACAGCCACGGCAACAGTGAGCACAAGTACCAGCTCGGGACCTGCTCTGTCTTTTGGAGCCAAACTTGGAGTA
+ACGTCCACATCTGCTGCAACTGCCTCTACCAGCACAACCTCTGTTCTTGGCTCAACGGGGCCAACTTTGTTTGCATCTGT
+AGCGAGTTCTGCAGCCCCAGCATCATCTACCACCACAGGCCTGTCACTTGGTGCCCCTTCCACTGGGACAGCCAGTCTTG
+GGACGCTTGGGTTTGGGTTAAAAGCTCCTGGAACAACGAGTGCTGCCACAACAAGCACTGCCACTGGCACCACTACTGCT
+TCTGGCTTTGCTTTGAATCTTAAGCCATTAACTACAACTGGGGCCACTGGAGCTGTGACTTCTACAGCTGCCATCACCAC
+AACAACTAGCACCAGTGCACCTCCAGTGATGACCTATGCCCAGCTGGAGAGTTTGATAAACAAGTGGAGTCTGGAACTGG
+AAGACCAGGAGAAACACTTTCTCCATCAAGCTACACAAGTTAATGCCTGGGATCAGACGCTGATAGAGAATGGAGAGAAG
+ATTACTTCATTGCACAGAGAAGTAGAGAAAGTGAAGCTTGATCAGAAGAGACTGGATCAGGAGCTGGACTTCATCCTGTC
+GCAGCAGAAGGAGCTTGAAGACTTGTTGACCCCTCTGGAGGAGTCTGTGAAGGAGCAGAGCGGGACCATTTACTTGCAGC
+ATGCAGATGAAGAGCGGGAGAAGACCTATAAACTGGCTGAAAACATAGATGCTCAGTTGAAGCGCATGGCACAAGACCTG
+AAGGACATCACTGAGCACTTGAATACATCAAGAGGCCCAGCAGACACAAGTGACCCGCTTCAGCAGATCTGTAAGATCCT
+GAATGCCCACATGGATTCATTGCAGTGGATTGACCAGAACTCAGCTGTGTTGCAGAGGAAGGTAGAAGAGGTGACAAAGG
+TTTGCGAGAGCCGCCGCAAGGAGCAAGAGCGCAGTTTTCGGATCACGTTTGAT
+>Phy004Y35P_HALLE
+AAGACGGCCGCCACCACGGCCACGACCGGCTTCTCCTTCTCCACGCCCGCCGCCTCGGGGGGCTTCAGCTTCGGGAGCGC
+GGCCCAGGCGCCTGCCGGCAGCCAGCCCGCCGGGCTCTTCTCCTTCAGCAGGCCGGGCGCTGCCGCGCAGCCGGCCAGCT
+TCAGCTTCGGGACGCCGGCCACGGCCACCGCGACTCCGGCAGCAAACGTGTTCCCGCTGGGGGCAAATGCACCAAAGTTA
+AACTTTGGAGGCAGCACTGCAACTCAGGCTACTGGAATCACAGGGGGCTTTGGATTTGGTAGCTCTGCACCAACCAGCGT
+GCCCTCAAGTCAAGCAGCAGCCCCTTCTGGCTTTGTGTTTGGATCTGCTGGCACCACCGCCACCACCACCGCCGCCACCA
+CCGCTCAGTCTGGGACGACCGGAGGGTTTACTTTTTCCAGTGGTACCACAACTCAGGCTGGGACAGCCAGCTTCAACGTT
+GGCACCGCAGCTCCGCAAGCAGCGCCCACAGGGTTGACCTTTGGAACAGCACCTGCAGCTGCTGCCACCACTGCTGCCAC
+CTTAGGAGCTGCAACCCAGTCAACAACCCCCTTCAGCCTTGGGGGGCAGTCCTCAGCAACGCTGACCGCTAGTACCAGCC
+AGGGACCCGCTCTGTCCTTTGGAACCAAACTTGGAGTACCATCCACAGCTGCTACAACTGCCTCTACCACCACAACCTCC
+ATTCTTGGTTCAACGGGACCTACGTTGTTTGCGTCTATAGCGAGTTCTTCAGCACCGACGTCGTCTACCACCACGGGCCT
+CTCGCTTGGTGCCCCTTCCACTGGGACAGCCAGTCTTGGAACGCTTGGGTTTGGATTAAAAGCTCCTGGAACAACAGCTG
+CCGCAACAAGCACTGCCACTAGCACTACTTCTGCTTCTGGCTTTGCTTTGAATCTTAAGCCATTAACTACGACTGGTGCG
+ATTGGAGCTGTGACTTCTACAGCTGCCATAACCACAACCACCGCCACCAGTGCACCTCCAGTGATGACTTATGCCCAGCT
+GGAGAGTTTGATAAACAAGTGGAGTCTGGAACTGGAGGACCAAGAGAAACACTTTCTCCATCAAGCAACGCAAGTTAATG
+CCTGGGATCAGACGTTGATAGAGAATGGAGAGAAGATTACTTCATTACACAGAGAAGTAGAGAAAGTGAAGCTTGATCAG
+AAGAGACTGGATCAGGAGCTAGACTTCATTCTGTCACAGCAGAAAGAGCTTGAAGACTTGTTGACCCCTCTGGAGGAGTC
+TGTGAAGGAACAGAGCGGGACTATCTACTTGCAGCATGCAGACGAAGAACGGGAGAGGACCTATAAACTGGCTGAAAACA
+TAGATGCTCAGTTGAAGCACATGGCACAAGATCTGAAGGACATCATTGAGCACTTGAATACATCAGNNNNNNNNNNCTTG
+ATTCCCATGCACACGAGTGACCCGCTTCAGCAGATCTGTAAAATTTTGAATGCGCACATGGATTCGTTGCAGTGGATTGA
+CCAGAACTCA
+>Phy00535AU_PYGAD
+GCGGCCCAGACGCCTGCCAGCAGCCAGCCCGCCGGGCTCTTCTCCTTCAGCACGCCGGGCGCTGCCGCGCAGCCTGCCAG
+CTTCAGCTTCGGGACGCCGGCCACGGCCGCCGCGGCTCCGGCAGCAAACGTGTTCCCGCTGGGGGCAAATGCACCAAAAT
+TAAACTTTGGAGGCAGCGCTGCAACTCAAGCTACTGGAATCACAGGGGGCTTTGGATTTGGTAGCTCTGTACCGACCAGC
+GTGCCCTCAAGTCAAGCAGCAGCCCCTTCTGGCTTTGTGTTTGGATGTGCTGGCACCACCACCACCACCACCACCACCTC
+CGCTCAGTCTGGGACAACTGGAACGTTTACTTTCTCCAGTGGTACCGCAACTCAGGCCGGAACGCCCAGCTTCAACATTG
+GCGCTGCAGCTCCGCAGGCAGCGCCCACCGGGTTGACCTTTGGAACAGCACCTGCAGCTGCTGCCACCACTGCTGCCACC
+TTAGGGGCCGCAACCCAGTCGACAACCCCCTTCTGCCTTGGGGGGCAGTCTGCCGCAACGCTGACCACTAGTACCAGCCA
+GGGACCCACTCTGTCCTTTGGAGCCAAACTTGGAGGTAGGAACACCGCACCCGCCGCTCCCCCGGCTGCCGCTACCACCA
+CAACCTCCATTCTTGGTTCAGCGGGGCCTACGTTGTTTGCATCTATAGCGAGTTCTTCAGCACCGACGTCGGCTACCACC
+ACGGGCCTCTCACTTGGTGCCCCTTCCACTGGGACAGCAAGTCTTGGAACGCTTGGGTTTGGATTAAAAGTTCCTGGAAC
+AACAGCGGCTGCAACAAGCACTGCCACTAGCACTACTTCTGCTTCTGGCTTTGCTTTGAATCTTAAGCCATTAACTACGA
+CTGGTGCCATTGGAGCTGGGACTTCTACAGCTGCCATAACCACAGCAACCACAGCCAGTGCACCTCCAGTGATGACGTAT
+GCCCAGCTGGAGAGTTTGATAAACAAGTGGAGTCTGGAACTGGAAGACCAAGAGAAACACTTTCTCCATCAAGCTACGCA
+AGTTAATGCCTGGGATCGGACGCTGATAGAGAATGGAGAGAAGATTACTTCATTACACAGAGAAGTAGAGAAAGTGAAGC
+TTGATCAGAAGAGACTGGATCAGGAGCTGGACTTCATTCTGTCACAGCAGAAAGAGCTTGAAGACTTGTTGACCCCTCTG
+GAGGAGTCTGTGAAGGAGCAGAGCGGAACTATCTACTTGCAGCATGCAGATGAAGAACGGGAGAGGACG
+>Phy004Y9VQ_LEPDC
+AGCACACCAAAAATAAACTTTGGAGGCAGTACTGCCGCTCCAGCTACTGGAATCACAGGGGGCTTTGGCTTTGGTAGCTC
+GGTACCCACCAGTGCGCCCTCGAGCCAAGCAGCGGCCCCTTCTGGCTTTGTGTTTGGATCTGCTGGCACCTCCACCGCTG
+CCCCGTCTGGGACAACCGGAGGGTTTACTTTTTCCAGTGGTACCACAACTCAGGCCGGAACAGCCGGCCTCAATACCAGC
+ACTGCAGCTCCGCAAGCAGCGCCCACAGGGTTGACCTTTGGAGCGGCACCTACGGCTGCTGCCACCAGTGCTGCCACCTT
+GGGAGCTGCAACCCAGTCCACAGCCCCCTTCAACCTGGGGGGGCAGTTCGCAGCCACCACTAGTGCACCCACGGCAACGC
+TGACCACTAGTACCAGCCAGGCACCCGCTCTGTCCTTTGGAGCCAAACTTGGAGTAACATCCACAGCTGCTACAACTGCC
+TCTACCACCACAACCTCCGTCCTCGGTTCAACGGGGCCTACGCTGTTTGCGTCCGTAGTGAGTTCTGCAGCCCCGACGTC
+GTCGGCCACCACGGGCCTCTCGCTTGGTGCCCCTTCCACTGGGACAGCCAGTCTTGGAACGCTTGGGTTTGGATTAAAAG
+TTCCTGGGACCACAGCTGCTGCAACAAGCACTGCCACGAGCACTACTTCTGCTTCTGGCTTTGCTTTGAATCTTAAGCCG
+TTAACTACGACTGGTGCCATTGGAGCTGTGACTTCTACAGCTGCCATAACCACCACCACCACAACGGGTGCGCCTCCAGT
+GATGACTTATGCCCAGCTAGAGAGTCTGATAAACAAGTGGAGTCTGGAACTGGAAGACCAAGAGAAACACTTTCTCCATC
+AAGCTACCCAAGTTAATGCCTGGGATCGGATGCTGATAGAGAATGGAGAGAAGATTACTTCATTACACAAAGAAGTAGAG
+AAAGTGAAGCTTGATCAGAAGAGACTGGACCAGGAGCTAGACTTCATTCTGTCACAGCAGAAAGAGCTTGAAGACTTGTT
+GTCCCCCCTGGAGGAGTCTGTGAAGGAACAGAGCGGGACTATCTACTTGCAGCATGCAGATGAAGAACGGGAGAGGACG
+>Phy004XRVA_HALAL
+AATGCACCAAAGTTAAACTTTGGAGGCAGCACTGCAACTCAGGCTACTGGAATCACAGGGGGCTTTGGATTTGGTAGCTC
+TGCACCAACCAGCGTGCCCTCAAGTCAAGCAGCAGCCCCTTCTGGCTTTGTGTTTGGATCTGCTGGCACCACCGCCACCA
+CCACCGCCGCCACCACCGCTCAGTCTGGGACGACCGGAGGGTTTACTTTTTCCAGTGGTACCACAACTCAGGCTGGGACA
+GCCAGCTTCAACGTTGGCACCGCAGCTCCGCAAGCAGCGCCCACAGGGTTGACCTTTGGAACAGCACCTGCAGCTGCTGC
+CACCACTGCTGCCACCTTAGGAGCTGCAACCCAGTCAACAACCCCCTTCAGCCTTGGGGGGCAGTCCTCAGCAACGCTGA
+CCGCTAGTACCAGCCAGGGACCCGCTCTGTCCTTTGGAACCAAACTTGGAGTACCATCCACAGCTGCTACAACTGCCTCT
+ACCACCACAACCTCCATTCTTGGTTCAACGGGACCTACGTTGTTTGCGTCTATAGCGAGTTCTTCAGCACCGACGTCGTC
+TACCACCACGGGCCTCTCGCTTGGTGCCCCTTCCACTGGGACAGCCAGTCTTGGAACGCTTGGGTTTGGATTAAAAGCTC
+CTGGAACAACAGCTGCCGCAACAAGCACTGCCACTAGCACTACTTCTGCTTCTGGCTTTGCTTTGAATCTTAAGCCATTA
+ACTACGACTGGTGCGATTGGAGCTGTGACTTCTACAGCTGCCATAACCACAACCACCGCCACCAGTGCACCTCCAGTGAT
+GACTTATGCCCAGCTGGAGAGTTTGATAAACAAGTGGAGTCTGGAACTGGAGGACCAAGAGAAACACTTTCTCCATCAAG
+CAACGCAAGTTAATGCCTGGGAT
+>Phy004Z7RR_MERNU
+AATGCACCAAAATTGAACTTTGGAAGCAGTACTGCAACTCAAGGCACTGGCATCACAGGGGCGTTTGGATTCGGTAGCTC
+TGCACCAACCAGCGTGCCCTCGAGTCAAGCAGCAGCCCCTTCTGGCTTTGTGTTTGGATCTGCTGCGGCCAGCAGCAGCA
+CCACCACCGCTGCCCCTCAGCCTGGGACAACGGGAGGGTTCACGTTTTCCAGCGGAACCACAACTCAGGCCGGCACAGCC
+GCCTTCGGCATCGGCGCCGCAGCTCCACAGGCAGCCCCCGCGGCCTTGCCTTTTGGAACAGCAACCCCGGGTCTCAACTT
+TGGGATGTTGCCTTCAACAGCAGCCACTAGTGCACCCACGGCAACGCTGGCCACTAGTACCAGCCAGGGACCCACCCTGT
+CGTTTGGAGCCAAGCTTGGAGGAACGTCCACCGCTGCTACAGCTGCCTCCACCACCACAACCTCTGCTCTTGGCTCAGCG
+GGGCCGGCGCTGTTTGCGTCGATAGTGAGTTCTGCAGCAGCGACGTCATCTACCACCACGAGCCTCTCACTTGGTGCCCC
+TTCCACTGGGACAGCCAGTCTTGGAACAGTTGGGTTTGGACTAAAAGTTCCTGGAACAACAGCTGCGGCCACAAGCACTG
+CCACCGGCACCACTTCAGCTTCTGGGTTTGCTTTGAATCTTAAGCCACTAACTACCACGGGTGCCATTGGAGCTGTGACT
+TCTACAGCTGCTGTAACTACAACCACCCCCAGCGTGCCCCCAGTGATGACTTATGCCCAGCTGGAGAGTTTGATAAACAA
+GTGGAGTCTGGAACTGGAAGACCAAGAGAAACACTTTCTCCATCAGGCTACTCAAGTTAATGCGTGGGATCGGACGCTGA
+TCGAGAATGGAGAGAAG
diff --git a/ete3/test/test_ete_build/P53.alg.fa b/ete3/test/test_ete_build/P53.alg.fa
new file mode 100644
index 0000000..8b2097b
--- /dev/null
+++ b/ete3/test/test_ete_build/P53.alg.fa
@@ -0,0 +1,16 @@
+>61853.ENSNLEP00000011861
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPE--DIAQWFTEDPGPHEAPRMSEAAPPMAPASAAPTLAAPAPSPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSMTSTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAILKQSQHMTEVVRRCPHLERCLYNDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENFHKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>30611.ENSOGAP00000015106
+MEETQSDLTIEPPLSQETFSDLWKLLPENNVLSSSLSPPVDDLMLSP---DIVNWF--DEGPDEALRTLEDPAPVASTTAALTPAASAPVTGWPLSSCVPSQTTYPGSYGFRLGFLNSGTAKSVTCTYSPVLNKMFCQLAKTCPVQLWFDSTPPPGSRIRAMAIYKQSQHMTEVVRRCPHHERCSESDGLAPPQHLIRVEGNLRVEYLDDKNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSRLGSGNLLGRNSFEVRVCACPGRDRRTEEENSRKKGETCSEPSLGSTKRSLPTSTSSSPQPKKKLLEGEYFTLKIRGRERYEMFRELNEALEIKDAQAEKESDGNRAHSSQPKSKKEQSTSRHKKLMFKREGPDSD
+>30608.ENSMICP00000013539
+MEEPQSDLSIEAPLSQETFSDLWKLLPENNVLSSSLSPPVDDLMLSAE--DFAGWFTE--GPDEAARMSENPEPAAPVPATPTPVAST--PTWPLSSSVPSQKTYPGNYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGSRIRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPSQHLIRVERNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPIVTIITLEDS---NGIVLGRNSFEVRVCACPGRDRRTEEENFRKKGEPC----SGSAKRALPTNTSSSPPPKKKPLDGEYFTLQIRGRERFEMFRMLNEALEFKDAQTGKEPGESRAHSSHLKSKKGQSTSRHKKLMFKREGPDSD
+>9601.ENSPPYP00000008923
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAVDDLLLSPD--DIAQWFIEDPGPDEAPRMSEAASPVGPAPAAPIPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>9593.ENSGGOP00000009561
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPD--DIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPTLNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>9544.ENSMMUP00000035274
+MEEPQSDPSIEPPLSQETFSDLWKLLPENNVLSPLPSQAVDDLMLSPD--DLAQWLTEDPGPDEAPRMSEAAPPMAPTPAAPTPAAPAPAPSWPLSSSVPSQKTYHGSYGFRLGFLHSGTAKSVTCTYSPDLNKMFCQLAKTCPVQLWVDSTPPPGSRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYSDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPCHQLPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPAGSRAHSSHLKSKKGQSTSRHKKFMFKTEGPDSD
+>9483.ENSCJAP00000027663
+MEEPQSDLSIEPPLSQETFSDLWKLLPENNILSSSLSQPVDDLMLSPDDIDIAQWLSQDPVPDEAPTVSEAPPAMAQAPAAPTLVAPTPAPSWPLSSSVPSQKTYHGDYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPRGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLHVEYLDDKNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPCLDLPPGSTKRAMPNSTSSSPQPKKKPLDGEYFTLQIHGRERFEMFRELNEALELKDAQAGKEPGGSRAHSNHLKSKKGQCTSRHKKLMVKREGPDSD
+>9606.ENSP00000269305
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPD--DIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDS---SGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
diff --git a/ete3/test/test_ete_build/P53.fa b/ete3/test/test_ete_build/P53.fa
new file mode 100644
index 0000000..159e43e
--- /dev/null
+++ b/ete3/test/test_ete_build/P53.fa
@@ -0,0 +1,16 @@
+>30608.ENSMICP00000013539
+MEEPQSDLSIEAPLSQETFSDLWKLLPENNVLSSSLSPPVDDLMLSAEDFAGWFTEGPDEAARMSENPEPAAPVPATPTPVASTPTWPLSSSVPSQKTYPGNYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGSRIRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPSQHLIRVERNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPIVTIITLEDSNGIVLGRNSFEVRVCACPGRDRRTEEENFRKKGEPCSGSAKRALPTNTSSSPPPKKKPLDGEYFTLQIRGRERFEMFRMLNEALEFKDAQTGKEPGESRAHSSHLKSKKGQSTSRHKKLMFKREGPDSD
+>30611.ENSOGAP00000015106
+MEETQSDLTIEPPLSQETFSDLWKLLPENNVLSSSLSPPVDDLMLSPDIVNWFDEGPDEALRTLEDPAPVASTTAALTPAASAPVTGWPLSSCVPSQTTYPGSYGFRLGFLNSGTAKSVTCTYSPVLNKMFCQLAKTCPVQLWFDSTPPPGSRIRAMAIYKQSQHMTEVVRRCPHHERCSESDGLAPPQHLIRVEGNLRVEYLDDKNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSRLGSGNLLGRNSFEVRVCACPGRDRRTEEENSRKKGETCSEPSLGSTKRSLPTSTSSSPQPKKKLLEGEYFTLKIRGRERYEMFRELNEALEIKDAQAEKESDGNRAHSSQPKSKKEQSTSRHKKLMFKREGPDSD
+>61853.ENSNLEP00000011861
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPEDIAQWFTEDPGPHEAPRMSEAAPPMAPASAAPTLAAPAPSPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSMTSTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAILKQSQHMTEVVRRCPHLERCLYNDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENFHKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>9483.ENSCJAP00000027663
+MEEPQSDLSIEPPLSQETFSDLWKLLPENNILSSSLSQPVDDLMLSPDDIDIAQWLSQDPVPDEAPTVSEAPPAMAQAPAAPTLVAPTPAPSWPLSSSVPSQKTYHGDYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPRGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLHVEYLDDKNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPCLDLPPGSTKRAMPNSTSSSPQPKKKPLDGEYFTLQIHGRERFEMFRELNEALELKDAQAGKEPGGSRAHSNHLKSKKGQCTSRHKKLMVKREGPDSD
+>9544.ENSMMUP00000035274
+MEEPQSDPSIEPPLSQETFSDLWKLLPENNVLSPLPSQAVDDLMLSPDDLAQWLTEDPGPDEAPRMSEAAPPMAPTPAAPTPAAPAPAPSWPLSSSVPSQKTYHGSYGFRLGFLHSGTAKSVTCTYSPDLNKMFCQLAKTCPVQLWVDSTPPPGSRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYSDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPCHQLPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPAGSRAHSSHLKSKKGQSTSRHKKFMFKTEGPDSD
+>9593.ENSGGOP00000009561
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPTLNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>9601.ENSPPYP00000008923
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAVDDLLLSPDDIAQWFIEDPGPDEAPRMSEAASPVGPAPAAPIPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENFRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
+>9606.ENSP00000269305
+MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD
diff --git a/ete3/test/test_ete_build/__init__.py b/ete3/test/test_ete_build/__init__.py
new file mode 100644
index 0000000..c927368
--- /dev/null
+++ b/ete3/test/test_ete_build/__init__.py
@@ -0,0 +1,2 @@
+from __future__ import absolute_import
+from .__main__ import *
diff --git a/ete3/test/test_ete_build/__main__.py b/ete3/test/test_ete_build/__main__.py
new file mode 100644
index 0000000..c8b6e83
--- /dev/null
+++ b/ete3/test/test_ete_build/__main__.py
@@ -0,0 +1,13 @@
+from __future__ import absolute_import
+
+import unittest
+from .test_genetree import *
+from .test_sptree import *
+from .test_manual_alg import *
+from .test_modeltest import *
+
+def run():
+    unittest.main()
+
+if __name__ == '__main__':
+    run()
diff --git a/ete3/test/test_ete_build/cog_seqs.fa b/ete3/test/test_ete_build/cog_seqs.fa
new file mode 100644
index 0000000..5c80acd
--- /dev/null
+++ b/ete3/test/test_ete_build/cog_seqs.fa
@@ -0,0 +1,29 @@
+>sp1_seqA
+AAAAAAAAABBBBBBBBB
+>sp2_seqA
+AAAAAAAAABBBBBBBBB
+>sp3_seqA
+AAAAAAAAACCCCDDDDD
+>sp4_seqA
+AAAAAAAAACCCCCDDDD
+>sp5_seqA
+AAAAAAAAAPPPPPPPPP
+>sp1_seqB
+EEEEEEEEFFFFFFFFFFFF
+>sp2_seqB
+EEEEEEEEFFFFFFFFFFFF
+>sp3_seqB
+EEEEEEEEGGGGGGGGGGGG
+>sp4_seqB
+EEEEEEEEGGGGGGGGGGHH
+>sp5_seqB
+EEEEEEEEPPPPPPPPPPPP
+>sp1_seqC
+IIIIIIIIIIKKKKKKKKKK
+>sp2_seqC
+IIIIIIIIIIKKKKKKKK
+>sp3_seqC
+IIIIIIIIIILLLLLLLLLLLL
+>sp4_seqC
+IIIIIIIIIILLLLLLLLLMMMM
+
diff --git a/ete3/test/test_ete_build/cog_seqs.nt.fa b/ete3/test/test_ete_build/cog_seqs.nt.fa
new file mode 100644
index 0000000..108e35c
--- /dev/null
+++ b/ete3/test/test_ete_build/cog_seqs.nt.fa
@@ -0,0 +1,28 @@
+>sp1_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCGACGACGACGACGACGACGACGACGAC
+>sp2_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCGACGACGACGACGACGACGACGACGAC
+>sp3_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCTGCTGCTGCTGCGACGACGACGACGAC
+>sp4_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCTGCTGCTGCTGCTGCGACGACGACGAC
+>sp5_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+>sp1_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTC
+>sp2_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTC
+>sp3_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGC
+>sp4_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCCACCAC
+>sp5_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+>sp1_seqC
+ATCATCATCATCATCATCATCATCATCATCAAGAAGAAGAAGAAGAAGAAGAAGAAGAAG
+>sp2_seqC
+ATCATCATCATCATCATCATCATCATCATCAAGAAGAAGAAGAAGAAGAAGAAGAAGATC
+>sp3_seqC
+ATCATCATCATCATCATCATCATCATCATCCTGCTGCTGCTGCTGCTGCTGCTGCTGCTG
+>sp4_seqC
+ATCATCATCATCATCATCATCATCATCATCCTGCTGCTGCTGCTGCTGCTGCTGCTGAGC
diff --git a/ete3/test/test_ete_build/fake_alg1.fa b/ete3/test/test_ete_build/fake_alg1.fa
new file mode 100644
index 0000000..9af2ee8
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg1.fa
@@ -0,0 +1,10 @@
+>sp1_seqA
+AAAAAAAAABBBBBBBBB
+>sp2_seqA
+AAAAAAAAABBBBBBBBB
+>sp3_seqA
+AAAAAAAAACCCCDDDDD
+>sp4_seqA
+AAAAAAAAACCCCCDDDD
+>sp5_seqA
+AAAAAAAAAPPPPPPPPP
diff --git a/ete3/test/test_ete_build/fake_alg1.nt.fa b/ete3/test/test_ete_build/fake_alg1.nt.fa
new file mode 100644
index 0000000..a6f0ac4
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg1.nt.fa
@@ -0,0 +1,10 @@
+>sp1_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCGACGACGACGACGACGACGACGACGAC
+>sp2_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCGACGACGACGACGACGACGACGACGAC
+>sp3_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCTGCTGCTGCTGCGACGACGACGACGAC
+>sp4_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCTGCTGCTGCTGCTGCGACGACGACGAC
+>sp5_seqA
+GCCGCCGCCGCCGCCGCCGCCGCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
diff --git a/ete3/test/test_ete_build/fake_alg2.fa b/ete3/test/test_ete_build/fake_alg2.fa
new file mode 100644
index 0000000..7c6ade8
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg2.fa
@@ -0,0 +1,10 @@
+>sp1_seqB
+EEEEEEEEFFFFFFFFFFFF
+>sp2_seqB
+EEEEEEEEFFFFFFFFFFFF
+>sp3_seqB
+EEEEEEEEGGGGGGGGGGGG
+>sp4_seqB
+EEEEEEEEGGGGGGGGGGHH
+>sp5_seqB
+EEEEEEEEPPPPPPPPPPPP
diff --git a/ete3/test/test_ete_build/fake_alg2.nt.fa b/ete3/test/test_ete_build/fake_alg2.nt.fa
new file mode 100644
index 0000000..35bd672
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg2.nt.fa
@@ -0,0 +1,10 @@
+>sp1_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTC
+>sp2_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTCTTC
+>sp3_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGC
+>sp4_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCCACCAC
+>sp5_seqB
+GAGGAGGAGGAGGAGGAGGAGGAGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
diff --git a/ete3/test/test_ete_build/fake_alg3.fa b/ete3/test/test_ete_build/fake_alg3.fa
new file mode 100644
index 0000000..0761c6a
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg3.fa
@@ -0,0 +1,9 @@
+>sp1_seqC
+IIIIIIIIIIKKKKKKKKKK
+>sp2_seqC
+IIIIIIIIIIKKKKKKKKKI
+>sp3_seqC
+IIIIIIIIIILLLLLLLLLL
+>sp4_seqC
+IIIIIIIIIILLLLLLLLLS
+
diff --git a/ete3/test/test_ete_build/fake_alg3.nt.fa b/ete3/test/test_ete_build/fake_alg3.nt.fa
new file mode 100644
index 0000000..5b6c832
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_alg3.nt.fa
@@ -0,0 +1,8 @@
+>sp1_seqC
+ATCATCATCATCATCATCATCATCATCATCAAGAAGAAGAAGAAGAAGAAGAAGAAGAAG
+>sp2_seqC
+ATCATCATCATCATCATCATCATCATCATCAAGAAGAAGAAGAAGAAGAAGAAGAAGATC
+>sp3_seqC
+ATCATCATCATCATCATCATCATCATCATCCTGCTGCTGCTGCTGCTGCTGCTGCTGCTG
+>sp4_seqC
+ATCATCATCATCATCATCATCATCATCATCCTGCTGCTGCTGCTGCTGCTGCTGCTGAGC
diff --git a/ete3/test/test_ete_build/fake_cogs.tsv b/ete3/test/test_ete_build/fake_cogs.tsv
new file mode 100644
index 0000000..f66a00e
--- /dev/null
+++ b/ete3/test/test_ete_build/fake_cogs.tsv
@@ -0,0 +1,4 @@
+sp1_seqA	sp2_seqA	sp3_seqA	sp4_seqA	sp5_seqA
+sp1_seqB	sp2_seqB	sp3_seqB	sp4_seqB	sp5_seqB
+sp1_seqC	sp2_seqC	sp3_seqC	sp4_seqC
+
diff --git a/ete3/test/test_ete_build/test_genetree.py b/ete3/test/test_ete_build/test_genetree.py
new file mode 100644
index 0000000..5309877
--- /dev/null
+++ b/ete3/test/test_ete_build/test_genetree.py
@@ -0,0 +1,36 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import multiprocessing
+CPUS = min(20, max(1, multiprocessing.cpu_count()-1))
+import unittest
+
+from ...tools import ete
+from ... import Tree, SeqGroup
+
+DIR = os.path.split(os.path.abspath(__file__))[0]
+
+def get_out_files(outdir, workflow, fasta):
+    clean_tree = "%s/%s/%s.final_tree.nw" %(outdir, workflow, fasta)
+    extended_tree = "%s/%s/%s.final_tree.nwx" %(outdir, workflow, fasta)
+    alg_used = "%s/%s/%s.final_tree.used_alg.fa" %(outdir, workflow, fasta)
+    alg = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    alg_trimmed = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    img = "%s/%s/%s.final_tree.png" %(outdir, workflow, fasta)
+    cmd = "%s/%s/commands.log" %(outdir, workflow)
+    return clean_tree, extended_tree, alg_used, alg, alg_trimmed, img, cmd    
+    
+class Test_ete_build_genetree(unittest.TestCase):
+    def test_01_aa_genetree_worflow(self):        
+        aligners = "muscle_default", "clustalo_default", "mafft_default"
+        trimmers = "none", "trimal01"
+        testers = "none", "pmodeltest_full_fast"
+        builders = "phyml_default", "raxml_default", "fasttree_default"
+        for _aligner in aligners:
+            for _trimmer in trimmers:
+                for _tester in testers:
+                    for _builder in builders:
+                        pass
+if __name__ == "__main__":
+    unittest.main()
diff --git a/ete3/test/test_ete_build/test_manual_alg.py b/ete3/test/test_ete_build/test_manual_alg.py
new file mode 100644
index 0000000..d11f491
--- /dev/null
+++ b/ete3/test/test_ete_build/test_manual_alg.py
@@ -0,0 +1,68 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import multiprocessing
+CPUS = min(20, max(1, multiprocessing.cpu_count()-1))
+import unittest
+
+from ...tools import ete
+from ... import Tree, SeqGroup
+
+DIR = os.path.split(os.path.abspath(__file__))[0]
+
+def get_out_files(outdir, workflow, fasta):
+    clean_tree = "%s/%s/%s.final_tree.nw" %(outdir, workflow, fasta)
+    extended_tree = "%s/%s/%s.final_tree.nwx" %(outdir, workflow, fasta)
+    alg_used = "%s/%s/%s.final_tree.used_alg.fa" %(outdir, workflow, fasta)
+    alg = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    alg_trimmed = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    img = "%s/%s/%s.final_tree.png" %(outdir, workflow, fasta)
+    cmd = "%s/%s/commands.log" %(outdir, workflow)
+    return clean_tree, extended_tree, alg_used, alg, alg_trimmed, img, cmd    
+    
+
+class Test_ete_build_manual_algs(unittest.TestCase):
+    def test_01_manual_alg(self):        
+        aligners = "none",
+        trimmers = "none",
+        testers = "none",
+        builders = "phyml_default", "raxml_default", "fasttree_default"
+        orig_alg = SeqGroup("%s/P53.alg.fa" %DIR)
+        for _aligner in aligners:
+            for _trimmer in trimmers:
+                for _tester in testers:
+                    for _builder in builders:
+                        wkname = "%s-%s-%s-%s" %(_aligner, _trimmer, _tester, _builder)
+                        expected_nw = '(30611.ENSOGAP00000015106:0.0794915,(30608.ENSMICP00000013539:0.0917718,(9483.ENSCJAP00000027663:0.081188,(9544.ENSMMUP00000035274:0.0293646,(9601.ENSPPYP00000008923:0.017464,(61853.ENSNLEP00000011861:0.0460495,(9593.ENSGGOP00000009561:0.00324716,9606.ENSP00000269305:2.4e-07)0.99985:0.0108707)0.725327:0.0031931)0.99985:0.0125782)0.99985:0.0309675)0.99985:0.0348935)1:0.0794915);'
+                        expected_tree = Tree(expected_nw)        
+                        cmd = 'ete3 build -a %s/P53.alg.fa -w %s -o ete_test_tmp/etebuild_test2  -t0.3 --launch 0.5 --clearall --cpu %d' %(DIR, wkname, CPUS)
+                        args = cmd.split()
+                        ete._main(args)                        
+                        ctree, xtree, alg_used, alg, alg_trimmed, img, cmd = get_out_files("ete_test_tmp/etebuild_test2", wkname, "P53.alg.fa")
+                        t1 = Tree(ctree)
+                        t2 = Tree(xtree)
+                        a1 = SeqGroup(alg_used)
+                        a2 = SeqGroup(alg)
+                        self.assertEqual(t1.robinson_foulds(expected_tree)[:2], [0, 12])
+                        self.assertEqual(t2.robinson_foulds(expected_tree)[:2], [0, 12])
+                        if _trimmer:
+                            SeqGroup(alg_trimmed)
+                        for name, seq, _ in a1:
+                            self.assertEqual(orig_alg.get_seq(name), seq)
+                        for name, seq, _ in a2:
+                            self.assertEqual(orig_alg.get_seq(name), seq)
+
+    def test_01_manual_alg_error(self):        
+        wkname = "none-none-none-fasttree_default" 
+        expected_nw = '(30611.ENSOGAP00000015106:0.0794915,(30608.ENSMICP00000013539:0.0917718,(9483.ENSCJAP00000027663:0.081188,(9544.ENSMMUP00000035274:0.0293646,(9601.ENSPPYP00000008923:0.017464,(61853.ENSNLEP00000011861:0.0460495,(9593.ENSGGOP00000009561:0.00324716,9606.ENSP00000269305:2.4e-07)0.99985:0.0108707)0.725327:0.0031931)0.99985:0.0125782)0.99985:0.0309675)0.99985:0.0348935)1:0.0794915);'
+        expected_tree = Tree(expected_nw)        
+        cmd = 'ete3 build -a %s/P53.fa -w %s -o ete_test_tmp/etebuild_test3  -t0.3 --launch 0.5 --clearall --cpu %d' %(DIR, wkname, CPUS)
+        args = cmd.split()
+        with self.assertRaises(SystemExit):
+            ete._main(args)
+
+                           
+                            
+if __name__ == "__main__":
+    unittest.main()
diff --git a/ete3/test/test_ete_build/test_modeltest.py b/ete3/test/test_ete_build/test_modeltest.py
new file mode 100644
index 0000000..f347bb1
--- /dev/null
+++ b/ete3/test/test_ete_build/test_modeltest.py
@@ -0,0 +1,57 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import multiprocessing
+CPUS = min(20, max(1, multiprocessing.cpu_count()-1))
+import unittest
+
+from ...tools import ete
+from ... import Tree, SeqGroup
+
+DIR = os.path.split(os.path.abspath(__file__))[0]
+
+def get_out_files(outdir, workflow, fasta):
+    clean_tree = "%s/%s/%s.final_tree.nw" %(outdir, workflow, fasta)
+    extended_tree = "%s/%s/%s.final_tree.nwx" %(outdir, workflow, fasta)
+    alg_used = "%s/%s/%s.final_tree.used_alg.fa" %(outdir, workflow, fasta)
+    alg = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    alg_trimmed = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    img = "%s/%s/%s.final_tree.png" %(outdir, workflow, fasta)
+    cmd = "%s/%s/commands.log" %(outdir, workflow)
+    return clean_tree, extended_tree, alg_used, alg, alg_trimmed, img, cmd    
+    
+class Test_ete_build_modeltest(unittest.TestCase):
+    def test_01_aa_genetree_worflows_with_model_test(self):        
+        aligners = "muscle_default", "clustalo_default", "mafft_default"
+        trimmers = "none", "trimal01"
+        testers = "none", "pmodeltest_full_fast"
+        builders = "phyml_default", "raxml_default", "fasttree_default"
+        for _aligner in aligners:
+            for _trimmer in trimmers:
+                for _tester in testers:
+                    for _builder in builders:
+                        wkname = "%s-%s-%s-%s" %(_aligner, _trimmer, _tester, _builder)
+                        expected_nw = '(30611.ENSOGAP00000015106:0.0794915,(30608.ENSMICP00000013539:0.0917718,(9483.ENSCJAP00000027663:0.081188,(9544.ENSMMUP00000035274:0.0293646,(9601.ENSPPYP00000008923:0.017464,(61853.ENSNLEP00000011861:0.0460495,(9593.ENSGGOP00000009561:0.00324716,9606.ENSP00000269305:2.4e-07)0.99985:0.0108707)0.725327:0.0031931)0.99985:0.0125782)0.99985:0.0309675)0.99985:0.0348935)1:0.0794915);'
+                        expected_tree = Tree(expected_nw)        
+                        cmd = 'ete3 build -a %s/P53.fa -w %s -o ete_test_tmp/etebuild_test1  -t0.3 --launch 0.5 --clearall --cpu %d' %(DIR, wkname, CPUS)
+                        args = cmd.split()
+                        ete._main(args)                        
+                        ctree, xtree, alg_used, alg, alg_trimmed, img, cmd = get_out_files("ete_test_tmp/etebuild_test1", wkname, "P53.fa")
+                        t1 = Tree(ctree)
+                        t2 = Tree(xtree)
+                        a1 = SeqGroup(alg_used)
+                        a2 = SeqGroup(alg)
+                        self.assertEqual(t1.robinson_foulds(expected_tree)[:2], [0, 12])
+                        self.assertEqual(t2.robinson_foulds(expected_tree)[:2], [0, 12])
+                        if _tester != "none":
+                            # This are the expected winner models given the corresponding algs (tested with the online version of prottest)
+                            if wkname.startswith('mafft_default-'):
+                                self.assertEqual(wkname+t2.modeltester_bestmodel, wkname+"pmodeltest-HIVb+I+F!G")
+                            else:
+                                self.assertEqual(wkname+t2.modeltester_bestmodel, wkname+"pmodeltest-HIVb+G+F!I")                            
+                        if _trimmer:
+                            SeqGroup(alg_trimmed)
+                            
+if __name__ == "__main__":
+    unittest.main()
diff --git a/ete3/test/test_ete_build/test_sptree.py b/ete3/test/test_ete_build/test_sptree.py
new file mode 100644
index 0000000..fc3b9a5
--- /dev/null
+++ b/ete3/test/test_ete_build/test_sptree.py
@@ -0,0 +1,59 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import multiprocessing
+CPUS = min(20, max(1, multiprocessing.cpu_count()-1))
+import unittest
+
+from ...tools import ete
+from ... import Tree, SeqGroup
+
+DIR = os.path.split(os.path.abspath(__file__))[0]
+
+def get_out_files(outdir, workflow, fasta):
+    clean_tree = "%s/%s/%s.final_tree.nw" %(outdir, workflow, fasta)
+    extended_tree = "%s/%s/%s.final_tree.nwx" %(outdir, workflow, fasta)
+    alg_used = "%s/%s/%s.final_tree.used_alg.fa" %(outdir, workflow, fasta)
+    alg = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    alg_trimmed = "%s/%s/%s.final_tree.fa" %(outdir, workflow, fasta)
+    img = "%s/%s/%s.final_tree.png" %(outdir, workflow, fasta)
+    cmd = "%s/%s/commands.log" %(outdir, workflow)
+    return clean_tree, extended_tree, alg_used, alg, alg_trimmed, img, cmd    
+    
+
+class Test_ete_build_sptree(unittest.TestCase):
+    def test_01_sptree_worflow(self):
+        gene_wkname = 'clustalo_default-trimal01-none-none'
+        for wkname in "cog_all-alg_concat_default-raxml_default", "cog_all-alg_concat_default-fasttree":
+            wkname = "cog_all-alg_concat_default-raxml_default"
+            cmd = 'ete3 build -a %s/cog_seqs.fa --cogs %s/fake_cogs.tsv -w %s -m %s -o ete_test_tmp/etebuild_test2  -t0.5 --launch 0.5 --clearall --cpu %d' %(DIR, DIR, gene_wkname, wkname, CPUS)
+            args = cmd.split()
+            ete._main(args)                        
+            ctree, xtree, alg_used, alg, alg_trimmed, img, cmd = get_out_files("ete_test_tmp/etebuild_test2", wkname, "cog_seqs.fa")
+            t1 = Tree(ctree)
+            t2 = Tree(xtree)
+        
+            expected_tree = Tree("(sp5:18.0858,((sp3:1.04727e-06,sp4:0.124439)0.49:3.18184,(sp2:1.04727e-06,sp1:1.04727e-06)0:1.04727e-06)1:18.0858);")
+            self.assertEqual(t1.robinson_foulds(expected_tree)[:2], [0, 6])
+            self.assertEqual(t2.robinson_foulds(expected_tree)[:2], [0, 6])
+            self.assertEqual(int(t2.concatalg_cogs), 3)
+            
+            a2 = SeqGroup(alg)
+            expected_seqs = SeqGroup("""
+>sp1
+AAAAAAAAABBBBBBBBBEEEEEEEEFFFFFFFFFFFFIIIIIIIIIIKKKKKKKKKK
+>sp2
+AAAAAAAAABBBBBBBBBEEEEEEEEFFFFFFFFFFFFIIIIIIIIIIKKKKKKKK
+>sp3
+AAAAAAAAACCCCDDDDDEEEEEEEEGGGGGGGGGGGGIIIIIIIIIILLLLLLLLLLLL
+>sp4
+AAAAAAAAACCCCCDDDDEEEEEEEEGGGGGGGGGGHHIIIIIIIIIILLLLLLLLLMMMM
+>sp5
+AAAAAAAAAPPPPPPPPPEEEEEEEEPPPPPPPPPPPP
+""")
+            for name, seq, _ in a2:
+                self.assertEqual(seq.replace('-',''), expected_seqs.get_seq(name))
+                            
+if __name__ == "__main__":
+    unittest.main()
diff --git a/ete3/test/test_ete_evol.py b/ete3/test/test_ete_evol.py
new file mode 100644
index 0000000..22e4eb5
--- /dev/null
+++ b/ete3/test/test_ete_evol.py
@@ -0,0 +1,45 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import multiprocessing
+CPUS = min(20, max(1, multiprocessing.cpu_count()))
+import unittest
+
+from ..tools import ete
+from ..evol.control import AVAIL
+
+BASEPATH = os.path.abspath(os.path.split(os.path.realpath(__file__))[0])
+DATAPATH = os.path.join(BASEPATH, "ete_evol_data", "S_example")
+SDATAPATH = os.path.join(BASEPATH,"ete_evol_data", "XS_example")
+OUTPATH = 'ete_test_tmp/ete3_evol-test/'
+
+class Test_ete_evol(unittest.TestCase):
+    def test_01_all_models(self):
+        models = [k for k in AVAIL.keys() if not k.startswith('XX.')]
+
+        cmd = 'ete3 evol --mark Pan_troglodytes --noimg --alg %s/ali.fasta -t %s/tree.nw --clear_all -o %s --cpu %d --model ' %(
+            SDATAPATH, SDATAPATH, OUTPATH, CPUS)
+        args = cmd.split()
+        args.extend([model for model in models if not 'XX' in model])
+        print(' '.join(args))
+        ete._main(args)
+
+    def test_02_web_examples(self):
+        commands = [
+            'ete3 evol -t ECP_EDN_15.nw --alg ECP_EDN_15.fasta -o ete_test_tmp/results1/ --models fb M2 SLR --cpu $$CPU',
+            'ete3 evol -t ECP_EDN_15.nw --alg ECP_EDN_15.fasta --models b_neut b_free --mark Papio_EDN,,,Orang_EDN -o ete_test_tmp/results2/ --cpu $$CPU',
+            'ete3 evol -t ECP_EDN_15.nw --alg ECP_EDN_15.fasta --models b_neut b_free --mark Human_EDN,,,Hylobates_EDN,Macaq_EDN,,,Papio_EDN Macaq_ECP,,Macaq2_ECP,Human_ECP,,Goril_ECP -o ete_test_tmp/results3/ --cpu $$CPU',
+            'ete3 evol -t ECP_EDN_15.nw --alg ECP_EDN_15.fasta --models b_neut b_free --mark Papio_EDN,,,Orang_EDN -o ete_test_tmp/results3/ --cpu $$CPU',
+            'ete3 evol -t ECP_EDN_15.nw --alg ECP_EDN_15.fasta --models M2 M1 b_free b_neut --leaves --tests b_free,b_neut -o ete_test_tmp/results4/ --cpu $$CPU',
+            ]
+        for cmd in commands:
+            cmd = cmd.replace("ECP_EDN_15", "%s/ete_evol_data/CladeModelCD/ECP_EDN_15" %BASEPATH)
+            cmd = cmd.replace("$$CPU", str(CPUS))
+            print(cmd)
+            args = cmd.split()
+            ete._main(args)
+        os.system('rm -rf ete_test_tmp')
+        
+if __name__ == "__main__":
+    unittest.main()
diff --git a/ete3/test/test_evol.py b/ete3/test/test_evol.py
new file mode 100644
index 0000000..0fb9a81
--- /dev/null
+++ b/ete3/test/test_evol.py
@@ -0,0 +1,225 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+#!/usr/bin/python
+
+import unittest
+from ..evol import EvolTree
+from random import random as rnd
+from copy import deepcopy
+import os
+from six.moves.cPickle import load, dump
+import hashlib
+
+DATAPATH = os.path.abspath(os.path.split(os.path.realpath(__file__))[0])+"/ete_evol_data/"
+
+WRKDIR = DATAPATH + '/protamine/PRM1/'
+BINDIR = os.getcwd() + '/bin/'
+print(BINDIR)
+
+def random_swap(tree):
+    '''
+    swap randomly tree, to make sure labelling as paml is well done
+    '''
+    for node in tree.iter_descendants():
+        if int (rnd()*100)%3:
+            node.swap_children()
+
+def check_annotation (tree):
+    '''
+    check each node is labelled with a node_id
+    '''
+    for node in tree.iter_descendants():
+        if not hasattr (node, 'node_id'):
+            raise Exception ('Error, unable to label with paml ids')
+    return True
+
+def which(program):
+    def is_exe(fpath):
+        return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
+
+    fpath, fname = os.path.split(program)
+    if fpath:
+        if is_exe(program):
+            return program
+    else:
+        for path in os.environ["PATH"].split(os.pathsep):
+            exe_file = os.path.join(path, program)
+            if is_exe(exe_file):
+                return exe_file
+    return None
+
+class TestEvolEvolTree(unittest.TestCase):
+    """Tests EvolTree basics"""
+
+    def test_paml_parser(self):
+        alignments = ['  3 6\nseq1\tyo\nATGATG\nseq2\nCTGATG\nseq3\nATGTTT\n',
+                      '  3 6\n>seq1\nATGATG\n>seq2\t|prout\nCTGATG\n>seq3\nATGTTT\n',
+                      '>seq1 \nATGATG\n>seq2\nCTGATG\n>seq3\nATGTTT\n']
+        for ali in alignments:
+            t = EvolTree('((seq1,seq2),seq3);')
+            t.link_to_alignment(ali)
+            self.assertEqual((t & 'seq1').nt_sequence, 'ATGATG')
+            self.assertEqual((t & 'seq2').nt_sequence, 'CTGATG')
+            self.assertEqual((t & 'seq3').nt_sequence, 'ATGTTT')
+
+    def test_load_model(self):
+        tree = EvolTree (WRKDIR + 'tree.nw')
+        tree.workdir = 'protamine/PRM1/paml/'
+        tree.link_to_evol_model (WRKDIR + 'paml/fb/fb.out', 'fb')
+        tree.link_to_evol_model (WRKDIR + 'paml/M1/M1.out', 'M1')
+        tree.link_to_evol_model (WRKDIR + 'paml/M2/M2.out', 'M2')
+        tree.link_to_evol_model (WRKDIR + 'paml/M7/M7.out', 'M7')
+        tree.link_to_evol_model (WRKDIR + 'paml/M8/M8.out', 'M8')
+        tree.link_to_alignment  (WRKDIR + 'alignments.fasta_ali')
+        self.assertEqual(sorted(tree._models.keys()),
+                         sorted(['fb', 'M1', 'M2', 'M7', 'M8']))
+        self.assertEqual(len (tree.get_evol_model('M2').branches), 194)
+        self.assertEqual(tree.get_evol_model('fb').lnL, -3265.316569)
+        self.assert_('proportions' in str(tree.get_evol_model('M2')))
+        self.assert_('p2=' in str(tree.get_evol_model('M2')))
+        self.assert_('proportions' not in str(tree.get_evol_model('fb')))
+        self.assert_(' #193' in str(tree.get_evol_model('fb')))
+
+    def test_get_most_likely(self):
+        tree = EvolTree (WRKDIR + 'tree.nw')
+        tree.workdir = 'protamine/PRM1/paml/'
+        tree.link_to_evol_model (WRKDIR + 'paml/M1/M1.out', 'M1')
+        tree.link_to_evol_model (WRKDIR + 'paml/M2/M2.out', 'M2')
+        self.assertEqual(round(tree.get_most_likely ('M2','M1'),16),
+                         round(6.3280740347111373e-10,16))
+
+    def test_labelling_tree(self):
+        tree = EvolTree (WRKDIR + 'tree.nw')
+        tree.workdir = 'protamine/PRM1/paml/'
+        random_swap(tree)
+        tree.link_to_evol_model (WRKDIR + 'paml/fb/fb.out', 'fb')
+        self.assert_(check_annotation (tree))
+
+    def test_deep_copy(self):
+        tree = EvolTree (WRKDIR + 'tree.nw')
+        tree.workdir = 'protamine/PRM1/paml/'
+        tree.link_to_evol_model (WRKDIR + 'paml/fb/fb.out', 'fb')
+        fba = deepcopy (tree.get_evol_model('fb'))
+        tree._models['fb.a'] = fba
+        self.assertEqual(str(tree.get_evol_model('fb.a')),
+                         str(tree.get_evol_model('fb'))
+                     )
+    def test_call_histface(self):
+        tree = EvolTree (WRKDIR + 'tree.nw')
+        tree.workdir = 'protamine/PRM1/paml/'
+        tree.link_to_alignment  (WRKDIR + 'alignments.fasta_ali')
+        tree.link_to_evol_model (WRKDIR + 'paml/M2/M2.out', 'M2.a')
+        col =  {'NS' : 'grey', 'RX' : 'black',
+                'RX+': 'grey', 'CN' : 'black',
+                'CN+': 'grey', 'PS' : 'black', 'PS+': 'black'}
+        col2 = {'NS' : 'white', 'RX' : 'white',
+                'RX+': 'white', 'CN' : 'white',
+                'CN+': 'white', 'PS' : 'white', 'PS+': 'white'}
+        M2a = tree.get_evol_model('M2.a')
+        try:
+            import PyQt4
+        except ImportError:
+            pass
+        else:
+            M2a.set_histface (up=False, kind='stick', hlines=[1.0, 0.3],
+                              hlines_col=['red','grey'], header='ugliest face')
+            M2a.set_histface (up=False, kind='curve', colors=col2,errors=True,
+                              hlines = [2.5, 1.0, 4.0, 0.5],
+                              header = 'Many lines, error boxes, background black',
+                              hlines_col=['orange', 'yellow', 'red', 'cyan'])
+            M2a.set_histface (up=False, kind='bar', hlines = [1.0, 0.3],
+                              hlines_col=['black','grey'],colors=col)
+            self.assertEqual(str(type(M2a.properties['histface'])),
+                             "<class 'ete3.treeview.faces.SequencePlotFace'>")
+
+    def test_run_codeml(self):
+        if which('codeml'):
+            tree = EvolTree('((seq1,seq2),seq3);')
+            tree.link_to_alignment('>seq1\nATGCTG\n>seq2\nATGCTG\n>seq3\nTTGATG\n')
+            tree.run_model('fb')
+            self.assert_(b'CODONML' in tree.get_evol_model('fb').run)
+            self.assert_(b'Time used:' in tree.get_evol_model('fb').run)
+            self.assert_(b'end of tree file' in tree.get_evol_model('fb').run)
+            self.assert_(b'lnL' in tree.get_evol_model('fb').run)
+            self.assert_(tree.get_descendants()[0].w > 0)
+
+    def test_run_slr(self):
+        if which('Slr'):
+            tree = EvolTree('((seq1,seq2),seq3);')
+            tree.link_to_alignment('>seq1\nCTGATTCTT\n>seq2\nCTGATTCTT\n>seq3\nATGATTCTT\n')
+            tree.run_model('SLR')
+            print(tree.get_evol_model('SLR').run)
+            self.assert_(b'Sitewise Likelihood R' in tree.get_evol_model('SLR').run)
+            self.assert_(b'Positively selected s' in tree.get_evol_model('SLR').run)
+            self.assert_(b'Conserved sites' in tree.get_evol_model('SLR').run)
+            self.assert_(b'lnL' in tree.get_evol_model('SLR').run)
+
+    def test_marking_trees(self):
+        TREE_PATH = DATAPATH + '/S_example/'
+        tree = EvolTree (TREE_PATH + 'tree.nw')
+        self.assertEqual(tree.write(),
+                         '((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);')
+        tree.mark_tree ([1, 3, 7] + [2, 6], marks=['#1']*3 + ['#2']*2, verbose=True)
+        self.assertEqual(tree.write().replace(' ', ''),
+                         '((Hylobates_lar#2,(Gorilla_gorilla#1,Pan_troglodytes#1)#1)#2,Papio_cynocephalus);')
+        tree.mark_tree ([x.node_id for x in tree.get_descendants()],
+                        marks=[''] * len (tree.get_descendants()), verbose=False)
+        self.assertEqual(tree.write().replace(' ', ''),
+                         '((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);')
+
+    def test_pickling(self):
+        tree = EvolTree(WRKDIR + 'tree.nw')
+        tree.workdir = DATAPATH + '/protamine/PRM1/paml/'
+        tree.link_to_alignment (WRKDIR + 'alignments.fasta_ali')
+        tree.link_to_evol_model(WRKDIR + 'paml/M2/M2.out', 'M2.a')
+        out = open('blip.pik', 'wb')
+        dump(tree, out)
+        out.close()
+        out = open('blip.pik', 'rb')
+        tree2 = load(out)
+        out.close()
+        os.remove('blip.pik')
+
+        tree2_output = hashlib.md5(str(tree2.get_evol_model('M2.a')).encode()).hexdigest()
+        tree_output  = hashlib.md5(str(tree.get_evol_model ('M2.a')).encode()).hexdigest()
+        self.assertEqual(tree_output, tree2_output)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_interop.py b/ete3/test/test_interop.py
new file mode 100644
index 0000000..fe4ebe9
--- /dev/null
+++ b/ete3/test/test_interop.py
@@ -0,0 +1,26 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import unittest
+
+from .. import Tree
+
+class Test_Interoperability(unittest.TestCase):
+    def test_parent_child_table(self):
+        tree = Tree.from_parent_child_table([("A", "B", 0.1), ("A", "C", 0.2), ("C", "D", 1), ("C", "E", 1.5)])
+        newick = tree.write(format_root_node=True, format=1)
+        self.assertEqual(newick, "(B:0.1,(D:1,E:1.5)C:0.2)A:1;")
+
+    def test_skbio(self):
+        from skbio import TreeNode
+        skb_tree = TreeNode.read([u"(B:0.1,(D:1,E:1.5)C:0.2)A:1;"])
+        for node in skb_tree.traverse():
+            node.test = node.name
+        tree = Tree.from_skbio(skb_tree, map_attributes=["test"])
+        newick = tree.write(format_root_node=True, format=1, features=["test"])
+        expected = "(B:0.1[&&NHX:test=B],(D:1[&&NHX:test=D],E:1.5[&&NHX:test=E])C:0.2[&&NHX:test=C])A:1[&&NHX:test=A];"
+        self.assertEqual(newick, expected)
+
+        
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_ncbiquery.py b/ete3/test/test_ncbiquery.py
new file mode 100644
index 0000000..427e11c
--- /dev/null
+++ b/ete3/test/test_ncbiquery.py
@@ -0,0 +1,100 @@
+from __future__ import absolute_import
+import os
+import unittest
+
+from .. import PhyloTree, NCBITaxa
+from ..ncbi_taxonomy import ncbiquery
+
+DATABASE_PATH = "testdb.sqlite"
+
+class Test_ncbiquery(unittest.TestCase):
+
+  def test_00_update_database(self):
+    
+    if not os.path.exists(DATABASE_PATH):
+      ncbiquery.update_db(DATABASE_PATH)
+
+
+  def test_01tree_annotation(self):
+    t = PhyloTree( "((9598, 9606), 10090);", sp_naming_function=lambda name: name)
+    t.annotate_ncbi_taxa(dbfile=DATABASE_PATH)
+    self.assertEqual(t.sci_name, 'Euarchontoglires')
+
+    homi = (t&'9606').up
+    self.assertEqual(homi.sci_name, 'Homininae')
+    self.assertEqual(homi.taxid, 207598)
+    self.assertEqual(homi.rank, 'subfamily')
+    self.assertEqual(homi.named_lineage, [u'root', u'cellular organisms', u'Eukaryota', u'Opisthokonta', u'Metazoa', u'Eumetazoa', u'Bilateria', u'Deuterostomia', u'Chordata', u'Craniata', u'Vertebrata', u'Gnathostomata', u'Teleostomi', u'Euteleostomi', u'Sarcopterygii', u'Dipnotetrapodomorpha', u'Tetrapoda', u'Amniota', u'Mammalia', u'Theria', u'Eutheria', u'Boreoeutheria', u'Euarchontoglires', u'Primates', u'Haplorrhini', u'Simiiformes', u'Catarrhini', u'Hominoidea', u'Hominidae', u'Ho [...]
+    self.assertEqual(homi.lineage, [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742, 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347, 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598] )
+
+    human = t&'9606'
+    self.assertEqual(human.sci_name, 'Homo sapiens')
+    self.assertEqual(human.taxid, 9606)
+    self.assertEqual(human.rank, 'species')
+    self.assertEqual(human.named_lineage, [u'root', u'cellular organisms', u'Eukaryota', u'Opisthokonta', u'Metazoa', u'Eumetazoa', u'Bilateria', u'Deuterostomia', u'Chordata', u'Craniata', u'Vertebrata', u'Gnathostomata', u'Teleostomi', u'Euteleostomi', u'Sarcopterygii', u'Dipnotetrapodomorpha', u'Tetrapoda', u'Amniota', u'Mammalia', u'Theria', u'Eutheria', u'Boreoeutheria', u'Euarchontoglires', u'Primates', u'Haplorrhini', u'Simiiformes', u'Catarrhini', u'Hominoidea', u'Hominidae', u'H [...]
+    self.assertEqual(human.lineage, [1, 131567, 2759, 33154, 33208, 6072, 33213, 33511, 7711, 89593, 7742, 7776, 117570, 117571, 8287, 1338369, 32523, 32524, 40674, 32525, 9347, 1437010, 314146, 9443, 376913, 314293, 9526, 314295, 9604, 207598, 9605, 9606])
+
+  def test_ncbi_compare(self):
+    t = PhyloTree( "((9606, (9598, 9606)), 10090);", sp_naming_function=lambda x: x.name )
+    t.annotate_ncbi_taxa(dbfile=DATABASE_PATH)
+    #t.ncbi_compare()
+
+  def test_ncbiquery(self):
+    ncbi = NCBITaxa(dbfile=DATABASE_PATH)
+
+    id2name = ncbi.get_taxid_translator(['9606', '7507'])
+    self.assertEqual(id2name[7507], 'Mantis religiosa')
+    self.assertEqual(id2name[9606], 'Homo sapiens')
+
+    name2id = ncbi.get_name_translator(['Mantis religiosa', 'homo sapiens'])
+    self.assertEqual(name2id['Mantis religiosa'], [7507])
+    self.assertEqual(name2id['homo sapiens'], [9606])
+
+    name2id = ncbi.get_name_translator(['Bacteria'])
+    self.assertEqual(set(name2id['Bacteria']), set([2, 629395]))
+
+    out = ncbi.get_descendant_taxa("9605", intermediate_nodes=True)
+    #Out[9]: [1425170, 741158, 63221, 9606]
+    self.assertEqual(set(out), set([1425170, 741158, 63221, 9606]))
+    
+    out = ncbi.get_descendant_taxa("9605", intermediate_nodes=False)
+    #Out[10]: [1425170, 741158, 63221]
+    self.assertEqual(set(out), set([1425170, 741158, 63221]))
+    
+    out = ncbi.get_descendant_taxa("9605", intermediate_nodes=False, rank_limit="species")
+    #Out[11]: [9606, 1425170]
+    self.assertEqual(set(out), set([9606, 1425170]))
+    
+  def test_get_topology(self):
+    ncbi = NCBITaxa(dbfile=DATABASE_PATH)
+    t1 = ncbi.get_topology([9606, 7507, 9604])
+    t2 = ncbi.get_topology([9606, 7507, 678])
+
+    self.assertEqual(sorted(t1.get_leaf_names()), ["7507", "9606"])
+    self.assertEqual(sorted(t2.get_leaf_names()), ["678", "7507", "9606"])
+
+    # Test taxid synonyms
+    self.assertEqual(ncbi.get_topology(["42099"]).write(format=5), "1223560:1;")
+
+    
+    for target in [9604, 9443, "9443"]:
+      t1 = ncbi.get_descendant_taxa(target, return_tree=True)
+      t2 = ncbi.get_topology([target])
+      t3 = ncbi.get_topology(ncbi.get_descendant_taxa(target))
+      t4 = ncbi.get_topology(list(map(str, ncbi.get_descendant_taxa(target))))
+      
+      self.assertEqual(set(t1.get_leaf_names()), set(t2.get_leaf_names()))
+      self.assertEqual(set(t2.get_leaf_names()), set(t3.get_leaf_names()))
+      self.assertEqual(set(t3.get_leaf_names()), set(t4.get_leaf_names()))
+      diffs1 = t1.compare(t2, unrooted=True)
+      diffs2 = t2.compare(t3, unrooted=True)
+      diffs3 = t3.compare(t4, unrooted=True)      
+      self.assertEqual(diffs1["rf"], 0.0)
+      self.assertEqual(diffs2["rf"], 0.0)
+      self.assertEqual(diffs3["rf"], 0.0)
+
+
+if __name__ == '__main__':
+  unittest.main()
+
+  
diff --git a/ete3/test/test_phylotree.py b/ete3/test/test_phylotree.py
new file mode 100644
index 0000000..0be76b8
--- /dev/null
+++ b/ete3/test/test_phylotree.py
@@ -0,0 +1,318 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import unittest
+
+from .. import PhyloTree, SeqGroup
+from .datasets import *
+
+class Test_phylo_module(unittest.TestCase):
+
+    # ALL TESTS USE THIS EXAMPLE TREE
+    #
+    #                    /-Dme_001
+    #          /--------|
+    #         |          \-Dme_002
+    #         |
+    #         |                              /-Cfa_001
+    #         |                    /--------|
+    #         |                   |          \-Mms_001
+    #         |                   |
+    #---------|                   |                                        /-Hsa_001
+    #         |                   |                              /--------|
+    #         |          /--------|                    /--------|          \-Hsa_003
+    #         |         |         |                   |         |
+    #         |         |         |          /--------|          \-Ptr_001
+    #         |         |         |         |         |
+    #         |         |         |         |          \-Mmu_001
+    #         |         |          \--------|
+    #          \--------|                   |                    /-Hsa_004
+    #                   |                   |          /--------|
+    #                   |                    \--------|          \-Ptr_004
+    #                   |                             |
+    #                   |                              \-Mmu_004
+    #                   |
+    #                   |          /-Ptr_002
+    #                    \--------|
+    #                             |          /-Hsa_002
+    #                              \--------|
+    #                                        \-Mmu_002
+
+
+    def test_link_alignmets(self):
+        """ Phylotree can be linked to SeqGroup objects"""
+        fasta = """
+         >seqA
+         MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+         >seqB
+         MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+         >seqC
+         MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+         >seqD
+         MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+        """
+        # Caution with iphylip string. blank spaces in the beginning are important
+        iphylip = """
+         4 76
+      seqA   MAEIPDETIQ QFMALT---H NIAVQYLSEF GDLNEALNSY YASQTDDIKD RREEAHQFMA
+      seqB   MAEIPDATIQ QFMALTNVSH NIAVQY--EF GDLNEALNSY YAYQTDDQKD RREEAHQFMA
+      seqC   MAEIPDATIQ ---ALTNVSH NIAVQYLSEF GDLNEALNSY YASQTDDQPD RREEAHQFMA
+      seqD   MAEAPDETIQ QFMALTNVSH NIAVQYLSEF GDLNEAL--- ---------- -REEAHQ---
+
+             LTNVSHQFMA LTNVSH
+             LTNVSH---- ------
+             LTNVSH---- ------
+             -------FMA LTNVSH
+        """
+
+        # Loads a tree and link it to an alignment. As usual, 'alignment' can be
+        # the path to a file or the data themselves in text string format
+
+        alg1 = SeqGroup(fasta)
+        alg2 = SeqGroup(iphylip, format="iphylip")
+
+        t = PhyloTree("(((seqA,seqB),seqC),seqD);", alignment=fasta, alg_format="fasta")
+
+        for l in t.get_leaves():
+            self.assertEqual(l.sequence, alg1.get_seq(l.name))
+
+        # The associated alignment can be changed at any time
+        t.link_to_alignment(alignment=alg2, alg_format="iphylip")
+
+        for l in t.get_leaves():
+            self.assertEqual(l.sequence, alg2.get_seq(l.name))
+
+    def test_get_sp_overlap_on_all_descendants(self):
+        """ Tests ortholgy prediction using the sp overlap"""
+        # Creates a gene phylogeny with several duplication events at
+        # different levels.
+        t = PhyloTree('((Dme_001,Dme_002),(((Cfa_001,Mms_001),((((Hsa_001,Hsa_003),Ptr_001),Mmu_001),((Hsa_004,Ptr_004),Mmu_004))),(Ptr_002,(Hsa_002,Mmu_002))));')
+
+        # Scans the tree using the species overlap algorithm and detect all
+        # speciation and duplication events
+        events = t.get_descendant_evol_events()
+
+        # Check that all duplications are detected
+        dup1 = t.get_common_ancestor("Hsa_001", "Hsa_004")
+        self.assertEqual(dup1.evoltype, "D")
+
+        dup2 = t.get_common_ancestor("Dme_001", "Dme_002")
+        self.assertEqual(dup2.evoltype, "D")
+
+        dup3 = t.get_common_ancestor("Hsa_001", "Hsa_002")
+        self.assertEqual(dup3.evoltype, "D")
+
+        dup4 = t.get_common_ancestor("Hsa_001", "Hsa_003")
+        self.assertEqual(dup4.evoltype, "D")
+
+
+        # All other nodes should be speciation
+        for node in t.traverse():
+            if not node.is_leaf() and \
+                   node not in set([dup1, dup2, dup3, dup4]):
+                self.assertEqual(node.evoltype, "S")
+
+        # Check events
+        for e in events:
+            self.assertEqual(e.node.evoltype, e.etype)
+
+        # Check orthology/paralogy prediction
+        orthologs = set()
+        for e in events:
+            if e.node == dup1:
+                self.assertEqual(e.inparalogs, set(['Ptr_001', 'Hsa_001', 'Mmu_001', 'Hsa_003']))
+                self.assertEqual(e.outparalogs, set(['Mmu_004', 'Ptr_004', 'Hsa_004']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.outparalogs, e.out_seqs)
+                self.assertEqual(e.inparalogs, e.in_seqs)
+            elif e.node == dup2:
+                self.assertEqual(e.inparalogs, set(['Dme_001']))
+                self.assertEqual(e.outparalogs, set(['Dme_002']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.outparalogs, e.out_seqs)
+                self.assertEqual(e.inparalogs, e.in_seqs)
+            elif e.node == dup3:
+                self.assertEqual(e.inparalogs, set(['Hsa_003', 'Cfa_001', 'Ptr_001', 'Hsa_001', 'Ptr_004', 'Hsa_004', 'Mmu_004', 'Mmu_001', 'Mms_001']))
+                self.assertEqual(e.outparalogs, set(['Hsa_002', 'Ptr_002', 'Mmu_002']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.outparalogs, e.out_seqs)
+                self.assertEqual(e.inparalogs, e.in_seqs)
+            elif e.node == dup4:
+                self.assertEqual(e.inparalogs, set(['Hsa_001']))
+                self.assertEqual(e.outparalogs, set(['Hsa_003']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.outparalogs, e.out_seqs)
+                self.assertEqual(e.inparalogs, e.in_seqs)
+            else:
+
+                key1 = list(e.inparalogs)
+                key2 = list(e.orthologs)
+                key1.sort()
+                key2.sort()
+                orthologs.add(tuple(sorted([tuple(key1), tuple(key2)])))
+
+        orthologies = [
+            [set(['Dme_001', 'Dme_002']), set(['Ptr_001', 'Cfa_001', 'Hsa_002', 'Hsa_003', 'Ptr_002', 'Hsa_001', 'Ptr_004', 'Hsa_004', 'Mmu_004', 'Mmu_001', 'Mms_001', 'Mmu_002'])],
+            [set(['Mms_001', 'Cfa_001']), set(['Hsa_003', 'Ptr_001', 'Hsa_001', 'Ptr_004', 'Hsa_004', 'Mmu_004', 'Mmu_001'])],
+            [set(['Ptr_002']), set(['Hsa_002', 'Mmu_002'])],
+            [set(['Cfa_001']), set(['Mms_001'])],
+            [set(['Hsa_002']), set(['Mmu_002'])],
+            [set(['Hsa_003', 'Hsa_001', 'Ptr_001']), set(['Mmu_001'])],
+            [set(['Ptr_004', 'Hsa_004']), set(['Mmu_004'])],
+            [set(['Hsa_003', 'Hsa_001']), set(['Ptr_001'])],
+            [set(['Hsa_004']), set(['Ptr_004'])]
+            ]
+        expected_orthologs = set()
+        for l1,l2 in orthologies:
+            key1 = list(l1)
+            key2 = list(l2)
+            key1.sort()
+            key2.sort()
+            expected_orthologs.add(tuple(sorted([tuple(key1), tuple(key2)])))
+
+        # Are all orthologies as expected
+        self.assertEqual(expected_orthologs, orthologs)
+
+    def test_get_sp_overlap_on_a_seed(self):
+        """ Tests ortholgy prediction using sp overlap"""
+        # Creates a gene phylogeny with several duplication events at
+        # different levels.
+        t = PhyloTree('((Dme_001,Dme_002),(((Cfa_001,Mms_001),((((Hsa_001,Hsa_003),Ptr_001),Mmu_001),((Hsa_004,Ptr_004),Mmu_004))),(Ptr_002,(Hsa_002,Mmu_002))));')
+
+        # Scans the tree using the species overlap algorithm
+        seed = t.search_nodes(name="Hsa_001")[0]
+        events = seed.get_my_evol_events()
+
+        # Check that duplications are detected
+        dup1 = t.get_common_ancestor("Hsa_001", "Hsa_004")
+        print(dup1)
+        self.assertEqual(dup1.evoltype, "D")
+
+        # This duplication is not in the seed path
+        dup2 = t.get_common_ancestor("Dme_001", "Dme_002")
+        self.assert_(not hasattr(dup2, "evoltype"))
+
+        dup3 = t.get_common_ancestor("Hsa_001", "Hsa_002")
+        self.assertEqual(dup3.evoltype, "D")
+
+        dup4 = t.get_common_ancestor("Hsa_001", "Hsa_003")
+        self.assertEqual(dup4.evoltype, "D")
+
+        # All other nodes should be speciation
+        node = seed
+        while node:
+            if not node.is_leaf() and \
+                   node not in set([dup1, dup2, dup3, dup4]):
+                self.assertEqual(node.evoltype, "S")
+            node = node.up
+
+        # Check events
+        for e in events:
+            self.assertEqual(e.node.evoltype, e.etype)
+
+        # Check orthology/paralogy prediction
+        orthologs = set()
+        for e in events:
+            if e.node == dup1:
+                self.assertEqual(e.inparalogs, set(['Hsa_001', 'Hsa_003']))
+                self.assertEqual(e.outparalogs, set(['Hsa_004']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.in_seqs, set(['Ptr_001', 'Hsa_001', 'Mmu_001', 'Hsa_003']))
+                self.assertEqual(e.out_seqs, set(['Mmu_004', 'Ptr_004', 'Hsa_004']))
+            elif e.node == dup3:
+                self.assertEqual(e.inparalogs, set(['Hsa_003', 'Hsa_001',  'Hsa_004' ]))
+                self.assertEqual(e.outparalogs, set(['Hsa_002']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.in_seqs, set(['Hsa_003', 'Cfa_001', 'Ptr_001', 'Hsa_001', 'Ptr_004', 'Hsa_004', 'Mmu_004', 'Mmu_001', 'Mms_001']))
+                self.assertEqual(e.out_seqs, set(['Hsa_002', 'Ptr_002', 'Mmu_002']))
+            elif e.node == dup4:
+                self.assertEqual(e.inparalogs, set(['Hsa_001']))
+                self.assertEqual(e.outparalogs, set(['Hsa_003']))
+                self.assertEqual(e.orthologs, set())
+                self.assertEqual(e.in_seqs, set(['Hsa_001']))
+                self.assertEqual(e.out_seqs, set(['Hsa_003']))
+            else:
+
+                key1 = list(e.inparalogs)
+                key2 = list(e.orthologs)
+                key1.sort()
+                key2.sort()
+                orthologs.add(tuple(sorted([tuple(key1), tuple(key2)])))
+
+
+        orthologies = [
+            [set(['Dme_001', 'Dme_002']), set([ 'Hsa_002', 'Hsa_003', 'Hsa_001',  'Hsa_004' ])],
+            [set(['Mms_001', 'Cfa_001']), set(['Hsa_003',  'Hsa_001', 'Hsa_004'])],
+            [set(['Hsa_003', 'Hsa_001']), set(['Mmu_001'])],
+            [set(['Hsa_003', 'Hsa_001']), set(['Ptr_001'])],
+            ]
+        expected_orthologs = set()
+        for l1,l2 in orthologies:
+            key1 = list(l1)
+            key2 = list(l2)
+            key1.sort()
+            key2.sort()
+            expected_orthologs.add(tuple(sorted([tuple(key1), tuple(key2)])))
+
+        # Are all orthologies as expected
+        self.assertEqual(expected_orthologs, orthologs)
+
+    def test_reconciliation(self):
+        """ Tests ortholgy prediction based on the species reconciliation method"""
+        gene_tree_nw = '((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'
+        species_tree_nw = "((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"
+
+        genetree = PhyloTree(gene_tree_nw)
+        sptree = PhyloTree(species_tree_nw)
+
+        recon_tree, events = genetree.reconcile(sptree)
+
+        # Check that reconcilied tree nodes have the correct lables:
+        # gene loss, duplication, etc.
+        expected_recon = "((Dme_001:1,Dme_002:1)1:1[&&NHX:evoltype=D],(((Cfa_001:1,Mms_001:1)1:1[&&NHX:evoltype=S],((Hsa_001:1,Ptr_001:1)1:1[&&NHX:evoltype=S],Mmu_001:1)1:1[&&NHX:evoltype=S])1:1[&&NHX:evoltype=S],((Mms:1[&&NHX:evoltype=L],Cfa:1[&&NHX:evoltype=L])1:1[&&NHX:evoltype=L],(((Hsa:1[&&NHX:evoltype=L],Ptr_002:1)1:1[&&NHX:evoltype=L],Mmu:1[&&NHX:evoltype=L])1:1[&&NHX:evoltype=L],((Ptr:1[&&NHX:evoltype=L],Hsa_002:1)1:1[&&NHX:evoltype=L],Mmu_002:1)1:1[&&NHX:evoltype=S])1:1[&&NHX:ev [...]
+
+        self.assertEqual(recon_tree.write(["evoltype"], format=9), PhyloTree(expected_recon).write(features=["evoltype"],format=9))
+
+    def test_miscelaneus(self):
+        """ Test several things """
+        # Creates a gene phylogeny with several duplication events at
+        # different levels.
+        t = PhyloTree('((Dme_001,Dme_002),(((Cfa_001,Mms_001),((((Hsa_001,Hsa_003),Ptr_001),Mmu_001),((Hsa_004,Ptr_004),Mmu_004))),(Ptr_002,(Hsa_002,Mmu_002))));')
+
+        # Create a dictionary with relative ages for the species present in
+        # the phylogenetic tree.  Note that ages are only relative numbers to
+        # define which species are older, and that different species can
+        # belong to the same age.
+        sp2age = {
+          'Hsa': 1, # Homo sapiens (Hominids)
+          'Ptr': 2, # P. troglodytes (primates)
+          'Mmu': 2, # Macaca mulata (primates)
+          'Mms': 3, # Mus musculus (mammals)
+          'Cfa': 3, # Canis familiaris (mammals)
+          'Dme': 4  # Drosophila melanogaster (metazoa)
+        }
+
+
+        # Check that dup ages are correct
+        dup1 = t.get_common_ancestor("Hsa_001", "Hsa_004")
+        self.assertEqual(dup1.get_age(sp2age), 2)
+        dup2 = t.get_common_ancestor("Dme_001", "Dme_002")
+        self.assertEqual(dup2.get_age(sp2age), 4)
+        dup3 = t.get_common_ancestor("Hsa_001", "Hsa_002")
+        self.assertEqual(dup3.get_age(sp2age), 3)
+        dup4 = t.get_common_ancestor("Hsa_001", "Hsa_003")
+        self.assertEqual(dup4.get_age(sp2age), 1)
+
+        # Check rooting options
+        expected_root = t.search_nodes(name="Dme_002")[0]
+        expected_root.dist += 2.3
+        self.assertEqual(t.get_farthest_oldest_leaf(sp2age), expected_root)
+        #print t
+        #print t.get_farthest_oldest_node(sp2age)
+
+
+        # Check get species functions
+        self.assertEqual(t.get_species(), set(sp2age.keys()))
+        self.assertEqual(set([sp for sp in t.iter_species()]), set(sp2age.keys()))
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_seqgroup.py b/ete3/test/test_seqgroup.py
new file mode 100644
index 0000000..052d157
--- /dev/null
+++ b/ete3/test/test_seqgroup.py
@@ -0,0 +1,93 @@
+from __future__ import absolute_import
+import unittest
+
+from .. import SeqGroup
+from .datasets import *
+
+class Test_Coretype_SeqGroup(unittest.TestCase):
+    """ Tests core functionality of Alignmnets objects """
+    def test_fasta_parser(self):
+        """ test fasta read an write """
+        # FASTA IO
+        open("/tmp/ete_test_fasta.txt","w").write(fasta_example)
+        # Test reading from file and from string
+        SEQS = SeqGroup(fasta_example)
+        SEQS2 = SeqGroup("/tmp/ete_test_fasta.txt")
+
+        # Compare the result is the same
+        self.assertEqual(SEQS.write(), SEQS2.write())
+
+        # Test writing into file
+        SEQS.write(format="fasta", outfile="/tmp/ete_fastaIO")
+        self.assertEqual(SEQS.write(), fasta_example_output)
+
+        # Test SeqGroup obj integrity
+        self.assertEqual(SEQS.get_seq("Ago0000003"), Ago0000003)
+        self.assertEqual(SEQS2.get_seq("Ago0000003"), Ago0000003)
+        self.assertEqual(len(SEQS), len(SEQS.id2seq))
+        self.assertEqual("Ago0000003" in SEQS, True)
+        self.assertEqual("Ago" in SEQS, False)
+        self.assertEqual(SEQS.get_entries(), [e for e in SEQS])
+
+        # Check that the default  write format is FASTA
+        self.assertEqual(SEQS.__str__(), SEQS.write(format="fasta"))
+
+
+    def test_phylip_parser(self):
+        """ Tests phylip read and write """
+        # PHYLIP INTERLEAVED
+        open("/tmp/ete_test_iphylip.txt","w").write(phylip_interlived)
+        SEQS = SeqGroup("/tmp/ete_test_iphylip.txt", format="iphylip")
+        SEQS2 = SeqGroup(phylip_interlived, format="iphylip")
+        self.assertEqual(SEQS.write(), SEQS2.write())
+        SEQS.write(format="iphylip",  outfile="/tmp/ete_write_file")
+        self.assertEqual(SEQS.write(format="iphylip"), phylip_interlived)
+
+        # Test SeqGroup obj integrity
+        self.assertEqual(SEQS.get_seq("CYS1_DICDI"), CYS1_DICDI)
+        self.assertEqual(SEQS2.get_seq("CYS1_DICDI"), CYS1_DICDI)
+        self.assertEqual(len(SEQS), len(SEQS.id2seq))
+        self.assertEqual("CYS1_DICDI" in SEQS, True)
+        self.assertEqual(SEQS.get_entries(), [e for e in SEQS])
+
+        # PHYLIP SEQUENCIAL FORMAT
+        open("/tmp/ete_test_phylip.txt","w").write(phylip_sequencial)
+        SEQS = SeqGroup("/tmp/ete_test_phylip.txt", format="phylip")
+        SEQS2 = SeqGroup(phylip_sequencial, format="phylip")
+        self.assertEqual(SEQS.write(), SEQS2.write())
+        SEQS.write(format="phylip",  outfile="/tmp/ete_write_file")
+        self.assertEqual(SEQS.write(format="phylip"), phylip_sequencial)
+
+        # Test SeqGroup obj integrity
+        self.assertEqual(SEQS.get_seq("CYS1_DICDI"), CYS1_DICDI)
+        self.assertEqual(SEQS2.get_seq("CYS1_DICDI"), CYS1_DICDI)
+        self.assertEqual(len(SEQS), len(SEQS.id2seq))
+        self.assertEqual("CYS1_DICDI" in SEQS, True)
+        self.assertEqual("CYS1" in SEQS, False)
+        self.assertEqual(SEQS.get_entries(), [e for e in SEQS])
+
+        # test write speed
+        #SEQS = SeqGroup()
+        #for i in xrange(25):
+        #    SEQS.set_seq("seq%s" %i, "A"*500000)
+        #SEQS.write(outfile="/tmp/iphylip_write_test.phy", format="iphylip")
+        #SEQS.write(outfile="/tmp/iphylip_write_test.phy", format="phylip")
+
+    def test_alg_from_scratch(self):
+
+        alg = SeqGroup(phylip_sequencial, format="phylip")
+
+        random_seq = alg.get_seq("CATH_HUMAN")
+
+        # Add a new sequence to the alg
+        alg.set_seq("randomseq", random_seq.replace("A","X"))
+
+        self.assertEqual(alg.get_seq("randomseq"), random_seq.replace("A","X"))
+
+        # Exports the alignment to different formats
+        alg.write(format ="fasta")
+        alg.write(format ="iphylip")
+        alg.write(format ="phylip")
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_tree.py b/ete3/test/test_tree.py
new file mode 100644
index 0000000..1d40709
--- /dev/null
+++ b/ete3/test/test_tree.py
@@ -0,0 +1,1292 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import unittest
+import random
+import sys
+import time
+import itertools
+
+import sys
+from six.moves import range
+
+from .. import Tree, PhyloTree, TreeNode
+from ..coretype.tree import TreeError
+from ..parser.newick import NewickError
+from .datasets import *
+
+class Test_Coretype_Tree(unittest.TestCase):
+    """ Tests tree basics. """
+    def test_read_write_exceptions(self):
+
+        def wrong_dist():
+            t = Tree()
+            t.dist = '1a'
+
+        def wrong_support():
+            t = Tree()
+            t.support = '1a'
+
+        def wrong_up():
+            t = Tree()
+            t.up = 'Something'
+
+        def wrong_children():
+            t = Tree()
+            t.children = 'Something'
+
+        self.assertRaises(TreeError, wrong_dist)
+        self.assertRaises(TreeError, wrong_support)
+        self.assertRaises(TreeError, wrong_up)
+        self.assertRaises(TreeError, wrong_children)
+
+    def test_add_remove_features(self):
+        #The features concept will probably change in future versions. It is
+        #very inefficient in larg trees.
+        t = Tree()
+        t.add_features(testf1=1, testf2="1", testf3=[1])
+        t.add_feature('testf4', set([1]))
+        self.assertEqual(t.testf1, 1)
+        self.assertEqual(t.testf2, "1")
+        self.assertEqual(t.testf3, [1])
+        self.assertEqual(t.testf4, set([1]))
+
+        t.del_feature('testf4')
+        self.assertTrue('testf4' not in t.features)
+
+
+
+
+
+    def test_tree_read_and_write(self):
+        """ Tests newick support """
+        # Read and write newick tree from file (and support for NHX
+        # format): newick parser
+        open("/tmp/etetemptree.nw","w").write(nw_full)
+        t = Tree("/tmp/etetemptree.nw")
+        t.write(outfile='/tmp/etewritetest.nw')
+        self.assertEqual(nw_full, t.write(features=["flag","mood"]))
+        self.assertEqual(nw_topo,  t.write(format=9))
+        self.assertEqual(nw_dist, t.write(format=5))
+
+        # Read and write newick tree from *string* (and support for NHX
+        # format)
+        t = Tree(nw_full)
+        self.assertEqual(nw_full, t.write(features=["flag","mood"]))
+        self.assertEqual(nw_topo, t.write(format=9))
+        self.assertEqual( nw_dist, t.write(format=5))
+
+        # Read complex newick
+        t = Tree(nw2_full)
+        self.assertEqual(nw2_full,  t.write())
+
+        # Read wierd topologies
+        t = Tree(nw_simple5)
+        self.assertEqual(nw_simple5,  t.write(format=9))
+        t = Tree(nw_simple6)
+        self.assertEqual(nw_simple6,  t.write(format=9))
+
+        #Read single node trees:
+        self.assertEqual(Tree("hola;").write(format=9),  "hola;")
+        self.assertEqual(Tree("(hola);").write(format=9),  "(hola);")
+
+        #TEst export root features
+        t = Tree("(((A[&&NHX:name=A],B[&&NHX:name=B])[&&NHX:name=NoName],C[&&NHX:name=C])[&&NHX:name=I],(D[&&NHX:name=D],F[&&NHX:name=F])[&&NHX:name=J])[&&NHX:name=root];")
+        #print t.get_ascii()
+        self.assertEqual(t.write(format=9, features=["name"], format_root_node=True),
+                         "(((A[&&NHX:name=A],B[&&NHX:name=B])[&&NHX:name=NoName],C[&&NHX:name=C])[&&NHX:name=I],(D[&&NHX:name=D],F[&&NHX:name=F])[&&NHX:name=J])[&&NHX:name=root];")
+
+
+        # Node instance repr
+        self.assertTrue(Tree().__repr__().startswith('Tree node'))
+
+    def test_concat_trees(self):
+        t1 = Tree('((A, B), C);')
+        t2 = Tree('((a, b), c);')
+        concat_tree = t1 + t2
+        concat_tree.sort_descendants()
+        self.assertEqual(concat_tree.write(format=9), '(((A,B),C),((a,b),c));')
+        t3 = PhyloTree('((a, b), c);')
+        mixed_types = lambda: t1 + t3
+        self.assertRaises(TreeError, mixed_types)
+
+
+    def test_newick_formats(self):
+        """ tests different newick subformats """
+        from ..parser.newick import print_supported_formats, NW_FORMAT
+        print_supported_formats()
+
+        # Let's stress a bit
+        for i in range(10):
+            t = Tree()
+            t.populate(4, random_branches=True)
+            for f in NW_FORMAT:
+                self.assertEqual(t.write(format=f), Tree(t.write(format=f),format=f).write(format=f))
+
+        # Format 0 = ((H:1,(G:1,F:1)1:1)1:1,I:1)1:1;
+        # Format 1 = ((H:1,(G:1,F:1):1):1,I:1):1;
+        # Format 2 = ((H:1,(G:1,F:1)1:1)1:1,I:1)1:1;
+        # Format 3 = ((H:1,(G:1,F:1)NoName:1)NoName:1,I:1)NoName:1;
+        # Format 4 = ((H:1,(G:1,F:1)),I:1);
+        # Format 5 = ((H:1,(G:1,F:1):1):1,I:1):1;
+        # Format 6 = ((H,(G,F):1):1,I):1;
+        # Format 7 = ((H:1,(G:1,F:1)NoName)NoName,I:1)NoName;
+        # Format 8 = ((H,(G,F)NoName)NoName,I)NoName;
+        # Format 9 = ((H,(G,F)),I);
+        # Format 100 = ((,(,)),);
+
+        t = Tree()
+        t.populate(50, random_branches=True)
+        t.sort_descendants()
+        expected_distances = [round(x, 6) for x in [n.dist for n in t.traverse('postorder')]]
+        expected_leaf_distances = [round(x, 6) for x in [n.dist for n in t]]
+        expected_internal_distances = [round(x, 6) for x in [n.dist for n in t.traverse('postorder') if not n.is_leaf()]]
+        expected_supports = [round(x, 6) for x in [n.support for n in t.traverse('postorder') if not n.is_leaf()]]
+        expected_leaf_names = [n.name for n in t]
+
+        # Check that all formats read names correctly
+        for f in [0,1,2,3,5,6,7,8,9]:
+            t2 = Tree(t.write(format=f, dist_formatter="%0.6f", support_formatter="%0.6f", format_root_node=True), format=f)
+            t2.sort_descendants()
+            observed_names = [n.name for n in t]
+            self.assertEqual(observed_names, expected_leaf_names)
+
+        # Check that all formats reading distances, recover original distances
+        for f in [0,1,2,3,5]:
+            t2 = Tree(t.write(format=f, dist_formatter="%0.6f", support_formatter="%0.6f", format_root_node=True), format=f)
+            t2.sort_descendants()
+            observed_distances = [round(x, 6) for x in [n.dist for n in t2.traverse('postorder')]]
+            self.assertEqual(observed_distances, expected_distances)
+
+        # formats reading only leaf distances
+        for f in [4,7]:
+            t2 = Tree(t.write(format=f, dist_formatter="%0.6f", support_formatter="%0.6f", format_root_node=True), format=f)
+            t2.sort_descendants()
+            observed_distances = [round(x, 6) for x in [n.dist for n in t2]]
+            self.assertEqual(observed_distances, expected_leaf_distances)
+
+        # formats reading only leaf distances
+        for f in [6]:
+            t2 = Tree(t.write(format=f, dist_formatter="%0.6f", support_formatter="%0.6f", format_root_node=True), format=f)
+            t2.sort_descendants()
+            observed_distances = [round(x, 6) for x in [n.dist for n in t2.traverse('postorder') if not n.is_leaf()]]
+            self.assertEqual(observed_distances, expected_internal_distances)
+
+
+        # Check that all formats reading supports, recover original distances
+        #print t.get_ascii(attributes=["support"])
+        for f in [0,2]:
+            t2 = Tree(t.write(format=f, dist_formatter="%0.6f", support_formatter="%0.6f", format_root_node=True), format=f)
+            t2.sort_descendants()
+            observed_supports = [round(x, 6) for x in [n.support for n in t2.traverse('postorder') if not n.is_leaf()]]
+            self.assertEqual(observed_supports, expected_supports)
+
+
+       # Check that formats reading supports, do not accept node names
+        for f in [0,2]:
+            # format 3 forces dumping internal node names, NoName in case is missing
+            self.assertRaises(Exception, Tree, t.write(format=3), format=f)
+
+       # Check that formats reading names, do not load supports
+        for f in [1, 3]:
+            # format 3 forces dumping internal node names, NoName in case is missing
+            t2 = Tree(t.write(format=0), format=f)
+            default_supports = set([n.support for n in t2.traverse()])
+            self.assertEqual(set([1.0]), default_supports)
+
+
+        # Check errors reading numbers
+        error_nw1 = "((A:0.813705,(E:0.545591,D:0.411772)error:0.137245)1.000000:0.976306,C:0.074268);"
+        for f in [0, 2]:
+            self.assertRaises(NewickError, Tree, error_nw1, format=f)
+
+        error_nw2 = "((A:0.813705,(E:0.545error,D:0.411772)1.0:0.137245)1.000000:0.976306,C:0.074268);"
+        for f in [0, 1, 2]:
+            self.assertRaises(NewickError, Tree, error_nw2, format=f)
+
+
+        error_nw3 = "((A:0.813705,(E:0.545error,D:0.411772)1.0:0.137245)1.000000:0.976306,C:0.074268);"
+        for f in [0, 1, 2]:
+            self.assertRaises(NewickError, Tree, error_nw2, format=f)
+
+        # Check errors derived from reading names with weird or illegal chars
+        base_nw = "((NAME1:0.813705,(NAME2:0.545,NAME3:0.411772)NAME6:0.137245)NAME5:0.976306,NAME4:0.074268);"
+        valid_names = ['[name]', '[name', '"name"', "'name'", "'name", 'name', '[]\'"&%$!*.']
+        error_names = ['error)', '(error', "erro()r",  ":error", "error:", "err:or", ",error", "error,"]
+        for ename in error_names:
+            #print ename, base_nw.replace('NAME2', ename)
+            self.assertRaises(NewickError, Tree, base_nw.replace('NAME2', ename), format=1)
+            if not ename.startswith(','):
+                #print ename, base_nw.replace('NAME6', ename)
+                self.assertRaises(NewickError, Tree, base_nw.replace('NAME6', ename), format=1)
+
+        for vname in valid_names:
+            expected_names = set(['NAME1', vname, 'NAME3', 'NAME4'])
+            #print set([n.name for n in Tree(base_nw.replace('NAME2', vname), format=1)])
+            self.assertEqual(set([n.name for n in Tree(base_nw.replace('NAME2', vname), format=1)]),
+                             expected_names)
+
+        # invalid NHX format
+        self.assertRaises(NewickError, Tree, "(((A, B), C)[&&NHX:nameI]);")
+        # unsupported newick stream
+        self.assertRaises(NewickError, Tree, [1,2,3])
+
+
+
+
+    def test_custom_formatting_formats(self):
+        """ test to change dist, name and support formatters """
+        t = Tree('((A:1.111111, B:2.222222)C:3.33333, D:4.44444);', format=1)
+        t.sort_descendants()
+
+        check = [[0, '((TEST-A:1.1,TEST-B:2.2)SUP-1.0:3.3,TEST-D:4.4);'],
+                 [1, '((TEST-A:1.1,TEST-B:2.2)TEST-C:3.3,TEST-D:4.4);'],
+                 [2, '((TEST-A:1.1,TEST-B:2.2)SUP-1.0:3.3,TEST-D:4.4);'],
+                 [3, '((TEST-A:1.1,TEST-B:2.2)TEST-C:3.3,TEST-D:4.4);'],
+                 [4, '((TEST-A:1.1,TEST-B:2.2),TEST-D:4.4);'],
+                 [5, '((TEST-A:1.1,TEST-B:2.2):3.3,TEST-D:4.4);'],
+                 [6, '((TEST-A,TEST-B):3.3,TEST-D);'],
+                 [7, '((TEST-A:1.1,TEST-B:2.2)TEST-C,TEST-D:4.4);'],
+                 [8, '((TEST-A,TEST-B)TEST-C,TEST-D);'],
+                 [9, '((TEST-A,TEST-B),TEST-D);']]
+
+        for f, result in check:
+            nw = t.write(format=f, dist_formatter="%0.1f", name_formatter="TEST-%s", support_formatter="SUP-%0.1f")
+            self.assertEqual(nw, result)
+
+    def test_tree_manipulation(self):
+        """ tests operations which modify tree topology """
+        nw_tree = "((Hola:1,Turtle:1.3)1:1,(A:0.3,B:2.4)1:0.43);"
+
+        # Manipulate Topologies
+        # Adding and removing nodes (add_child, remove_child,
+        # add_sister, remove_sister). The resulting newick tree should
+        # match the nw_tree defined before.
+        t = Tree()
+
+        remove_child_except = lambda: t.remove_child(t)
+        add_sister_except = lambda: t.add_sister()
+        self.assertRaises(TreeError, remove_child_except)
+        self.assertRaises(TreeError, add_sister_except)
+
+
+        c1 = t.add_child(dist=1, support=1)
+        c2 = t.add_child(dist=0.43, support=1)
+        n = TreeNode(name="Hola", dist=1, support=1)
+        _n = c1.add_child(n)
+        c3 = _n.add_sister(name="Turtle", dist="1.3")
+        c4 = c2.add_child(name="A", dist="0.3")
+
+        c5 = c2.add_child(name="todelete")
+        _c5 = c2.remove_child(c5)
+
+        c6 = c2.add_child(name="todelete")
+        _c6 = c4.remove_sister()
+
+        c7 = c2.add_child(name="B", dist=2.4)
+
+        self.assertEqual(nw_tree, t.write())
+        self.assertEqual(_c5, c5)
+        self.assertEqual(_c6, c6)
+        self.assertEqual(_n, n)
+
+        # Delete,
+        t = Tree("(((A, B), C)[&&NHX:name=I], (D, F)[&&NHX:name=J])[&&NHX:name=root];")
+        D = t.search_nodes(name="D")[0]
+        F = t.search_nodes(name="F")[0]
+        J = t.search_nodes(name="J")[0]
+        root = t.search_nodes(name="root")[0]
+        J.delete()
+        self.assertEqual(J.up, None)
+        self.assertEqual(J in t, False)
+        self.assertEqual(D.up, root)
+        self.assertEqual(F.up, root)
+
+        # Delete preventing non dicotomic
+        t = Tree('((((A:1,B:1):1,C:1):1,D:1):1,E:1);')
+        orig_dist = t.get_distance('A')
+        C = t&('C')
+        C.delete(preserve_branch_length=True)
+        self.assertEqual(orig_dist, t.get_distance('A'))
+
+        t = Tree('((((A:1,B:1):1,C:1):1,D:1):1,E:1);')
+        orig_dist = t.get_distance('A')
+        C = t&('C')
+        C.delete(preserve_branch_length=False)
+        self.assertEqual(orig_dist, t.get_distance('A')+1)
+
+        t = Tree('((((A:1,B:1):1,C:1):1,D:1):1,E:1);')
+        orig_dist = t.get_distance('A')
+        C = t&('C')
+        C.delete(prevent_nondicotomic=False)
+        self.assertEqual(orig_dist, t.get_distance('A'))
+
+        #detach
+        t = Tree("(((A, B)[&&NHX:name=H], C)[&&NHX:name=I], (D, F)[&&NHX:name=J])[&&NHX:name=root];")
+        D = t.search_nodes(name="D")[0]
+        F = t.search_nodes(name="F")[0]
+        J = t.search_nodes(name="J")[0]
+        root = t.search_nodes(name="root")[0]
+        J.detach()
+        self.assertEqual(J.up, None)
+        self.assertEqual(J in t, False)
+        self.assertEqual(set([n.name for n in t.iter_descendants()]),set(["A","B","C","I","H"]))
+
+        # sorting branches
+        t1 = Tree('((A,B),(C,D,E,F), (G,H,I));')
+        t1.ladderize()
+        self.assertEqual(t1.get_leaf_names(), [_ for _ in 'ABGHICDEF'])
+        t1.ladderize(direction=1)
+        self.assertEqual(t1.get_leaf_names(), [_ for _ in 'FEDCIHGBA'])
+        t1.sort_descendants()
+        self.assertEqual(t1.get_leaf_names(), [_ for _ in 'ABCDEFGHI'])
+
+        # prune
+        t1 = Tree("(((A, B), C)[&&NHX:name=I], (D, F)[&&NHX:name=J])[&&NHX:name=root];")
+        D1 = t1.search_nodes(name="D")[0]
+        t1.prune(["A","C", D1])
+        sys.stdout.flush()
+        self.assertEqual(set([n.name for n in t1.iter_descendants()]),  set(["A","C","D","I"]))
+
+        t1 = Tree("(((A, B), C)[&&NHX:name=I], (D, F)[&&NHX:name=J])[&&NHX:name=root];")
+        D1 = t1.search_nodes(name="D")[0]
+        t1.prune(["A","B"])
+        self.assertEqual( t1.write(), "(A:1,B:1);")
+
+        # test prune keeping internal nodes
+
+        t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+        #print t1.get_ascii()
+        t1.prune(['A', 'B', 'F', 'H'])
+        #print t1.get_ascii()
+        self.assertEqual(set([n.name for n in t1.traverse()]),
+                         set(['A', 'B', 'F', 'H', 'root']))
+
+        t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+        #print t1.get_ascii()
+        t1.prune(['A', 'B'])
+        #print t1.get_ascii()
+        self.assertEqual(set([n.name for n in t1.traverse()]),
+                         set(['A', 'B', 'root']))
+
+        t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+        #print t1.get_ascii()
+        t1.prune(['A', 'B', 'C'])
+        #print t1.get_ascii()
+        self.assertEqual(set([n.name for n in t1.traverse()]),
+                         set(['A', 'B', 'C', 'root']))
+
+        t1 = Tree('(((((A,B)C)D,E)F,G)H,(I,J)K)root;', format=1)
+        #print t1.get_ascii()
+        t1.prune(['A', 'B', 'I'])
+        #print t1.get_ascii()
+        self.assertEqual(set([n.name for n in t1.traverse()]),
+                         set(['A', 'B', 'C', 'I', 'root']))
+
+    def test_pruninig(self):
+        # test prune preserving distances
+        for i in range(10):
+            t = Tree()
+            t.populate(40, random_branches=True)
+            orig_nw = t.write()
+            distances = {}
+            for a in t.iter_leaves():
+                for b in t.iter_leaves():
+                    distances[(a,b)] = round(a.get_distance(b), 6)
+
+            to_keep = set(random.sample(t.get_leaves(), 6))
+            t.prune(to_keep, preserve_branch_length=True)
+            for a,b in distances:
+                if a in to_keep and b in to_keep:
+                    self.assertEqual(distances[(a,b)], round(a.get_distance(b), 6))
+
+        # Total number of nodes is correct (no single child nodes)
+        for x in range(10):
+            t_fuzzy = Tree("(((A,B)1, C)2,(D,E)3)root;", format=1)
+            t_fuzzy.sort_descendants()
+            orig_nw = t_fuzzy.write()
+            ref_nodes = t_fuzzy.get_leaves()
+            t_fuzzy.populate(10)
+            (t_fuzzy&'1').populate(3)
+            (t_fuzzy&'2').populate(5)
+            (t_fuzzy&'3').populate(5)
+            t_fuzzy.prune(ref_nodes)
+            t_fuzzy.sort_descendants()
+            self.assertEqual(orig_nw, t_fuzzy.write())
+            self.assertEqual(len(t_fuzzy.get_descendants()), (len(ref_nodes)*2)-2 )
+
+        # Total number of nodes is correct (no single child nodes)
+        t = Tree()
+        sample_size = 5
+        t.populate(1000)
+        sample = random.sample(t.get_leaves(), sample_size)
+        t.prune(sample)
+        self.assertEqual(len(t), sample_size)
+        self.assertEqual(len(t.get_descendants()), (sample_size*2)-2 )
+
+        # Test preserve branch dist when pruning
+        t = Tree()
+        t.populate(100, random_branches=True)
+        orig_leaves = t.get_leaves()
+        sample_size = 50
+        sample= random.sample(t.get_leaves(), sample_size)
+        matrix1 = ["%f" %t.get_distance(a, b) for (a,b) in itertools.product(sample, sample)]
+        t.prune(sample, preserve_branch_length=True)
+        matrix2 = ["%f" %t.get_distance(a, b) for (a,b)in itertools.product(sample, sample)]
+
+        self.assertEqual(matrix1, matrix2)
+        self.assertEqual(len(t.get_descendants()), (sample_size*2)-2 )
+
+    def test_resolve_polytomies(self):
+        # resolve polytomy
+        t = Tree("((a,a,a,a), (b,b,b,(c,c,c)));")
+        t.resolve_polytomy()
+        t.ladderize()
+        self.assertEqual(t.write(format=9), "((a,(a,(a,a))),(b,(b,(b,(c,(c,c))))));")
+
+        t = Tree("((((a,a,a,a))), (b,b,b,(c,c,c)));")
+        t.standardize()
+        t.ladderize()
+        self.assertEqual(t.write(format=9), "((a,(a,(a,a))),(b,(b,(b,(c,(c,c))))));")
+
+    def test_common_ancestors(self):
+        # getting nodes, get_childs, get_sisters, get_tree_root,
+        # get_common_ancestor, get_nodes_by_name
+        # get_descendants_by_name, is_leaf, is_root
+        t = Tree("(((A,B),C)[&&NHX:tag=common],D)[&&NHX:tag=root:name=root];")
+        self.assertEqual(t.get_sisters(), [])
+
+        A = t.search_nodes(name="A")[0]
+        B = t.search_nodes(name="B")[0]
+        C = t.search_nodes(name="C")[0]
+        root = (t&"root")
+        self.assertEqual("A", A.name)
+        test_not_found = lambda: t&'noffound'
+        self.assertRaises(TreeError, test_not_found)
+
+        self.assertEqual("common", A.get_common_ancestor(C).tag)
+        self.assertEqual("common", A.get_common_ancestor([C]).tag)
+        self.assertEqual("common", t.get_common_ancestor(A, C).tag)
+        self.assertEqual("common", A.get_common_ancestor(C, B).tag)
+        self.assertEqual(root, t.get_common_ancestor([A, "D"]))
+
+        self.assertEqual("root", A.get_tree_root().tag)
+        self.assertEqual("root", B.get_tree_root().tag)
+        self.assertEqual("root", C.get_tree_root().tag)
+
+        common = A.get_common_ancestor(C)
+        self.assertEqual("root", common.get_tree_root().tag)
+
+        self.assert_(common.get_tree_root().is_root())
+        self.assert_(not A.is_root())
+        self.assert_(A.is_leaf())
+        self.assert_(not A.get_tree_root().is_leaf())
+        self.assertRaises(TreeError, A.get_common_ancestor, Tree())
+
+
+    def test_getters_iters(self):
+
+        # Iter ancestors
+        t = Tree("(((((a,b)A,c)B,d)C,e)D,f)root;", format=1)
+        ancestor_names = [n.name for n in (t&"a").get_ancestors()]
+        self.assertEqual(ancestor_names, ["A", "B", "C", "D", "root"])
+        ancestor_names = [n.name for n in (t&"B").get_ancestors()]
+        self.assertEqual(ancestor_names, ["C", "D", "root"])
+
+
+        # Tree magic python features
+        t = Tree(nw_dflt)
+        self.assertEqual(len(t), 20)
+        self.assert_("Ddi0002240" in t)
+        self.assert_(t.children[0] in t)
+        for a in t:
+            self.assert_(a.name)
+
+        # Populate
+        t = Tree(nw_full)
+        prev_size= len(t)
+        t.populate(25)
+        self.assertEqual(len(t), prev_size+25)
+        for i in range(10):
+            t = Tree()
+            t.populate(100, reuse_names=False)
+            # Checks that all names are actually unique
+            self.assertEqual(len(set(t.get_leaf_names())), 100)
+
+        # Adding and removing features
+        t = Tree("(((A,B),C)[&&NHX:tag=common],D)[&&NHX:tag=root];")
+        A = t.search_nodes(name="A")[0]
+
+        # Check gettters and itters return the same
+        t = Tree(nw2_full)
+        self.assert_(t.get_leaf_names(), [name for name in  t.iter_leaf_names()])
+        self.assert_(t.get_leaves(), [name for name in  t.iter_leaves()])
+        self.assert_(t.get_descendants(), [n for n in  t.iter_descendants()])
+
+        self.assertEqual(set([n for n in t.traverse("preorder")]), \
+                             set([n for n in t.traverse("postorder")]))
+        self.assert_(t in set([n for n in t.traverse("preorder")]))
+
+        # Check order or visiting nodes
+
+        t = Tree("((3,4)2,(6,7)5)1;", format=1)
+        #t = Tree("(((A, B)C, (D, E)F)G, (H, (I, J)K)L)M;", format=1)
+        #postorder = [c for c in "ABCDEFGHIJKLM"]
+        #preorder =  [c for c in reversed(postorder)]
+        #levelorder = [c for c in "MGLCFHKABDEIJ"]
+        postorder = "3426751"
+        preorder = "1234567"
+        levelorder = "1253467"
+
+        self.assertEqual(preorder,
+                          ''.join([n.name for n in t.traverse("preorder")]))
+
+        self.assertEqual(postorder,
+                         ''.join([n.name for n in t.traverse("postorder")]))
+
+        self.assertEqual(levelorder,
+                         ''.join([n.name for n in t.traverse("levelorder")]))
+
+        # Swap childs
+        n = t.get_children()
+        t.swap_children()
+        n.reverse()
+        self.assertEqual(n, t.get_children())
+
+
+    def test_distances(self):
+        # Distances: get_distance, get_farthest_node,
+        # get_farthest_descendant, get_midpoint_outgroup
+        t = Tree("(((A:0.1, B:0.01):0.001, C:0.0001):1.0[&&NHX:name=I], (D:0.00001):0.000001[&&NHX:name=J]):2.0[&&NHX:name=root];")
+        A = t.search_nodes(name="A")[0]
+        B = t.search_nodes(name="B")[0]
+        C = t.search_nodes(name="C")[0]
+        D = t.search_nodes(name="D")[0]
+        I = t.search_nodes(name="I")[0]
+        J = t.search_nodes(name="J")[0]
+        root = t.search_nodes(name="root")[0]
+
+        self.assertEqual(A.get_common_ancestor(I).name, "I")
+        self.assertEqual(A.get_common_ancestor(D).name, "root")
+        self.assertEqual(A.get_distance(I), 0.101)
+        self.assertEqual(A.get_distance(B), 0.11)
+        self.assertEqual(A.get_distance(A), 0)
+        self.assertEqual(I.get_distance(I), 0)
+        self.assertEqual(A.get_distance(root), root.get_distance(A))
+
+        self.assertEqual(t.get_distance(A, root), root.get_distance(A))
+        self.assertEqual(t.get_distance(root, A), A.get_distance(root))
+
+        # Get_farthest_node, get_farthest_leaf
+        self.assertEqual(root.get_farthest_leaf(), (A,1.101) )
+        self.assertEqual(root.get_farthest_node(), (A,1.101) )
+        self.assertEqual(A.get_farthest_leaf(), (A, 0.0))
+        self.assertEqual(A.get_farthest_node(), (D, 1.101011))
+        self.assertEqual(I.get_farthest_node(), (D, 1.000011))
+
+        # Topology only distances
+        t = Tree('(((A:0.5, B:1.0):1.0, C:5.0):1, (D:10.0, F:1.0):2.0):20;')
+
+        self.assertEqual(t.get_closest_leaf(), (t&'A', 2.5))
+        self.assertEqual(t.get_farthest_leaf(), (t&'D', 12.0))
+        self.assertEqual(t.get_farthest_leaf(topology_only=True), (t&'A', 2.0))
+        self.assertEqual(t.get_closest_leaf(topology_only=True), (t&'C', 1.0))
+        self.assertEqual(t.get_distance(t), 0.0)
+        self.assertEqual(t.get_distance(t, topology_only=True), 0.0)
+        self.assertEqual(t.get_distance(t&'A', topology_only=True), 2.0)
+
+        self.assertEqual((t&'F').get_farthest_node(topology_only=True), (t&'A', 3.0))
+        self.assertEqual((t&'F').get_farthest_node(topology_only=False), (t&'D', 11.0))
+
+    def test_rooting(self):
+        # Test set_outgroup and get_midpoint_outgroup
+        t = Tree(nw2_full)
+        YGR028W = t.get_leaves_by_name("YGR028W")[0]
+        YGR138C = t.get_leaves_by_name("YGR138C")[0]
+        d1 = YGR138C.get_distance(YGR028W)
+        nodes = t.get_descendants()
+        t.set_outgroup(t.get_midpoint_outgroup())
+        o1, o2 = t.children[0], t.children[1]
+        nw_original = t.write()
+        d2 = YGR138C.get_distance(YGR028W)
+        self.assertEqual(d1, d2)
+        # Randomizing outgroup test: Can we recover original state
+        # after many manipulations?
+        for i in range(10):
+            for j in range(1000):
+                n = random.sample(nodes, 1)[0]
+                t.set_outgroup(n)
+            t.set_outgroup(t.get_midpoint_outgroup())
+            self.assertEqual(set([t.children[0], t.children[1]]), set([o1, o2]))
+            ##  I need to sort branches first
+            #self.assertEqual(t.write(), nw_original)
+        d3 = YGR138C.get_distance(YGR028W)
+        self.assertEqual(d1, d3)
+
+        t = Tree('(A,B,(C,D)E)root;', format=1);
+        t.sort_descendants()
+        nw_unrooted = t.write()
+        t.set_outgroup(t.get_common_ancestor('C', 'D'));
+        t.unroot()
+        t.sort_descendants()
+        self.assertEqual(nw_unrooted, t.write())
+
+        t = Tree('(A:10,B:1,(C:1,D:1)E:1)root;', format=1);
+        t.set_outgroup(t.get_midpoint_outgroup())
+        self.assertEqual(t.children[0].dist, 5.0)
+        self.assertEqual(t.children[1].dist, 5.0)
+
+
+    def test_tree_navigation(self):
+        t = Tree("(((A, B)H, C)I, (D, F)J)root;", format=1)
+        postorder = [n.name for n in t.traverse("postorder")]
+        preorder = [n.name for n in t.traverse("preorder")]
+        levelorder = [n.name for n in t.traverse("levelorder")]
+
+        self.assertEqual(postorder, ['A', 'B', 'H', 'C', 'I', 'D', 'F', 'J', 'root'])
+        self.assertEqual(preorder, ['root', 'I', 'H', 'A', 'B', 'C', 'J', 'D', 'F'])
+        self.assertEqual(levelorder, ['root', 'I', 'J', 'H', 'C', 'D', 'F', 'A', 'B'])
+        ancestors = [n.name for n in (t&"B").get_ancestors()]
+        self.assertEqual(ancestors, ["H", "I", "root"])
+        self.assertEqual(t.get_ancestors(), [])
+
+        # add something of is_leaf_fn etc...
+        custom_test = lambda x: x.name in set("JCH")
+        custom_leaves = t.get_leaves(is_leaf_fn=custom_test)
+        self.assertEqual(set([n.name for n in custom_leaves]), set("JHC"))
+
+        # Test cached content
+        t = Tree()
+        t.populate(20)
+        cache_name = t.get_cached_content(store_attr="name")
+        cache_node = t.get_cached_content()
+        self.assertEqual(cache_name[t], set(t.get_leaf_names()))
+        self.assertEqual(cache_node[t], set(t.get_leaves()))
+
+    def test_rooting(self):
+        """ Check branch support and distances after rooting """
+
+        t = Tree("((((a,b)1,c)2,i)3,(e,d)4)5;", format=1)
+        t.set_outgroup(t&"a")
+
+
+        t = Tree("(((a,b)2,c)x)9;", format=1)
+        t.set_outgroup(t&"a")
+
+        # Test branch support and distances after rooting
+        SIZE = 35
+        t = Tree()
+        t.populate(SIZE, reuse_names=False)
+        t.unroot()
+        for n in t.iter_descendants():
+            if n is not t:
+                n.support = random.random()
+                n.dist = random.random()
+        for n in t.children:
+            n.support = 0.999
+        t2 = t.copy()
+
+        names = set(t.get_leaf_names())
+        cluster_id2support = {}
+        cluster_id2dist = {}
+        for n in t.traverse():
+            cluster_names = set(n.get_leaf_names())
+            cluster_names2 = names - cluster_names
+            cluster_id = '_'.join(sorted(cluster_names))
+            cluster_id2 = '_'.join(sorted(cluster_names2))
+            cluster_id2support[cluster_id] = n.support
+            cluster_id2support[cluster_id2] = n.support
+
+            cluster_id2dist[cluster_id] = n.dist
+            cluster_id2dist[cluster_id2] = n.dist
+
+
+        for i in range(100):
+            outgroup = random.sample(t2.get_descendants(), 1)[0]
+            t2.set_outgroup(outgroup)
+            for n in t2.traverse():
+                cluster_names = set(n.get_leaf_names())
+                cluster_names2 = names - cluster_names
+                cluster_id = '_'.join(sorted(cluster_names))
+                cluster_id2 = '_'.join(sorted(cluster_names2))
+                self.assertEqual(cluster_id2support.get(cluster_id, None), n.support)
+                self.assertEqual(cluster_id2support.get(cluster_id2, None), n.support)
+                if n.up and n.up.up:
+                    self.assertEqual(cluster_id2dist.get(cluster_id, None), n.dist)
+
+        # Test unrooting
+        t = Tree()
+        t.populate(20)
+        t.unroot()
+
+        # Printing and info
+        text = t.get_ascii()
+
+        Tree().describe()
+        Tree('(a,b,c);').describe()
+        Tree('(a,(b,c));').describe()
+
+
+    def test_treeid(self):
+        t = Tree()
+        t.populate(50, random_branches=True)
+        orig_id = t.get_topology_id()
+        nodes = t.get_descendants()
+        for i in range(20):
+            for n in random.sample(nodes, 10):
+                n.swap_children()
+                self.assertEqual(t.get_topology_id(), orig_id)
+
+
+    def test_ultrametric(self):
+
+        # Convert tree to a ultrametric topology in which distance from
+        # leaf to root is always 100. Two strategies are available:
+        # balanced or fixed
+        t =  Tree()
+        t.populate(100, random_branches=True)
+        t.convert_to_ultrametric(100, "balanced")
+        self.assertEqual(set([round(t.get_distance(n), 6) for n in t]), set([100.0]))
+
+        t =  Tree()
+        t.populate(100, random_branches=True)
+        t.convert_to_ultrametric(100, "fixed")
+        self.assertEqual(set([round(t.get_distance(n), 6) for n in t]), set([100.0]))
+
+        t =  Tree()
+        t.populate(100, random_branches=True)
+        t.convert_to_ultrametric(100, "balanced")
+        self.assertEqual(set([round(t.get_distance(n), 6) for n in t]), set([100.0]))
+
+
+    def test_expand_polytomies_rf(self):
+        gtree = Tree('((a:1, (b:1, (c:1, d:1):1):1), (e:1, (f:1, g:1):1):1);')
+        ref1 = Tree('((a:1, (b:1, c:1, d:1):1):1, (e:1, (f:1, g:1):1):1);')
+        ref2 = Tree('((a:1, (b:1, c:1, d:1):1):1, (e:1, f:1, g:1):1);')
+        for ref in [ref1, ref2]:
+            #print gtree, ref
+            gtree.robinson_foulds(ref, expand_polytomies=True)[0]
+
+
+        gtree = Tree('((g, h), (a, (b, (c, (d,( e, f))))));')
+        ref3 = Tree('((a, b, c, (d, e, f)), (g, h));')
+        ref4 = Tree('((a, b, c, d, e, f), (g, h));')
+        ref5 = Tree('((a, b, (c, d, (e, f))), (g, h));')
+
+        for ref in [ref3, ref4, ref5]:
+            #print gtree, ref
+            gtree.robinson_foulds(ref, expand_polytomies=True, polytomy_size_limit=8)[0]
+
+
+        gtree = Tree('((g, h), (a, b, (c, d, (e, f))));')
+        ref6 = Tree('((a, b, (c, d, e, f)), (g, h));')
+        ref7 = Tree('((a, (b, (c, d, e, f))), (g, h));')
+        ref8 = Tree('((a, b, c, (d, e, f)), (g, h));')
+        ref9 = Tree('((d, b, c, (a, e, f)), (g, h));')
+
+        for ref in [ref6, ref7, ref8, ref9]:
+            #print gtree, ref
+            gtree.robinson_foulds(ref, expand_polytomies=True)[0]
+            #print "REF GOOD", gtree.robinson_foulds(ref, expand_polytomies=True, polytomy_size_limit=8)[0]
+
+        gtree = Tree('((g, h), ((a, b), (c, d), (e, f)));')
+        ref10 = Tree('((g, h), ((a, c), ((b, d), (e, f))));')
+
+        for ref in [ref10]:
+            #print gtree, ref
+            gtree.robinson_foulds(ref, expand_polytomies=True, polytomy_size_limit=8)[0]
+
+    def test_tree_compare(self):
+        def _astuple(d):
+            keynames = ["norm_rf", "rf", "max_rf", "ref_edges_in_source", "source_edges_in_ref", "effective_tree_size", "source_subtrees", "treeko_dist"]
+            # print
+            # print "ref", len(d["ref_edges"])
+            # print "src", len(d["source_edges"])
+            # print "common", len(d["common_edges"]), d['common_edges']
+            # print d["rf"], d["max_rf"]
+
+            return tuple([d[v] for v in keynames])
+
+
+        ref1 = Tree('((((A, B)0.91, (C, D))0.9, (E,F)0.96), (G, H));')
+        ref2 = Tree('(((A, B)0.91, (C, D))0.9, (E,F)0.96);')
+        s1 = Tree('(((A, B)0.9, (C, D))0.9, (E,F)0.9);')
+
+
+        small = Tree("((A, B), C);")
+        # RF unrooted in too small trees for rf, but with at least one internal node
+        self.assertEqual(_astuple(small.compare(ref1, unrooted=True)),
+                         ("NA", "NA", 0.0, 1.0, 1.0, 3, 1, "NA"))
+
+        small = Tree("(A, B);")
+        # RF unrooted in too small trees
+        self.assertEqual(_astuple(small.compare(ref1, unrooted=True)),
+                         ("NA", "NA", 0.0, "NA", "NA", 2, 1, "NA"))
+        
+        small = Tree("(A, B);")
+        # RF unrooted in too small trees
+        self.assertEqual(_astuple(small.compare(ref1, unrooted=False)),
+                         ("NA", "NA", 0.0, "NA", "NA", 2, 1, "NA"))
+        
+        # identical trees, 8 rooted partitions in total (4 an 4), and 6 unrooted
+        self.assertEqual(_astuple(s1.compare(ref1)),
+                         (0.0, 0.0, 8, 1.0, 1.0, 6, 1, "NA"))
+
+        self.assertEqual(_astuple(s1.compare(ref1, unrooted=True)),
+                         (0.0, 0.0, 6, 1.0, 1.0, 6, 1, "NA"))
+
+        # The same stats should be return discarding branches, as the topology
+        # is still identical, but branches used should be different
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_source=0.99, min_support_ref=.99)),
+                         (0.0, 0.0, 2, 1.0, 1.0, 6, 1, "NA"))
+
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_source=0.99, min_support_ref=.99, unrooted=True)),
+                         (0.0, 0.0, 2, 1.0, 1.0, 6, 1, "NA"))
+
+
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_source=0.99)),
+                         (0.0, 0.0, 5, 1/4., 1.0, 6, 1, "NA"))
+
+
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_source=0.99, unrooted=True)),
+                         (0.0, 0.0, 4, 6/8., 1.0, 6, 1, "NA"))
+
+
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_ref=0.99)),
+                         (0.0, 0.0, 5, 1.0, 1/4., 6, 1, "NA"))
+
+
+        self.assertEqual(_astuple(s1.compare(ref1, min_support_ref=0.99, unrooted=True)),
+                         (0.0, 0.0, 4, 1.0, 6/8., 6, 1, "NA"))
+
+
+        # Three partitions different
+        s2 = Tree('(((A, E)0.9, (C, D))0.98, (B,F)0.95);')
+        self.assertEqual(_astuple(s2.compare(ref1)),
+                         (6/8., 6, 8, 1/4., 1/4., 6, 1, "NA"))
+
+        self.assertEqual(_astuple(s2.compare(ref1, unrooted=True)),
+                         (4/6., 4, 6, 6/8., 6/8., 6, 1, "NA"))
+
+        # lets discard one branch from source tree.  there are 4 valid edges in
+        # ref, 3 in source there is only 2 edges in common, CD and root (which
+        # should be discounted for % of found branches)
+        self.assertEqual(_astuple(s2.compare(ref1, min_support_source=0.95)),
+                         (5/7., 5, 7, 1/4., 1/3., 6, 1, "NA"))
+
+        # similar in unrooted, but we don not need to discount root edges
+        self.assertEqual(_astuple(s2.compare(ref1, min_support_source=0.95, unrooted=True)),
+                         (3/5., 3, 5, 6/8., 6/7., 6, 1, "NA"))
+
+
+        # totally different trees
+        s3 = Tree('(((A, C)0.9, (E, D))0.98, (B,F)0.95);')
+        self.assertEqual(_astuple(s3.compare(ref1)),
+                         (1.0, 8, 8, 0.0, 0.0, 6, 1, "NA"))
+
+
+    def test_tree_diff(self):
+        # this is the result of 100 Ktreedist runs on random trees, using rooted
+        # and unrooted topologies. ETE should provide the same RF result
+        samples = [
+        [28, True, '(((z,y),(x,(w,v))),(u,t),((s,r),((q,(p,o)),((n,(m,(l,(k,j)))),(i,(h,g))))));', '(((k,(j,(i,(h,g)))),z),(y,x),((w,v),((u,(t,(s,(r,q)))),(p,(o,(n,(m,l)))))));'],
+        [28, False, '(((t,s),((r,(q,p)),(o,n))),(((m,(l,(k,j))),(i,(h,g))),(z,(y,(x,(w,(v,u)))))));', '((((k,(j,i)),((h,g),z)),((y,(x,w)),((v,(u,t)),(s,(r,(q,p)))))),((o,n),(m,l)));'],
+        [18, True, '(((v,(u,(t,s))),((r,(q,(p,o))),((n,m),(l,k)))),(j,(i,(h,g))),(z,(y,(x,w))));', '(((z,(y,(x,w))),(v,(u,(t,s)))),((r,(q,p)),(o,(n,m))),((l,(k,(j,i))),(h,g)));'],
+        [26, True, '(((l,k),(j,i)),((h,g),(z,(y,(x,w)))),((v,(u,(t,(s,(r,q))))),((p,o),(n,m))));', '(((p,o),((n,(m,l)),(k,j))),((i,(h,g)),(z,y)),((x,(w,v)),((u,(t,s)),(r,q))));'],
+        [24, True, '(((o,(n,m)),(l,(k,(j,(i,(h,g)))))),(z,(y,x)),((w,v),((u,(t,(s,r))),(q,p))));', '(((t,(s,(r,(q,(p,o))))),(n,m)),((l,k),(j,(i,(h,g)))),((z,y),((x,w),(v,u))));'],
+        [24, True, '(((y,(x,(w,v))),(u,t)),((s,(r,(q,(p,o)))),(n,m)),((l,k),((j,(i,(h,g))),z)));', '(((z,(y,(x,w))),(v,(u,t))),(s,(r,(q,(p,(o,(n,(m,(l,k)))))))),(j,(i,(h,g))));'],
+        [28, False, '(((p,(o,(n,(m,l)))),((k,(j,i)),(h,g))),((z,y),((x,(w,(v,u))),(t,(s,(r,q))))));', '((((t,(s,r)),(q,p)),((o,n),(m,(l,(k,(j,i)))))),(((h,g),(z,(y,(x,w)))),(v,u)));'],
+        [28, True, '((((i,(h,g)),z),(y,x)),((w,v),((u,(t,(s,r))),(q,p))),((o,n),(m,(l,(k,j)))));', '((((h,g),z),(y,x)),(w,(v,u)),((t,s),((r,(q,p)),((o,(n,m)),(l,(k,(j,i)))))));'],
+        [28, True, '(((x,(w,(v,(u,(t,(s,(r,(q,(p,o))))))))),((n,(m,l)),(k,(j,i)))),(h,g),(z,y));', '(((u,t),(s,r)),((q,p),(o,(n,m))),(((l,(k,(j,i))),((h,g),(z,(y,x)))),(w,v)));'],
+        [22, False, '(((x,(w,(v,u))),((t,(s,r)),(q,p))),((o,(n,(m,l))),((k,j),((i,(h,g)),(z,y)))));', '(((z,(y,(x,(w,(v,u))))),(t,(s,r))),((q,(p,(o,(n,m)))),((l,k),(j,(i,(h,g))))));'],
+        [26, True, '((z,(y,(x,w))),(v,(u,(t,s))),((r,(q,(p,(o,(n,m))))),((l,k),(j,(i,(h,g))))));', '(((v,(u,t)),((s,r),((q,(p,o)),(n,(m,l))))),((k,j),((i,(h,g)),z)),(y,(x,w)));'],
+        [34, False, '((((i,(h,g)),(z,(y,x))),(w,v)),((u,t),((s,r),((q,(p,(o,n))),(m,(l,(k,j)))))));', '(((p,(o,(n,(m,(l,k))))),((j,i),(h,g))),(z,(y,(x,(w,(v,(u,(t,(s,(r,q))))))))));'],
+        [30, False, '(((i,(h,g)),(z,y)),((x,w),((v,(u,(t,(s,(r,q))))),(p,(o,(n,(m,(l,(k,j)))))))));', '((((l,k),(j,(i,(h,g)))),(z,(y,(x,w)))),((v,u),((t,s),((r,(q,p)),(o,(n,m))))));'],
+        [26, False, '(((v,(u,t)),((s,(r,q)),((p,o),((n,m),((l,k),(j,i)))))),((h,g),(z,(y,(x,w)))));', '(((y,(x,(w,v))),(u,(t,s))),(((r,q),((p,o),(n,(m,(l,k))))),((j,i),((h,g),z))));'],
+        [20, False, '(((u,(t,s)),(r,q)),(((p,o),((n,m),((l,k),((j,i),((h,g),z))))),(y,(x,(w,v)))));', '((((u,t),(s,r)),(((q,p),(o,(n,m))),(((l,k),(j,i)),((h,g),z)))),((y,x),(w,v)));'],
+        [20, True, '(((y,x),(w,v)),((u,(t,s)),((r,q),(p,(o,(n,(m,(l,k))))))),((j,(i,(h,g))),z));', '(((r,q),((p,o),(n,(m,(l,(k,j)))))),((i,(h,g)),(z,(y,(x,(w,v))))),(u,(t,s)));'],
+        [24, True, '((((k,(j,i)),(h,g)),((z,(y,(x,w))),((v,(u,t)),(s,r)))),(q,(p,(o,n))),(m,l));', '((((s,r),((q,p),(o,(n,m)))),((l,k),((j,i),((h,g),z)))),(y,x),(w,(v,(u,t))));'],
+        [18, True, '((w,(v,(u,(t,s)))),(r,q),((p,(o,n)),((m,(l,k)),((j,(i,(h,g))),(z,(y,x))))));', '(((y,x),((w,v),(u,(t,s)))),((r,(q,(p,(o,n)))),(m,l)),((k,j),((i,(h,g)),z)));'],
+        [26, True, '(((j,(i,(h,g))),(z,(y,(x,(w,(v,(u,t))))))),(s,r),((q,p),((o,(n,m)),(l,k))));', '(((s,(r,(q,(p,(o,(n,(m,l))))))),(k,j)),((i,(h,g)),(z,y)),((x,(w,v)),(u,t)));'],
+        [30, True, '((((r,(q,(p,(o,n)))),((m,l),(k,(j,i)))),((h,g),z)),(y,(x,(w,v))),(u,(t,s)));', '(((u,t),(s,r)),((q,p),(o,(n,(m,(l,(k,j)))))),(((i,(h,g)),(z,(y,x))),(w,v)));'],
+        [30, False, '((((m,(l,k)),(j,i)),(((h,g),(z,y)),(x,w))),((v,u),(t,(s,(r,(q,(p,(o,n))))))));', '(((u,t),((s,(r,q)),(p,(o,(n,(m,(l,k))))))),((j,(i,(h,g))),(z,(y,(x,(w,v))))));'],
+        [22, False, '(((k,(j,i)),(h,g)),((z,(y,x)),((w,(v,(u,(t,(s,r))))),((q,(p,(o,n))),(m,l)))));', '(((w,(v,u)),((t,(s,r)),((q,p),((o,(n,(m,l))),((k,(j,i)),((h,g),z)))))),(y,x));'],
+        [26, False, '(((x,(w,(v,(u,(t,s))))),(r,q)),((p,(o,(n,(m,l)))),((k,j),((i,(h,g)),(z,y)))));', '(((o,(n,m)),(l,(k,j))),(((i,(h,g)),(z,y)),((x,w),((v,u),((t,(s,r)),(q,p))))));'],
+        [28, True, '(((x,(w,v)),(u,(t,s))),((r,(q,(p,(o,(n,m))))),(l,(k,(j,(i,(h,g)))))),(z,y));', '((((i,(h,g)),(z,(y,x))),((w,v),((u,t),(s,(r,(q,p)))))),(o,n),((m,l),(k,j)));'],
+        [20, False, '((((m,l),(k,(j,(i,(h,g))))),(z,y)),((x,(w,(v,(u,(t,s))))),(r,(q,(p,(o,n))))));', '((((m,l),((k,(j,i)),(h,g))),(z,(y,(x,(w,v))))),((u,t),(s,(r,(q,(p,(o,n)))))));'],
+        [26, True, '(((o,(n,(m,(l,k)))),(j,i)),((h,g),(z,y)),((x,(w,(v,(u,(t,s))))),(r,(q,p))));', '((((t,(s,(r,(q,(p,(o,n)))))),(m,(l,k))),((j,i),(h,g))),(z,(y,x)),(w,(v,u)));'],
+        [22, False, '((((p,o),((n,m),((l,k),(j,i)))),((h,g),(z,y))),((x,(w,(v,u))),((t,s),(r,q))));', '((((v,(u,(t,s))),(r,q)),((p,o),((n,m),(l,k)))),(((j,i),(h,g)),(z,(y,(x,w)))));'],
+        [28, False, '((((r,(q,(p,(o,n)))),(m,(l,k))),(((j,i),(h,g)),((z,y),(x,w)))),((v,u),(t,s)));', '((((k,j),((i,(h,g)),(z,y))),(x,w)),(((v,(u,t)),(s,r)),((q,p),((o,n),(m,l)))));'],
+        [20, True, '((((q,(p,o)),(n,m)),((l,k),((j,i),(h,g)))),(z,(y,x)),((w,v),(u,(t,(s,r)))));', '((((l,(k,(j,i))),(h,g)),((z,y),(x,(w,v)))),(u,t),((s,(r,(q,(p,o)))),(n,m)));'],
+        [28, False, '(((t,(s,r)),(q,(p,o))),(((n,(m,(l,k))),(j,(i,(h,g)))),((z,y),(x,(w,(v,u))))));', '(((w,(v,u)),(t,s)),(((r,(q,p)),(o,n)),(((m,l),((k,j),((i,(h,g)),z))),(y,x))));'],
+        [24, True, '((((h,g),(z,y)),((x,(w,(v,u))),(t,(s,(r,q))))),(p,o),((n,m),((l,k),(j,i))));', '(((t,s),((r,(q,p)),((o,(n,(m,l))),((k,j),(i,(h,g)))))),(z,y),(x,(w,(v,u))));'],
+        [20, True, '(((p,o),(n,(m,(l,(k,(j,i)))))),((h,g),z),((y,(x,w)),((v,u),(t,(s,(r,q))))));', '(((y,(x,w)),(v,(u,t))),((s,r),(q,p)),((o,(n,m)),((l,(k,(j,i))),((h,g),z))));'],
+        [32, True, '((((s,(r,q)),((p,(o,n)),(m,(l,k)))),((j,(i,(h,g))),(z,y))),(x,w),(v,(u,t)));', '(((u,(t,(s,r))),((q,(p,o)),((n,(m,l)),(k,(j,i))))),((h,g),(z,(y,x))),(w,v));'],
+        [26, True, '(((z,(y,x)),(w,(v,(u,t)))),(s,(r,(q,(p,(o,n))))),((m,l),(k,(j,(i,(h,g))))));', '(((u,t),((s,r),((q,p),((o,n),((m,(l,k)),((j,i),((h,g),z))))))),(y,x),(w,v));'],
+        [10, True, '(((p,o),((n,m),((l,(k,(j,i))),((h,g),(z,y))))),(x,(w,(v,u))),((t,s),(r,q)));', '((((n,m),((l,(k,(j,i))),((h,g),(z,y)))),(x,w)),(v,(u,(t,(s,(r,q))))),(p,o));'],
+        [30, True, '((((h,g),z),((y,x),((w,v),(u,t)))),(s,r),((q,p),((o,n),((m,l),(k,(j,i))))));', '((((v,(u,(t,(s,r)))),(q,(p,o))),((n,m),((l,k),(j,(i,(h,g)))))),(z,y),(x,w));'],
+        [30, False, '(((q,(p,o)),((n,m),((l,(k,(j,(i,(h,g))))),(z,y)))),((x,(w,v)),(u,(t,(s,r)))));', '((((t,s),((r,q),((p,o),(n,m)))),((l,k),(j,i))),(((h,g),z),((y,(x,w)),(v,u))));'],
+        [24, False, '(((p,o),(n,m)),(((l,(k,(j,i))),(h,g)),((z,y),((x,w),((v,u),(t,(s,(r,q))))))));', '((x,(w,v)),((u,(t,(s,(r,q)))),((p,(o,(n,(m,(l,(k,(j,(i,(h,g))))))))),(z,y))));'],
+        [28, False, '(((z,y),((x,w),((v,u),(t,s)))),((r,(q,(p,(o,(n,m))))),((l,k),((j,i),(h,g)))));', '((((s,(r,q)),((p,o),((n,(m,l)),(k,(j,(i,(h,g))))))),(z,y)),((x,w),(v,(u,t))));'],
+        [24, False, '((((o,n),((m,l),((k,(j,i)),(h,g)))),(z,(y,x))),((w,(v,(u,(t,(s,r))))),(q,p)));', '(((q,(p,(o,(n,m)))),((l,(k,j)),(i,(h,g)))),(z,(y,(x,(w,(v,(u,(t,(s,r)))))))));'],
+        [22, True, '(((p,(o,(n,m))),((l,k),((j,i),((h,g),(z,y))))),(x,w),((v,u),((t,s),(r,q))));', '(((u,(t,(s,(r,(q,(p,(o,(n,m)))))))),((l,k),((j,i),((h,g),(z,(y,x)))))),w,v);'],
+        [28, False, '((((r,q),((p,o),(n,(m,l)))),((k,(j,i)),(h,g))),((z,y),((x,(w,v)),(u,(t,s)))));', '(((h,g),z),((y,x),((w,v),((u,t),((s,(r,(q,(p,(o,(n,m)))))),(l,(k,(j,i))))))));'],
+        [30, True, '((((h,g),z),((y,(x,(w,(v,u)))),((t,s),((r,(q,(p,o))),(n,m))))),(l,k),(j,i));', '((((o,n),((m,(l,(k,j))),((i,(h,g)),z))),(y,(x,(w,v)))),(u,(t,s)),(r,(q,p)));'],
+        [30, True, '(((v,u),(t,(s,(r,(q,p))))),((o,(n,m)),((l,(k,j)),((i,(h,g)),z))),(y,(x,w)));', '((((m,(l,k)),((j,i),(h,g))),(z,y)),(x,w),((v,(u,(t,(s,(r,q))))),(p,(o,n))));'],
+        [26, True, '(((q,p),((o,(n,(m,l))),(k,(j,i)))),((h,g),z),((y,x),((w,(v,(u,t))),(s,r))));', '((((j,(i,(h,g))),(z,(y,x))),((w,v),(u,t))),(s,(r,q)),((p,o),(n,(m,(l,k)))));'],
+        [20, False, '((((o,(n,m)),((l,k),((j,i),((h,g),z)))),(y,x)),(((w,v),(u,t)),((s,r),(q,p))));', '((((j,i),((h,g),z)),((y,x),(w,(v,(u,(t,(s,r))))))),((q,p),((o,n),(m,(l,k)))));'],
+        [30, False, '(((x,w),(v,(u,(t,(s,(r,(q,(p,(o,(n,m)))))))))),((l,k),((j,(i,(h,g))),(z,y))));', '(((m,l),((k,(j,(i,(h,g)))),z)),((y,(x,(w,(v,(u,t))))),((s,r),((q,p),(o,n)))));'],
+        [32, True, '((((y,x),(w,v)),((u,(t,(s,r))),(q,(p,o)))),((n,m),(l,(k,j))),((i,(h,g)),z));', '(((m,l),(k,(j,i))),((h,g),z),((y,(x,w)),((v,u),((t,s),(r,(q,(p,(o,n))))))));'],
+        [28, True, '(((v,u),((t,(s,(r,(q,p)))),((o,n),((m,l),(k,(j,(i,(h,g)))))))),(z,y),(x,w));', '((((n,m),((l,k),((j,i),((h,g),(z,(y,(x,(w,(v,u))))))))),(t,s)),(r,q),(p,o));'],
+        [32, False, '(((r,(q,p)),(o,n)),(((m,(l,k)),(j,i)),(((h,g),(z,y)),((x,w),((v,u),(t,s))))));', '(((y,x),((w,v),(u,(t,(s,r))))),(((q,(p,(o,n))),(m,l)),((k,(j,(i,(h,g)))),z)));'],
+        [20, True, '(((w,v),((u,(t,(s,r))),((q,p),((o,(n,(m,l))),((k,j),((i,(h,g)),z)))))),y,x);', '(((w,v),((u,t),(s,(r,q)))),((p,o),((n,(m,l)),(k,j))),((i,(h,g)),(z,(y,x))));'],
+        [24, False, '(((x,(w,v)),((u,(t,s)),(r,q))),(((p,o),((n,(m,l)),(k,j))),((i,(h,g)),(z,y))));', '((((i,(h,g)),z),((y,x),(w,v))),((u,(t,s)),((r,(q,(p,(o,(n,m))))),(l,(k,j)))));'],
+        [22, False, '((((k,(j,(i,(h,g)))),(z,(y,x))),((w,v),(u,t))),((s,(r,(q,(p,o)))),(n,(m,l))));', '(((w,v),(u,(t,(s,(r,(q,(p,o))))))),(((n,m),((l,(k,(j,i))),((h,g),z))),(y,x)));'],
+        [28, True, '(((x,w),((v,u),((t,s),(r,(q,p))))),((o,n),(m,l)),((k,(j,i)),((h,g),(z,y))));', '((((p,o),(n,m)),((l,(k,(j,i))),((h,g),z))),(y,(x,(w,v))),((u,t),(s,(r,q))));'],
+        [30, False, '(((q,p),((o,(n,(m,l))),((k,(j,(i,(h,g)))),z))),((y,x),((w,(v,u)),(t,(s,r)))));', '((((m,(l,k)),((j,(i,(h,g))),z)),(y,(x,w))),((v,(u,(t,(s,(r,q))))),(p,(o,n))));'],
+        [30, False, '(((y,x),((w,(v,(u,(t,(s,r))))),(q,p))),((o,(n,(m,(l,(k,(j,i)))))),((h,g),z)));', '((((t,(s,(r,q))),((p,(o,(n,(m,l)))),((k,(j,i)),(h,g)))),(z,y)),((x,w),(v,u)));'],
+        [20, False, '(((u,(t,s)),(r,(q,(p,(o,(n,(m,(l,(k,j))))))))),(((i,(h,g)),z),(y,(x,(w,v)))));', '(((o,n),(m,(l,(k,j)))),(((i,(h,g)),(z,y)),((x,(w,v)),((u,(t,(s,r))),(q,p)))));'],
+        [26, False, '(((t,s),((r,(q,(p,(o,n)))),(m,(l,k)))),(((j,i),((h,g),z)),((y,(x,w)),(v,u))));', '(((r,(q,(p,o))),((n,(m,(l,k))),((j,i),(h,g)))),((z,(y,(x,(w,v)))),(u,(t,s))));'],
+        [28, True, '((((r,q),((p,(o,(n,(m,l)))),((k,(j,i)),(h,g)))),(z,(y,(x,w)))),(v,u),(t,s));', '(((x,(w,(v,(u,(t,s))))),(r,(q,(p,o)))),(n,m),((l,k),((j,(i,(h,g))),(z,y))));'],
+        [28, False, '(((t,s),((r,(q,p)),((o,n),(m,(l,(k,(j,i))))))),(((h,g),(z,y)),(x,(w,(v,u)))));', '((((h,g),(z,(y,(x,(w,v))))),(u,(t,(s,r)))),((q,(p,(o,(n,m)))),(l,(k,(j,i)))));'],
+        [26, True, '((((q,(p,o)),((n,m),((l,(k,(j,i))),(h,g)))),(z,(y,x))),(w,v),(u,(t,(s,r))));', '(((y,x),(w,(v,u))),((t,(s,r)),((q,p),(o,n))),((m,(l,k)),((j,(i,(h,g))),z)));'],
+        [28, False, '((((q,(p,(o,n))),((m,(l,k)),((j,(i,(h,g))),z))),(y,x)),((w,(v,(u,t))),(s,r)));', '(((z,(y,x)),(w,v)),(((u,t),((s,(r,(q,p))),((o,n),(m,l)))),((k,(j,i)),(h,g))));'],
+        [22, True, '(((x,w),((v,(u,(t,s))),(r,q))),((p,(o,n)),((m,(l,k)),(j,(i,(h,g))))),(z,y));', '((((j,(i,(h,g))),(z,(y,x))),(w,(v,u))),((t,s),((r,q),(p,o))),((n,m),(l,k)));'],
+        [26, False, '((((n,(m,l)),(k,j)),(((i,(h,g)),(z,y)),((x,w),((v,u),(t,s))))),((r,q),(p,o)));', '(((v,u),(t,s)),(((r,(q,(p,(o,n)))),((m,(l,k)),(j,i))),((h,g),(z,(y,(x,w))))));'],
+        [32, False, '((((n,(m,(l,(k,j)))),((i,(h,g)),z)),(y,x)),((w,v),((u,(t,(s,r))),(q,(p,o)))));', '((((v,u),(t,(s,(r,(q,p))))),((o,(n,(m,(l,k)))),(j,(i,(h,g))))),((z,y),(x,w)));'],
+        [20, False, '((((q,(p,(o,n))),(m,l)),((k,(j,(i,(h,g)))),z)),((y,(x,(w,(v,(u,t))))),(s,r)));', '(((w,(v,(u,t))),(s,r)),(((q,p),(o,n)),(((m,l),(k,(j,i))),((h,g),(z,(y,x))))));'],
+        [20, True, '(((z,(y,(x,w))),(v,u)),((t,(s,r)),(q,(p,o))),((n,(m,l)),((k,(j,i)),(h,g))));', '((((q,(p,(o,n))),(m,l)),((k,j),(i,(h,g)))),(z,y),((x,w),((v,u),(t,(s,r)))));'],
+        [34, False, '(((w,(v,(u,(t,(s,(r,q)))))),(p,o)),(((n,m),(l,(k,j))),((i,(h,g)),(z,(y,x)))));', '(((y,(x,(w,(v,u)))),(t,(s,r))),(((q,(p,(o,(n,(m,(l,k)))))),(j,i)),((h,g),z)));'],
+        [26, False, '(((y,x),(w,(v,(u,t)))),(((s,r),((q,(p,o)),(n,(m,l)))),((k,(j,(i,(h,g)))),z)));', '(((s,(r,(q,(p,o)))),(n,m)),(((l,k),((j,i),((h,g),(z,(y,(x,w)))))),(v,(u,t))));'],
+        [30, False, '(((v,(u,t)),((s,r),((q,p),((o,(n,(m,(l,k)))),(j,i))))),(((h,g),z),(y,(x,w))));', '(((y,(x,(w,v))),((u,(t,s)),(r,(q,(p,o))))),((n,(m,l)),((k,(j,i)),((h,g),z))));'],
+        [26, False, '(((y,x),(w,v)),(((u,t),((s,(r,(q,p))),(o,n))),((m,(l,k)),((j,i),((h,g),z)))));', '((((s,(r,q)),((p,(o,n)),((m,l),(k,(j,i))))),((h,g),z)),((y,(x,w)),(v,(u,t))));'],
+        [22, True, '(((w,v),(u,t)),((s,r),((q,p),((o,(n,m)),((l,k),((j,i),(h,g)))))),(z,(y,x)));', '(((z,y),(x,(w,(v,u)))),(t,(s,r)),((q,(p,o)),((n,m),((l,(k,(j,i))),(h,g)))));'],
+        [28, False, '(((y,x),(w,(v,(u,t)))),(((s,(r,q)),((p,o),(n,(m,(l,k))))),((j,i),((h,g),z))));', '((((i,(h,g)),(z,(y,x))),((w,(v,u)),(t,s))),((r,q),((p,o),((n,m),(l,(k,j))))));'],
+        [26, False, '(((v,(u,(t,s))),(r,(q,p))),(((o,n),((m,(l,(k,j))),((i,(h,g)),(z,y)))),(x,w)));', '(((q,p),((o,n),((m,l),((k,j),((i,(h,g)),z))))),(y,(x,(w,(v,(u,(t,(s,r))))))));'],
+        [26, True, '(((t,(s,(r,q))),((p,o),((n,(m,l)),((k,j),((i,(h,g)),z))))),(y,x),(w,(v,u)));', '(((z,y),(x,w)),(v,u),((t,(s,r)),((q,(p,(o,(n,(m,l))))),((k,(j,i)),(h,g)))));'],
+        [30, True, '(((w,(v,(u,(t,(s,r))))),(q,p)),((o,(n,m)),((l,k),(j,i))),(((h,g),z),(y,x)));', '((((p,o),(n,(m,(l,(k,(j,(i,(h,g)))))))),(z,(y,x))),(w,(v,u)),((t,s),(r,q)));'],
+        [26, True, '((((i,(h,g)),(z,y)),(x,w)),((v,u),((t,(s,r)),(q,p))),((o,n),(m,(l,(k,j)))));', '(((l,k),((j,i),((h,g),(z,y)))),(x,w),((v,u),((t,s),((r,(q,(p,o))),(n,m)))));'],
+        [26, False, '(((x,w),((v,(u,(t,s))),((r,(q,p)),((o,(n,(m,(l,k)))),((j,i),(h,g)))))),(z,y));', '(((p,(o,(n,m))),(l,k)),(((j,i),(h,g)),((z,y),((x,(w,v)),((u,t),(s,(r,q)))))));'],
+        [24, True, '(((x,w),((v,(u,t)),(s,r))),((q,p),(o,(n,(m,(l,k))))),((j,i),((h,g),(z,y))));', '(((h,g),(z,y)),(x,(w,(v,u))),((t,(s,r)),(q,(p,(o,(n,(m,(l,(k,(j,i))))))))));'],
+        [24, True, '(((y,x),(w,v)),((u,t),((s,r),((q,p),((o,n),(m,(l,k)))))),((j,(i,(h,g))),z));', '((((r,(q,p)),(o,(n,(m,(l,(k,(j,(i,(h,g))))))))),(z,y)),(x,(w,v)),(u,(t,s)));'],
+        [28, False, '(((y,(x,(w,v))),((u,t),((s,(r,q)),((p,(o,n)),((m,l),(k,(j,i))))))),((h,g),z));', '(((v,u),(t,(s,(r,(q,(p,(o,n))))))),(((m,l),((k,j),((i,(h,g)),z))),(y,(x,w))));'],
+        [26, True, '((((h,g),z),((y,x),((w,(v,u)),((t,(s,(r,q))),(p,(o,n)))))),(m,(l,k)),(j,i));', '((z,y),(x,(w,(v,(u,t)))),((s,r),((q,p),((o,n),((m,(l,k)),(j,(i,(h,g))))))));'],
+        [24, True, '(((u,t),(s,r)),((q,p),((o,n),((m,(l,(k,(j,(i,(h,g)))))),z))),(y,(x,(w,v))));', '((((j,(i,(h,g))),z),(y,x)),(w,(v,(u,t))),((s,(r,(q,p))),((o,(n,m)),(l,k))));'],
+        [30, True, '(((t,(s,r)),((q,p),((o,n),(m,(l,(k,j)))))),((i,(h,g)),z),((y,x),(w,(v,u))));', '((((w,(v,(u,t))),(s,(r,q))),((p,(o,(n,m))),(l,k))),((j,i),(h,g)),(z,(y,x)));'],
+        [30, False, '((((x,(w,v)),(u,t)),((s,(r,q)),(p,o))),(((n,m),((l,k),((j,i),(h,g)))),(z,y)));', '((r,q),((p,(o,n)),((m,(l,(k,(j,i)))),((h,g),(z,(y,(x,(w,(v,(u,(t,s)))))))))));'],
+        [28, True, '((((k,j),((i,(h,g)),(z,(y,x)))),(w,v)),(u,t),((s,(r,q)),(p,(o,(n,(m,l))))));', '(((z,y),(x,w)),(v,(u,(t,(s,(r,q))))),((p,o),((n,(m,(l,(k,(j,i))))),(h,g))));'],
+        [18, True, '(((t,s),((r,(q,(p,o))),(n,m))),((l,(k,j)),((i,(h,g)),(z,y))),((x,w),(v,u)));', '((((l,k),(j,i)),(((h,g),(z,y)),(x,w))),((v,u),(t,s)),((r,q),((p,o),(n,m))));'],
+        [26, True, '(((h,g),z),(y,(x,w)),((v,(u,(t,s))),((r,(q,p)),((o,(n,(m,l))),(k,(j,i))))));', '(((s,r),(q,p)),((o,n),(m,l)),(((k,j),((i,(h,g)),(z,(y,x)))),(w,(v,(u,t)))));'],
+        [30, True, '(((x,w),((v,(u,(t,(s,(r,(q,(p,(o,n)))))))),((m,(l,k)),((j,i),(h,g))))),z,y);', '((((h,g),z),(y,x)),((w,v),((u,(t,s)),(r,q))),((p,(o,(n,(m,l)))),(k,(j,i))));'],
+        [30, False, '(((v,(u,(t,(s,(r,q))))),((p,(o,(n,m))),((l,(k,(j,i))),(h,g)))),((z,y),(x,w)));', '(((v,u),((t,(s,(r,(q,(p,o))))),(n,(m,(l,(k,j)))))),((i,(h,g)),(z,(y,(x,w)))));'],
+        [22, True, '(((z,y),((x,(w,v)),((u,(t,(s,r))),(q,(p,o))))),(n,m),((l,k),(j,(i,(h,g)))));', '(((r,q),(p,(o,(n,m)))),((l,(k,(j,(i,(h,g))))),(z,y)),((x,w),(v,(u,(t,s)))));'],
+        [30, True, '(((x,w),((v,(u,(t,(s,r)))),(q,p))),((o,n),(m,l)),((k,j),((i,(h,g)),(z,y))));', '((((p,o),((n,(m,(l,k))),((j,i),(h,g)))),((z,y),(x,(w,v)))),(u,t),(s,(r,q)));'],
+        [32, False, '(((r,(q,p)),(o,(n,m))),(((l,(k,(j,i))),(h,g)),((z,(y,(x,(w,(v,u))))),(t,s))));', '((((j,(i,(h,g))),(z,y)),(x,(w,(v,(u,t))))),(((s,r),(q,(p,o))),((n,m),(l,k))));'],
+        [30, False, '((((q,p),((o,(n,(m,(l,k)))),((j,(i,(h,g))),(z,y)))),(x,w)),((v,u),(t,(s,r))));', '((((o,(n,m)),((l,(k,(j,i))),((h,g),z))),(y,x)),((w,v),((u,t),((s,r),(q,p)))));'],
+        [28, False, '((((s,r),((q,(p,o)),(n,(m,l)))),((k,(j,i)),(h,g))),((z,(y,x)),(w,(v,(u,t)))));', '(((m,l),(k,j)),(((i,(h,g)),z),((y,x),((w,(v,(u,(t,(s,r))))),((q,p),(o,n))))));'],
+        [20, True, '((((z,y),(x,(w,(v,u)))),((t,s),(r,q))),((p,o),(n,(m,l))),((k,(j,i)),(h,g)));', '(((j,i),(h,g)),(z,(y,x)),((w,(v,u)),((t,(s,(r,q))),((p,o),((n,m),(l,k))))));'],
+        [20, False, '(((v,u),((t,s),(r,q))),(((p,o),(n,(m,l))),(((k,(j,i)),((h,g),z)),(y,(x,w)))));', '((((s,(r,q)),(p,o)),(((n,(m,l)),(k,(j,i))),((h,g),z))),((y,x),((w,v),(u,t))));'],
+        [28, True, '((z,y),(x,w),((v,u),((t,(s,(r,q))),((p,(o,(n,m))),(l,(k,(j,(i,(h,g)))))))));', '((((r,q),((p,o),((n,m),((l,k),(j,i))))),((h,g),(z,(y,x)))),(w,v),(u,(t,s)));'],
+        [24, False, '((((k,(j,(i,(h,g)))),(z,y)),(x,(w,v))),(((u,t),(s,(r,q))),((p,o),(n,(m,l)))));', '(((w,v),(u,(t,s))),(((r,(q,(p,o))),((n,m),(l,(k,(j,(i,(h,g))))))),(z,(y,x))));'],
+        [24, True, '((((n,m),((l,(k,j)),(i,(h,g)))),(z,y)),(x,(w,v)),((u,(t,(s,(r,q)))),(p,o)));', '(((r,q),(p,o)),((n,(m,l)),((k,j),((i,(h,g)),z))),((y,x),(w,(v,(u,(t,s))))));']]
+
+        # test RF exceptions
+        t1 = Tree('(a,b,(c,d,e));')
+        t2 = Tree('((a,b),(c,d,e));')
+        # testing unrooted trees
+        self.assertRaises(TreeError, t1.robinson_foulds, t2=t2)
+
+        # expand polytomies and unrooted trees
+        self.assertRaises(TreeError, t1.robinson_foulds, t2=t2,
+                          unrooted_trees=True, expand_polytomies=True)
+
+        # usisng expand_polytomies and correct_by_size at the same time
+        self.assertRaises(TreeError, t1.robinson_foulds, t2=t1,
+                          unrooted_trees=True, expand_polytomies=True,
+                          correct_by_polytomy_size=True)
+
+        # correct by size when polytomies in both sides
+        self.assertRaises(TreeError, t1.robinson_foulds, t2=t1,
+                          unrooted_trees=True, correct_by_polytomy_size=True)
+
+        # polytomy larger than deafult limit
+        self.assertRaises(TreeError, t2.robinson_foulds, t2=Tree('(a, (b,c,d,e,f,g,h));'),
+                          expand_polytomies=True)
+
+        # duplicated items
+        t3 = Tree('(a, (b, (c, c)));')
+        self.assertRaises(TreeError, t3.robinson_foulds, t2=t2)
+        self.assertRaises(TreeError, t2.robinson_foulds, t2=t3)
+
+
+
+        # test RF using a knonw set of results
+        for RF, unrooted, nw1, nw2 in samples:
+            t1 = Tree(nw1)
+            t2 = Tree(nw2)
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted)
+            real_max = (20*2) - 4 if not unrooted else (20*2) - 6
+
+            self.assertEqual(len(names), 20)
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+            comp = t1.compare(t2, unrooted=unrooted)
+            self.assertEqual(20, comp['effective_tree_size'])
+            self.assertEqual(rf_max, comp['max_rf'])
+            self.assertEqual(RF, comp['rf'])
+            # Let's insert some random nodes, that should be ignored
+            for target in random.sample([n for n in t2.get_descendants() if not n.is_leaf()], 5):
+                target.populate(5)
+            comp = t1.compare(t2, unrooted=unrooted)
+            self.assertEqual(20, comp['effective_tree_size'])
+            self.assertEqual(rf_max, comp['max_rf'])
+            self.assertEqual(RF, comp['rf'])
+
+        # test treeko functionality
+        t = PhyloTree('((((A,B),C), ((A,B),C)), (((A,B),C), ((A,B),C)));')
+        ref = Tree('((A,B),C);')
+        comp = t.compare(ref, has_duplications=True)
+        #from pprint import pprint
+        #pprint(comp)
+        self.assertEqual(comp['effective_tree_size'], 3)
+        self.assertEqual(comp['treeko_dist'], 0.0)
+        self.assertEqual(comp['norm_rf'], 0.0)
+        self.assertEqual(comp['rf'], 0.0)
+        self.assertEqual(comp['max_rf'], 2)
+        self.assertEqual(comp['source_subtrees'], 4)
+
+        # test polytomy corrections
+
+        ref2 = Tree("((a:1, (b:1, c:1, d:1):1):1, (e:1, f:1, g:1):1);")
+        gtree = Tree("((a:1, (b:1, (c:1, d:1):1):1), (e:1, (f:1, g:1):1):1);")
+
+        # Basic polytomy
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref2)
+        self.assertEqual(rf, 2)
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref2, expand_polytomies=True)
+        self.assertEqual(rf, 0)
+
+
+        # nested polytomies
+        gtree = Tree('((g, h), (a, (b, (c, (d,( e, f))))));')
+        ref3 = Tree('((a, b, c, (d, e, f)), (g, h));')
+        ref4 = Tree('((a, b, c, d, e, f), (g, h));')
+        ref5 = Tree('((a, b, (c, d, (e, f))), (g, h));')
+
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref3)
+        self.assertEqual(rf, 3)
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref3, expand_polytomies=True)
+        self.assertEqual(rf, 0)
+
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref4)
+        self.assertEqual(rf, 4)
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref4, expand_polytomies=True,
+                                                                  polytomy_size_limit=6)
+        self.assertEqual(rf, 0)
+
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref5)
+        self.assertEqual(rf, 2)
+        rf, max_rf, names, r1, r2, d1, d2 = gtree.robinson_foulds(ref5, expand_polytomies=True)
+        self.assertEqual(rf, 0)
+
+        # two side polytomies
+        t1 = Tree("((a:1, (b:1, c:1, d:1):1):1, (e:1, f:1, g:1):1);")
+        t2 = Tree("((a:1, (b:1, c:1, d:1):1), (e:1, (f:1, g:1):1):1);")
+        rf, max_rf, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, expand_polytomies=True)
+        self.assertEqual(rf, 0)
+
+
+        # test auto pruned tree topology
+        for RF, unrooted, nw1, nw2 in samples:
+            # Add fake tips in the newick
+            for x in "clanger":
+                nw1 = nw1.replace(x, "(%s,%s1)" %(x, x) )
+                nw2 = nw2.replace(x, "(%s,%s2)" %(x, x) )
+            t1 = Tree(nw1)
+            t2 = Tree(nw2)
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted)
+            self.assertEqual(len(names), 20)
+            real_max = (20*2) - 4 if not unrooted else (20*2) - 6
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+        #print 'Testing RF with branch support thresholds...'
+        # test discarding lowly supported branches
+        for RF, unrooted, nw1, nw2 in samples:
+            # Add fake internal nodes with low support
+            for x in "jlnqr":
+                nw1 = nw1.replace(x, "(%s,(%s1, %s11)0.6)" %(x, x, x) )
+                nw2 = nw2.replace(x, "(%s,(%s1, %s11)0.5)" %(x, x, x) )
+            t1 = Tree(nw1)
+            t2 = Tree(nw2)
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted,
+                                                                   min_support_t1 = 0.1, min_support_t2 = 0.1)
+            self.assertEqual(len(names), 30)
+            real_max = (30*2) - 4 if not unrooted else (30*2) - 6
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted,
+                                                                   min_support_t1 = 0.0, min_support_t2 = 0.51)
+            self.assertEqual(len(names), 30)
+            real_max = (30*2) - 4 - 5 if not unrooted else (30*2) - 6 -5 # -5 to discount low support branches
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted,
+                                                                   min_support_t1 = 0.61, min_support_t2 = 0.0)
+            self.assertEqual(len(names), 30)
+            real_max = (30*2) - 4 - 5 if not unrooted else (30*2) - 6 -5 # -5 to discount low support branches
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+
+            rf, rf_max, names, r1, r2, d1, d2 = t1.robinson_foulds(t2, unrooted_trees=unrooted,
+                                                                   min_support_t1 = 0.61, min_support_t2 = 0.51)
+            self.assertEqual(len(names), 30)
+            real_max = (30*2) - 4 - 10 if not unrooted else (30*2) - 6 -10 # -10 to discount low support branches
+            self.assertEqual(rf_max, real_max)
+            self.assertEqual(rf, RF)
+
+
+
+
+
+    def test_monophyly(self):
+        #print 'Testing monophyly checks...'
+        t =  Tree("((((((a, e), i), o),h), u), ((f, g), j));")
+        is_mono, monotype, extra  = t.check_monophyly(values=["a", "e", "i", "o", "u"], target_attr="name")
+        self.assertEqual(is_mono, False)
+        self.assertEqual(monotype, "polyphyletic")
+        is_mono, monotype, extra= t.check_monophyly(values=["a", "e", "i", "o"], target_attr="name")
+        self.assertEqual(is_mono, True)
+        self.assertEqual(monotype, "monophyletic")
+        is_mono, monotype, extra =  t.check_monophyly(values=["i", "o"], target_attr="name")
+        self.assertEqual(is_mono, False)
+        self.assertEqual(monotype, "paraphyletic")
+
+        # Test examples
+        #print 'Testing monophyly check with unrooted trees'
+        t = PhyloTree('(aaa1, (aaa3, (aaa4, (bbb1, bbb2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['aaa']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, True)
+        self.assertEqual(extra, set())
+
+        t = PhyloTree('(aaa1, (bbb3, (aaa4, (bbb1, bbb2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['aaa']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, False)
+        self.assertEqual(extra, set([t&'bbb3']))
+
+        t = PhyloTree('(aaa1, (aaa3, (aaa4, (bbb1, bbb2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['bbb']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, True)
+        self.assertEqual(extra, set())
+
+        t = PhyloTree('(aaa1, (aaa3, (aaa4, (bbb1, ccc2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['bbb', 'ccc']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, True)
+        self.assertEqual(extra, set())
+
+        t = PhyloTree('(aaa1, (aaa3, (bbb4, (bbb1, bbb2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['bbb4', 'bbb2']), target_attr='name', unrooted=True)
+        self.assertEqual(is_mono, False)
+        self.assertEqual(extra, set([t&'bbb1']))
+
+        t = PhyloTree('(aaa1, (aaa3, (bbb4, (bbb1, bbb2))));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['bbb1', 'bbb2']), target_attr='name', unrooted=True)
+        self.assertEqual(is_mono, True)
+        self.assertEqual(extra, set())
+
+        t = PhyloTree('(aaa1, aaa3, (aaa4, (bbb1, bbb2)));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['aaa']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, True)
+        self.assertEqual(extra, set())
+
+        t = PhyloTree('(aaa1, bbb3, (aaa4, (bbb1, bbb2)));')
+        is_mono, montype, extra = t.check_monophyly(values=set(['aaa']), target_attr='species', unrooted=True)
+        self.assertEqual(is_mono, False)
+        self.assertEqual(extra, set([t&'bbb3']))
+
+        #print 'Check monophyly randomization test'
+        t = PhyloTree()
+        t.populate(100)
+        ancestor = t.get_common_ancestor(['aaaaaaaaaa', 'aaaaaaaaab', 'aaaaaaaaac'])
+        all_nodes = t.get_descendants()
+        # I test every possible node as root for the tree. The content of ancestor
+        # should allways be detected as monophyletic
+        results = set()
+        for x in all_nodes:
+            mono, part, extra = t.check_monophyly(values=set(ancestor.get_leaf_names()), target_attr='name', unrooted=True)
+            results.add(mono)
+            t.set_outgroup(x)
+        self.assertEqual(list(results), [True])
+
+        #print 'Testing get_monophyly'
+        t =  Tree("((((((4, e), i)M1, o),h), u), ((3, 4), (i, june))M2);", format=1)
+        # we annotate the tree using external data
+        colors = {"a":"red", "e":"green", "i":"yellow",
+                  "o":"black", "u":"purple", "4":"green",
+                  "3":"yellow", "1":"white", "5":"red",
+                  "june":"yellow"}
+        for leaf in t:
+            leaf.add_features(color=colors.get(leaf.name, "none"))
+        green_yellow_nodes = set([t&"M1", t&"M2"])
+        mono_nodes = t.get_monophyletic(values=["green", "yellow"], target_attr="color")
+        self.assertEqual(set(mono_nodes), green_yellow_nodes)
+
+
+    def test_copy(self):
+        t = Tree("((A, B)Internal_1:0.7, (C, D)Internal_2:0.5)root:1.3;", format=1)
+        # we add a custom annotation to the node named A
+        (t & "A").add_features(label="custom Value")
+        # we add a complex feature to the A node, consisting of a list of lists
+        (t & "A").add_features(complex=[[0,1], [2,3], [1,11], [1,0]])
+
+
+        t_nw  = t.copy("newick")
+        t_nwx = t.copy("newick-extended")
+        t_pkl = t.copy("cpickle")
+        (t & "A").testfn = lambda: "YES"
+        t_deep = t.copy("deepcopy")
+
+        self.assertEqual((t_nw & "root").name, "root")
+        self.assertEqual((t_nwx & "A").label, "custom Value")
+        self.assertEqual((t_pkl & "A").complex[0], [0,1])
+        self.assertEqual((t_deep & "A").testfn(), "YES")
+
+      
+
+    # def test_traversing_speed(self):
+    #     return
+    #     for x in xrange(10):
+    #         t = Tree()
+    #         t.populate(100000)
+
+    #         leaves = t.get_leaves()
+    #         sample = random.sample(leaves, 100)
+
+    #         t1 = time.time()
+    #         a = t.get_common_ancestor_OLD(sample)
+    #         t2 = time.time() - t1
+    #         print "OLD get common", t2
+
+    #         t1 = time.time()
+    #         b = t.get_common_ancestor(sample)
+    #         t2 = time.time() - t1
+    #         print "NEW get common", t2
+
+    #         self.assertEqual(a, b)
+
+
+    #         t1 = time.time()
+    #         [n for n in t._iter_descendants_postorder_OLD()]
+    #         t2 = time.time() - t1
+    #         print "OLD postorder", t2
+
+    #         t1 = time.time()
+    #         [n for n in t._iter_descendants_postorder()]
+    #         t2 = time.time() - t1
+    #         print "NEW postorder", t2
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_treeview/__init__.py b/ete3/test/test_treeview/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/ete3/test/test_treeview/barchart_and_piechart_faces.py b/ete3/test/test_treeview/barchart_and_piechart_faces.py
new file mode 100755
index 0000000..b02fcec
--- /dev/null
+++ b/ete3/test/test_treeview/barchart_and_piechart_faces.py
@@ -0,0 +1,40 @@
+import sys
+import random
+from ... import Tree, faces, TreeStyle, COLOR_SCHEMES
+
+schema_names = COLOR_SCHEMES.keys()
+
+def layout(node):
+    if node.is_leaf():
+        F= faces.PieChartFace([10,10,10,10,10,10,10,10,10,4,6],
+                              colors=COLOR_SCHEMES["set3"],
+                              width=50, height=50)
+        F.border.width = None
+        F.opacity = 0.8
+        faces.add_face_to_node(F,node, 0, position="branch-right")
+
+        F= faces.PieChartFace([10,20,5,5,60],
+                              colors=COLOR_SCHEMES[random.sample(schema_names, 1)[0]],
+                              width=100, height=40)
+        F.border.width = None
+        F.opacity = 0.8
+        faces.add_face_to_node(F,node, 0, position="branch-right")
+    else:
+        F= faces.BarChartFace([40,20,70,100,30,40,50,40,70,-12], min_value=-12,
+                              colors=COLOR_SCHEMES["spectral"],
+                              labels = "aaa,bbb,cccccc,dd,eeee,ffff,gg,HHH,II,JJJ,KK".split(","))
+        faces.add_face_to_node(F,node, 0, position="branch-top")
+        F.background.color = "#eee"
+
+def get_example_tree():
+    t = Tree()
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.mode = "r"
+    ts.show_leaf_name = False
+    t.populate(10)
+    return t, ts
+
+if __name__ == '__main__':
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
diff --git a/ete3/test/test_treeview/barcharts.png b/ete3/test/test_treeview/barcharts.png
new file mode 100644
index 0000000..d62bb8a
Binary files /dev/null and b/ete3/test/test_treeview/barcharts.png differ
diff --git a/ete3/test/test_treeview/bubble_map.png b/ete3/test/test_treeview/bubble_map.png
new file mode 100644
index 0000000..01dbcd6
Binary files /dev/null and b/ete3/test/test_treeview/bubble_map.png differ
diff --git a/ete3/test/test_treeview/bubble_map.py b/ete3/test/test_treeview/bubble_map.py
new file mode 100755
index 0000000..a20c859
--- /dev/null
+++ b/ete3/test/test_treeview/bubble_map.py
@@ -0,0 +1,49 @@
+import random
+from ... import Tree, TreeStyle, NodeStyle, faces, AttrFace, CircleFace
+
+def layout(node):
+    if node.is_leaf():
+        # Add node name to laef nodes
+        N = AttrFace("name", fsize=14, fgcolor="black")
+        faces.add_face_to_node(N, node, 0)
+    if "weight" in node.features:
+        # Creates a sphere face whose size is proportional to node's
+        # feature "weight"
+        C = CircleFace(radius=node.weight, color="RoyalBlue", style="sphere")
+        # Let's make the sphere transparent
+        C.opacity = 0.3
+        # And place as a float face over the tree
+        faces.add_face_to_node(C, node, 0, position="float")
+
+def get_example_tree():
+    # Random tree
+    t = Tree()
+    t.populate(20, random_branches=True)
+
+    # Some random features in all nodes
+    for n in t.traverse():
+        n.add_features(weight=random.randint(0, 50))
+
+    # Create an empty TreeStyle
+    ts = TreeStyle()
+
+    # Set our custom layout function
+    ts.layout_fn = layout
+
+    # Draw a tree
+    ts.mode = "c"
+
+    # We will add node names manually
+    ts.show_leaf_name = False
+    # Show branch data
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+
+    #t.render("bubble_map.png", w=600, dpi=300, tree_style=ts)
+    t.show(tree_style=ts)
+
diff --git a/ete3/test/test_treeview/chimp.png b/ete3/test/test_treeview/chimp.png
new file mode 100644
index 0000000..5dca588
Binary files /dev/null and b/ete3/test/test_treeview/chimp.png differ
diff --git a/ete3/test/test_treeview/dog.png b/ete3/test/test_treeview/dog.png
new file mode 100644
index 0000000..b6926c6
Binary files /dev/null and b/ete3/test/test_treeview/dog.png differ
diff --git a/ete3/test/test_treeview/face_grid.py b/ete3/test/test_treeview/face_grid.py
new file mode 100755
index 0000000..2ccc59d
--- /dev/null
+++ b/ete3/test/test_treeview/face_grid.py
@@ -0,0 +1,48 @@
+from ... import Tree, TextFace, NodeStyle, TreeStyle
+
+def get_example_tree():
+    t = Tree("((a,b),c);")
+
+    right_c0_r0 = TextFace("right_col0_row0")
+    right_c0_r1 = TextFace("right_col0_row1")
+    right_c1_r0 = TextFace("right_col1_row0")
+    right_c1_r1 = TextFace("right_col1_row1")
+    right_c1_r2 = TextFace("right_col1_row2")
+
+    top_c0_r0 = TextFace("top_col0_row0")
+    top_c0_r1 = TextFace("top_col0_row1")
+
+    bottom_c0_r0 = TextFace("bottom_col0_row0")
+    bottom_c1_r0 = TextFace("bottom_col1_row0")
+
+    aligned_c0_r0 = TextFace("aligned_col0_row0")
+    aligned_c0_r1 = TextFace("aligned_col0_row1")
+
+    aligned_c1_r0 = TextFace("aligned_col1_row0")
+    aligned_c1_r1 = TextFace("aligned_col1_row1")
+
+
+    t.add_face(right_c0_r1, column=1, position="branch-right")
+    t.add_face(right_c0_r0, column=0, position="branch-right")
+
+    t.add_face(right_c1_r2, column=2, position="branch-right")
+    t.add_face(right_c1_r1, column=1, position="branch-right")
+    t.add_face(right_c1_r0, column=0, position="branch-right")
+
+    t.add_face(top_c0_r1, column=1, position="branch-top")
+    t.add_face(top_c0_r0, column=0, position="branch-top")
+
+    t.add_face(bottom_c0_r0, column=0, position="branch-bottom")
+    t.add_face(bottom_c1_r0, column=1, position="branch-bottom")
+
+    for leaf in t.iter_leaves():
+        leaf.add_face(aligned_c0_r1, 0, "aligned")
+        leaf.add_face(aligned_c0_r0, 0, "aligned")
+        leaf.add_face(aligned_c1_r1, 0, "aligned")
+        leaf.add_face(aligned_c1_r0, 0, "aligned")
+
+    return t, TreeStyle()
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show()
diff --git a/ete3/test/test_treeview/face_positions.py b/ete3/test/test_treeview/face_positions.py
new file mode 100755
index 0000000..c9210ed
--- /dev/null
+++ b/ete3/test/test_treeview/face_positions.py
@@ -0,0 +1,103 @@
+from ... import Tree, faces, TreeStyle, NodeStyle
+
+def get_example_tree():
+    t = Tree()
+    t.populate(10)
+
+    # Margins, alignment, border, background and opacity can now be set for any face
+    rs1 = faces.TextFace("branch-right\nmargins&borders",
+                         fsize=12, fgcolor="#009000")
+    rs1.margin_top = 10
+    rs1.margin_bottom = 50
+    rs1.margin_left = 40
+    rs1.margin_right = 40
+    rs1.border.width = 1
+    rs1.background.color = "lightgreen"
+    rs1.inner_border.width = 0
+    rs1.inner_border.line_style = 1
+    rs1.inner_border.color= "red"
+    rs1.opacity = 0.6
+    rs1.hz_align = 2 # 0 left, 1 center, 2 right
+    rs1.vt_align = 1 # 0 left, 1 center, 2 right
+
+    br1 = faces.TextFace("branch-right1", fsize=12, fgcolor="#009000")
+    br2 = faces.TextFace("branch-right3", fsize=12, fgcolor="#009000")
+
+    # New face positions (branch-top and branch-bottom)
+    bb = faces.TextFace("branch-bottom 1", fsize=8, fgcolor="#909000")
+    bb2 = faces.TextFace("branch-bottom 2", fsize=8, fgcolor="#909000")
+    bt = faces.TextFace("branch-top 1", fsize=6, fgcolor="#099000")
+
+    # And faces can also be used as headers or foot notes of aligned
+    # columns
+    t1 = faces.TextFace("Header Face", fsize=12, fgcolor="#aa0000")
+    t2 = faces.TextFace("Footer Face", fsize=12, fgcolor="#0000aa")
+
+    # Attribute faces can now contain prefix and suffix fixed text
+    aligned = faces.AttrFace("name", fsize=12, fgcolor="RoyalBlue",
+                             text_prefix="Aligned (", text_suffix=")")
+    # horizontal and vertical alignment per face
+    aligned.hz_align = 1 # 0 left, 1 center, 2 right
+    aligned.vt_align = 1
+
+    # Node style handling is no longer limited to layout functions. You
+    # can now create fixed node styles and use them many times, save them
+    # or even add them to nodes before drawing (this allows to save and
+    # reproduce an tree image design)
+    style = NodeStyle()
+    style["fgcolor"] = "Gold"
+    style["shape"] = "square"
+    style["size"] = 15
+    style["vt_line_color"] = "#ff0000"
+    t.set_style(style)
+    # add a face to the style. This face will be render in any node
+    # associated to the style.
+    fixed = faces.TextFace("FIXED branch-right", fsize=11, fgcolor="blue")
+    t.add_face(fixed, column=1, position="branch-right")
+    # Bind the precomputed style to the root node
+
+    # ETE 2.1 has now support for general image properties
+    ts = TreeStyle()
+
+    # You can add faces to the tree image (without any node
+    # associated). They will be used as headers and foot notes of the
+    # aligned columns (aligned faces)
+    ts.aligned_header.add_face(t1, column = 0)
+    ts.aligned_header.add_face(t1, 1)
+    ts.aligned_header.add_face(t1, 2)
+    ts.aligned_header.add_face(t1, 3)
+    t1.hz_align = 1 # 0 left, 1 center, 2 right
+    t1.border.width = 1
+
+    ts.aligned_foot.add_face(t2, column = 0)
+    ts.aligned_foot.add_face(t2, 1)
+    ts.aligned_foot.add_face(t2, 2)
+    ts.aligned_foot.add_face(t2, 3)
+    t2.hz_align = 1
+
+    # Set tree image style. Note that aligned header and foot is only
+    # visible in "rect" mode.
+
+    ts.mode =  "r"
+    ts.scale = 10
+    for node in t.traverse():
+        # If node is a leaf, add the nodes name and a its scientific
+        # name
+        if node.is_leaf():
+            node.add_face(aligned, column=0, position="aligned")
+            node.add_face(aligned, column=1, position="aligned")
+            node.add_face(aligned, column=3, position="aligned")
+        else:
+            node.add_face(bt, column=0, position="branch-top")
+            node.add_face(bb, column=0, position="branch-bottom")
+            node.add_face(bb2, column=0, position="branch-bottom")
+            node.add_face(br1, column=0, position="branch-right")
+            node.add_face(rs1, column=0, position="branch-right")
+            node.add_face(br2, column=0, position="branch-right")
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+
diff --git a/ete3/test/test_treeview/face_rotation.py b/ete3/test/test_treeview/face_rotation.py
new file mode 100755
index 0000000..738fb10
--- /dev/null
+++ b/ete3/test/test_treeview/face_rotation.py
@@ -0,0 +1,30 @@
+from ... import Tree, TreeStyle, add_face_to_node, TextFace
+
+from random import randint
+
+def rotation_layout(node):
+    if node.is_leaf():
+        F = TextFace(node.name, tight_text=True)
+        F.rotation = randint(0, 360)
+        add_face_to_node(TextFace("third" ), node, column=8, position="branch-right")
+        add_face_to_node(TextFace("second" ), node, column=2, position="branch-right")
+        add_face_to_node(F, node, column=0, position="branch-right")
+
+        F.border.width = 1
+        F.inner_border.width = 1
+
+def get_example_tree():
+    t = Tree()
+    t.populate(10)
+    ts = TreeStyle()
+    ts.rotation = 45
+    ts.show_leaf_name = False
+    ts.layout_fn = rotation_layout
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+
+
diff --git a/ete3/test/test_treeview/fish.png b/ete3/test/test_treeview/fish.png
new file mode 100644
index 0000000..e8a7cfb
Binary files /dev/null and b/ete3/test/test_treeview/fish.png differ
diff --git a/ete3/test/test_treeview/float_piechart.png b/ete3/test/test_treeview/float_piechart.png
new file mode 100644
index 0000000..5afb49d
Binary files /dev/null and b/ete3/test/test_treeview/float_piechart.png differ
diff --git a/ete3/test/test_treeview/floating_piecharts.py b/ete3/test/test_treeview/floating_piecharts.py
new file mode 100755
index 0000000..12bf460
--- /dev/null
+++ b/ete3/test/test_treeview/floating_piecharts.py
@@ -0,0 +1,30 @@
+import sys
+import random
+from ... import Tree, faces, TreeStyle, COLOR_SCHEMES
+
+schema_names = COLOR_SCHEMES.keys()
+
+def layout(node):
+    if not node.is_leaf():
+        size = random.randint(20,50)
+        F= faces.PieChartFace([10,20,60,10],
+                              colors=COLOR_SCHEMES[random.sample(schema_names, 1)[0]],
+                              width=size, height=size)
+        F.border.width = None
+        F.opacity = 0.6
+        faces.add_face_to_node(F,node, 0, position="float")
+
+def get_example_tree():
+    t = Tree()
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.mode = "c"
+    ts.show_leaf_name = True
+    ts.min_leaf_separation = 15
+    t.populate(100)
+    return t, ts
+
+if __name__ == '__main__':
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #t.render("float_piechart.png", tree_style=ts)
diff --git a/ete3/test/test_treeview/fly.png b/ete3/test/test_treeview/fly.png
new file mode 100644
index 0000000..31b5f1f
Binary files /dev/null and b/ete3/test/test_treeview/fly.png differ
diff --git a/ete3/test/test_treeview/human.png b/ete3/test/test_treeview/human.png
new file mode 100644
index 0000000..ac6f164
Binary files /dev/null and b/ete3/test/test_treeview/human.png differ
diff --git a/ete3/test/test_treeview/img_faces.png b/ete3/test/test_treeview/img_faces.png
new file mode 100644
index 0000000..f0ecc54
Binary files /dev/null and b/ete3/test/test_treeview/img_faces.png differ
diff --git a/ete3/test/test_treeview/img_faces.py b/ete3/test/test_treeview/img_faces.py
new file mode 100644
index 0000000..d8e12eb
--- /dev/null
+++ b/ete3/test/test_treeview/img_faces.py
@@ -0,0 +1,135 @@
+# Import Tree instance and faces module
+from ... import Tree, faces, TreeStyle
+
+# Loads an example tree
+nw = """
+(((Dre:0.008339,Dme:0.300613)1.000000:0.596401,
+(Cfa:0.640858,Hsa:0.753230)1.000000:0.182035)1.000000:0.106234,
+((Dre:0.271621,Cfa:0.046042)1.000000:0.953250,
+(Hsa:0.061813,Mms:0.110769)1.000000:0.204419)1.000000:0.973467);
+"""
+t = Tree(nw)
+
+# You can create any random tree containing the same leaf names, and
+# layout will work equally
+#
+# t = Tree()
+# Creates a random tree with 8 leaves using a given set of names
+# t.populate(8, ["Dme", "Dre", "Hsa", "Ptr", "Cfa", "Mms"])
+
+# Set the path in which images are located
+img_path = "./"
+# Create faces based on external images
+humanFace = faces.ImgFace(img_path+"human.png")
+mouseFace = faces.ImgFace(img_path+"mouse.png")
+dogFace = faces.ImgFace(img_path+"dog.png")
+chimpFace = faces.ImgFace(img_path+"chimp.png")
+fishFace = faces.ImgFace(img_path+"fish.png")
+flyFace = faces.ImgFace(img_path+"fly.png")
+
+# Create a faces ready to read the name attribute of nodes
+#nameFace = faces.TextFace(open("text").readline().strip(), fsize=20, fgcolor="#009000")
+nameFace = faces.AttrFace("name", fsize=20, fgcolor="#009000")
+
+# Create a conversion between leaf names and real names
+code2name = {
+        "Dre":"Drosophila melanogaster",
+        "Dme":"Danio rerio",
+        "Hsa":"Homo sapiens",
+        "Ptr":"Pan troglodytes",
+        "Mms":"Mus musculus",
+        "Cfa":"Canis familiaris"
+        }
+
+# Creates a dictionary with the descriptions of each leaf name
+code2desc = {
+        "Dre":"""The zebrafish, also known as Danio rerio,
+is a tropical freshwater fish belonging to the
+minnow family (Cyprinidae).""",
+        "Dme":"""True flies are insects of the order Diptera,
+possessing a single pair of wings on the
+mesothorax and a pair of halteres, derived from
+the hind wings, on the metathorax""",
+        "Hsa":"""A human is a member of a species
+of bipedal primates in the family Hominidae.""",
+        "Ptr":"""Chimpanzee, sometimes colloquially
+chimp, is the common name for the
+two extant species of ape in the genus Pan.""",
+        "Mms":"""A mouse is a small mammal belonging to the
+order of rodents.""",
+        "Cfa": """The dog (Canis lupus familiaris) is a
+domesticated subspecies of the Gray Wolf,
+a member of the Canidae family of the
+orderCarnivora."""
+        }
+
+# Creates my own layout function. I will use all previously created
+# faces and will set different node styles depending on the type of
+# node.
+def mylayout(node):
+    # If node is a leaf, add the nodes name and a its scientific
+    # name
+    if node.is_leaf():
+        # Add an static face that handles the node name
+        faces.add_face_to_node(nameFace, node, column=0)
+        # We can also create faces on the fly
+        longNameFace = faces.TextFace(code2name[node.name])
+        faces.add_face_to_node(longNameFace, node, column=0)
+
+        # text faces support multiline. We add a text face
+        # with the whole description of each leaf.
+        descFace = faces.TextFace(code2desc[node.name], fsize=10)
+        descFace.margin_top = 10
+        descFace.margin_bottom = 10
+        descFace.border.margin = 1
+
+        # Note that this faces is added in "aligned" mode
+        faces.add_face_to_node(descFace, node, column=0, aligned=True)
+
+        # Sets the style of leaf nodes
+        node.img_style["size"] = 12
+        node.img_style["shape"] = "circle"
+    #If node is an internal node
+    else:
+        # Sets the style of internal nodes
+        node.img_style["size"] = 6
+        node.img_style["shape"] = "circle"
+        node.img_style["fgcolor"] = "#000000"
+
+    # If an internal node contains more than 4 leaves, add the
+    # images of the represented species sorted in columns of 2
+    # images max.
+    if len(node)>=4:
+        col = 0
+        for i, name in enumerate(set(node.get_leaf_names())):
+            if i>0 and i%2 == 0:
+                col += 1
+            # Add the corresponding face to the node
+            if name.startswith("Dme"):
+                faces.add_face_to_node(flyFace, node, column=col)
+            elif name.startswith("Dre"):
+                faces.add_face_to_node(fishFace, node, column=col)
+            elif name.startswith("Mms"):
+                faces.add_face_to_node(mouseFace, node, column=col)
+            elif name.startswith("Ptr"):
+                faces.add_face_to_node(chimpFace, node, column=col)
+            elif name.startswith("Hsa"):
+                faces.add_face_to_node(humanFace, node, column=col)
+            elif name.startswith("Cfa"):
+                faces.add_face_to_node(dogFace, node, column=col)
+
+            # Modifies this node's style
+            node.img_style["size"] = 16
+            node.img_style["shape"] = "sphere"
+            node.img_style["fgcolor"] = "#AA0000"
+
+    # If leaf is "Hsa" (homo sapiens), highlight it using a
+    # different background.
+    if node.is_leaf() and node.name.startswith("Hsa"):
+        node.img_style["bgcolor"] = "#9db0cf"
+
+# And, finally, Visualize the tree using my own layout function
+ts = TreeStyle()
+ts.layout_fn = mylayout
+t.render("img_faces.png", w=600, tree_style = ts)
+
diff --git a/ete3/test/test_treeview/item_faces.png b/ete3/test/test_treeview/item_faces.png
new file mode 100644
index 0000000..57a498c
Binary files /dev/null and b/ete3/test/test_treeview/item_faces.png differ
diff --git a/ete3/test/test_treeview/item_faces.py b/ete3/test/test_treeview/item_faces.py
new file mode 100755
index 0000000..dad31d7
--- /dev/null
+++ b/ete3/test/test_treeview/item_faces.py
@@ -0,0 +1,121 @@
+# We will need to create Qt4 items
+from PyQt4 import QtCore
+from PyQt4.QtGui import QGraphicsRectItem, QGraphicsSimpleTextItem, \
+    QGraphicsEllipseItem, QColor, QPen, QBrush
+
+from ... import Tree, faces, TreeStyle, NodeStyle
+
+# To play with random colors
+import colorsys
+import random
+
+class InteractiveItem(QGraphicsRectItem):
+    def __init__(self, *arg, **karg):
+        QGraphicsRectItem.__init__(self, *arg, **karg)
+        self.node = None
+        self.label = None
+        self.setCursor(QtCore.Qt.PointingHandCursor)
+        self.setAcceptsHoverEvents(True)
+
+    def hoverEnterEvent (self, e):
+        # There are many ways of adding interactive elements. With the
+        # following code, I show/hide a text item over my custom
+        # DynamicItemFace
+        if not self.label:
+            self.label = QGraphicsRectItem()
+            self.label.setParentItem(self)
+            # This is to ensure that the label is rendered over the
+            # rest of item children (default ZValue for items is 0)
+            self.label.setZValue(1)
+            self.label.setBrush(QBrush(QColor("white")))
+            self.label.text = QGraphicsSimpleTextItem()
+            self.label.text.setParentItem(self.label)
+
+        self.label.text.setText(self.node.name)
+        self.label.setRect(self.label.text.boundingRect())
+        self.label.setVisible(True)
+
+    def hoverLeaveEvent(self, e):
+        if self.label:
+            self.label.setVisible(False)
+
+def random_color(h=None):
+    """Generates a random color in RGB format."""
+    if not h:
+        h = random.random()
+    s = 0.5
+    l = 0.5
+    return _hls2hex(h, l, s)
+
+def _hls2hex(h, l, s):
+    return '#%02x%02x%02x' %tuple(map(lambda x: int(x*255),
+                                      colorsys.hls_to_rgb(h, l, s)))
+
+def ugly_name_face(node, *args, **kargs):
+    """ This is my item generator. It must receive a node object, and
+    returns a Qt4 graphics item that can be used as a node face.
+    """
+
+    # receive an arbitrary number of arguments, in this case width and
+    # height of the faces
+    width = args[0][0]
+    height = args[0][1]
+
+    ## Creates a main master Item that will contain all other elements
+    ## Items can be standard QGraphicsItem
+    # masterItem = QGraphicsRectItem(0, 0, width, height)
+
+    # Or your custom Items, in which you can re-implement interactive
+    # functions, etc. Check QGraphicsItem doc for details.
+    masterItem = InteractiveItem(0, 0, width, height)
+
+    # Keep a link within the item to access node info
+    masterItem.node = node
+
+    # I dont want a border around the masterItem
+    masterItem.setPen(QPen(QtCore.Qt.NoPen))
+
+    # Add ellipse around text
+    ellipse = QGraphicsEllipseItem(masterItem.rect())
+    ellipse.setParentItem(masterItem)
+    # Change ellipse color
+    ellipse.setBrush(QBrush(QColor( random_color())))
+
+    # Add node name within the ellipse
+    text = QGraphicsSimpleTextItem(node.name)
+    text.setParentItem(ellipse)
+    text.setPen(QPen(QPen(QColor("white"))))
+
+    # Center text according to masterItem size
+    tw = text.boundingRect().width()
+    th = text.boundingRect().height()
+    center = masterItem.boundingRect().center()
+    text.setPos(center.x()-tw/2, center.y()-th/2)
+
+    return masterItem
+
+def master_ly(node):
+    if node.is_leaf():
+        # Create an ItemFAce. First argument must be the pointer to
+        # the constructor function that returns a QGraphicsItem. It
+        # will be used to draw the Face. Next arguments are arbitrary,
+        # and they will be forwarded to the constructor Face function.
+        F = faces.DynamicItemFace(ugly_name_face, 100, 50)
+        faces.add_face_to_node(F, node, 0, position="aligned")
+
+def get_example_tree():
+
+    t = Tree()
+    t.populate(8, reuse_names=False)
+
+    ts = TreeStyle()
+    ts.layout_fn = master_ly
+    ts.title.add_face(faces.TextFace("Drawing your own Qt Faces", fsize=15), 0)
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+
+    #t.render("item_faces.png", h=400, tree_style=ts)
+    # The interactive features are only available using the GUI
+    t.show(tree_style=ts)
diff --git a/ete3/test/test_treeview/motifs.png b/ete3/test/test_treeview/motifs.png
new file mode 100644
index 0000000..1fc55a8
Binary files /dev/null and b/ete3/test/test_treeview/motifs.png differ
diff --git a/ete3/test/test_treeview/mouse.png b/ete3/test/test_treeview/mouse.png
new file mode 100644
index 0000000..8929910
Binary files /dev/null and b/ete3/test/test_treeview/mouse.png differ
diff --git a/ete3/test/test_treeview/new_seq_face.py b/ete3/test/test_treeview/new_seq_face.py
new file mode 100644
index 0000000..d66c6ce
--- /dev/null
+++ b/ete3/test/test_treeview/new_seq_face.py
@@ -0,0 +1,308 @@
+# We will need to create Qt4 items
+from PyQt4       import QtCore
+from PyQt4.QtGui import QGraphicsRectItem, QColor, QPen, QBrush
+from PyQt4.QtGui import QGraphicsSimpleTextItem, QFont
+
+from ... import faces, TreeStyle, PhyloTree, TextFace
+from random import random
+
+_aafgcolors = {
+    'A':"#000000" ,
+    'R':"#000000" ,
+    'N':"#000000" ,
+    'D':"#000000" ,
+    'C':"#000000" ,
+    'Q':"#000000" ,
+    'E':"#000000" ,
+    'G':"#000000" ,
+    'H':"#000000" ,
+    'I':"#000000" ,
+    'L':"#000000" ,
+    'K':"#000000" ,
+    'M':"#000000" ,
+    'F':"#000000" ,
+    'P':"#000000" ,
+    'S':"#000000" ,
+    'T':"#000000" ,
+    'W':"#000000" ,
+    'Y':"#000000" ,
+    'V':"#000000" ,
+    'B':"#000000" ,
+    'Z':"#000000" ,
+    'X':"#000000",
+    '.':"#000000",
+    '-':"#000000",
+}
+
+_aabgcolors = {
+    'A':"#C8C8C8" ,
+    'R':"#145AFF" ,
+    'N':"#00DCDC" ,
+    'D':"#E60A0A" ,
+    'C':"#E6E600" ,
+    'Q':"#00DCDC" ,
+    'E':"#E60A0A" ,
+    'G':"#EBEBEB" ,
+    'H':"#8282D2" ,
+    'I':"#0F820F" ,
+    'L':"#0F820F" ,
+    'K':"#145AFF" ,
+    'M':"#E6E600" ,
+    'F':"#3232AA" ,
+    'P':"#DC9682" ,
+    'S':"#FA9600" ,
+    'T':"#FA9600" ,
+    'W':"#B45AB4" ,
+    'Y':"#3232AA" ,
+    'V':"#0F820F" ,
+    'B':"#FF69B4" ,
+    'Z':"#FF69B4" ,
+    'X':"#BEA06E",
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    }
+
+_ntfgcolors = {
+    'A':'#000000',
+    'G':'#000000',
+    'I':'#000000',
+    'C':'#000000',
+    'T':'#000000',
+    'U':'#000000',
+    '.':"#000000",
+    '-':"#000000",
+    ' ':"#000000"
+    }
+
+_ntbgcolors = {
+    'A':'#A0A0FF',
+    'G':'#FF7070',
+    'I':'#80FFFF',
+    'C':'#FF8C4B',
+    'T':'#A0FFA0',
+    'U':'#FF8080',
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    ' ':"#FFFFFF"
+}
+
+
+class MySequenceFace(faces.StaticItemFace):
+    """ Creates a new molecular sequence face object.
+
+
+    :argument seq:  Sequence string to be drawn
+    :argument seqtype: Type of sequence: "nt" or "aa"
+    :argument fsize:   Font size,  (default=10)
+
+    You can set custom colors for amino-acids or nucleotides:
+
+    :argument None  codon       : a string that corresponds to the reverse translation of the amino-acid sequence
+    :argument 11    col_w       : width of the column (if col_w is lower than font size, letter wont be displayed)
+    :argument None  fg_colors   : dictionary of colors for foreground, with as keys each possible character in sequences, and as value the colors
+    :argument None  bg_colors   : dictionary of colors for background, with as keys each possible character in sequences, and as value the colors
+    :argument 3     alt_col_w   : works together with special_col option, defines the width of given columns
+    :argument None  special_col : list of lists containing the bounds of columns to be displayed with alt_col_w as width
+    :argument False interactive : more info can be displayed when mouse over sequence
+
+    """
+    def __init__(self, seq, seqtype="aa", fsize=10,
+                 fg_colors=None, bg_colors=None,
+                 codon=None, col_w=11, alt_col_w=3,
+                 special_col=None, interactive=False):
+        self.seq         = seq
+        self.codon       = codon
+        self.fsize       = fsize
+        self.style       = seqtype
+        self.col_w       = float(col_w)
+        self.alt_col_w   = float(alt_col_w)
+        self.special_col = special_col if special_col else []
+        self.width       = 0 # will store the width of the whole sequence
+        self.interact    = interactive
+
+        if self.style == "aa":
+            if not fg_colors:
+                fg_colors = _aafgcolors
+            if not bg_colors:
+                bg_colors = _aabgcolors
+        else:
+            if not fg_colors:
+                fg_colors = _ntfgcolors
+            if not bg_colors:
+                bg_colors = _ntbgcolors
+
+        self.fg_col = self.__init_col(fg_colors)
+        self.bg_col = self.__init_col(bg_colors)
+
+        # for future?
+        self.row_h       = 13.0
+
+        super(MySequenceFace,
+              self).__init__(QGraphicsRectItem(0, 0, self.width, self.row_h))
+
+    def __init_col(self, color_dic):
+        """to speed up the drawing of colored rectangles and characters"""
+        new_color_dic = {}
+        for car in color_dic:
+            new_color_dic[car] = QBrush(QColor(color_dic[car]))
+        return new_color_dic
+
+    def update_items(self):
+        #self.item = QGraphicsRectItem(0,0,self._total_w, self.row_h)
+        seq_width = 0
+        nopen = QPen(QtCore.Qt.NoPen)
+        font = QFont("Courier", self.fsize)
+        rect_cls = self.InteractiveLetterItem if self.interact else QGraphicsRectItem
+        for i, letter in enumerate(self.seq):
+            width = self.col_w
+            for m in self.special_col:
+                if m[0] < i <= m[1]:
+                    width = self.alt_col_w
+                    break
+            #load interactive item if called correspondingly
+            rectItem = rect_cls(0, 0, width, self.row_h, parent=self.item)
+            rectItem.setX(seq_width) # to give correct X to children item
+            rectItem.setBrush(self.bg_col[letter])
+            rectItem.setPen(nopen)
+            if self.interact:
+                if self.codon:
+                    rectItem.codon = '%s, %d: %s' % (self.seq[i], i,
+                                                     self.codon[i*3:i*3+3])
+                else:
+                    rectItem.codon = '%s, %d' % (self.seq[i], i)
+            # write letter if enough space
+            if width >= self.fsize:
+                text = QGraphicsSimpleTextItem(letter, parent=rectItem)
+                text.setFont(font)
+                text.setBrush(self.fg_col[letter])
+                # Center text according to rectItem size
+                tw = text.boundingRect().width()
+                th = text.boundingRect().height()
+                text.setPos((width - tw)/2, (self.row_h - th)/2)
+            seq_width += width
+        self.width = seq_width
+
+    class InteractiveLetterItem(QGraphicsRectItem):
+        """This is a class"""
+        def __init__(self, *arg, **karg):
+            QGraphicsRectItem.__init__(self, *arg, **karg)
+            self.codon = None
+            self.label = None
+            self.setAcceptsHoverEvents(True)
+
+        def hoverEnterEvent (self, e):
+            """ when mouse is over"""
+            if not self.label:
+                self.label = QGraphicsRectItem(parent=self)
+                #self.label.setY(-18)
+                self.label.setX(11)
+                self.label.setBrush(QBrush(QColor("white")))
+                self.label.text = QGraphicsSimpleTextItem(parent=self.label)
+
+            self.setZValue(1)
+            self.label.text.setText(self.codon)
+            self.label.setRect(self.label.text.boundingRect())
+            self.label.setVisible(True)
+
+        def hoverLeaveEvent(self, e):
+            """when mouse leaves area"""
+            if self.label:
+                self.label.setVisible(False)
+                self.setZValue(0)
+
+
+
+def test_layout_evol(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      codon=node.nt_sequence, fsize=10,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+def test_layout_phylo_aa(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      fsize=10,
+                                      col_w=11, interactive=False)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+def test_layout_phylo_aa_motif(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    special_col = [[10,100],[150,1000],[1000,2000],[3000,4990]]
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      fsize=10,special_col=special_col,
+                                      alt_col_w=3,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+def test_layout_phylo_nt(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "nt",
+                                      fsize=10,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+if __name__ == "__main__":
+    tree = PhyloTree('(Orangutan,Human,Chimp);')
+    tree.link_to_alignment("""
+                           >Chimp
+                           HARWLNEKLRCELRTLKKLGLDGYKAVSQYVKGRA
+                           >Orangutan
+                           DARWINEKLRCVSRTLKKLGLDGYKGVSQYVKGRP
+                           >Human
+                           DARWHNVKLRCELRTLKKLGLVGFKAVSQFVIRRA
+                           """)
+    nt_sequences = {"Human"    : "GACGCACGGTGGCACAACGTAAAATTAAGATGTGAATTGAGAACTCTGAAAAAATTGGGACTGGTCGGCTTCAAGGCAGTAAGTCAATTCGTAATACGTCGTGCG",
+                    "Chimp"    : "CACGCCCGATGGCTCAACGAAAAGTTAAGATGCGAATTGAGAACTCTGAAAAAATTGGGACTGGACGGCTACAAGGCAGTAAGTCAGTACGTTAAAGGTCGTGCG",
+                    "Orangutan": "GATGCACGCTGGATCAACGAAAAGTTAAGATGCGTATCGAGAACTCTGAAAAAATTGGGACTGGACGGCTACAAGGGAGTAAGTCAATACGTTAAAGGTCGTCCG"
+                }
+    for l in nt_sequences:
+        (tree & l).nt_sequence = nt_sequences[l]
+    tree.dist = 0
+    ts = TreeStyle()
+    ts.title.add_face(TextFace("Example for nucleotides...", fsize=15), column=0)
+    ts.layout_fn = test_layout_evol
+    tree.show(tree_style=ts)
+
+    # Show very large algs
+    tree = PhyloTree('(Orangutan,Human,Chimp);')
+    tree.link_to_alignment(">Human\n"       + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in range(5000)]) + \
+                           "\n>Chimp\n"     + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in range(5000)]) + \
+                           "\n>Orangutan\n" + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in range(5000)]))
+    tree.dist = 0
+    ts = TreeStyle()
+    ts.title.add_face(TextFace("better not set interactivity if alg is very large", fsize=15), column=0)
+    ts.layout_fn = test_layout_phylo_aa
+
+    tree.show(tree_style=ts)
diff --git a/ete3/test/test_treeview/node_background.png b/ete3/test/test_treeview/node_background.png
new file mode 100644
index 0000000..8454f21
Binary files /dev/null and b/ete3/test/test_treeview/node_background.png differ
diff --git a/ete3/test/test_treeview/node_background.py b/ete3/test/test_treeview/node_background.py
new file mode 100755
index 0000000..781c1e4
--- /dev/null
+++ b/ete3/test/test_treeview/node_background.py
@@ -0,0 +1,44 @@
+from ... import Tree, faces, AttrFace, TreeStyle, NodeStyle
+
+def layout(node):
+    if node.is_leaf():
+        N = AttrFace("name", fsize=30)
+        faces.add_face_to_node(N, node, 0, position="aligned")
+
+def get_example_tree():
+
+    # Set dashed blue lines in all leaves
+    nst1 = NodeStyle()
+    nst1["bgcolor"] = "LightSteelBlue"
+    nst2 = NodeStyle()
+    nst2["bgcolor"] = "Moccasin"
+    nst3 = NodeStyle()
+    nst3["bgcolor"] = "DarkSeaGreen"
+    nst4 = NodeStyle()
+    nst4["bgcolor"] = "Khaki"
+
+
+    t = Tree("((((a1,a2),a3), ((b1,b2),(b3,b4))), ((c1,c2),c3));")
+    for n in t.traverse():
+        n.dist = 0
+
+    n1 = t.get_common_ancestor("a1", "a2", "a3")
+    n1.set_style(nst1)
+    n2 = t.get_common_ancestor("b1", "b2", "b3", "b4")
+    n2.set_style(nst2)
+    n3 = t.get_common_ancestor("c1", "c2", "c3")
+    n3.set_style(nst3)
+    n4 = t.get_common_ancestor("b3", "b4")
+    n4.set_style(nst4)
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.show_leaf_name = False
+
+    ts.mode = "c"
+    ts.root_opening_factor = 1
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    #t.render("node_background.png", w=400, tree_style=ts)
+    t.show(tree_style=ts)
diff --git a/ete3/test/test_treeview/node_style.png b/ete3/test/test_treeview/node_style.png
new file mode 100644
index 0000000..40ae31a
Binary files /dev/null and b/ete3/test/test_treeview/node_style.png differ
diff --git a/ete3/test/test_treeview/node_style.py b/ete3/test/test_treeview/node_style.py
new file mode 100755
index 0000000..e28d196
--- /dev/null
+++ b/ete3/test/test_treeview/node_style.py
@@ -0,0 +1,66 @@
+from ... import Tree, faces, AttrFace, TreeStyle, NodeStyle
+
+def layout(node):
+    # If node is a leaf, add the nodes name and a its scientific name
+    if node.is_leaf():
+        faces.add_face_to_node(AttrFace("name"), node, column=0)
+
+def get_example_tree():
+
+    t = Tree()
+    t.populate(8)
+
+    # Node style handling is no longer limited to layout functions. You
+    # can now create fixed node styles and use them many times, save them
+    # or even add them to nodes before drawing (this allows to save and
+    # reproduce an tree image design)
+
+    # Set bold red branch to the root node
+    style = NodeStyle()
+    style["fgcolor"] = "#0f0f0f"
+    style["size"] = 0
+    style["vt_line_color"] = "#ff0000"
+    style["hz_line_color"] = "#ff0000"
+    style["vt_line_width"] = 8
+    style["hz_line_width"] = 8
+    style["vt_line_type"] = 0 # 0 solid, 1 dashed, 2 dotted
+    style["hz_line_type"] = 0
+    t.set_style(style)
+
+    #Set dotted red lines to the first two branches
+    style1 = NodeStyle()
+    style1["fgcolor"] = "#0f0f0f"
+    style1["size"] = 0
+    style1["vt_line_color"] = "#ff0000"
+    style1["hz_line_color"] = "#ff0000"
+    style1["vt_line_width"] = 2
+    style1["hz_line_width"] = 2
+    style1["vt_line_type"] = 2 # 0 solid, 1 dashed, 2 dotted
+    style1["hz_line_type"] = 2
+    t.children[0].img_style = style1
+    t.children[1].img_style = style1
+
+    # Set dashed blue lines in all leaves
+    style2 = NodeStyle()
+    style2["fgcolor"] = "#000000"
+    style2["shape"] = "circle"
+    style2["vt_line_color"] = "#0000aa"
+    style2["hz_line_color"] = "#0000aa"
+    style2["vt_line_width"] = 2
+    style2["hz_line_width"] = 2
+    style2["vt_line_type"] = 1 # 0 solid, 1 dashed, 2 dotted
+    style2["hz_line_type"] = 1
+    for l in t.iter_leaves():
+        l.img_style = style2
+
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.show_leaf_name = False
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #t.render("node_style.png", w=400, tree_style=ts)
+
diff --git a/ete3/test/test_treeview/phylotree_visualization.py b/ete3/test/test_treeview/phylotree_visualization.py
new file mode 100644
index 0000000..a0e2680
--- /dev/null
+++ b/ete3/test/test_treeview/phylotree_visualization.py
@@ -0,0 +1,44 @@
+from ... import PhyloTree, TreeStyle
+
+alg = """
+ >Dme_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEAL--YYASQTDDIKDRREEAH
+ >Dme_002
+ MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+ >Cfa_001
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+ >Mms_001
+ MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+ >Hsa_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+ >Ptr_002
+ MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH
+ >Mmu_002
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+ >Hsa_002
+ MAEAPDETIQQFM-LTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+ >Mmu_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+ >Ptr_001
+ MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH
+ >Mmu_001
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+"""
+
+def get_example_tree():
+
+    # Performs a tree reconciliation analysis
+    gene_tree_nw = '((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'
+    species_tree_nw = "((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"
+    genetree = PhyloTree(gene_tree_nw)
+    sptree = PhyloTree(species_tree_nw)
+    recon_tree, events = genetree.reconcile(sptree)
+    recon_tree.link_to_alignment(alg)
+    return recon_tree, TreeStyle()
+
+if __name__ == "__main__":
+    # Visualize the reconciled tree
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #recon_tree.render("phylotree.png", w=750)
+
diff --git a/ete3/test/test_treeview/random_draw.py b/ete3/test/test_treeview/random_draw.py
new file mode 100755
index 0000000..7d3a75b
--- /dev/null
+++ b/ete3/test/test_treeview/random_draw.py
@@ -0,0 +1,123 @@
+import os
+
+from ... import Tree, faces
+from ...treeview.main import TreeStyle, NodeStyle, random_color
+import colorsys
+import random
+
+# ::::::::::::::
+# Layout actions
+# ::::::::::::::
+
+def sphere_map(node):
+    # Creates a random color sphere face that will be floating over nodes
+    bubble = faces.CircleFace(random.randint(5,40), random_color(), "sphere")
+    bubble.opacity = 0.7
+    faces.add_face_to_node(bubble, node, 0, position="float")
+
+def random_background(node):
+    # Set a random background color for each node partition
+    node.img_style["bgcolor"] = random_color()
+
+def leaf_name(node):
+    if node.is_leaf():
+        nameF = faces.AttrFace("name")
+        nameF.border.width = 1
+        faces.add_face_to_node(nameF, node, 0, position="branch-right")
+
+
+def aligned_faces(node):
+    if node.is_leaf():
+        for i in range(3):
+            F = faces.TextFace("ABCDEFGHIJK"[0:random.randint(1,11)])
+            F.border.width = 1
+            F.border.line_style = 1
+            F.inner_background.color = "lightgreen"
+            F.border.width = 1
+            F.inner_border.width = 1
+            F.background.color = "darkgreen"
+            F.border.width = 2
+            F.vt_align = random.randint(0,4)
+            F.hz_align = random.randint(0,4)
+            F.margin_bottom = random.randint(1, 20)
+            F.margin_right  = random.randint(1, 20)
+            F.margin_left = random.randint(1, 20)
+            F.margin_top = random.randint(1, 20)
+
+            faces.add_face_to_node(F, node, i, position="aligned")
+            if random.randint(0, 1):
+                faces.add_face_to_node(F, node, i, position="aligned")
+
+
+def master_ly(node):
+    random_background(node)
+    sphere_map(node)
+    leaf_name(node)
+    aligned_faces(node)
+
+def tiny_ly(node):
+    node.img_style["size"] = 2
+    node.img_style["shape"] = "square"
+
+size = 15
+t = Tree()
+t.populate(size, reuse_names=False)
+
+I = TreeStyle()
+I.mode = "r"
+
+I.orientation = 0
+I.layout_fn = master_ly
+I.margin_left = 100
+I.margin_right = 50
+I.margin_top = 100
+I.arc_start = 45
+I.arc_span = 360
+I.margin_bottom = 50
+I.show_border = True
+I.legend_position = 4
+I.title.add_face(faces.TextFace("HOLA MUNDO", fsize=30), 0)
+I.draw_aligned_faces_as_table = True
+
+def test(node):
+    if node.is_leaf():
+        faces.add_face_to_node(faces.AttrFace("name"), node, 0, position="aligned")
+
+I.aligned_header.add_face( faces.TextFace("H1"), 0 )
+I.aligned_header.add_face( faces.TextFace("H1"), 1 )
+I.aligned_header.add_face( faces.TextFace("H1"), 2 )
+I.aligned_header.add_face( faces.TextFace("H1111111111111"), 3 )
+I.aligned_header.add_face( faces.TextFace("H1"), 4 )
+
+I.aligned_foot.add_face( faces.TextFace("FO1"), 0 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 1 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 2 )
+I.aligned_foot.add_face( faces.TextFace("F1"), 3 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 4 )
+
+I.legend.add_face(faces.CircleFace(30, random_color(), "sphere"), 0)
+I.legend.add_face(faces.CircleFace(30, random_color(), "sphere"), 0)
+I.legend.add_face(faces.TextFace("HOLA"), 1)
+I.legend.add_face(faces.TextFace("HOLA"), 1)
+
+# Creates a random tree with 10 leaves
+t2 = Tree()
+t2.populate(10)
+
+# Creates a fixed NodeStyle object containing a TreeFace (A tree image
+# as a face within another tree image)
+# t.add_face(faces.TreeFace(t2, I), "branch-right", 0)
+
+# Attach the fixed style to the first child of the root node
+# t.children[0].img_style = style
+I.rotation = 90
+I.mode = "c"
+t.show(tree_style=I)
+#t.render("/home/jhuerta/test.svg", img_properties=I)
+#t.render("/home/jhuerta/test.pdf", img_properties=I)
+#t.render("/home/jhuerta/test.png", img_properties=I)
+#t.render("/home/jhuerta/test.ps", img_properties=I)
+#os.system("inkscape /home/jhuerta/test.svg")
+#I.mode = "c"
+#t.show(img_properties=I)
+
diff --git a/ete3/test/test_treeview/rotated_faces.png b/ete3/test/test_treeview/rotated_faces.png
new file mode 100644
index 0000000..75ba647
Binary files /dev/null and b/ete3/test/test_treeview/rotated_faces.png differ
diff --git a/ete3/test/test_treeview/seq_motif_faces.png b/ete3/test/test_treeview/seq_motif_faces.png
new file mode 100644
index 0000000..2efd2b5
Binary files /dev/null and b/ete3/test/test_treeview/seq_motif_faces.png differ
diff --git a/ete3/test/test_treeview/seq_motif_faces.py b/ete3/test/test_treeview/seq_motif_faces.py
new file mode 100755
index 0000000..0a8c439
--- /dev/null
+++ b/ete3/test/test_treeview/seq_motif_faces.py
@@ -0,0 +1,49 @@
+import sys
+
+from ... import Tree, SeqMotifFace, TreeStyle, add_face_to_node
+
+seq = "LHGRISQQVEQSRSQVQAIGEKVSLAQAKIEKIKGSKKAIKVFSSAKYPAPERLQEYGSIFTDAQDPGLQRRPRHRIQSKQRPLDERALQEKLKDFPVCVSTKPEPEDDAEEGLGGLPSNISSVSSLLLFNTTENLYKKYVFLDPLAGAVTKTHVMLGAETEEKLFDAPLSISKREQLEQQVPENYFYVPDLGQVPEIDVPSYLPDLPGIANDLMYIADLGPGIAPSAPGTIPELPTFHTEVAEPLKVGELGSGMGAGPGTPAHTPSSLDTPHFVFQTYKMGAPPLPPSTAAPVGQGARQDDSSSSASPSVQGAPREVVDPSGGWATLLESIRQAGGIGKAKLRSMKERKLEKQQQKEQEQVRATSQGGHLMSDLFNKLVMRRKGISGKGPGAGDGPGGAFARVSDSIPPLPPPQQPQAEDEDDWES"
+motifs = [
+    # seq.start, seq.end, shape, width, height, fgcolor, bgcolor
+    [10, 100, "[]", None, 10, "black", "rgradient:blue", "arial|8|white|domain Name very long so it should be clipped"],
+    [101, 150, "o", None, 10, "blue", "pink", None],
+    [155, 180, "()", None, 10, "blue", "rgradient:purple", None],
+    [160, 190, "^", None, 14, "black", "yellow", None],
+    [172, 180, "v", None, 12, "black", "rgradient:orange", None],
+    [185, 190, "o", None, 12, "black", "brown", None],
+    [198, 200, "<>", None, 15, "black", "rgradient:gold", None],
+    [210, 240, "compactseq", 2, 10, None, None, None],
+    [300, 320, "seq", 10, 10, None, None, None],
+    [310, 420, "<>", None, 30, "black", "rgradient:black", None],
+    [1, 420, "()", None, 10, "red", "red", None],
+    [11, 30, "()", None, 20, "blue", "blue", None],
+    [300, 310, "()", None, 40, "green", "green", None],
+    ]
+
+def layout(node):
+    if node.is_leaf():
+        seqFace = SeqMotifFace(seq, motifs, scale_factor=1)
+        add_face_to_node(seqFace, node, 0, position="aligned")
+
+
+def get_example_tree():
+    # Create a random tree and add to each leaf a random set of motifs
+    # from the original set
+    t = Tree()
+    t.populate(10)
+    # for l in t.iter_leaves():
+    #     seq_motifs = [list(m) for m in motifs] #sample(motifs, randint(2, len(motifs)))
+
+    #     seqFace = SeqMotifFace(seq, seq_motifs, intermotif_format="line",
+    #                            seqtail_format="compactseq", scale_factor=1)
+    #     seqFace.margin_bottom = 4
+    #     f = l.add_face(seqFace, 0, "aligned")
+
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    return t, ts
+
+if __name__ == '__main__':
+    t, ts = get_example_tree()
+    t.render("motifs.png", w=1200, dpi=300, tree_style=ts)
+    #t.show(tree_style=ts)
diff --git a/ete3/test/test_treeview/seqmotif.png b/ete3/test/test_treeview/seqmotif.png
new file mode 100644
index 0000000..2d20d96
Binary files /dev/null and b/ete3/test/test_treeview/seqmotif.png differ
diff --git a/ete3/test/test_treeview/test_all_treeview.py b/ete3/test/test_treeview/test_all_treeview.py
new file mode 100644
index 0000000..2f7761e
--- /dev/null
+++ b/ete3/test/test_treeview/test_all_treeview.py
@@ -0,0 +1,161 @@
+from __future__ import absolute_import
+import unittest
+import random
+import sys
+import os
+
+ETEPATH = os.path.abspath(os.path.split(os.path.realpath(__file__))[0]+'/../')
+sys.path.insert(0, ETEPATH)
+
+from ... import Tree, TreeStyle, NodeStyle, PhyloTree, faces, random_color
+from ...treeview.faces import *
+from ...treeview.main import _NODE_TYPE_CHECKER, FACE_POSITIONS
+
+from . import (face_grid, bubble_map, item_faces, node_style, node_background,
+               face_positions, face_rotation, seq_motif_faces,
+               barchart_and_piechart_faces, phylotree_visualization)
+
+CONT = 0
+class Test_Coretype_Treeview(unittest.TestCase):
+    """ Tests tree basics. """
+    def test_renderer(self):
+
+        main_tree = Tree()
+        main_tree.dist = 0
+
+        t, ts = face_grid.get_example_tree()
+        t_grid = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_grid, 0, "aligned")
+
+        t, ts = bubble_map.get_example_tree()
+        t_bubble = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_bubble, 0, "aligned")
+
+        t, ts = item_faces.get_example_tree()
+        t_items = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_items, 0, "aligned")
+
+        t, ts = node_style.get_example_tree()
+        t_nodest = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_nodest, 0, "aligned")
+
+        t, ts = node_background.get_example_tree()
+        t_bg = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_bg, 0, "aligned")
+
+        t, ts = face_positions.get_example_tree()
+        t_fpos = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_fpos, 0, "aligned")
+
+        t, ts = phylotree_visualization.get_example_tree()
+        t_phylo = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(t_phylo, 0, "aligned")
+
+        t, ts = face_rotation.get_example_tree()
+        temp_facet = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_facet, 0, "aligned")
+
+        t, ts = seq_motif_faces.get_example_tree()
+        temp_facet = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_facet, 0, "aligned")
+
+        t, ts = barchart_and_piechart_faces.get_example_tree()
+        temp_facet = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_facet, 0, "aligned")
+
+        #Test orphan nodes and trees with 0 branch length
+        t, ts = Tree(), TreeStyle()
+        t.populate(5)
+        for n in t.traverse():
+            n.dist = 0
+        temp_tface = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        ts.optimal_scale_level = "full"
+        temp_tface = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        ts = TreeStyle()
+        t.populate(5)
+        ts.mode = "c"
+        temp_tface = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        ts.optimal_scale_level = "full"
+        temp_tface = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        t, ts = Tree(), TreeStyle()
+        temp_tface = TreeFace(Tree('node;'), ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        t, ts = Tree(), TreeStyle()
+        ts.mode = "c"
+        temp_tface = TreeFace(Tree('node;'), ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        t, ts = Tree(), TreeStyle()
+        ts.mode = "c"
+        temp_tface = TreeFace(Tree(), ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        t, ts = Tree(), TreeStyle()
+        temp_tface = TreeFace(Tree(), ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        # TEST TIGHT TEST WRAPPING
+        chars = ["." "p", "j", "jJ"]
+        def layout(node):
+            global CONT
+            if CONT >= len(chars):
+                CONT = 0
+            if node.is_leaf():
+                node.img_style["size"] = 0
+                F2= AttrFace("name", tight_text=True)
+                F= TextFace(chars[CONT], tight_text=True)
+                F.inner_border.width = 0
+                F2.inner_border.width = 0
+                #faces.add_face_to_node(F ,node, 0, position="branch-right")
+                faces.add_face_to_node(F2 ,node, 1, position="branch-right")
+                CONT += 1
+        t = Tree()
+        t.populate(20, random_branches=True)
+        ts = TreeStyle()
+        ts.layout_fn = layout
+        ts.mode = "c"
+        ts.show_leaf_name = False
+
+        temp_tface = TreeFace(t, ts)
+        n = main_tree.add_child()
+        n.add_face(temp_tface, 0, "aligned")
+
+        # MAIN TREE
+
+        ms = TreeStyle()
+        ms.mode = "r"
+        ms.show_leaf_name = False
+        main_tree.render('test.png', tree_style=ms)
+        main_tree.render('test.svg', tree_style=ms)
+        main_tree.render('test.pdf', tree_style=ms)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/test/test_treeview/tree_faces.png b/ete3/test/test_treeview/tree_faces.png
new file mode 100644
index 0000000..31a6289
Binary files /dev/null and b/ete3/test/test_treeview/tree_faces.png differ
diff --git a/ete3/test/test_treeview/tree_faces.py b/ete3/test/test_treeview/tree_faces.py
new file mode 100755
index 0000000..6253f78
--- /dev/null
+++ b/ete3/test/test_treeview/tree_faces.py
@@ -0,0 +1,53 @@
+import random
+from ... import Tree, TreeStyle, NodeStyle, faces, AttrFace, TreeFace
+
+# Tree Style used to render small trees used as leaf faces
+small_ts = TreeStyle()
+small_ts.show_leaf_name = True
+small_ts.scale = 10
+
+def layout(node):
+    if node.is_leaf():
+        # Add node name to laef nodes
+        N = AttrFace("name", fsize=14, fgcolor="black")
+        faces.add_face_to_node(N, node, 0)
+
+        t = Tree()
+        t.populate(10)
+
+        T = TreeFace(t, small_ts)
+        # Let's make the sphere transparent
+        T.opacity = 0.8
+        # And place as a float face over the tree
+        faces.add_face_to_node(T, node, 1, position="aligned")
+
+def get_example_tree():
+    # Random tree
+    t = Tree()
+    t.populate(20, random_branches=True)
+
+    # Some random features in all nodes
+    for n in t.traverse():
+        n.add_features(weight=random.randint(0, 50))
+
+    # Create an empty TreeStyle
+    ts = TreeStyle()
+
+    # Set our custom layout function
+    ts.layout_fn = layout
+
+    # Draw a tree
+    ts.mode = "c"
+
+    # We will add node names manually
+    ts.show_leaf_name = False
+    # Show branch data
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    #t.render("tree_faces.png", w=600, dpi=300, tree_style=ts)
+    t.show(tree_style=ts)
+
diff --git a/ete3/test/test_xml_parsers.py b/ete3/test/test_xml_parsers.py
new file mode 100644
index 0000000..bb09f04
--- /dev/null
+++ b/ete3/test/test_xml_parsers.py
@@ -0,0 +1,63 @@
+from __future__ import absolute_import
+from __future__ import print_function
+import unittest
+import os
+import time
+from .. import nexml, phyloxml
+
+ETEPATH = os.path.abspath(os.path.split(os.path.realpath(__file__))[0]+'/../../')
+
+class Test_PhyloXML(unittest.TestCase):
+    def test_phyloxml_parser(self):
+        path = os.path.join(ETEPATH, "examples/phyloxml/")
+        for fname in os.listdir(path):
+            if fname.endswith(".xml"):
+                W = open("/tmp/test_xml_parser", "w")
+                print(fname, "...", end=' ')
+                fpath = os.path.join(path, fname)
+                p = phyloxml.Phyloxml()
+                t1 = time.time()
+                p.build_from_file(fpath)
+                etime = time.time()-t1
+                print("%0.1f secs" %(etime))
+                p.export(outfile = W)
+
+    def test_examples(self):
+        path = os.path.join(ETEPATH, "examples/phyloxml/")
+        for ex in os.listdir(path):
+            print("testing", ex)
+            if ex.endswith(".py"):
+                s = os.system("cd %s && python %s" %(path, ex))
+                if s:
+                    raise Exception("Example crashed!")
+
+
+
+class Test_NeXML(unittest.TestCase):
+    def test_nexml_parser(self):
+        path = os.path.join(ETEPATH, "examples/nexml/")
+        for fname in os.listdir(path):
+            if fname.endswith(".xml"):
+                W = open("/tmp/test_xml_parser", "w")
+                print(fname, "...", end=' ')
+                fpath = os.path.join(path, fname)
+                p = nexml.Nexml()
+                t1 = time.time()
+                p.build_from_file(fpath)
+                etime = time.time()-t1
+                print("%0.1f secs" %(etime))
+                p.export(outfile = W)
+
+    def test_examples(self):
+        path = os.path.join(ETEPATH, "examples/nexml/")
+        for ex in os.listdir(path):
+            print("testing", ex)
+            if ex.endswith(".py"):
+                s = os.system("cd %s && python %s" %(path, ex))
+                if s:
+                    raise Exception("Example crashed!")
+
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/ete3/tools/__init__.py b/ete3/tools/__init__.py
new file mode 100644
index 0000000..daababf
--- /dev/null
+++ b/ete3/tools/__init__.py
@@ -0,0 +1,38 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
diff --git a/ete3/tools/common.py b/ete3/tools/common.py
new file mode 100644
index 0000000..eb75766
--- /dev/null
+++ b/ete3/tools/common.py
@@ -0,0 +1,257 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import operator
+import re
+from six.moves import map
+
+__CITATION__ = '''#       ** If you use this software for a published work, please cite: **
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon. ETE: a python Environment
+# for Tree Exploration. BMC Bioinformatics 2010, 11:24. doi: 10.1186/1471-2105-11-24.'''
+
+
+LOG_LEVEL = 2
+
+class ArgError(ValueError):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        # return repr(self.value)
+        return self.value
+    pass
+
+
+class Logger(object):
+    def __init__(self, buff):
+        self.out = buff
+
+    def error(self, *args):
+        if LOG_LEVEL >=1:
+            print("ERROR - ", ' '.join(map(str, args)), file=self.out)
+
+    def warn(self, *args):
+        if LOG_LEVEL >=2:
+            print("WARN  - ", ' '.join(map(str, args)), file=self.out)
+
+    def info(self, *args):
+        if LOG_LEVEL >=3:
+            print("INFO  - ", ' '.join(map(str, args)), file=self.out)
+
+    def debug(self, *args):
+        if LOG_LEVEL >=4:
+            print("DEBUG - ", ' '.join(map(str, args)), file=self.out)
+
+log = Logger(sys.stderr)
+
+
+def itertrees(trees, treefile):
+    if trees:
+        for nw in trees:
+            yield nw
+    if treefile:
+        for line in open(treefile):
+            line = line.strip()
+            if not line or line.startswith('#'):
+                continue
+            else:
+                yield line
+
+def node_matcher(node, filters):
+    if not filters:
+        return True
+
+    for f in filters:
+        node_v = getattr(node, f[0], None)
+        if node_v:
+            try:
+                node_v = type(f[2])(node_v)
+            except ValueError:
+                pass
+            if OPFUNC[f[1]](node_v, f[2]):
+                return True
+            # else:
+            #     print f, node_v, type(node_v)
+    return False
+
+def _re(q, exp):
+    if re.search(exp, q):
+        return True
+    return False
+
+POSNAMES = {
+    "b-right":"branch-right",
+    "b-top":"branch-top",
+    "b-bottom":"branch-bottom",
+    "float":"float",
+    "float-behind":"float-behind",
+    "aligned":"aligned",
+}
+
+OPFUNC = {
+    "<":operator.lt,
+    ">":operator.gt,
+    "=":operator.eq,
+    "==":operator.eq,
+    "!=":operator.ne,
+    ">=":operator.ge,
+    "<-":operator.le,
+    "~=":_re,
+}
+
+
+def as_str(v):
+    if isinstance(v, float):
+        return '%0.2f' %v
+    else:
+        return str(v)
+
+def shorten_str(string, l, reverse=False):
+    if len(string) > l:
+        if reverse:
+            return "(..)%s" % string[l+4:]
+        else:
+            return "%s(..)" % string[:l-4]
+    else:
+        return string
+
+def parse_value(fvalue):
+    func_match = re.search("(\w+)\(([^)]*)\)", fvalue)
+    if func_match:
+        func_name = func_match.groups()[0]
+        func_arg = func_match.groups()[1]
+    #RETURN SOMETHING
+
+def dump(t, features=None):
+    #if getattr(args, "output", None):
+    #    t.write(format=0, features=features)
+    #else:
+    print(t.write(format=0, features=features))
+
+def populate_main_args(main_args_p):
+    main_args = main_args_p.add_argument_group('GENERAL OPTIONS')
+
+    main_args.add_argument("-o", dest="output",
+                            type=str,
+                            help="""Base output file name""")
+
+
+
+    #main_args.add_argument('--features', dest='output_features', type=str, nargs="+", default=[])
+
+    #main_args.add_argument("--nocolor", dest="nocolor",
+    #                       action="store_true",
+    #                       help="If enabled, it will NOT use colors when logging")
+
+    main_args.add_argument("-v", dest="verbosity",
+                           type=int, choices= [0, 1, 2, 3, 4], default=2,
+                           help=("Verbosity level: 0=totally quite, 1=errors only,"
+                           " 2=warning+errors, 3=info+warnings+errors 4=debug "))
+
+def populate_source_args(source_args_p):
+    source_args = source_args_p.add_argument_group('SOURCE TREES')
+
+    source_args.add_argument("-t", dest='src_trees',
+                             type=str, nargs="*",
+                             help=("a list of trees in newick format (filenames or"
+                             " quoted strings)"))
+
+    source_args.add_argument("--src_tree_list", dest="src_tree_list",
+                             type=str,
+                             help=("path to a file containing many source trees, one per line"))
+
+    source_args.add_argument("--src_tree_attr", dest="src_tree_attr",
+                             type=str, default="name",
+                             help=("attribute in source tree used as leaf name"))
+
+    source_args.add_argument("--src_attr_parser", dest="src_attr_parser",
+                             type=str,
+                             help=("Perl regular expression wrapping the portion of the target attribute that should be used."))
+
+    source_args.add_argument('--src_tree_format', dest='src_newick_format', type=int, default=0)
+    
+def populate_ref_args(ref_args_p):
+    ref_args = ref_args_p.add_argument_group('REFERENCE TREES')
+
+    ref_args.add_argument("-r", dest="ref_trees",
+                           type=str, nargs="*",
+                           help=("One or more reference trees in newick format (filename"
+                                 " or quoted string"))
+
+    ref_args.add_argument("--ref_tree_list", dest="ref_tree_list",
+                             type=str,
+                             help="path to a file containing many ref trees, one per line")
+
+    ref_args.add_argument("--ref_tree_attr", dest="ref_tree_attr",
+                           type=str, default="name",
+                           help=("attribute in ref tree used as leaf name"))
+
+    ref_args.add_argument("--ref_attr_parser", dest="ref_attr_parser",
+                           type=str,
+                           help=("Perl regular expression wrapping the portion of the target attribute that should be used."))
+
+    ref_args.add_argument('--ref_tree_format', dest='ref_newick_format', type=int, default=0)
+    
+
+def src_tree_iterator(args):
+    if not args.src_trees and not sys.stdin.isatty():
+        log.debug("Reading trees from standard input...")
+        args.src_trees = sys.stdin
+        
+    if args.src_trees:
+        for stree in args.src_trees:
+            yield stree.strip()
+    elif args.src_tree_list:
+        for line in open(args.src_tree_list):
+            line = line.strip()
+            if line: 
+                yield line
+
+def ref_tree_iterator(args):
+    if args.ref_trees:
+        for stree in args.ref_trees:            
+            yield stree
+    elif args.ref_tree_list:
+        for line in open(args.ref_tree_list):
+            line = line.strip()
+            if line: 
+                yield line
diff --git a/ete3/tools/ete.py b/ete3/tools/ete.py
new file mode 100755
index 0000000..1e9b089
--- /dev/null
+++ b/ete3/tools/ete.py
@@ -0,0 +1,241 @@
+#!/usr/bin/env python
+
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+import os
+
+TOOLSPATH = os.path.realpath(os.path.split(os.path.realpath(__file__))[0])
+#sys.path.insert(0, TOOLSPATH)
+#sys.path.insert(1, TOOLSPATH.replace("ete3/tools", ''))
+#print sys.path
+
+import argparse
+from . import (ete_split, ete_expand, ete_annotate, ete_ncbiquery, ete_view,
+               ete_generate, ete_mod, ete_extract, ete_compare, ete_evol,
+               ete_maptrees)
+from . import common
+from .common import log
+from .utils import colorify, which
+
+"""
+def ete_split(args):
+    # bydups, bydist, name, find clsuters
+def ete_expand(args):
+    # polytomies
+def ete_extract(args):
+    #dups, orthologs, partitions, edges, dist_matrix, ancestor,
+def ete_convert(args):
+    # between newick formats, orthoxml, phyloxml
+def ete_maptrees(args):
+def ete_reconcile(args):
+def ete_consense(args):
+    # all observed splits
+def ete_fetch(args):
+def ete_evol(args):
+
+"""
+
+def tree_iterator(args):
+    if not args.src_trees and not sys.stdin.isatty():
+        log.debug("Reading trees from standard input...")
+        args.src_trees = sys.stdin
+    elif not args.src_trees:
+        log.error("At least one tree is required as input (i.e --src_trees ) ")
+        sys.exit(-1)
+
+    for stree in args.src_trees:
+        # CHECK WHAT is needed before process the main command, allows mods before analyses
+        yield stree.strip()
+
+def main():
+    _main(sys.argv)
+        
+def _main(arguments):
+    if len(arguments) > 1:
+        subcommand = arguments[1]
+        if  subcommand == "version":
+            from .. import __version__
+            print(__version__)
+            return
+        elif subcommand == "upgrade-external-tools":
+            from . import ete_upgrade_tools
+            del arguments[1]
+            status = ete_upgrade_tools._main()
+            sys.exit(status)
+            
+        elif subcommand == "build":
+            from . import phylobuild
+            del arguments[1]
+
+            builtin_apps_path = None
+            ete3_path = which("ete3")
+            if ete3_path: 
+                builtin_apps_path = os.path.join(os.path.split(ete3_path)[0], "ete3_apps")
+            phylobuild._main(arguments, builtin_apps_path)
+            
+            return
+
+    # CREATE REUSABLE PARSER OPTIONS
+
+    # main args
+    main_args_p = argparse.ArgumentParser(add_help=False)
+    common.populate_main_args(main_args_p)
+    # source tree args
+    source_args_p = argparse.ArgumentParser(add_help=False)
+    common.populate_source_args(source_args_p)
+    # ref tree args
+    ref_args_p = argparse.ArgumentParser(add_help=False)
+    common.populate_ref_args(ref_args_p)
+    # mod
+    mod_args_p = argparse.ArgumentParser(add_help=False)
+    ete_mod.populate_args(mod_args_p)
+    # expand
+    expand_args_p = argparse.ArgumentParser(add_help=False)
+    ete_expand.populate_args(expand_args_p)
+    # extract
+    extract_args_p = argparse.ArgumentParser(add_help=False)
+    ete_extract.populate_args(extract_args_p)
+    # split
+    split_args_p = argparse.ArgumentParser(add_help=False)
+    ete_split.populate_args(split_args_p)
+
+
+    # ADD SUBPROGRAM TO THE MAIN PARSER
+    parser = argparse.ArgumentParser(description="",
+                                     formatter_class=argparse.RawDescriptionHelpFormatter)
+    subparser = parser.add_subparsers(title="AVAILABLE PROGRAMS")
+
+    # - MOD -
+    mod_args_pp = subparser.add_parser("mod", parents=[source_args_p, main_args_p, mod_args_p],
+                                       description=ete_mod.DESC,
+                                       formatter_class=argparse.RawDescriptionHelpFormatter)
+    mod_args_pp.set_defaults(func=ete_mod.run)
+
+    # - EXTRACT -
+    extract_args_pp = subparser.add_parser("extract", parents=[source_args_p, main_args_p, extract_args_p],
+                                       description=ete_extract.DESC,
+                                       formatter_class=argparse.RawDescriptionHelpFormatter)
+    extract_args_pp.set_defaults(func=ete_extract.run)
+
+
+    # - ANNOTATE -
+    annotate_args_p = subparser.add_parser("annotate", parents=[source_args_p, main_args_p],
+                                       description=ete_annotate.DESC,
+                                       formatter_class=argparse.RawDescriptionHelpFormatter)
+    annotate_args_p.set_defaults(func=ete_annotate.run)
+    ete_annotate.populate_args(annotate_args_p)
+
+
+    # - COMPARE -
+    compare_args_p = subparser.add_parser("compare", parents=[source_args_p, ref_args_p, main_args_p],
+                                           description=ete_compare.DESC,
+                                          formatter_class=argparse.RawDescriptionHelpFormatter)
+    compare_args_p.set_defaults(func=ete_compare.run)
+    ete_compare.populate_args(compare_args_p)
+
+    # - VIEW -
+    view_args_p = subparser.add_parser("view", parents=[source_args_p, main_args_p],
+                                        description=ete_view.DESC,
+                                       formatter_class=argparse.RawDescriptionHelpFormatter)
+    view_args_p.set_defaults(func=ete_view.run)
+    ete_view.populate_args(view_args_p)
+
+
+    # - NCBIQUERY -
+    ncbi_args_p = subparser.add_parser("ncbiquery", parents=[main_args_p],
+                                       description=ete_ncbiquery.DESC)
+    ncbi_args_p.set_defaults(func=ete_ncbiquery.run)
+    ete_ncbiquery.populate_args(ncbi_args_p)
+
+    # - GENERATE -
+    generate_args_p = subparser.add_parser("generate", parents=[source_args_p, main_args_p],
+                                           description=ete_generate.DESC,
+                                           formatter_class=argparse.RawDescriptionHelpFormatter)
+
+    generate_args_p.set_defaults(func=ete_generate.run)
+    ete_generate.populate_args(generate_args_p)
+
+    # - EVOL -
+    evol_args_p = subparser.add_parser("evol", parents=[source_args_p, main_args_p],
+                                       description=ete_evol.DESC)
+    evol_args_p.set_defaults(func=ete_evol.run)
+    ete_evol.populate_args(evol_args_p)
+
+    # - MAPTREES -
+    maptrees_args_p = subparser.add_parser("maptrees", parents=[source_args_p, ref_args_p, main_args_p],
+                                       description=ete_maptrees.DESC)
+    maptrees_args_p.set_defaults(func=ete_maptrees.run)
+    ete_maptrees.populate_args(maptrees_args_p)
+
+    
+    # - build -
+    generate_args_p = subparser.add_parser("build")
+
+    # - helpers -
+    
+    generate_args_p = subparser.add_parser("version")
+    generate_args_p = subparser.add_parser("upgrade-external-tools")
+    
+    # ===================
+    #  EXECUTE PROGRAM
+    # ===================
+    if len(arguments) == 1:
+        parser.print_usage()
+        return
+    
+    args = parser.parse_args(arguments[1:])
+    LOG_LEVEL = args.verbosity
+    if hasattr(args, "src_trees"):
+        args.src_tree_iterator = tree_iterator(args)
+
+    elif args.func==ete_ncbiquery.run and not getattr(args, "search", None):
+        if not args.search and not sys.stdin.isatty():
+            log.debug("Reading taxa from standard input...")
+            args.search = sys.stdin
+
+    # Call main program
+    args.func(args)
+
+if __name__=="__main__":
+    main()
diff --git a/ete3/tools/ete_annotate.py b/ete3/tools/ete_annotate.py
new file mode 100644
index 0000000..d28991a
--- /dev/null
+++ b/ete3/tools/ete_annotate.py
@@ -0,0 +1,119 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from .common import dump, src_tree_iterator
+from six.moves import map
+
+DESC = ""
+def populate_args(annotate_args_p):
+    annotate_args = annotate_args_p.add_argument_group("TREE ANNOTATE OPTIONS")
+    annotate_args.add_argument("--ncbi", dest="ncbi", action="store_true",
+                               help="annotate tree nodes using ncbi taxonomy database.")
+    annotate_args.add_argument("--taxid_attr", dest="taxid_attr", default='name',
+                               help="attribute used as NCBI taxid number")
+    annotate_args.add_argument("--feature", dest="feature", nargs="+", action='append', default=[],
+                               help="")
+def run(args):
+    from .. import Tree, PhyloTree
+
+    features = set()
+    for nw in src_tree_iterator(args):
+        if args.ncbi:
+            tree = PhyloTree(nw)
+            features.update(["taxid", "name", "rank", "bgcolor", "sci_name",
+                             "collapse_subspecies", "named_lineage", "lineage"])
+            tree.annotate_ncbi_taxa(args.taxid_attr)
+        else:
+            tree = Tree(nw)
+
+        type2cast = {"str":str, "int":int, "float":float, "set":set, "list":list}
+
+        for annotation in args.feature:
+            aname, asource, amultiple, acast = None, None, False, str
+            for field in annotation:
+                try:
+                    key, value = [_f.strip() for _f in field.split(":")]
+                except Exception:
+                    raise ValueError("Invalid feature option [%s]" %field )
+
+                if key == "name":
+                    aname = value
+                elif key == "source":
+                    asource = value
+                elif key == "multiple":
+                    #append
+                    amultiple = value
+                elif key == "type":
+                    try:
+                        acast = type2cast[value]
+                    except KeyError:
+                        raise ValueError("Invalid feature type [%s]" %field)
+                else:
+                    raise ValueError("Unknown feature option [%s]" %field)
+
+            if not aname and not asource:
+                ValueError('name and source are required when annotating a new feature [%s]'
+                           % annotation)
+
+            features.add(aname)
+            for line in open(asource, 'rU'):
+                line = line.strip()
+                if not line or line.startswith('#'):
+                    continue
+                nodenames, attr_value = [_ln.strip() for _ln in line.split('\t')]
+                nodenames = list(map(str.strip, nodenames.split(',')))
+                relaxed_grouping = True
+                if nodenames[0].startswith('!'):
+                    relaxed_grouping = False
+                    nodenames[0] = nodenames[0][1:]
+
+                if len(nodenames) > 1:
+                    target_node = tree.get_common_ancestor(nodenames)
+                    if not relaxed_grouping:
+                        pass
+                        # do something
+                else:
+                    target_node = tree & nodenames[0]
+
+                if hasattr(target_node, aname):
+                    log.warning('Overwriting annotation for node" [%s]"' %nodenames)
+                else:
+                    target_node.add_feature(aname, acast(attr_value))
+
+        dump(tree, features=features)
diff --git a/ete3/tools/ete_compare.py b/ete3/tools/ete_compare.py
new file mode 100644
index 0000000..419ea24
--- /dev/null
+++ b/ete3/tools/ete_compare.py
@@ -0,0 +1,215 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from .common import as_str, shorten_str, src_tree_iterator, ref_tree_iterator
+
+import re
+from six.moves import map
+
+DESC = """
+ - ete compare -
+
+'compare' is a tool to calculate distances from one or more trees to a
+reference tree.
+
+It provides Robinson foulds and tree compatibility measures. Comparisons between
+trees with different sizes and containing duplicated attributes are also
+supported.
+
+%s
+
+"""
+
+def populate_args(compare_args_p):
+    compare_args = compare_args_p.add_argument_group("COMPARE GENERAL OPTIONS")
+
+    compare_args.add_argument("--min_support_ref",
+                              type=float, default=0.0,
+                              help=("min support for branches to be considered from the ref tree"))
+    compare_args.add_argument("--min_support_src",
+                              type=float, default=0.0,
+                              help=("min support for branches to be considered from the source tree"))
+
+    compare_args.add_argument("--unrooted", dest="unrooted",
+                              action = "store_true",
+                              help="""compare trees as unrooted""")
+
+    compare_args.add_argument("--show_mismatches", dest="show_mismatches",
+                              action = "store_true",
+                              help="")
+
+    compare_args.add_argument("--show_matches", dest="show_matches",
+                              action = "store_true",
+                              help="")
+    compare_args.add_argument("--show_edges", dest="show_edges",
+                              action = "store_true",
+                              help="")
+
+    compare_args.add_argument("--taboutput", dest="taboutput",
+                              action = "store_true",
+                              help="ouput results in tab delimited format")
+
+    compare_args.add_argument("--treeko", dest="treeko",
+                              action = "store_true",
+                              help="activates the TreeKO duplication aware comparison method")
+
+
+def run(args):
+    from .. import Tree
+    from ..utils import print_table
+
+    def iter_differences(set1, set2, unrooted=False):
+        for s1 in set1:
+            pairs = []
+            for r1 in set2:
+                if unrooted:
+                    d = euc_dist_unrooted(s1, r1)
+                else:
+                    d = euc_dist(s1, r1)
+                if d < 1:
+                    pairs.append((d,r1))
+            yield s1, pairs
+
+
+    col_sizes = [15, 15] + [7] * 8
+
+    header = ['source', 'ref', 'E.size', 'nRF',
+              'RF', 'maxRF', "src-branches",
+              "ref-branches", "subtrees", "treekoD" ]
+
+    if args.taboutput:
+        print('# ' + '\t'.join(header))
+    elif args.show_mismatches or args.show_matches:
+        pass
+    else:
+        print_table([header,
+                     ["=========================="] * 10],
+                    fix_col_width=col_sizes, wrap_style="cut")
+
+
+    if args.treeko:
+        from .. import PhyloTree
+        tree_class = PhyloTree
+    else:
+        tree_class = Tree
+
+    for stree_name in src_tree_iterator(args):
+        stree = tree_class(stree_name, format=args.src_newick_format)
+
+        # Parses attrs if necessary
+        src_tree_attr = args.src_tree_attr
+        if args.src_attr_parser:
+            for leaf in stree:
+                leaf.add_feature('tempattr', re.search(
+                    args.src_attr_parser, getattr(leaf, args.src_tree_attr)).groups()[0])
+            src_tree_attr = 'tempattr'
+
+        for rtree_name in ref_tree_iterator(args):
+            rtree = tree_class(rtree_name, format=args.ref_newick_format)
+
+            # Parses attrs if necessary
+            ref_tree_attr = args.ref_tree_attr
+            if args.ref_attr_parser:
+                for leaf in rtree:
+                    leaf.add_feature('tempattr', re.search(
+                        args.ref_attr_parser, getattr(leaf, args.ref_tree_attr)).groups()[0])
+                ref_tree_attr = 'tempattr'
+
+            r = stree.compare(rtree,
+                              ref_tree_attr=ref_tree_attr,
+                              source_tree_attr=src_tree_attr,
+                              min_support_ref=args.min_support_ref,
+                              min_support_source = args.min_support_src,
+                              unrooted=args.unrooted,
+                              has_duplications=args.treeko)
+
+
+
+            if args.show_mismatches or args.show_matches or args.show_edges:
+                if args.show_mismatches:
+                    src = r['source_edges'] - r['ref_edges']
+                    ref = r['ref_edges'] - r['source_edges']
+                elif args.show_matches:
+                    src = r['source_edges'] & r['ref_edges']
+                    ref = r['ref_edges'] & r['source_edges']
+                elif args.show_edges:
+                    src = r['source_edges']
+                    ref = r['ref_edges']
+
+                if args.unrooted:
+                    for tag, part in [("src: %s"%stree_name, src), ("ref: %s"%rtree_name, ref)]:
+                        print("%s\t%s" %(tag, '\t'.join(
+                            map(lambda x: '%s|%s' %(','.join(x[0]), ','.join(x[1])), part))))
+                else:
+                    for tag, part in [("src: %s"%stree_name, src), ("ref: %s"%rtree_name, ref)]:
+                        print("%s\t%s" %(tag, '\t'.join([','.join(p) for p in part])))
+            else:
+                data = [shorten_str(stree_name, 15, reverse=True),
+                        shorten_str(rtree_name, 15, reverse=True),
+                        r['effective_tree_size'],
+                        r['norm_rf'],
+                        r['rf'], r['max_rf'],
+                        r["source_edges_in_ref"],
+                        r["ref_edges_in_source"],
+                        r['source_subtrees'],
+                        r['treeko_dist']]
+
+                if r['effective_tree_size'] == 0:
+                    for i in range(3, len(data)):
+                        data[i] = -1
+
+                if args.taboutput:
+                    print('\t'.join(map(str, data)))
+                else:
+                    print_table([list(map(as_str, data))],
+                                fix_col_width = col_sizes, wrap_style='cut')
+
+
+def euc_dist(v1, v2):
+    if type(v1) != set: v1 = set(v1)
+    if type(v2) != set: v2 = set(v2)
+
+    return len(v1 ^ v2) / float(len(v1 | v2))
+
+def euc_dist_unrooted(v1, v2):
+    a = (euc_dist(v1[0], v2[0]) + euc_dist(v1[1], v2[1])) / 2.0
+    b = (euc_dist(v1[1], v2[0]) + euc_dist(v1[0], v2[1])) / 2.0
+    return min(a, b)
diff --git a/ete3/tools/ete_evol.py b/ete3/tools/ete_evol.py
new file mode 100644
index 0000000..e362b32
--- /dev/null
+++ b/ete3/tools/ete_evol.py
@@ -0,0 +1,974 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from .utils import which, colorify
+from ..evol.control import PARAMS, AVAIL, PARAMS_DESCRIPTION
+from .. import EvolTree, random_color, add_face_to_node, TextFace, TreeStyle
+from ..treeview.layouts import evol_clean_layout
+from ..evol import Model
+from argparse import RawTextHelpFormatter
+from multiprocessing import Pool, Queue
+from subprocess import Popen, PIPE
+from sys import stderr
+import os
+from re import sub
+from signal import signal, SIGINT, SIG_IGN
+
+from warnings import warn
+
+DESC = ("Run/Load evolutionary tests, store results in a given oputput folder\n"
+        "********************************************************************")
+
+CATEGORIES =  {"NS" : "Not significant",
+               "RX" : "Relaxed (probability > 0.95)",
+               "RX+": "Relaxed (probability > 0.99)",
+               "CN" : "Conserved (probability > 0.95)",
+               "CN+": "Conserved (probability > 0.99)",
+               "PS" : "Positively-selected (probability > 0.95)",
+               "PS+": "Positively-selected (probability > 0.99)"}
+
+def init_worker():
+    signal(SIGINT, SIG_IGN)
+
+def populate_args(evol_args_p):
+    evol_args_p.formatter_class = RawTextHelpFormatter
+    evol_args = evol_args_p.add_argument_group('ETE-EVOL OPTIONS')
+    evol_args.add_argument("--alg", dest="alg",
+                           type=str,
+                           help=("Link tree to a multiple sequence alignment"
+                                 " (codons)."))
+
+    evol_args.add_argument("--models", dest="models",
+                           nargs="+",
+                           help="""choose evolutionary models (Model name) among:
+=========== ============================= ==================
+Model name  Description                   Model kind
+=========== ============================= ==================\n%s
+=========== ============================= ==================
+                           """ % (
+                               '\n'.join([' %-8s    %-27s   %-15s' % \
+                                          ('%s' % (x), AVAIL[x]['evol'],
+                                           AVAIL[x]['typ']) for x in sorted (
+                                              sorted (AVAIL.keys()),
+                                              key=lambda x: AVAIL[x]['typ'],
+                                              reverse=True)])),
+                           metavar='[...]')
+
+    evol_args.add_argument("--node_ids", dest="node_ids",
+                           action='store_true',
+                           help=("Prints the correspondence between PAML "
+                                 "node IDs and node names (ancestors will be "
+                                 "displayed as list of descendants), and exit"))
+
+    evol_args.add_argument("--prev_models", dest="prev_models",
+                           type=str, nargs='+',
+                           help=("directory where pre-calculated models are "
+                                 "stored, followed by coma model-name.\n"
+                                 "example: --prev_models /path1/,M2 /path2/,M1\n"
+                                 "will load models from path1 under the name "
+                                 "'M2', and from path2 into 'M1'"))
+
+    # evol_args.add_argument("-o", "--output_dir", dest="outdir",
+    #                        type=str, default='/tmp/ete3-tmp/',
+    #                        help=("directory where to store computed models."
+    #                              "subderectories with model names will be created"))
+
+    codeml_mk = evol_args_p.add_argument_group("CODEML TREE MARKING OPTIONS")
+
+    codeml_mk.add_argument('--mark', dest="mark", nargs='+',
+                           help=(
+                               "mark branches of the input tree. PAML node IDs "
+                               "or names can be used. \n - Names separated by "
+                               "single coma will be marked differently. \n - "
+                               "Names separated by double comas will mark the "
+                               "tree at the common ancestor. \n - Names "
+                               "separated by "
+                               "triple comas will mark the tree from the common"
+                               "ancestor.\n - Names separated by equal sign will"
+                               "be marked individually with the same mark.\n"
+                               "Spaces will be used between these "
+                               "elements for new marks. \n"
+                               "Example: '--mark "
+                               "Homo,,,Chimp Orang,Gorilla Mouse,,Rat' \n"
+                               "Will result in marking with #1 Homo, Chimp and "
+                               "their common ancestor; \nwith #2 Orang and "
+                               "Gorilla nothing else; \nand with #3 the common "
+                               "ancestor of Mouse and Rat, but not the leaves."
+                               ))
+
+    codeml_mk.add_argument('--interactive', dest="mark_gui", action="store_true",
+                           help=("open the input tree in GUI to allow to "
+                                 "interactive marking of branches for CodeML."))
+
+    codeml_mk.add_argument('--clear_tree', dest="clear_tree", action="store_true",
+                           help=("Remove any mark present in the input tree."))
+
+    codeml_mk.add_argument('--leaves', dest="mark_leaves", action="store_true",
+                           help=("Mark successively all the leaves of the input "
+                                 "tree and run branch models on each of them."))
+
+    codeml_mk.add_argument('--internals', dest="mark_internals",
+                           action="store_true",
+                           help=("Mark successively all the internal node of "
+                                 "the input tree (but the root) and run\n"
+                                 "branch models on each of them."))
+
+    codeml_ts = evol_args_p.add_argument_group("CODEML TEST OPTIONS")
+
+    codeml_ts.add_argument('--tests', dest="tests", nargs='+', default='auto',
+                           type=str,
+                           help=("Defines the set of tests to perform.\n"
+                                 " example: --test M1,M2 b_neut,b_free\n"
+                                 "Will do a likelihood ratio tests between "
+                                 "M1 and M2, and between any b_neut and b_free"
+                                 "computed\n(only trees with identical marks "
+                                 "will be compared)."))
+
+    codeml_gr = evol_args_p.add_argument_group("CODEML MODEL CONFIGURATION OPTIONS")
+
+    params = "".join('[%4s] %-13s' % (PARAMS[p], p) + ('' if i % 4 else '\n')
+                     for i, p in enumerate(sorted(PARAMS, key=lambda x: x.lower()), 1))
+    
+    codeml_gr.add_argument('--codeml_config_file', dest="config_file", metavar="",
+                           default=None,
+                           help=("CodeML configuration file to be used instead"
+                                 "of default models provided\n"))
+
+    codeml_gr.add_argument('--codeml_param', dest="params", metavar="",
+                           nargs='+', default=[],
+                           help=("extra parameter to be interpreted by CodeML "
+                                 "and modify the default settings of models.\n"
+                                 "available keywords are accepted [default "
+                                 "values]:\n" + params +
+                                 "\nexample: verbose,2 omega,1"))
+
+    codeml_gr.add_argument('--codeml_help', action='store_true', dest='super_help',
+                           help=("show detailed description on codeml "
+                                 "parameters for model configuration "
+                                 "and exit."))
+
+    img_gr = evol_args_p.add_argument_group("TREE IMAGE GENERAL OPTIONS")
+    
+    img_gr.add_argument("--view", dest="show", action='store_true',
+                        help=("Opens ETE interactive GUI to visualize tree and "
+                              "select model(s) to render."))
+
+    img_gr.add_argument("-i", "--image", dest="image",
+                           type=str,
+                           help="Render tree image instead of showing it. A filename "
+                           " should be provided. PDF, SVG and PNG file extensions are"
+                           " supported (i.e. -i tree.svg)")
+    
+    img_gr.add_argument("--noimg", dest="noimg", action='store_true',
+                           help=("Do not generate images."))
+    
+    img_gr.add_argument("--clean_layout", dest="clean_layout",
+                           action='store_true',
+                           help=("Other visualization option, with omega values "
+                                 "written on branches"))
+
+    img_gr.add_argument("--histface", dest="histface",
+                           type=str, nargs='+',
+                           choices=['bar', 'stick', 'curve',
+                                    '+-bar', '+-stick', '+-curve'],
+                           help=("Type of histogram face to be used for site "
+                                 "models. If preceded by '+-' error bars are "
+                                 "also drawn."))
+
+    exec_group = evol_args_p.add_argument_group('EXECUTION MODE OPTIONS')
+    exec_group.add_argument("-C", "--cpu", dest="maxcores", type=int,
+                            default=1, help="Maximum number of CPU cores"
+                            " available in the execution host. If higher"
+                            " than 1, tasks with multi-threading"
+                            " capabilities will enabled (if 0 all available)"
+                            " cores will be used")
+
+    exec_group.add_argument("--codeml_binary", dest="codeml_binary",
+                            help="[%(default)s] path to CodeML binary")
+
+    exec_group.add_argument("--slr_binary", dest="slr_binary",
+                            help="[%(default)s] path to Slr binary")
+
+    exec_group.add_argument("--clear_all", dest="clear_all",
+                           action='store_true',
+                           help=("Clear any data present in the output directory."))
+
+    exec_group.add_argument("--resume", dest="resume",
+                           action='store_true',
+                           help=("Skip model if previous results are found in "
+                                 "the output directory."))
+
+
+def parse_config_file(fpath):
+    params = {}
+    for line in open(fpath):
+        try:
+            k, v = [i.strip() for i in line.split('*')[0].split('=')]
+        except ValueError:
+            continue
+        params[k] = v
+    return params
+
+def find_binary(binary):
+    bin_path = os.path.join(os.path.split(which("ete3"))[0], "ete3_apps", "bin", binary)
+
+    if not os.path.exists(bin_path):
+        bin_path = os.path.expanduser("~/.etetoolkit/ext_apps-latest/bin/"+binary)
+
+    if not os.path.exists(bin_path):
+        bin_path = which(binary)
+
+    if not os.path.exists(bin_path):
+        print(colorify("%s binary not found!" %binary, "lred"))
+        bin_path = binary
+    print("Using: %s" %bin_path)
+    return bin_path
+
+def marking_layout(node):
+    '''
+    layout for interactively marking CodemlTree
+    '''
+    color_cycle = random_color(num=10, h=0.5)
+    # [u'#E24A33', u'#348ABD', u'#988ED5',
+    #                u'#777777', u'#FBC15E', u'#8EBA42',
+    #                u'#FFB5B8']
+    node.img_style["size"] = 0
+
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+
+    if hasattr(node, 'mark') and node.mark != '':
+        mark = int(node.mark.replace('#', ''))
+        node_color = color_cycle[(mark - 1)]
+        node.img_style["fgcolor"] = node_color
+        label_face = TextFace(str(mark).center(3), fsize=12, fgcolor="white",
+                              ftype="courier")
+        label_face.inner_background.color = node_color
+    else:
+        node_color = 'slateGrey'
+        label_face = TextFace("   ", fsize=12, fgcolor="white", ftype="courier")
+        label_face.inner_background.color = node_color
+
+    label_face.inner_border.width = 1
+    label_face.margin_top = 2
+    label_face.margin_bottom = 2
+
+    add_face_to_node(label_face, node, column=0, position="branch-right")
+
+    if node.is_leaf():
+        add_face_to_node(TextFace(" %s" %node.name, ftype="courier",
+                                  fgcolor="#666666"), node, column=10,
+                         position="branch-right")
+    else:
+        add_face_to_node(TextFace(" %s" %node.name, fsize=8, ftype="courier",
+                                  fgcolor="#666666"), node, column=0,
+                         position="branch-top")
+
+def clean_tree(tree):
+    """
+    remove marks from tree
+    """
+    for n in tree.get_descendants() + [tree]:
+        n.mark = ''
+
+def get_node(tree, node):
+    res = tree.search_nodes(name=node)
+    if len(res) > 1:
+        exit('ERROR: more than 1 node with name: %s' % node)
+    elif len(res) < 1:
+        try:
+            res = tree.search_nodes(node_id=int(node))
+        except ValueError:
+            exit('ERROR: node %s not found' % node)
+        if len(res) < 1:
+            exit('ERROR: node %s not found' % node)
+    return res[0]
+
+def update_marks_from_args(nodes, marks, tree, args):
+    # use the command line
+    if args.mark:
+        if args.mark_leaves or args.mark_internals:
+            exit('ERROR: incompatible marking options')
+        for group in args.mark:
+            marks.append([])
+            nodes.append([])
+            group = group.replace(',,,', '@;;;@')
+            group = group.replace(',,', '@;;@')
+            group = group.replace(',', '@;@')
+            for mark, pregroup in enumerate(group.split('@;@'), 1):
+                for subgroup in pregroup.split('='):
+                    if '@;;' in subgroup:
+                        node1, node2 = subgroup.split('@;;;@' if '@;;;@' in
+                                                      subgroup else '@;;@')
+                        node1 = get_node(tree, node1)
+                        node2 = get_node(tree, node2)
+                        anc = tree.get_common_ancestor(node1, node2)
+                        # mark from ancestor
+                        if '@;;;@' in subgroup:
+                            for node in anc.get_descendants() + [anc]:
+                                marks[-1].append('#' + str(mark))
+                                nodes[-1].append(node.node_id)
+                        # mark at ancestor
+                        elif '@;;@' in subgroup:
+                            marks[-1].append('#' + str(mark))
+                            nodes[-1].append(anc.node_id)
+                    # mark in single node
+                    else:
+                        node = get_node(tree, subgroup)
+                        marks[-1].append('#' + str(mark))
+                        nodes[-1].append(node.node_id)
+    # mark all leaves successively
+    if args.mark_leaves:
+        if args.mark:
+            exit('ERROR: incompatible marking options')
+        marks.extend([['#1'] for n in tree.iter_leaves()])
+        nodes.extend([[n.node_id] for n in tree.iter_leaves()])
+    # mark all internal branches successively
+    if args.mark_internals:
+        if args.mark:
+            exit('ERROR: incompatible marking options')
+        marks.extend(['#1' for s in tree.iter_leaves() if not s.is_leaf()
+                      for n in s.iter_descendants()])
+        nodes.extend([n.node_id for s in tree.iter_leaves() if not s.is_leaf()
+                      for n in s.iter_descendants()])
+        marks.extend(['#1' for s in tree.iter_leaves() if not s.is_leaf()])
+        nodes.extend([s.node_id for s in tree.iter_leaves() if not s.is_leaf()])
+    # remove duplicated marks
+    remove_duplicated_marks(nodes, marks, tree)
+    # use the GUI
+    if args.mark_gui:
+        for node, mark in zip(nodes, marks):
+            tree.mark_tree(node, marks=mark)
+            interactive_mark(tree, mode='check')
+        while not False:
+            subnodes, submarks = interactive_mark(
+                tree, mode='last' if marks else 'new')
+            if not submarks:
+                break
+            marks.append(submarks)
+            nodes.append(subnodes)
+    # remove duplicated marks
+    remove_duplicated_marks(nodes, marks, tree)
+
+def interactive_mark(tree, mode='new'):
+    submarks = []
+    subnodes = []
+    ts = TreeStyle()
+    ts.layout_fn = marking_layout
+    ts.show_leaf_name = False
+    if mode == 'new':
+        ts.title.add_face(TextFace("  Mark tree by clicking on nodes",
+                                   fsize=14), column=0)
+        ts.title.add_face(TextFace("      close window to start the analysis",
+                                   fsize=12), column=0)
+    elif mode == 'check':
+        ts.title.add_face(TextFace("  Check/change marks by clicking on nodes",
+                                   fsize=14), column=0)
+        ts.title.add_face(TextFace("      close window to start the analysis",
+                                   fsize=12), column=0)
+    else:
+        ts.title.add_face(TextFace("  Continue marking for new analysis",
+                                   fsize=14), column=0)
+        ts.title.add_face(TextFace("      if the tree is not marked, the analysis will start after",
+                                   fsize=12), column=0)
+        ts.title.add_face(TextFace("      closing window (new marking proposed otherwise).",
+                                   fsize=12), column=0)
+    ts.title.add_face(TextFace(" ", fsize=14), column=0)
+    tree._set_mark_mode(True)
+    tree.show(tree_style=ts)
+    tree._set_mark_mode(False)
+    for n in tree.iter_descendants():
+        if n.mark:
+            submarks.append(n.mark)
+            subnodes.append(n.node_id)
+    clean_tree(tree)
+    return subnodes, submarks
+
+def remove_duplicated_marks(nodes, marks, tree):
+    things = {}
+    bads = []
+    for pos, (node, mark) in enumerate(zip(nodes, marks)):
+        if (node, mark) in things.values():
+            bads.append(pos)
+        things[pos] = (node, mark)
+    for bad in bads[::-1]:
+        warn('WARNING: removing duplicated mark %s' % (
+            ' '.join(['%s%s' % (
+                tree.get_descendant_by_node_id(nodes[bad][n]).write(format=9),
+                marks[bad][n])
+                      for n in range(len(nodes[bad]))])))
+        del(marks[bad])
+        del(nodes[bad])
+
+def local_run_model(tree, model_name, binary, ctrl_string='', **kwargs):
+    '''
+    local verison of model runner. Needed for multiprocessing pickling...
+    '''
+    def clean_exit(a, b):
+        if proc:
+            print("Killing process %s" %proc)
+            proc.terminate()
+            proc.kill(-9)
+        exit(a, b)
+    proc = None
+    signal(SIGINT, clean_exit)
+
+    model_obj = Model(model_name, tree, **kwargs)
+    fullpath = os.path.join (tree.workdir, model_obj.name)
+    os.system("mkdir -p %s" % fullpath)
+    # write tree file
+    tree._write_algn(fullpath + '/algn')
+    if model_obj.properties['exec'] == 'Slr':
+        tree.write(outfile=fullpath+'/tree', format = (11))
+    else:
+        tree.write(outfile=fullpath+'/tree',
+                   format = (10 if model_obj.properties['allow_mark'] else 9))
+    # write algn file
+    if ctrl_string == '':
+        ctrl_string = model_obj.get_ctrl_string(fullpath+'/tmp.ctl')
+    else:
+        open(fullpath+'/tmp.ctl', 'w').write(ctrl_string)
+    hlddir = os.getcwd()
+    os.chdir(fullpath)
+
+    proc = Popen("%s tmp.ctl" %binary, stdout=PIPE, stdin=PIPE, shell=True)
+    proc.stdin.write('\n') # in case codeml/slr asks something
+    job, err = proc.communicate()
+    if err is not None or b'error' in job or b'Error' in job:
+        print("ERROR: inside CodeML!!\n" + job)
+        return (None, None)
+    os.chdir(hlddir)
+    return os.path.join(fullpath,'out'), model_obj.name
+
+
+def check_done(tree, modmodel, results):
+    if os.path.exists(os.path.join(tree.workdir, modmodel, 'out')):
+        if modmodel != "SLR":
+            fhandler = open(os.path.join(tree.workdir, modmodel, 'out'))
+            fhandler.seek(-50, 2)
+            if 'Time used' in fhandler.read():
+                results.append((os.path.join(tree.workdir, modmodel, "out"),
+                                modmodel))
+                return True
+        else:
+            if os.path.getsize(os.path.join(tree.workdir, modmodel, 'out')) > 0:
+                results.append((os.path.join(tree.workdir, modmodel, "out"),
+                                modmodel))
+                return True
+    return False
+
+def run_all_models(tree, nodes, marks, args, **kwargs):
+    ## TO BE IMPROVED: multiprocessing should be called in a simpler way
+    print("\nRunning CodeML/Slr (%s CPUs)" %args.maxcores)
+    pool = Pool(args.maxcores or None, init_worker)
+    results = []
+    for model in args.models:
+        binary = (os.path.expanduser(args.slr_binary) if model == 'SLR'
+                  else os.path.expanduser(args.codeml_binary))
+        print('  - processing model %s' % model)
+        if AVAIL[model.split('.')[0]]['allow_mark']:
+            if not marks:
+                if check_done(tree, model, results):
+                    if args.resume:
+                        print('Model %s already executed... SKIPPING' % model)
+                        continue
+                    else:
+                        raise Exception(
+                            'ERROR: output files already exists, use "--resume"'
+                            ' option to skip computation or "--clear_all" '
+                            'to overwrite.')
+                results.append(pool.apply_async(
+                    local_run_model, args=(tree.copy(), model, binary),
+                    kwds=kwargs))
+                continue
+            for mark, node in zip(marks, nodes):
+                print('       marking branches %s\n' %
+                      ', '.join([str(m) for m in node]))
+                # Branch-site models only allow one type of mark
+                if len(set(mark)) > 1 and model.startswith('bsA'):
+                    continue
+                clean_tree(tree)
+                tree.mark_tree(node, marks=mark)
+                modmodel = (model + '.' + '_'.join([str(n) for n in node]) + '-' +
+                            '_'.join([n.split('#')[1] for n in mark]))
+                if check_done(tree, modmodel, results):
+                    if args.resume:
+                        print('Model %s already executed... SKIPPING' % modmodel)
+                        continue
+                    else:
+                        raise Exception(
+                            'ERROR: output files already exists, use "--resume"'
+                            ' option to skip computation or "--clear_all" '
+                            'to overwrite.')
+                print('          %s\n' % (
+                    tree.write()))
+                results.append(pool.apply_async(
+                    local_run_model, args=(tree.copy(), modmodel, binary), kwds=kwargs))
+        else:
+            if check_done(tree, model, results):
+                if args.resume:
+                    print('Model %s already executed... SKIPPING' % model)
+                    continue
+                else:
+                    raise Exception(
+                        'ERROR: output files already exists, use "--resume"'
+                        ' option to skip computation or "--clear_all" '
+                        'to overwrite.')
+            results.append(pool.apply_async(
+                local_run_model, args=(tree.copy(), model, binary), kwds=kwargs))
+
+    pool.close()
+    pool.join()
+
+    models = {}
+    # join back results to tree
+    for result in results:
+        try:
+            path, model = result.get()
+            models[model] = path
+        except AttributeError:
+            path, model = result
+            models[result[1]] = result[0]
+    return models
+
+def reformat_nw(nw_path):
+    """
+    Clean tree file in order to make it look more like standard newick.
+    Replaces PAML marks to match NHX format
+    """
+    if os.path.exists(nw_path):
+        file_string = open(nw_path).read()
+        beg = file_string.index('(')
+        end = file_string.index(';')
+        file_string = sub("'?(#[0-9]+)'?", "[&&NHX:mark=\\1]",
+                          file_string[beg:end + 1])
+        return file_string
+    return nw_path
+
+####### PROPOSAL FOR A BETTER MULTIPROCESSING ############
+results_queue = Queue()
+def run_all_models_new(tree, nodes, marks, args, **kwargs):
+    pool = Pool(args.maxcores or None)
+    results = []
+    commands = []
+    for model in args.models:
+        binary = args.slr_binary if model == 'SLR' else args.codeml_binary
+        if AVAIL[model.split('.')[0]]['allow_mark']:
+            for mark, node in zip(marks, nodes):
+                clean_tree(tree)
+                tree.mark_tree(node, marks=mark)
+                modmodel = model + '.' + '_'.join([str(n) for n in node]) # check out changes in other function
+                if check_done(tree, modmodel, results):
+                    continue
+                else:
+                    commands.append((tree, modmodel, binary, kwargs))
+        else:
+            if check_done(tree, model, results):
+                continue
+            else:
+                commands.append((tree, model, binary, kwargs))
+    print("Running CODEML/SLR (%s CPUs)" %(args.maxcores))
+    for c in commands:
+        print("  %s, %s" %(c[1], kwargs))
+
+    pool.map(local_run_model_new, commands)
+    models = {}
+    while not results_queue.empty():
+        path, model_name = results_queue.get()
+        models[model_name] = path
+    return models
+
+def local_run_model_new(arguments,  ctrl_string=''):
+    def clean_exit(a, b):
+        print(a, b)
+        if proc:
+            print("Killing %s" %proc)
+            proc.kill(-9)
+        exit(a, b)
+    proc = None
+    signal(SIGINT, clean_exit)
+
+    tree, model_name, binary, kwargs = arguments
+
+    model_obj = Model(model_name, tree, **kwargs)
+
+    fullpath = os.path.join (tree.workdir, model_obj.name)
+
+    os.system("mkdir -p %s" % fullpath)
+
+    # write tree file
+    tree._write_algn(fullpath + '/algn')
+    if model_obj.properties['exec'] == 'Slr':
+        tree.write(outfile=fullpath+'/tree', format = (11))
+    else:
+        tree.write(outfile=fullpath+'/tree',
+                   format = (10 if model_obj.properties['allow_mark'] else 9))
+
+    # write algn file
+    if ctrl_string == '':
+        ctrl_string = model_obj.get_ctrl_string(fullpath+'/tmp.ctl')
+    else:
+        open(fullpath+'/tmp.ctl', 'w').write(ctrl_string)
+    hlddir = os.getcwd()
+    os.chdir(fullpath)
+
+    proc = Popen("%s tmp.ctl" %binary, stdout=PIPE, shell=True)
+
+    job, err = proc.communicate()
+    if err is not None or b'error' in job or b'Error' in job:
+        raise ValueError("ERROR: inside codeml!!\n" + job)
+
+    results_queue.put((os.path.join(fullpath,'out'), model_obj.name))
+#############
+
+def load_model(model_name, tree, path, **kwargs):
+    model_obj = Model(model_name, tree, **kwargs)
+    setattr(model_obj, 'run', run)
+    try:
+        tree.link_to_evol_model(path, model_obj)
+    except KeyError:
+        raise(Exception('ERROR: model %s failed, problem with outfile:\n%s' % (
+            model_obj.name, path)))
+
+def write_results(tree, args):
+    tests = "\nLRT\n\n"
+    tests += ('%25s |%25s | %s\n' % ('Null model', 'Alternative model',
+                                     'p-value'))
+    tests += (' ' * 5 + ('-' * 60))
+    tests += ('\n')
+    at_least_one_come_on = False
+    results = {}
+    if args.tests != 'auto':
+        wanted = [t.split(',') for t in args.tests]
+    else:
+        wanted = []
+    bests = []
+    for null in tree._models:
+        for altn in tree._models:
+            if tree._models[null].np >= tree._models[altn].np:
+                continue
+            if null == 'SLR' or altn == 'SLR':
+                continue
+            # we usually want to compare models of the same kind
+            if (((AVAIL[null.split('.')[0]]['typ']=='site' and
+                  AVAIL[altn.split('.')[0]]['typ']=='branch') or
+                 (AVAIL[altn.split('.')[0]]['typ']=='site' and
+                  AVAIL[null.split('.')[0]]['typ']=='branch'))
+                and args.tests == 'auto'):
+                continue
+            # we usually want to compare models marked in the same way
+            if (('.' in altn and '.' in null) and
+                (altn.split('.')[1] != null.split('.')[1])):
+                continue
+            if args.tests != 'auto':
+                if not any([(null.split('.')[0] in test and
+                             altn.split('.')[0] in test)
+                            for test in wanted]):
+                    continue
+            results[(null, altn)] = tree.get_most_likely(altn, null)
+            bests.append(null if results[(null, altn)] > 0.05 else altn)
+
+            tests += ('%25s |%25s | %f%s\n' % (
+                null, altn, results[(null, altn)],
+                '**' if results[(null, altn)] < 0.01 else '*'
+                if results[(null, altn)] < 0.05 else ''))
+            at_least_one_come_on = True
+
+    if at_least_one_come_on:
+        print(tests)
+    return bests
+
+def mark_tree_as_in(path_tree, tree):
+    clean_tree(tree)
+    other_tree = EvolTree(reformat_nw(path_tree[:-3] + 'tree'))
+    for other_n in other_tree.traverse():
+        if other_n.mark:
+            n = tree.get_descendant_by_node_id(other_n.node_id)
+            n.mark = other_n.mark
+
+def get_marks_from_tree(tree):
+    """
+    traverse the tree and returns the paml_ids of the nodes harboring marks
+    """
+    marks = []
+    nodes = []
+    for n in tree.traverse():
+        mark = getattr(n, 'mark')
+        if mark:
+            marks.append(mark)
+            nodes.append(n.node_id)
+    if nodes:
+        return [nodes], [marks]
+    return [], []
+
+def run(args):
+
+    # in case we only got 1 model :(
+    if isinstance(args.models, str):
+        args.models = [args.models]
+
+    # check for binaries
+    if not args.slr_binary:
+        args.slr_binary = find_binary("Slr")
+    if not args.codeml_binary:
+        args.codeml_binary = find_binary("codeml")
+
+    binary  = os.path.expanduser(args.slr_binary)
+    if not os.path.exists(binary):
+        print("Warning: SLR binary does not exist at %s" % args.slr_binary,
+              file=stderr)
+        print("         provide another route with --slr_binary, or install "
+              "it by executing 'ete3 install-external-tools paml'",
+              file=stderr)
+        if any([AVAIL[m.split('.')[0]]['exec']=='Slr' for m in args.models]):
+            return
+    binary  = os.path.expanduser(args.codeml_binary)
+    if not os.path.exists(binary):
+        print("Warning: CodeML binary does not exist at %s" % args.codeml_binary,
+              file=stderr)
+        print("         provide another route with --codeml_binary, or install "
+              "it by executing 'ete3 install-external-tools paml'",
+              file=stderr)
+        if any([AVAIL[m.split('.')[0]]['exec']=='codeml' for m in args.models]):
+            return
+
+    # more help
+    # TODO: move this to help section
+    if args.super_help:
+        help_str = ('Description of CodeML parameters, see PAML manual for more '
+                    'information\n\n')
+        for key in PARAMS_DESCRIPTION:
+            help_str += ('  - %-12s: %s\n' % (key, ''.join([
+                PARAMS_DESCRIPTION[key][i:i + 70] + '\n' + ' ' * 18
+                for i in range(0, len(PARAMS_DESCRIPTION[key]), 70)])))
+        os.system('echo "%s" | less' % help_str)
+        return
+
+    params = {}
+    if args.config_file:
+        if args.params:
+            print('WARNING: input CodeML parameters from configuration file will'
+                 ' be overridden by the ones in the command line')
+        params = parse_config_file(args.config_file)
+        if 'seqfile' in params:
+            args.alg = os.path.join(os.path.split(args.config_file)[0],
+                                    params['seqfile'])
+            del(params['seqfile'])
+        if 'outfile' in params:
+            if not args.output:
+                args.output = os.path.join(os.path.split(args.config_file)[0],
+                                           params['outfile'])
+            else:
+                print('WARNING: input CodeML output file from configuration file'
+                     ' will be overridden by the one in the command line')
+            del(params['outfile'])
+        if 'treefile' in params:
+            if not args.src_trees:
+                args.src_tree_iterator = [os.path.join(
+                    os.path.split(args.config_file)[0],
+                    params['treefile'])]
+            else:
+                args.src_tree_iterator = list(args.src_tree_iterator)
+                print('WARNING: input CodeML tree file from configuration file'
+                     ' will be overridden by the one in the command line')
+            del(params['treefile'])
+        try:
+            if len(args.models) > 1 or not args.models[0].startswith('XX.'):
+                raise Exception('ERROR: only 1 model name starting with "XX." '
+                                'can be used with a configuration file.')
+        except TypeError:
+            args.models = ['XX.' + os.path.split(args.config_file)[1]]
+    for nw in args.src_tree_iterator:
+        tree = EvolTree(reformat_nw(nw), format=1)
+        if args.clear_tree:
+            nodes, marks = [], []
+        else:
+            nodes, marks = get_marks_from_tree(tree)
+        clean_tree(tree)
+        if args.output:
+            tree.workdir = args.output
+        if args.clear_all:
+            Popen('rm -rf %s' % tree.workdir, shell=True).communicate()
+
+        if args.node_ids:
+            print('\n%-7s : %s' % ("Node ID", "Leaf name"))
+            print('-'*50)
+            for n in tree.iter_leaves():
+                print('   %-4s : %s' % (n.node_id, n.name))
+            print('\n%-7s : %s' % ("Node ID", "Descendant leaves names"))
+            print('-'*50)
+            for n in tree.iter_descendants():
+                if n.is_leaf():
+                    continue
+                print('   %-4s : %s' % (n.node_id, ', '.join(
+                    [l.name for l in n.iter_leaves()])))
+            print('\n   %-4s : %s' % (tree.node_id, 'ROOT'))
+            return
+
+        # get the marks we will apply to different runs
+        update_marks_from_args(nodes, marks, tree, args)
+        # link to alignment
+        tree.link_to_alignment(args.alg, alg_format='paml')
+        # load models
+        models = {}
+        if args.prev_models:
+            models = dict([(m.split(',')[1], m.split(',')[0] + '/out')
+                           for m in args.prev_models])
+        # run models
+        if args.models:
+            for p in args.params:
+                p, v = p.split(',')
+                try:
+                    v = int(v)
+                except ValueError:
+                    try:
+                        v = float(v)
+                    except ValueError:
+                        pass
+                params[p] = v
+            models.update(run_all_models(tree, nodes, marks, args, **params))
+        # link models to tree
+        clean_tree(tree)
+        params = {}
+        for model in models:
+            mark_tree_as_in(models[model], tree)
+            load_model(model, tree, models[model], **params)
+            clean_tree(tree)
+        # print results
+        bests = write_results(tree, args)
+        # apply evol model (best branch model?) to tree for display
+        # TODO: best needs to be guessed from LRT
+        try:
+            best = max([m for m in bests
+                        if AVAIL[m.split('.')[0]]['typ']=='branch'],
+                       key=lambda x: tree._models[x].lnL)
+            tree.change_dist_to_evol('bL', tree._models[best], fill=True)
+        except ValueError:
+            best = ''
+
+        # get all site models
+        site_models = [m for m in tree._models
+                       if ('site' in AVAIL[m.split('.')[0]]['typ']
+                           and not
+                           AVAIL[m.split('.')[0]]['evol'] == 'different-ratios')
+                       ]
+
+        # print summary by models
+        print('SUMMARY BY MODEL')
+        for model in tree._models.values():
+            print('\n - Model ' + model.name)
+            if any([model.branches[b]['mark'] for b in model.branches]):
+                node, mark = zip(*[(b, model.branches[b]['mark'].strip())
+                                   for b in model.branches
+                                   if model.branches[b]['mark']])
+                tree.mark_tree(node, marks=mark)
+                print('   * Marked branches')
+                print('      ' + tree.write().replace(' #0', ''))
+                omega_mark = [(model.branches[b]['w'], model.branches[b]['mark'].strip())
+                               for b in model.branches
+                               if model.branches[b]['mark'] and 'w' in model.branches[b]]
+                if omega_mark:
+                    print('\n        Branches  =>   omega')
+                    for omega, mark in set(omega_mark):
+                        print('      %10s  => %7.3f' % (mark.replace('#0', 'background'),
+                                                         omega))
+                clean_tree(tree)
+            elif 'w' in model.branches[1]:
+                print('   * Average omega for all tree: %.3f' % model.branches[1]['w'])
+            if 'site' in AVAIL[model.name.split('.')[0]]['typ' ]:
+                try:
+                    categories = model.significance_by_site('BEB')
+                except KeyError:
+                    try:
+                        categories = model.significance_by_site('NEB')
+                    except KeyError:    
+                        categories = model.significance_by_site('SLR')
+                sign_sites = [(i, CATEGORIES[cat]) for i, cat in
+                              enumerate(categories, 1) if cat != 'NS']
+
+                if sign_sites:
+                    print('   * Sites significantly caracterized')
+                    print('      codon position |   category')
+                    print('     -----------------------------------------------------------')
+                    first = prev = sign_sites[0]
+                    for cat in sign_sites[1:]:
+                        #print(str(prev) + str(cat) + str(first))
+                        if prev[1] != cat[1] or prev[0] != cat[0] - 1:
+                            if first[0] != prev[0]:
+                                begend = '         %4d-%4d   |   ' % (first[0], prev[0])
+                            else:
+                                begend = '         %9d   |   '     % (prev[0])
+                            print(begend + first[1])
+                            first = cat
+                        prev = cat
+                    if first[0] != prev[0]:
+                        begend = '         %4d-%4d   |   ' % (first[0], prev[0])
+                    else:
+                        begend = '         %9d   |   '     % (prev[0])
+                    print(begend + prev[1])
+
+        if args.noimg:
+            return
+
+        if args.histface:
+            if len(args.histface) != len(site_models):
+                if len(args.histface) == 1:
+                    args.histface = args.histface * len(site_models)
+                elif len(args.histface) <= len(site_models):
+                    args.histface.extend([args.histface[-1]] * (
+                        len(site_models) - len(args.histface)))
+                else:
+                    print('WARNING: not using last histfaces, not enough models')
+                    args.histface = args.histface[:len(site_models)]
+            for num, (hist, model) in enumerate(
+                zip(args.histface, site_models)):
+                model = tree.get_evol_model(model)
+                model.set_histface(up=not bool(num),
+                                   kind=hist.replace('+-', ''),
+                                   errors='+-' in hist)
+        if args.show:
+            tree.show(histfaces=site_models,
+                      layout=evol_clean_layout if args.clean_layout else None)
+        if args.image:
+            tree.render(args.image, histfaces=site_models,
+                        layout=evol_clean_layout if args.clean_layout else None)
+
diff --git a/ete3/tools/ete_expand.py b/ete3/tools/ete_expand.py
new file mode 100644
index 0000000..c67d6e5
--- /dev/null
+++ b/ete3/tools/ete_expand.py
@@ -0,0 +1,48 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+DESC = ""
+
+
+def populate_args(expand_args_p):
+    expand_args = expand_args_p.add_argument_group('TREE EXPAND OPTIONS')
+
+    expand_args.add_argument("--treeko_split", dest="treeko_split",
+                          type = str,
+                          help=""" """)
+
diff --git a/ete3/tools/ete_extract.py b/ete3/tools/ete_extract.py
new file mode 100644
index 0000000..4c6d2e3
--- /dev/null
+++ b/ete3/tools/ete_extract.py
@@ -0,0 +1,66 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+from __future__ import absolute_import
+from __future__ import print_function
+
+from .common import src_tree_iterator
+
+DESC = ""
+
+
+
+def populate_args(extract_args_p):
+    extract_args = extract_args_p.add_argument_group('TREE EDIT OPTIONS')
+
+    extract_args.add_argument("--orthologs", dest="orthologs",
+                              nargs="*",
+                              help="")
+
+    extract_args.add_argument("--duplications", dest="duplications",
+                              action="store_true",
+                              help="")
+
+def run(args):
+    from .. import Tree, PhyloTree
+    for nw in src_tree_iterator(args):
+        if args.orthologs is not None:
+            t = PhyloTree(nw)
+            for e in t.get_descendant_evol_events():
+                print(e.in_seqs, e.out_seqs)
diff --git a/ete3/tools/ete_generate.py b/ete3/tools/ete_generate.py
new file mode 100644
index 0000000..e3ed2f1
--- /dev/null
+++ b/ete3/tools/ete_generate.py
@@ -0,0 +1,57 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from .common import dump
+from six.moves import range
+
+DESC = ""
+
+def populate_args(generate_args_p):
+    generate_args_p.add_argument('--number', dest='number', type=int, default=1)
+    generate_args_p.add_argument('--size', dest='size', type=int, default=10)
+    generate_args_p.add_argument('--random_branches', dest='random_branches', action="store_true")
+
+def run(args):
+    import random
+    from .. import Tree
+
+    for n in range(args.number):
+        t = Tree()
+        t.populate(args.size, random_branches=args.random_branches)
+        dump(t)
diff --git a/ete3/tools/ete_maptrees.py b/ete3/tools/ete_maptrees.py
new file mode 100644
index 0000000..26b4c4c
--- /dev/null
+++ b/ete3/tools/ete_maptrees.py
@@ -0,0 +1,349 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import re
+from collections import defaultdict 
+import numpy
+
+from .common import as_str, shorten_str, src_tree_iterator, ref_tree_iterator
+from ..utils import print_table
+
+from six.moves import map
+
+DESC = """
+ - ete maptrees -
+
+'maptrees' is a tool that maps branches and support values from multiple
+(gene)trees into a single reference (species)topology.
+
+%s
+
+"""
+
+def populate_args(maptrees_args_p):
+    maptrees_args = maptrees_args_p.add_argument_group("COMPARE GENERAL OPTIONS")
+
+    maptrees_args.add_argument("--treeko", dest="treeko",
+                              action = "store_true",
+                              help="activates the TreeKO mode: duplication aware comparisons")
+
+    # Output options    
+    maptrees_args.add_argument("--image", dest="image",
+                              type=str,
+                              help="activates the TreeKO duplication aware comparison method")
+
+    maptrees_args.add_argument("--outtree", dest="outtree",
+                              type=str, 
+                              help="output results as an annotated reference tree ")
+
+    maptrees_args.add_argument("--tab", dest="taboutput",
+                              action = "store_true",
+                              help="output results in tab delimited format")
+    
+    maptrees_args.add_argument("--dump_matches", dest="dump_matches",
+                              type=str,
+                              help="dump the branches from source trees matching each branch in the reference trees")
+
+    maptrees_args.add_argument("--min_support_src",
+                              type=float, default=0.0,
+                              help=("min support for branches to be considered from the source tree"))
+
+    maptrees_args.add_argument("--discard_incomplete", dest="discard_incomplete",
+                               action="store_true",
+                               help=("discard source trees missing any reference species"))
+
+    maptrees_args.add_argument("--discard-root", dest="discard_root",
+                               action="store_true",
+                               help=(""))
+
+def get_splits(tree, min_support=None, target_attr="name", discard_root=False, ignore_multifurcations=False, target_species=None):
+    branches = []
+    node2content = tree.get_cached_content()
+    all_species = set([getattr(_n, target_attr) for _n in node2content[tree]])
+    for node in tree.traverse("preorder"):
+        if discard_root and node is tree:
+            continue
+        if not node.is_leaf():
+            if len(node.children) != 2:
+                if ignore_multifurcations:
+                    continue
+                else:
+                    raise ValueError('multifurcations and single child branches not supported')
+
+            b1 = set([getattr(_c, target_attr) for _c in node2content[node.children[0]]])
+            b2 = set([getattr(_c, target_attr) for _c in node2content[node.children[1]]])
+            if target_species:
+                b1 = b1 & target_species
+                b2 = b2 & target_species
+            if b1 and b2:
+                branches.append([node, b1, b2])
+    return all_species, branches
+
+def map_branches(ref_branches, source_branches, ref_species, src_species):   
+    for refnode, r1, r2 in ref_branches:
+        all_expected_sp = r1 | r2
+
+        if not (r1 & src_species) or not (r2 & src_species):
+            continue
+        
+        # Now we scan branches from the source trees and we add one
+        # supporting point for every observed split that coincides with a
+        # reference tree split. This is, that seqs in one side and seqs on
+        # the other side of the observed split matches a ref_tree branch
+        # without having extra seqs in any of the sides. However, we allow
+        # for split matches when some seqs are lost in the observed split.
+        matches = []
+        for srcnode, s1, s2 in source_branches:                                
+            all_seen_sp = s1 | s2
+
+            # Check if any of the observed species should not be present in
+            # the ref branch.
+            if (all_seen_sp - all_expected_sp):
+                continue
+
+            # check if an expected species is not observed in this branch,
+            # but it actually exists in other branches of the same tree. If
+            # so, this is not missing species that we can ignore, but a mismatch.
+            false_missing = (all_expected_sp - all_seen_sp) & src_species
+            if false_missing:
+                continue           
+            
+            # let's check if the split is correct
+            if not (s1-r1) and not (s2-r2):
+                matches.append(srcnode)
+            elif not (s2-r1) and not (s1-r2):
+                matches.append(srcnode)
+            else:
+                pass
+
+        yield refnode, matches
+              
+
+def map_dup_and_losses(reftree, source_branches, ref_leaves):    
+    for srcnode, s1, s2 in source_branches:
+        all_sp = s1 | s2
+        if len(all_sp) == 1: 
+            refnode = ref_leaves[list(all_sp)[0]]
+        else:
+            refnode = reftree.get_common_ancestor([ref_leaves[sp] for sp in all_sp])
+        isdup = 1 if s1 & s2 else 0
+        # if isdup:
+        #     print(isdup, srcnode, refnode)
+        #     raw_input()
+        yield srcnode, refnode, isdup
+        
+def run(args):
+    if args.treeko:
+        from .. import PhyloTree
+        tree_class = PhyloTree
+    else:
+        from .. import Tree
+        tree_class = Tree
+
+    for rtree_nw in ref_tree_iterator(args):
+        rtree = tree_class(rtree_nw, format=args.src_newick_format)
+
+        # Parses attrs if necessary
+        ref_tree_attr = args.ref_tree_attr
+        if args.ref_attr_parser:
+            for leaf in rtree:                
+                leaf.add_feature('_tempattr', re.search(args.ref_attr_parser, getattr(leaf, args.ref_tree_attr)).groups()[0])
+            ref_tree_attr = '_tempattr'
+        else:
+            ref_tree_attr = args.ref_tree_attr                        
+        
+        ref_leaves = dict([(getattr(_n, ref_tree_attr), _n) for _n in rtree])
+        refnode2supports = defaultdict(list)
+        reftree_species, reftree_branches = get_splits(rtree, target_attr=ref_tree_attr, ignore_multifurcations=True)
+
+        refnode2visited = defaultdict(int)
+        refnode2dups = defaultdict(list)
+        refnode2losses = defaultdict(list)
+        trees_scanned = 0
+        for stree_count, stree_name in enumerate(src_tree_iterator(args)):
+            print ("\r%s" %stree_count, end="", file=sys.stderr)
+            sys.stderr.flush()
+            refnode2matches = defaultdict(list)
+
+            stree = tree_class(stree_name, format=args.ref_newick_format)
+            # Parses attrs if necessary
+            src_tree_attr = args.src_tree_attr
+            if args.src_attr_parser:
+                for leaf in stree:
+                    leaf.add_feature('name', re.search(
+                        args.src_attr_parser, getattr(leaf, args.src_tree_attr)).groups()[0])
+                src_tree_attr = 'name'
+            elif args.src_tree_attr:
+                for leaf in stree:
+                    leaf.name = getattr(leaf, args.src_tree_attr)
+                src_tree_attr = 'name'
+
+            # Computes dup and gene losses (treeko independent)
+            srctree_species, srctree_branches = get_splits(stree, target_attr=src_tree_attr, discard_root=args.discard_root, target_species=reftree_species)
+
+            if args.discard_incomplete:
+                if reftree_species - srctree_species:
+                    #print(reftree_species - srctree_species)
+                    continue
+
+            trees_scanned += 1 
+            # intialized visited nodes with the observed leaves, as they are not
+            # taken into account when processing splits
+            visited_refnodes = set([_rnode for _rnode in rtree if getattr(_rnode, ref_tree_attr) in srctree_species])
+            ref2dups = defaultdict(int)
+            for srcnode, refnode, isdup in map_dup_and_losses(rtree, srctree_branches, ref_leaves):
+                visited_refnodes.add(refnode)
+                if isdup:
+                    ref2dups[refnode] += 1
+                    
+            for refnode in visited_refnodes:
+                refnode2visited[refnode] += 1
+                refnode2dups[refnode].append(ref2dups[refnode])
+                
+            if args.treeko:
+                # Count matches (treeko)
+                ntrees, ndups, sp_trees = stree.get_speciation_trees(
+                    autodetect_duplications=True, newick_only=True,
+                    target_attr=src_tree_attr, map_features=["support"])
+
+                refnodes = defaultdict(list)
+                for i, subnw in enumerate(sp_trees):
+                    if i>100:
+                        break
+                    subtree = tree_class(subnw)
+                    treeko_srctree_species, treeko_srctree_branches = get_splits(subtree, target_attr=src_tree_attr)
+                    for rbranch, matches in map_branches(reftree_branches,
+                                                         treeko_srctree_branches,
+                                                         reftree_species,
+                                                         treeko_srctree_species):                        
+                        refnodes[rbranch].append(len(matches))
+                        if args.dump_matches and len(matches):
+                            refnode2matches[rbranch].extend(matches)
+                        
+                for rbranch, support in refnodes.items():
+                    refnode2supports[rbranch].append(numpy.mean(support))
+
+            else:
+                # Count matches (flat)
+                for rbranch, matches in map_branches(reftree_branches, srctree_branches, reftree_species, srctree_species):
+                    refnode2supports[rbranch].append(len(matches))                    
+                    if args.dump_matches and len(matches):
+                        refnode2matches[rbranch].extend(matches)
+            
+                        
+            if refnode2matches:
+                print('# %s\t%s' %("refbranch", "match"))
+                for refbranch in rtree.traverse():
+                    ref_nw = rbranch.write(format=9)
+                    for m in refnode2matches.get(refbranch, []):
+                        print('\t'.join([ref_nw, m.write(format=9)]))
+                    
+        data = []
+        header=["ref branch", "data trees", "matches", "support (%)", "treeko matches", "treeko support (%)", "visited_trees", "duplications", "dup/tree", "dup/tree dev."]
+        for node in rtree.traverse("levelorder"):
+
+            has_support_data = node in refnode2supports 
+            supports = refnode2supports[node] if has_support_data else "NA"
+            observed = float(len([s for s in supports if s>0])) if has_support_data else "NA"
+            total = float(len(supports)) if has_support_data else "NA"
+            avg_observed = ((observed / total) * 100) if has_support_data else "NA"
+            if args.treeko and has_support_data:
+                treeko_observed = sum(supports)
+                avg_treeko_observed = (treeko_observed / total) * 100
+            else:
+                treeko_observed = "NA"
+                avg_treeko_observed = "NA"
+
+            has_dup_data = node in refnode2visited
+            #trees_visited = refnode2visited[node] if has_dup_data else "NA"
+            trees_visited = len(refnode2dups[node])
+            
+            dups_observed = sum(refnode2dups[node]) if has_dup_data else "NA"
+            #dup_rate = dups_observed/float(times_visited) if has_dup_data else "NA"
+            dup_rate = numpy.mean(refnode2dups[node]) if has_dup_data else "NA"
+            dup_dev = numpy.std(refnode2dups[node]) if has_dup_data else "NA"
+
+            node.add_features(
+                maptrees_total = total,
+                maptrees_observerd = observed,
+                maptrees_support = avg_observed,
+                maptrees_treeko_observerd = treeko_observed,
+                maptrees_treeko_support = avg_treeko_observed,
+                maptrees_observed_dups = dups_observed,
+                maptrees_visited = trees_visited,
+                maptrees_dup_rate = dup_rate,
+
+            )                
+            data.append([node.write(format=9),
+                         #str(node),
+                         total,
+                         observed,
+                         avg_observed,
+                         treeko_observed,
+                         avg_treeko_observed,
+                         trees_visited,
+                         dups_observed,
+                         dup_rate,
+                         dup_dev,
+                         ])
+
+        if args.outtree:
+            t.write(outfile=args.outtree, features=[])
+            
+        if args.image:
+            from . import ete_view
+            ts = ete_view.TreeStyle()
+            ts.layout_fn = ete_view.maptrees_layout
+            ts.show_scale = False
+            ts.tree_width = 400
+            rtree.render(args.image, tree_style=ts)
+                        
+        if args.taboutput:
+            print('#'+'\t'.join(header))
+            for row in data:
+                print('\t'.join([str(v) for v in row]))               
+        else:
+            print()
+            print_table(data, header=header, wrap_style="cut")
+            rtree.write(features=[], outfile="outtree")
+          
+        print("Source trees used: %d" %trees_scanned)
diff --git a/ete3/tools/ete_mod.py b/ete3/tools/ete_mod.py
new file mode 100644
index 0000000..d1c9db9
--- /dev/null
+++ b/ete3/tools/ete_mod.py
@@ -0,0 +1,135 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from .common import dump, src_tree_iterator
+
+DESC = ""
+
+def populate_args(mod_args_p):
+    mod_args = mod_args_p.add_argument_group('TREE EDIT OPTIONS')
+
+    mod_args.add_argument("--outgroup", dest="outgroup",
+                           nargs = "+",
+                           help=("Root the tree using the provided outgroup."
+                                 " If several names are provided, the first common ancestor grouping"
+                                 " all of them will be selected as outgroup."))
+
+    mod_args.add_argument("--ultrametric", dest="ultrametric",
+                          type=float, nargs= "*", default="-1",
+                           help=("Convert tree into ultrametric (all leaves have the same distance"
+                                 " to root). If an argument is provided, it will be used as the"
+                                 " expected tree length."))
+
+    mod_args.add_argument("--prune", dest="prune",
+                          type=str, nargs= "+",
+                           help=("Remove all nodes in the tree except the ones provided."))
+
+    mod_args.add_argument("--prune_preserve_lengths", dest="prune_preserve_lengths",
+                          action="store_true",
+                           help=("branch lengths of the removed nodes are added to the kept branches, "
+                                 "thus preserving original tree length."))
+
+
+    mod_args.add_argument("--unroot", dest="unroot",
+                          action = "store_true",
+                           help="Unroots the tree.")
+
+
+    mod_args.add_argument("--sort_branches", dest="sort",
+                           action="store_true",
+                           help="""Sort branches according to node names.""")
+
+    mod_args.add_argument("--ladderize", dest="ladderize",
+                           action="store_true",
+                           help="""Sort branches by partition size.""")
+
+    mod_args.add_argument("--resolve_polytomies", dest="resolve_polytomies",
+                          action='store_true',
+                           help="""Converts polytomies into random bifurcations""")
+
+    mod_args.add_argument("--standardize", dest="standardize",
+                          action = "store_true",
+                           help="Standardize tree topology by expanding polytomies and single child nodes.")
+
+
+
+def run(args):
+    from .. import Tree
+
+    for nw in src_tree_iterator(args):
+        t = Tree(nw)
+        mod_tree(t, args)
+        dump(t)
+
+def mod_tree(t, args):
+    if args.ladderize and args.sort:
+        raise ValueError("--sort-branches and --ladderize options are mutually exclusive")
+
+    if args.prune:
+        t.prune(args.prune, preserve_branch_length=args.prune_preserve_lengths)
+
+    if args.outgroup and args.unroot:
+        raise ValueError("--ourgroup and --unroot options are mutually exclusive")
+    elif args.outgroup:
+        if len(args.outgroup) > 1:
+            outgroup = t.get_common_ancestor(args.outgroup)
+        else:
+            outgroup = t & args.outgroup[0]
+        t.set_outgroup(outgroup)
+    elif args.unroot:
+        t.unroot()
+
+    if args.resolve_polytomies:
+        t.resolve_polytomy()
+
+    if args.standardize:
+        t.standardize()
+
+    if args.ladderize:
+        t.ladderize()
+    if args.sort:
+        t.sort_descendants()
+
+    if args.ultrametric:
+        t.convert_to_ultrametric()
+
+    # remove, prune branches
+    # ncbi_root
diff --git a/ete3/tools/ete_ncbiquery.py b/ete3/tools/ete_ncbiquery.py
new file mode 100644
index 0000000..be4ed08
--- /dev/null
+++ b/ete3/tools/ete_ncbiquery.py
@@ -0,0 +1,186 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+
+from .common import log, dump
+
+import six
+from six.moves import map
+
+DESC = ""
+
+def populate_args(ncbi_args_p):
+    ncbi_args = ncbi_args_p.add_argument_group('NCBI GENERAL OPTIONS')
+
+    ncbi_args.add_argument("--search", dest="search", nargs="+", help="A list of taxid or species names")
+
+    ncbi_args.add_argument("--db",  dest="dbfile",
+                        type=str,
+                        help="""NCBI sqlite3 db file.""")
+
+    ncbi_args.add_argument("--fuzzy", dest="fuzzy", type=float,
+                        help=("EXPERIMENTAL: Tries a fuzzy (and SLOW) search for those"
+                              " species names that could not be translated"
+                              " into taxids. A float number must be provided"
+                              " indicating the minimum string similarity."
+                              " Special sqlite compilation is necessary."))
+
+    output_args = ncbi_args_p.add_argument_group('NCBI OUTPUT OPTIONS')
+
+    output_args.add_argument("--tree", dest="tree",
+                             action='store_true',
+                             help=("dump a pruned version of the NCBI taxonomy"
+                                   " tree containing target species"))
+
+    output_args.add_argument("--descendants", dest="descendants",
+                             action='store_true',
+                             help=("dump the descendant taxa for each of the queries"))
+
+    output_args.add_argument("--info", dest="info",
+                             action='store_true',
+                             help="""dump NCBI taxonmy information for each target species into the specified file. """)
+
+    output_args.add_argument("--collapse_subspecies", dest="collapse_subspecies",
+                             action="store_true",
+                             help=("When used, all nodes under the the species rank"
+                                   " are collapsed, so all species and subspecies"
+                              " are seen as sister nodes"))
+
+    output_args.add_argument("--rank_limit", dest="rank_limit",
+                             type=str,
+                             help=("When used, all nodes under the provided rank"
+                                   " are discarded"))
+
+    output_args.add_argument("--full_lineage", dest="full_lineage",
+                             action="store_true",
+                             help=("When used, topology is not pruned to avoid "
+                                   " one-child-nodes, so the complete lineage"
+                                   " track leading from root to tips is kept."))
+
+
+def run(args):
+    # add lineage profiles/stats
+
+    import re
+    from .. import PhyloTree, NCBITaxa
+
+    # dump tree by default
+    if not args.tree and not args.info and not args.descendants:
+        args.tree = True
+
+    ncbi = NCBITaxa()
+
+    all_taxids = {}
+    all_names = set()
+    queries = []
+
+    if not args.search:
+        log.error('Search terms should be provided (i.e. --search) ')
+        sys.exit(-1)
+    for n in args.search:
+        queries.append(n)
+        try:
+            all_taxids[int(n)] = None
+        except ValueError:
+            all_names.add(n.strip())
+
+    # translate names
+    name2tax = ncbi.get_name_translator(all_names)
+    for tids in name2tax.values():
+        for tid in tids:
+            all_taxids[tid] = None
+
+    not_found_names = all_names - set(name2tax.keys())
+    if args.fuzzy and not_found_names:
+        log.warn("%s unknown names", len(not_found_names))
+        for name in not_found_names:
+            # enable extension loading
+            tax, realname, sim = ncbi.get_fuzzy_name_translation(name, args.fuzzy)
+            if tax:
+                all_taxids[tax] = None
+                name2tax[name] = [tax]
+                name2realname[name] = realname
+                name2score[name] = "Fuzzy:%0.2f" %sim
+
+    if not_found_names:
+        log.warn("[%s] could not be translated into taxids!" %','.join(not_found_names))
+
+    if args.tree:
+        if len(all_taxids) == 1:
+            target_taxid = list(all_taxids.keys())[0]
+            log.info("Dumping NCBI descendants tree for %s" %(target_taxid))
+            t = ncbi.get_descendant_taxa(target_taxid, collapse_subspecies=args.collapse_subspecies, rank_limit=args.rank_limit, return_tree=True)
+        else:
+            log.info("Dumping NCBI taxonomy of %d taxa..." %(len(all_taxids)))
+            t = ncbi.get_topology(list(all_taxids.keys()),
+                              intermediate_nodes=args.full_lineage,
+                              rank_limit=args.rank_limit,
+                              collapse_subspecies=args.collapse_subspecies)
+
+        id2name = ncbi.get_taxid_translator([n.name for n in t.traverse()])
+        for n in t.traverse():
+            n.add_features(taxid=n.name)
+            n.add_features(sci_name=str(id2name.get(int(n.name), "?")))
+            n.name = "%s - %s" %(id2name.get(int(n.name), n.name), n.name)
+            lineage = ncbi.get_lineage(n.taxid)
+            n.add_features(named_lineage = '|'.join(ncbi.translate_to_names(lineage)))
+        dump(t, features=["taxid", "name", "rank", "bgcolor", "sci_name",
+                          "collapse_subspecies", "named_lineage"])
+    elif args.descendants:
+        log.info("Dumping NCBI taxonomy of %d taxa..." %(len(all_taxids)))
+        print('# ' + '\t'.join(["Taxid", "Sci.Name", "Rank", "descendant_taxids", "descendant_names"]))
+        translator = ncbi.get_taxid_translator(all_taxids)
+        ranks = ncbi.get_rank(all_taxids)
+        for taxid in all_taxids:
+            descendants = ncbi.get_descendant_taxa(taxid, collapse_subspecies=args.collapse_subspecies, rank_limit=args.rank_limit)
+            print('\t'.join([str(taxid), translator.get(taxid, taxid), ranks.get(taxid, ''),
+                             '|'.join(map(str, descendants)),
+                             '|'.join(map(str, ncbi.translate_to_names(descendants)))]))
+
+    elif args.info:
+        print('# ' + '\t'.join(["Taxid", "Sci.Name", "Rank", "Named Lineage", "Taxid Lineage"]))
+        translator = ncbi.get_taxid_translator(all_taxids)
+        ranks = ncbi.get_rank(all_taxids)
+        for taxid, name in six.iteritems(translator):
+            lineage = ncbi.get_lineage(taxid)
+            named_lineage = ','.join(ncbi.translate_to_names(lineage))
+            lineage_string = ','.join(map(str, lineage))
+            print('\t'.join([str(taxid), name, ranks.get(taxid, ''), named_lineage, lineage_string]))
diff --git a/ete3/tools/ete_split.py b/ete3/tools/ete_split.py
new file mode 100644
index 0000000..d7c4457
--- /dev/null
+++ b/ete3/tools/ete_split.py
@@ -0,0 +1,55 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+DESC = ""
+def populate_args(split_args_p):
+    split_args = split_args_p.add_argument_group('TREE SPLIT OPTIONS')
+
+    split_args.add_argument("--size_split", dest="split_at_size",
+                          type = int,
+                          help=""" """)
+
+    split_args.add_argument("--attr_split", dest="split_at_attr", action='append',
+                          type = str,
+                          help=""" """) #    "@dist > 10, @support >= 0.9 "
+
+
+    split_args.add_argument("--dup_split", dest="split_at_duplications",
+                          type = str,
+                          help=""" """) # split where attr is duplicated
+
diff --git a/ete3/tools/ete_upgrade_tools.py b/ete3/tools/ete_upgrade_tools.py
new file mode 100644
index 0000000..92cb3f1
--- /dev/null
+++ b/ete3/tools/ete_upgrade_tools.py
@@ -0,0 +1,69 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import os
+from argparse import ArgumentParser
+
+from os.path import join as pjoin
+from os.path import split as psplit
+from os.path import exists as pexist
+
+from six.moves import input
+
+from .utils import colorify
+
+import tarfile
+try:
+    from urllib import urlretrieve
+except ImportError:
+    # python 3
+    from urllib.request import urlretrieve
+
+def _main():
+    parser = ArgumentParser()
+    parser.add_argument("-v", dest="verbose", action="store_true")
+    parser.add_argument("--debug", dest="debug", action="store_true")
+    parser.add_argument("--dir", dest='directory', type=str, default='')
+    parser.add_argument("--cpu", dest='cores', type=int, default=1)
+    parser.add_argument(dest="targets", nargs="*")    
+    args = parser.parse_args()
+    APPSPATH = os.path.expanduser("~/.etetoolkit/ext_apps-latest/")
+    ETEHOMEDIR = os.path.expanduser("~/.etetoolkit/")
+
+    if pexist(pjoin('/etc/etetoolkit/', 'ext_apps-latest')):
+        # if a copy of apps is part of the ete distro, use if by default
+        APPSPATH = pjoin('/etc/etetoolkit/', 'ext_apps-latest')
+        ETEHOMEDIR = '/etc/etetoolkit/'
+    else:
+        # if not, try a user local copy
+        APPSPATH = pjoin(ETEHOMEDIR, 'ext_apps-latest')
+
+    
+    TARGET_DIR = args.directory
+    
+    while not pexist(TARGET_DIR):
+        TARGET_DIR = input('target directory? [%s]:' %ETEHOMEDIR).strip()
+        if TARGET_DIR == '':
+            TARGET_DIR = ETEHOMEDIR
+            break
+
+    if TARGET_DIR == ETEHOMEDIR:
+        try:
+            os.mkdir(ETEHOMEDIR)
+        except OSError:
+            pass
+
+    version_file = "latest.tar.gz"
+    print (colorify('Downloading latest version of tools...', "green"), file=sys.stderr)
+    sys.stderr.flush()
+
+    urlretrieve("https://github.com/jhcepas/ext_apps/archive/%s" %version_file, pjoin(TARGET_DIR, version_file))
+    print(colorify('Decompressing...', "green"), file=sys.stderr)
+    tfile = tarfile.open(pjoin(TARGET_DIR, version_file), 'r:gz')
+    tfile.extractall(TARGET_DIR)
+    print(colorify('Compiling tools...', "green"), file=sys.stderr)
+    sys.path.insert(0, pjoin(TARGET_DIR, 'ext_apps-latest'))
+    import compile_all
+    errors = compile_all.compile_all(targets=args.targets, verbose=args.verbose, cores=args.cores)
+
diff --git a/ete3/tools/ete_view.py b/ete3/tools/ete_view.py
new file mode 100644
index 0000000..35667c6
--- /dev/null
+++ b/ete3/tools/ete_view.py
@@ -0,0 +1,588 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import random
+import re
+import colorsys
+from collections import defaultdict
+
+from .common import log, POSNAMES, node_matcher, src_tree_iterator
+from .. import (Tree, PhyloTree, TextFace, RectFace, faces, TreeStyle, CircleFace, AttrFace,
+                add_face_to_node, random_color)
+from six.moves import map
+
+DESC = ""
+FACES = []
+
+paired_colors = ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99',
+                 '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a',
+                 '#ffff99', '#b15928']
+
+COLOR_RANKS = { "superclass": "#a6cee3", "class": "#a6cee3", "subclass": "#a6cee3", "infraclass": "#a6cee3",
+                "superfamily": "#1f78b4", "family": "#1f78b4", "subfamily": "#1f78b4",
+                "superkingdom": "#b2df8a", "kingdom": "#b2df8a", "subkingdom": "#b2df8a", "superorder": "#33a02c",
+                "order": "#33a02c", "suborder": "#33a02c", "infraorder": "#33a02c", "parvorder": "#33a02c",
+                "superphylum": "#fdbf6f", "phylum": "#fdbf6f",  "subphylum": "#fdbf6f"}
+#    "species group": "",
+#    "species subgroup": "",
+#    "species": "",
+#    "subspecies": "",
+#    "genus": "",
+#    "subgenus": "",
+#    "no rank": "",
+#    "forma": "",
+#    "tribe": "",
+#    "subtribe": "",
+#    "varietas"
+
+
+
+
+
+def populate_args(view_args_p):
+    view_args_p.add_argument("--face", action="append",
+                             help="adds a face to the selected nodes. In example --face 'value:@dist, pos:b-top, color:red, size:10, if:@dist>0.9' ")
+
+    img_gr = view_args_p.add_argument_group("TREE IMAGE GENERAL OPTIONS")
+
+    img_gr.add_argument("-m", "--mode", dest="mode",
+                        choices=["c", "r"], default="r",
+                        help="""(r)ectangular or (c)ircular visualization""")
+
+
+    img_gr.add_argument("-i", "--image", dest="image",
+                        type=str,
+                        help="Render tree image instead of showing it. A filename "
+                        " should be provided. PDF, SVG and PNG file extensions are"
+                        " supported (i.e. -i tree.svg)"
+                        )
+
+    img_gr.add_argument("--text", dest="text_mode",
+                        action="store_true",
+                        help="Shows the tree using ASCII characters")
+
+    img_gr.add_argument("--attr", "--show_attributes", dest="show_attributes",
+                        nargs="+",
+                        help="Display the value of the specified attributes, if available")
+
+    img_gr.add_argument("--Iw", "--width", dest="width",
+                        type=int, default=0,
+                        help="width of the rendered image in pixels (see --size-units)."
+                        )
+
+    img_gr.add_argument("--Ih", "--height", dest="height",
+                        type=int, default=0,
+                        help="height of the rendered image in pixels (see --size-units)."
+                        )
+
+    img_gr.add_argument("--Ir", "--resolution", dest="resolution",
+                        type=int, default=300,
+                        help="Resolution if the tree image (DPI)"
+                        )
+
+    img_gr.add_argument("--Iu", "--size_units", dest="size_units",
+                        choices=["px", "mm", "in"], default="px",
+                        help="Units used to specify the size of the image."
+                        " (px:pixels, mm:millimeters, in:inches). "
+                        )
+
+    img_gr.add_argument("-mbs", "--min_branch_separation", dest="branch_separation",
+                        type=int, default = 3,
+                        help="Min number of pixels to separate branches vertically."
+                        )
+
+    img_gr.add_argument("--ss", "--show_support", dest="show_support",
+                        action="store_true",
+                        help="""Shows branch bootstrap/support values""")
+
+    img_gr.add_argument("--sbl", "--show_branch_length", dest="show_branch_length",
+                        action="store_true",
+                        help="""Show branch lengths.""")
+
+    img_gr.add_argument("--ft", "--force_topology", dest="force_topology",
+                        action="store_true",
+                        help="""Force branch length to have a minimum length in the image""")
+
+    img_gr.add_argument("--hln", "--hide_leaf_names", dest="hide_leaf_names",
+                        action="store_true",
+                        help="""Hide leaf names.""")
+
+    img_gr.add_argument("--sin", "--show_internal_names", dest="show_internal_names",
+                        action="store_true",
+                        help="""Show the name attribute of all internal nodes.""")
+
+    img_gr.add_argument("--tree_width", dest="tree_width",
+                        type=int, default=300,
+                        help=("Adjust tree scale so the distance from root to the"
+                              " farthest leaf uses a fixed width in pixels."))
+
+
+    edit_gr = view_args_p.add_argument_group("TREE EDIT OPTIONS")
+
+    edit_gr.add_argument("--color_by_rank", dest="color_by_rank",
+                         type=str, nargs="+",
+                         help="""If the attribute rank is present in nodes """)
+
+    edit_gr.add_argument("--raxml", dest="raxml",
+                        action="store_true",
+                         help=("Parses the newick string and extracts bootstrap values from"
+                         " a non-standard RAxML newick file (i.e '((A,B)[100]);'"))
+
+    phylo_gr = view_args_p.add_argument_group("PHYLOGENETIC OPTIONS")
+
+    phylo_gr.add_argument("--alg", dest="alg",
+                        type=str,
+                        help="""Link tree to a multiple sequence alignment.""")
+
+    phylo_gr.add_argument("--alg_type", dest="alg_type",
+                          choices=['blockseq', 'compactseq', 'fullseq'], default='blockseq',
+                          help="How sequence alignment should be drawn in the tree")
+
+
+    phylo_gr.add_argument("--alg_format", dest="alg_format",
+                        type=str, default="fasta",
+                        help="fasta, phylip, iphylip, relaxed_iphylip, relaxed_phylip.")
+
+    phylo_gr.add_argument("--ncbi", dest="as_ncbi",
+                          action="store_true" ,
+                          help="""If enabled, default style will be applied to show ncbi taxonomy annotations""")
+
+
+    features_gr = view_args_p.add_argument_group("DRAWING FEATURES")
+
+    phylo_gr.add_argument("--heatmap", dest="heatmap",
+                        type=str,
+                          help="""attr_name \t v1, v2, v3, v4""")
+
+    phylo_gr.add_argument("--profile", dest="profile",
+                        type=str,
+                          help="""attr_name \t v1, v2, v3, v4""")
+
+    phylo_gr.add_argument("--bubbles", dest="bubbles",
+                        type=str,
+                          help='')
+
+
+def run(args):    
+    if args.text_mode:
+        for tindex, tfile in enumerate(src_tree_iterator(args)):
+            #print tfile
+            if args.raxml:
+                nw = re.sub(":(\d+\.\d+)\[(\d+)\]", ":\\1[&&NHX:support=\\2]", open(tfile).read())
+                t = Tree(nw, format=args.src_newick_format)
+            else:
+                t = Tree(tfile, format=args.src_newick_format)
+
+            print(t.get_ascii(show_internal=args.show_internal_names,
+                              attributes=args.show_attributes))
+        return
+
+    global FACES
+
+    if args.face:
+        FACES = parse_faces(args.face)
+    else:
+        FACES = []
+
+    # VISUALIZATION
+    ts = TreeStyle()
+    ts.mode = args.mode
+    ts.show_leaf_name = True
+    ts.tree_width = args.tree_width
+
+
+    for f in FACES:
+        if f["value"] == "@name":
+            ts.show_leaf_name = False
+            break
+
+    if args.as_ncbi:
+        ts.show_leaf_name = False
+        FACES.extend(parse_faces(
+            ['value:@sci_name, size:10, fstyle:italic',
+             'value:@taxid, color:grey, size:6, format:" - %s"',
+             'value:@sci_name, color:steelblue, size:7, pos:b-top, nodetype:internal',
+             'value:@rank, color:indianred, size:6, pos:b-bottom, nodetype:internal',
+         ]))
+
+
+    if args.alg:
+        FACES.extend(parse_faces(
+            ['value:@sequence, size:10, pos:aligned, ftype:%s' %args.alg_type]
+         ))
+
+    if args.heatmap:
+        FACES.extend(parse_faces(
+            ['value:@name, size:10, pos:aligned, ftype:heatmap']
+         ))
+
+    if args.bubbles:
+        for bubble in args.bubbles:
+            FACES.extend(parse_faces(
+                ['value:@%s, pos:float, ftype:bubble, opacity:0.4' %bubble,
+             ]))
+
+    ts.branch_vertical_margin = args.branch_separation
+    if args.show_support:
+        ts.show_branch_support = True
+    if args.show_branch_length:
+        ts.show_branch_length = True
+    if args.force_topology:
+        ts.force_topology = True
+    ts.layout_fn = lambda x: None
+
+    for tindex, tfile in enumerate(src_tree_iterator(args)):
+        #print tfile
+        if args.raxml:
+            nw = re.sub(":(\d+\.\d+)\[(\d+)\]", ":\\1[&&NHX:support=\\2]", open(tfile).read())
+            t = PhyloTree(nw, format=args.src_newick_format)
+        else:
+            t = PhyloTree(tfile, format=args.src_newick_format)
+
+
+        if args.alg:
+            t.link_to_alignment(args.alg, alg_format=args.alg_format)
+
+        if args.heatmap:
+            DEFAULT_COLOR_SATURATION = 0.3
+            BASE_LIGHTNESS = 0.7
+            def gradient_color(value, max_value, saturation=0.5, hue=0.1):
+                def rgb2hex(rgb):
+                    return '#%02x%02x%02x' % rgb
+                def hls2hex(h, l, s):
+                    return rgb2hex( tuple([int(x*255) for x in colorsys.hls_to_rgb(h, l, s)]))
+
+                lightness = 1 - (value * BASE_LIGHTNESS) / max_value
+                return hls2hex(hue, lightness, DEFAULT_COLOR_SATURATION)
+
+
+            heatmap_data = {}
+            max_value, min_value = None, None
+            for line in open(args.heatmap):
+                if line.startswith('#COLNAMES'):
+                    pass
+                elif line.startswith('#') or not line.strip():
+                    pass
+                else:
+                    fields = line.split('\t')
+                    name = fields[0].strip()
+
+                    values = [float(x) if x else None for x in fields[1:]]
+
+                    maxv = max(values)
+                    minv = min(values)
+                    if max_value is None or maxv > max_value:
+                        max_value = maxv
+                    if min_value is None or minv < min_value:
+                        min_value = minv
+                    heatmap_data[name] = values
+
+            heatmap_center_value = 0
+            heatmap_color_center = "white"
+            heatmap_color_up = 0.3
+            heatmap_color_down = 0.7
+            heatmap_color_missing = "black"
+
+            heatmap_max_value = abs(heatmap_center_value - max_value)
+            heatmap_min_value = abs(heatmap_center_value - min_value)
+
+            if heatmap_center_value <= min_value:
+                heatmap_max_value = heatmap_min_value + heatmap_max_value
+            else:
+                heatmap_max_value = max(heatmap_min_value, heatmap_max_value)
+
+
+
+        # scale the tree
+        if not args.height:
+            args.height = None
+        if not args.width:
+            args.width = None
+
+        f2color = {}
+        f2last_seed = {}
+        for node in t.traverse():
+            node.img_style['size'] = 0
+            if len(node.children) == 1:
+                node.img_style['size'] = 2
+                node.img_style['shape'] = "square"
+                node.img_style['fgcolor'] = "steelblue"
+
+            ftype_pos = defaultdict(int)
+
+            for findex, f in enumerate(FACES):
+                if (f['nodetype'] == 'any' or
+                    (f['nodetype'] == 'leaf' and node.is_leaf()) or
+                    (f['nodetype'] == 'internal' and not node.is_leaf())):
+
+
+                    # if node passes face filters
+                    if node_matcher(node, f["filters"]):
+                        if f["value"].startswith("@"):
+                            fvalue = getattr(node, f["value"][1:], None)
+                        else:
+                            fvalue = f["value"]
+
+                        # if node's attribute has content, generate face
+                        if fvalue is not None:
+                            fsize = f["size"]
+                            fbgcolor = f["bgcolor"]
+                            fcolor = f['color']
+
+                            if fcolor:
+                                # Parse color options
+                                auto_m = re.search("auto\(([^)]*)\)", fcolor)
+                                if auto_m:
+                                    target_attr = auto_m.groups()[0].strip()
+                                    if not target_attr :
+                                        color_keyattr = f["value"]
+                                    else:
+                                        color_keyattr = target_attr
+
+                                    color_keyattr = color_keyattr.lstrip('@')
+                                    color_bin = getattr(node, color_keyattr, None)
+
+                                    last_seed = f2last_seed.setdefault(color_keyattr, random.random())
+
+                                    seed = last_seed + 0.10 + random.uniform(0.1, 0.2)
+                                    f2last_seed[color_keyattr] = seed
+
+                                    fcolor = f2color.setdefault(color_bin, random_color(h=seed))
+
+                            if fbgcolor:
+                                # Parse color options
+                                auto_m = re.search("auto\(([^)]*)\)", fbgcolor)
+                                if auto_m:
+                                    target_attr = auto_m.groups()[0].strip()
+                                    if not target_attr :
+                                        color_keyattr = f["value"]
+                                    else:
+                                        color_keyattr = target_attr
+
+                                    color_keyattr = color_keyattr.lstrip('@')
+                                    color_bin = getattr(node, color_keyattr, None)
+
+                                    last_seed = f2last_seed.setdefault(color_keyattr, random.random())
+
+                                    seed = last_seed + 0.10 + random.uniform(0.1, 0.2)
+                                    f2last_seed[color_keyattr] = seed
+
+                                    fbgcolor = f2color.setdefault(color_bin, random_color(h=seed))
+
+                            if f["ftype"] == "text":
+                                if f.get("format", None):
+                                    fvalue = f["format"] % fvalue
+
+                                F = TextFace(fvalue,
+                                             fsize = fsize,
+                                             fgcolor = fcolor or "black",
+                                             fstyle = f.get('fstyle', None))
+
+                            elif f["ftype"] == "fullseq":
+                                F = faces.SeqMotifFace(seq=fvalue, seq_format="seq",
+                                                       gap_format="line",
+                                                       height=fsize)
+                            elif f["ftype"] == "compactseq":
+                                F = faces.SeqMotifFace(seq=fvalue, seq_format="compactseq",
+                                                       gap_format="compactseq",
+                                                       height=fsize)
+                            elif f["ftype"] == "blockseq":
+                                F = faces.SeqMotifFace(seq=fvalue, 
+                                                       height=fsize,
+                                                       fgcolor=fcolor or "slategrey",
+                                                       bgcolor=fbgcolor or "slategrey",
+                                                       scale_factor = 1.0)
+                                fbgcolor = None
+                            elif f["ftype"] == "bubble":
+                                try:
+                                    v = float(fvalue)
+                                except ValueError:
+                                    rad = fsize
+                                else:
+                                    rad = fsize * v
+                                F = faces.CircleFace(radius=rad, style="sphere",
+                                                     color=fcolor or "steelblue")
+
+                            elif f["ftype"] == "heatmap":
+                                if not f['column']:
+                                    col = ftype_pos[f["pos"]]
+                                else:
+                                    col = f["column"]
+
+                                for i, value in enumerate(heatmap_data.get(node.name, [])):
+                                    ftype_pos[f["pos"]] += 1
+
+                                    if value is None:
+                                        color = heatmap_color_missing
+                                    elif value > heatmap_center_value:
+                                        color = gradient_color(abs(heatmap_center_value - value), heatmap_max_value, hue=heatmap_color_up)
+                                    elif value < heatmap_center_value:
+                                        color = gradient_color(abs(heatmap_center_value - value), heatmap_max_value, hue=heatmap_color_down)
+                                    else:
+                                        color = heatmap_color_center
+                                    node.add_face(RectFace(20, 20, color, color), position="aligned", column=col + i)
+                                    # Add header
+                                    # for i, name in enumerate(header):
+                                    #    nameF = TextFace(name, fsize=7)
+                                    #    nameF.rotation = -90
+                                    #    tree_style.aligned_header.add_face(nameF, column=i)
+                                F = None
+
+                            elif f["ftype"] == "profile":
+                                # internal profiles?
+                                F = None
+                            elif f["ftype"] == "barchart":
+                                F = None
+                            elif f["ftype"] == "piechart":
+                                F = None
+
+
+
+                            # Add the Face
+                            if F:
+                                F.opacity = f['opacity'] or 1.0
+
+                                # Set face general attributes
+                                if fbgcolor:
+                                    F.background.color = fbgcolor
+
+                                if not f['column']:
+                                    col = ftype_pos[f["pos"]]
+                                    ftype_pos[f["pos"]] += 1
+                                else:
+                                    col = f["column"]
+                                node.add_face(F, column=col, position=f["pos"])
+
+        if args.image:
+            if tindex > 0: 
+                t.render("t%d.%s" %(tindex, args.image),
+                         tree_style=ts, w=args.width, h=args.height, units=args.size_units)
+            else:
+                t.render("%s" %(args.image),
+                         tree_style=ts, w=args.width, h=args.height, units=args.size_units)                
+        else:
+            t.show(None, tree_style=ts)
+
+
+def parse_faces(face_args):
+    faces = []
+    for fargs in face_args:
+        face = {"filters":[],
+                "ftype":"text",
+                "value":None,
+                "pos": "branch-right",
+                "color": None,
+                "bgcolor": None,
+                "size": 12,
+                "fstyle":None, # review this name
+                "column":None,
+                "format":None,
+                "nodetype":"leaf",
+                "opacity":None,
+        }
+
+        for clause in map(str.strip,fargs.split(',')):
+            key, value = list(map(str.strip, clause.split(":")))
+            key = key.lower()
+            if key == "if":
+                m = re.search("([^=><~!]+)(>=|<=|!=|~=|=|>|<)([^=><~!]+)", value)
+                if not m:
+                    raise ValueError("Invalid syntaxis in 'if' clause: %s" %clause)
+                else:
+                    target, op, value = list(map(str.strip, m.groups()))
+                    target = target.lstrip('@')
+                    try:
+                        value = float(value)
+                    except ValueError:
+                        pass
+
+                    face["filters"].append([target, op, value])
+            elif key == "pos":
+                try:
+                    face["pos"] = POSNAMES[value]
+                except KeyError:
+                    raise ValueError("Invalid face position: %s" %clause)
+            elif key == "nodetype":
+                value = value.lower()
+                if value != "any" and value != "internal" and value != "leaf":
+                    raise ValueError("Invalid nodetype: %s" %clause)
+                face["nodetype"] = value
+            elif key == "size":
+                face["size"] = int(value)
+            elif key == "opacity":
+                face["opacity"] = float(value)
+            elif key == "column":
+                face["column"] = int(value)
+            elif key == "color":
+                if value.endswith("()"):
+                    func_name = value[0:-2]
+                face[key] = value
+            elif key == "fstyle":
+                if value != 'italic' and value != 'bold':
+                    raise ValueError("valid style formats are: italic, bold [%s]" %clause)
+                face[key] = value
+            elif key == "format":
+                if "%" not in value:
+                    print(value)
+                    raise ValueError("format attribute should contain one format char: ie. %%s [%s]" %clause)
+                face[key] = value.strip("\"")
+            elif key in face:
+                face[key] = value
+            else:
+                raise ValueError("unknown keyword in face options: %s" %clause )
+        faces.append(face)
+    return faces
+
+def maptrees_layout(node):
+    node.img_style["size"] = 0
+    if getattr(node, "maptrees_support", "NA") != "NA":
+        f = CircleFace(radius=float(node.maptrees_support)/10, color="blue", style="sphere")        
+        f.opacity = 0.5
+        add_face_to_node(f, node, column=1, position="float")       
+        add_face_to_node(AttrFace("maptrees_support"), node, column=1, position="branch-top")
+        
+    if getattr(node, "maptrees_treeko_support", "NA") != "NA":
+        add_face_to_node(f, node, column=1, position="float")       
+        add_face_to_node(AttrFace("maptrees_treeko_support"), node, column=1, position="branch-bottom")
+
+
+
+
diff --git a/ete3/tools/phylobuild.cfg b/ete3/tools/phylobuild.cfg
new file mode 100644
index 0000000..36189f4
--- /dev/null
+++ b/ete3/tools/phylobuild.cfg
@@ -0,0 +1,508 @@
+[genetree_meta_workflow]
+phylomedb4=metaligner_phylomedb-trimal01-prottest_default-phyml_default,
+eggnog41=metaligner_trimmed-trimal01-prottest_default-phyml_default,
+ensembl_small = mcoffee_ensembl-none-none-treebest_ensembl,
+ensembl_large = mafft_linsi-none-none-treebest_ensembl,
+
+#ensembl=mcoffee_soft-trimal01-prottest_default-phyml_default,
+# linsi_fasttree=mafft_linsi-none-none-fasttree_full,
+# linsi_phyml=mafft_linsi-trimal01-none-phyml_default,
+# linsi_phyml_bootstrap=mafft_linsi-trimal01-none-phyml_default_bootstrap,
+# linsi_raxml=mafft_linsi-trimal01-none-raxml_default,
+# linsi_raxml_bootstrap=mafft_linsi-trimal01-none-raxml_default_bootstrap,
+
+full_modeltest = clustalo_default-none-pmodeltest_full_slow-phyml_default,
+full_modeltest_bootstrap = clustalo_default-none-pmodeltest_full_slow-phyml_default_bootstrap,
+full_fast_modeltest = clustalo_default-none-pmodeltest_full_fast-phyml_default,
+full_fast_modeltest_bootstrap = clustalo_default-none-pmodeltest_full_fast-phyml_default_bootstrap,
+full_ultrafast_modeltest = clustalo_default-none-pmodeltest_full_ultrafast-phyml_default,
+full_ultrafast_modeltest_bootstrap = clustalo_default-none-pmodeltest_full_ultrafast-phyml_default_bootstrap,
+
+soft_modeltest = clustalo_default-none-pmodeltest_soft_slow-phyml_default,
+soft_modeltest_bootstrap = clustalo_default-none-pmodeltest_soft_slow-phyml_default_bootstrap,
+soft_fast_modeltest = clustalo_default-none-pmodeltest_soft_fast-phyml_default,
+soft_fast_modeltest_bootstrap = clustalo_default-none-pmodeltest_soft_fast-phyml_default_bootstrap,
+soft_ultrafast_modeltest = clustalo_default-none-pmodeltest_soft_ultrafast-phyml_default,
+soft_ultrafast_modeltest_bootstrap = clustalo_default-none-pmodeltest_soft_ultrafast-phyml_default_bootstrap,
+
+standard_raxml=clustalo_default-none-none-raxml_default,
+standard_raxml_bootstrap=clustalo_default-none-none-raxml_default_bootstrap,
+standard_phyml=clustalo_default-none-none-phyml_default,
+standard_phyml_bootstrap=clustalo_default-none-none-phyml_default_bootstrap,
+standard_fasttree=clustalo_default-none-none-fasttree_full,
+
+standard_trimmed_raxml=clustalo_default-trimal01-none-raxml_default,
+standard_trimmed_raxml_bootstrap=clustalo_default-trimal01-none-raxml_default_bootstrap,
+standard_trimmed_phyml=clustalo_default-trimal01-none-phyml_default,
+standard_trimmed_phyml_bootstrap=clustalo_default-trimal01-none-phyml_default_bootstrap,
+standard_trimmed_fasttree=clustalo_default-trimal01-none-fasttree_full,
+
+# test_all=muscle_default-none-none-none,muscle_default-none-none-fasttree_full,muscle_default-none-none-fasttree_default,muscle_default-none-none-phyml_default,muscle_default-none-none-raxml_default,muscle_default-none-none-raxml_default_bootstrap,muscle_default-none-none-phyml_default_bootstrap,muscle_default-none-prottest_default-none,muscle_default-none-prottest_default-fasttree_full,muscle_default-none-prottest_default-fasttree_default,muscle_default-none-prottest_default-phyml_defa [...]
+# test_aligners_raxml=muscle_default-none-none-raxml_default,muscle_default-trimal01-none-raxml_default,mafft_default-none-none-raxml_default,mafft_default-trimal01-none-raxml_default,clustalo_default-none-none-raxml_default,clustalo_default-trimal01-none-raxml_default,meta_aligner_default-none-none-raxml_default,meta_aligner_default-trimal01-none-raxml_default,mcoffee_default-none-none-raxml_default,mcoffee_default-trimal01-none-raxml_default,
+# aligners_only=muscle_default-trimal01-prottest_default-none,muscle_default-trimal01-none-none,muscle_default-trimal02-prottest_default-none,muscle_default-trimal02-none-none,muscle_default-none-prottest_default-none,muscle_default-none-none-none,mafft_default-trimal01-prottest_default-none,mafft_default-trimal01-none-none,mafft_default-trimal02-prottest_default-none,mafft_default-trimal02-none-none,mafft_default-none-prottest_default-none,mafft_default-none-none-none,clustalo_default-t [...]
+# test_aligners_phyml=muscle_default-none-none-phyml_default,muscle_default-trimal01-none-phyml_default,mafft_default-none-none-phyml_default,mafft_default-trimal01-none-phyml_default,clustalo_default-none-none-phyml_default,clustalo_default-trimal01-none-phyml_default,meta_aligner_default-none-none-phyml_default,meta_aligner_default-trimal01-none-phyml_default,mcoffee_default-none-none-phyml_default,mcoffee_default-trimal01-none-phyml_default,
+# test_aligners_raxml_models=muscle_default-none-none-raxml_default,muscle_default-none-prottest_default-raxml_default,muscle_default-trimal01-none-raxml_default,muscle_default-trimal01-prottest_default-raxml_default,mafft_default-none-none-raxml_default,mafft_default-none-prottest_default-raxml_default,mafft_default-trimal01-none-raxml_default,mafft_default-trimal01-prottest_default-raxml_default,clustalo_default-none-none-raxml_default,clustalo_default-none-prottest_default-raxml_defau [...]
+# test_aligners_phyml_models=muscle_default-none-none-phyml_default,muscle_default-none-prottest_default-phyml_default,muscle_default-trimal01-none-phyml_default,muscle_default-trimal01-prottest_default-phyml_default,mafft_default-none-none-phyml_default,mafft_default-none-prottest_default-phyml_default,mafft_default-trimal01-none-phyml_default,mafft_default-trimal01-prottest_default-phyml_default,clustalo_default-none-none-phyml_default,clustalo_default-none-prottest_default-phyml_defau [...]
+# test_aligners_fasttree=muscle_default-none-none-fasttree_full,muscle_default-trimal01-none-fasttree_full,mafft_default-none-none-fasttree_full,mafft_default-trimal01-none-fasttree_full,clustalo_default-none-none-fasttree_full,clustalo_default-trimal01-none-fasttree_full,meta_aligner_default-none-none-fasttree_full,meta_aligner_default-trimal01-none-fasttree_full,mcoffee_default-none-none-fasttree_full,mcoffee_default-trimal01-none-fasttree_full,
+
+
+[workflow_desc]
+phylomedb4=     "Worflow described in Huerta-Cepas, et al (Nucleic Acid Research, 2013) and used in http://PhylomeDB.org"
+eggnog41 =      "Workflow used in the EggNOG orthology database and based on the phylomedb4 workflow"
+ensembl_small = "Experimental (do not use yet)"
+ensembl_large = "Experimental (do not use yet)"
+
+full_modeltest =                     "Complete (and slow) pipeline testing all evolutionary models and inferring tree with Phyml"
+full_modeltest_bootstrap =           "Complete (and slow) pipeline testing all evolutionary models and inferring tree with Phyml and 100 bootstraps"
+full_fast_modeltest =                "Test all evolutionary models using NJ inference and computes final tree with Phyml"
+full_fast_modeltest_bootstrap =      "Test all evolutionary models using NJ inference and computes final tree with Phyml and 100 bootstraps"
+full_ultrafast_modeltest =           "Test all evolutionary models using NJ inference with no F, I and G estimation and computes final tree with Phyml"
+full_ultrafast_modeltest_bootstrap = "Test all evolutionary models using NJ inference with no F, I and G estimation and computes final tree with Phyml and 100 bootstraps"
+
+soft_modeltest =                      "Complete (and slow) pipeline testing 5 protein evolutionary models and inferring tree with Phyml"
+soft_modeltest_bootstrap =            "Complete (and slow) pipeline testing 5 protein evolutionary models and inferring tree with Phyml and 100 bootstraps"
+soft_fast_modeltest =                 "Test 5 protein evolutionary models using NJ inference and computes final tree with Phyml"
+soft_fast_modeltest_bootstrap =       "Test 5 protein evolutionary models using NJ inference and computes final tree with Phyml and 100 bootstraps"
+soft_ultrafast_modeltest =            "Test 5 protein evolutionary models using NJ inference with no F, I and G estimation and computes final tree with Phyml"
+soft_ultrafast_modeltest_bootstrap =  "Test 5 protein evolutionary models using NJ inference with no F, I and G estimation and computes final tree with Phyml and 100 bootstraps"
+
+standard_raxml=            "Computes a tree using ClustalOmega with default parameters as aligner and RAxML"
+standard_raxml_bootstrap=  "Computes a tree using ClustalOmega with default parameters as alignerand RAxML with 100 bootstraps"
+standard_phyml=            "Computes a tree using ClustalOmega with default parameters as aligner and Phyml"
+standard_phyml_bootstrap=  "Computes a tree using ClustalOmega with default parameters as aligner and Phyml and 100 bootstraps"
+standard_fasttree=         "Computes a tree using ClustalOmega with default parameters as aligner and FastTree"
+
+standard_trimmed_raxml=             "Computes a tree using default ClustalOmega as aligner, trimAl for alg. cleaning and RAxML"
+standard_trimmed_raxml_bootstrap=   "Computes a tree using ClustalOmega with default parameters, trimAl for alg. cleaning and RAxML with 100 bootstraps"
+standard_trimmed_phyml=             "Computes a tree using ClustalOmega with default parameters, trimAl for alg. cleaning as aligner and Phyml"
+standard_trimmed_phyml_bootstrap=   "Computes a tree using ClustalOmega with default parameters, trimAl for alg. cleaning as aligner and Phyml and 100 bootstraps"
+standard_trimmed_fasttree=          "Computes a tree using ClustalOmega with default parameters, trimAl for alg. cleaning as aligner and FastTree"
+
+sptree_fasttree_100=   "Selects COGs present in all target species, make a concatenated alignment and build a tree with FastTree"
+sptree_fasttree_95=    "Selects COGs present in at least 95% of the target species, make a concatenated alignment and build a tree with FastTree"
+sptree_fasttree_90=    "Selects COGs present in at least 90% of the target species, make a concatenated alignment and build a tree with FastTree"
+sptree_fasttree_85=    "Selects COGs present in at least 85% of the target species, make a concatenated alignment and build a tree with FastTree"
+sptree_fasttree_all=   "Selects all COGS regardless of how many species are represented, make a concatenated alignment and build a tree with FastTree"
+
+sptree_raxml_100=      "Selects COGs present in all target species, make a concatenated alignment and build a tree with RAxML"
+sptree_raxml_95=       "Selects COGs present in at least 95% of the target species, make a concatenated alignment and build a tree with RAxML"
+sptree_raxml_90=       "Selects COGs present in at least 90% of the target species, make a concatenated alignment and build a tree with RAxML"
+sptree_raxml_85=       "Selects COGs present in at least 85% of the target species, make a concatenated alignment and build a tree with RAxML"
+sptree_raxml_all=      "Selects all COGS regardless of how many species are represented, make a concatenated alignment and build a tree with RAxML"
+
+
+
+
+[supermatrix_meta_workflow]
+sptree_fasttree_100=cog_100-alg_concat_default-fasttree_full,
+sptree_fasttree_95=cog_95-alg_concat_default-fasttree_full,
+sptree_fasttree_90=cog_90-alg_concat_default-fasttree_full,
+sptree_fasttree_85=cog_85-alg_concat_default-fasttree_full,
+sptree_fasttree_all=cog_all-alg_concat_default-fasttree_full,
+
+sptree_raxml_100=cog_100-alg_concat_default-raxml_default,
+sptree_raxml_95=cog_95-alg_concat_default-raxml_default,
+sptree_raxml_90=cog_90-alg_concat_default-raxml_default,
+sptree_raxml_85=cog_85-alg_concat_default-raxml_default,
+sptree_raxml_all=cog_all-alg_concat_default-raxml_default,
+
+[builtin_apps]
+## Portable applications are used by default
+#app_name             path    , max_cpu
+muscle              = built-in, 1
+mafft               = built-in, 2
+clustalo            = built-in, 1
+trimal              = built-in, 1
+readal              = built-in, 1
+tcoffee             = built-in, 1
+phyml               = built-in, 1
+raxml-pthreads      = built-in, 48
+raxml               = built-in, 1
+dialigntx           = built-in, 1
+fasttree            = built-in, 2
+statal              = built-in, 1
+pmodeltest          = built-in, 48
+prank               = built-in, 1
+probcons            = built-in, 1
+kalign              = built-in, 1
+
+# #################
+# APPS
+# ################
+[metaligner_phylomedb]
+_desc = 'Meta-aligning based on head/tail alignments produced by muscle, mafft and dialign-tx, scanned with M-Coffee. Unconsistent columns are removed and final alignment is cleaned with trimAl'
+_app = metaligner
+_alg_trimming = True
+_aligners = @muscle_default, @mafft_default, @clustalo_default, @dialigntx_default
+
+[metaligner_trimmed]
+_desc = 'Meta-aligning based on head/tail alignments produced by muscle, mafft and clustalomega, scanned with M-Coffee. Unconsistent columns are removed and final alignment is cleaned with trimAl'
+_app = metaligner
+_alg_trimming = True
+_aligners = @muscle_default, @mafft_default, @clustalo_default
+
+[metaligner_default]
+_desc = 'Meta-aligning based on head/tail alignments produced by muscle, mafft and clustalomega, scanned with M-Coffee. Unconsistent columns are removed'
+_app = metaligner
+_alg_trimming = False
+_aligners = @muscle_default, @mafft_default, @clustalo_default
+
+[tcoffee_default]
+_desc = '(EXPERIMENTAL) tcoffee alignment with default paramerters'
+_app = tcoffee
+
+[mcoffee_ensembl]
+_desc = '(EXPERIMENTAL) mcoffee alignment as used in the Ensembl database'
+_app = tcoffee
+-method = "mafftgins_msa,muscle_msa,kalign_msa,t_coffee_msa"
+-mode = mcoffee
+
+[trimal001]
+_desc = 'trimal alignment cleaning removing columns with >1% gaps'
+_app = trimal
+-gt = 0.01
+
+[trimal01]
+_desc = 'trimal alignment cleaning removing columns with >10% gaps'
+_app = trimal
+-gt = 0.1
+
+[trimal02]
+_desc = 'trimal alignment cleaning removing columns with >20% gaps'
+_app = trimal
+-gt = 0.2
+
+[trimal03]
+_desc = 'trimal alignment cleaning removing columns with >30% gaps'
+_app = trimal
+-gt = 0.3
+
+[trimal05]
+_desc = 'trimal alignment cleaning removing columns with >50% gaps'
+_app = trimal
+-gt = 0.5
+
+[trimal_gappyout]
+_desc = 'trimal alignment cleaning using gappyout algorithm'
+_app = trimal
+-gappyout= ''
+
+[muscle_default]
+_desc = 'muscle alignment with default parameters'
+_app = muscle
+
+[mafft_default]
+_desc = 'mafft alignment with default parameters'
+_app = mafft
+--auto = ""
+
+[mafft_einsi]
+_desc = 'mafft alignment using the E-INS-i mode'
+# E-INS-i
+#is suitable for alignments like this:
+#
+#oooooooooXXX------XXXX---------------------------------XXXXXXXXXXX-XXXXXXXXXXXXXXXooooooooooooo
+#---------XXXXXXXXXXXXXooo------------------------------XXXXXXXXXXXXXXXXXX-XXXXXXXX-------------
+#-----ooooXXXXXX---XXXXooooooooooo----------------------XXXXX----XXXXXXXXXXXXXXXXXXooooooooooooo
+#---------XXXXX----XXXXoooooooooooooooooooooooooooooooooXXXXX-XXXXXXXXXXXX--XXXXXXX-------------
+#---------XXXXX----XXXX---------------------------------XXXXX---XXXXXXXXXX--XXXXXXXooooo--------
+# where 'X's indicate alignable residues, 'o's indicate unalignable residues and
+# '-'s indicate gaps. Unalignable residues are left unaligned at the pairwise
+# alignment stage, because of the use of the generalized affine gap
+# cost. Therefore E-INS-i is applicable to a difficult problem such as RNA
+# polymerase, which has several conserved motifs embedded in long unalignable
+# regions. As E-INS-i has the minimum assumption of the three methods, this is
+# recommended if the nature of sequences to be aligned is not clear. Note that
+# E-INS-i assumes that the arrangement of the conserved motifs is shared by all
+# sequences.
+_app = mafft
+--genafpair = ''
+--maxiterate=1000
+
+[mafft_linsi]
+_desc = 'mafft alignment using the L-INS-i mode'
+# L-INS-i
+#is suitable to:
+#ooooooooooooooooooooooooooooooooXXXXXXXXXXX-XXXXXXXXXXXXXXX------------------
+#--------------------------------XX-XXXXXXXXXXXXXXX-XXXXXXXXooooooooooo-------
+#------------------ooooooooooooooXXXXX----XXXXXXXX---XXXXXXXooooooooooo-------
+#--------ooooooooooooooooooooooooXXXXX-XXXXXXXXXX----XXXXXXXoooooooooooooooooo
+#--------------------------------XXXXXXXXXXXXXXXX----XXXXXXX------------------
+# L-INS-i can align a set of sequences containing sequences flanking around one
+# alignable domain. Flanking sequences are ignored in the pairwise alignment by
+# the Smith-Waterman algorithm. Note that the input sequences are assumed to
+# have only one alignable domain. In benchmark tests, the ref4 of BAliBASE
+# corresponds to this. The other categories of BAliBASE also correspond to
+# similar situations, because they have flanking sequences. L-INS-i also shows
+# higher accuracy values for a part of SABmark and HOMSTRAD than G-INS-i, but we
+# have not identified the reason for this.
+_app = mafft
+--localpair = ''
+--maxiterate = 1000
+
+[mafft_ginsi]
+_desc = 'mafft alignment using the G-INS-i mode'
+#G-INS-i
+#is suitable to:
+# XXXXXXXXXXX-XXXXXXXXXXXXXXX
+# XX-XXXXXXXXXXXXXXX-XXXXXXXX
+# XXXXX----XXXXXXXX---XXXXXXX
+# XXXXX-XXXXXXXXXX----XXXXXXX
+# XXXXXXXXXXXXXXXX----XXXXXXX
+# G-INS-i assumes that entire region can be aligned and tries to align them
+#globally using the Needleman-Wunsch algorithm; that is, a set of sequences of
+#one domain must be extracted by truncating flanking sequences. In benchmark
+#tests, SABmark and HOMSTRAD correspond to this.
+_app = mafft
+--globalpair = ''
+--maxiterate = 1000
+
+[clustalo_default]
+_desc = 'clustalo with default parameters'
+_app = clustalo
+
+[dialigntx_default]
+_desc = 'dialign-tx with default parameters'
+_app = dialigntx
+
+[prottest_default]
+_desc = 'Uses BioNJ trees to select best protein model from: JTT, WAG, VT, LG and MtREV. Fixed parameters: +G+I+F'
+_app = prottest
+_lk_mode = "phyml" # let "phyml" or "raxml" to optimize likelihood
+_models = "JTT", "WAG", "VT", "LG", "MtREV"
+-f = m            # char freq (m)odel or (e)stimated
+--pinv = e        # Proportion of invariant sites
+--alpha = e       #
+--nclasses =  4   # Number of classes
+--no_memory_check = ""
+--quiet = ""
+
+
+[pmodeltest_full_ultrafast]
+_app = pmodeltest
+_desc = 'Test all models using NJ tree inference and skipping gamma, invariant sites, and frequency site estimations (!G!I!F)'
+_aa_models = "all"
+_nt_models = "all"
+--fast = ""
+--noinv = ""
+--nogam = ""
+--nofrq = ""
+
+[pmodeltest_full_fast]
+_app = pmodeltest
+_desc = 'Test all models using NJ tree inference'
+_aa_models = "all"
+_nt_models = "all"
+--fast = ""
+
+[pmodeltest_full_slow]
+_app = pmodeltest
+_desc = 'Test all models using ML tree inference'
+_aa_models = "all"
+_nt_models = "all"
+
+
+[pmodeltest_soft_ultrafast]
+_desc = 'Test JTT,WAG,VT,LG,MtREV models using NJ tree inference and skipping gamma, invariant sites, and frequency site estimation (!G!I!F)'
+_app = pmodeltest
+_aa_models = "JTT,WAG,VT,LG,MtREV"
+_nt_models = "GTR"
+--fast = ""
+--noinv = ""
+--nogam = ""
+#--nofrq = ""
+
+[pmodeltest_soft_fast]
+_desc = 'Test JTT,WAG,VT,LG,MtREV models using NJ tree inference'
+_app = pmodeltest
+_aa_models = "JTT,WAG,VT,LG,MtREV"
+_nt_models = "GTR"
+--fast = ""
+
+[pmodeltest_soft_slow]
+_desc = 'Test JTT,WAG,VT,LG,MtREV models using ML tree inference'
+_app = pmodeltest
+_aa_models = "JTT,WAG,VT,LG,MtREV"
+_nt_models = "GTR"
+
+
+[bionj_default]
+_desc = 'BioNJ tree inferred with Phyml. default models JTT/GTR'
+_app = phyml
+_aa_model = JTT # AA model used if no model selection is performed
+_nt_model = GTR # Nt model used if no model selection is performed
+--pinv = e        # Proportion of invariant sites.  Fixed value in the
+                  # [0,1] range or "e" for estimated
+--alpha = e       # Gamma distribution shape parameter. fixed value or
+                  # "e" for "estimated"
+--nclasses =  4   # Number of rate categories
+-o = lr          # Tree optimization
+-f = m            # e: estiamte character frequencies.  m: character
+                  # frequencies from model
+--bootstrap = -2  #  approximate likelihood ratio test returning
+                  #  Chi2-based parametric branch supports.
+
+[fasttree_default]
+_desc = 'Fasttree with default parameters'
+_app = fasttree
+
+[fasttree_full]
+_desc = 'Fasttree with slow NNI and MLACC=3'
+_app = fasttree
+-pseudo = ''
+-mlacc = 3
+-slownni = ''
+
+[phyml_default]
+_desc = 'Phyml tree using +G+I+F, 4 classes and aLRT branch supports. Default models JTT/GTR'
+_app = phyml
+_aa_model = JTT # AA model used if no model selection is performed
+_nt_model = GTR # Nt model used if no model selection is performed
+--pinv = e        # Proportion of invariant sites.  Fixed value in the
+                  # [0,1] range or "e" for estimated
+--alpha = e       # Gamma distribution shape parameter. fixed value or
+                  # "e" for "estimated"
+--nclasses =  4   # Number of rate categories
+-o = tlr          # Tree optimization
+-f = m            # e: estiamte character frequencies.  m: character
+                  # frequencies from model
+--bootstrap = -2  #  approximate likelihood ratio test returning
+                  #  Chi2-based parametric branch supports.
+
+[phyml_default_bootstrap]
+_desc = 'Phyml tree using +G+I+F, 4 classes and 100 bootstraps. Default models JTT/GTR'
+_app = phyml
+_aa_model = JTT # AA model used if no model selection is performed
+_nt_model = GTR # Nt model used if no model selection is performed
+--no_memory_check = ""
+--quiet = ""
+--pinv = e        # Proportion of invariant sites.  Fixed value in the
+                  # [0,1] range or "e" for estimated
+--alpha = e       # Gamma distribution shape parameter. fixed value or
+                  # "e" for "estimated"
+--nclasses =  4   # Number of rate categories
+-o = tlr          # Tree optimization
+-f = m            # e: estiamte character frequencies.  m: character
+                  # frequencies from model
+--bootstrap = 100 #  approximate likelihood ratio test returning
+                  #  Chi2-based parametric branch supports.
+
+[raxml_default]
+_desc = 'RAxML with default parameters, GAMMA JTT/GTR and aLRT branch supports.'
+_app = raxml
+#_execution = sge # you can choose between "sge" or "insitu"
+_bootstrap = alrt # alrt, alrt_phyml or and integer number
+_method = GAMMA # GAMMA or CAT
+_aa_model = JTT # Model used if no model selection is performed
+# _model_suffix = "I" or "IF"
+_model_suffix = ""
+-f = d
+-p = 31416 # Random seed to generate starting tree. Make results reproducible
+
+
+[raxml_default_bootstrap]
+_desc = 'RAxML with default parameters, GAMMA JTT/GTR and 100 boostrap replicates'
+_app = raxml
+#_execution = sge # you can choose between "sge" or "insitu"
+_bootstrap = 100 # alrt, alrt_phyml or and integer number
+_method = GAMMA # GAMMA or CAT
+_aa_model = JTT # Model used if no model selection is performed
+# _model_suffix = "I" or "IF"
+_model_suffix = ""
+-f = d
+-p = 31416 # Random seed to generate starting tree. Make results reproducible
+
+[treebest_ensembl]
+_desc = '(EXPERIMENTAL)'
+_app = phyml
+_aa_model = JTT # AA model used if no model selection is performed
+_nt_model = GTR # Nt model used if no model selection is performed
+--no_memory_check = ""
+--quiet = ""
+--pinv = e        # Proportion of invariant sites.  Fixed value in the
+                  # [0,1] range or "e" for estimated
+--alpha = e       # Gamma distribution shape parameter. fixed value or
+                  # "e" for "estimated"
+--nclasses =  4   # Number of rate categories
+-o = tlr          # Tree optimization
+-f = m            # e: estiamte character frequencies.  m: character
+                  # frequencies from model
+--bootstrap = -2  #  approximate likelihood ratio test returning
+                  #  Chi2-based parametric branch supports.
+
+
+
+# #################
+# SUPERMATRIX APPS
+# ################
+
+#dummy
+[sptree_dummy]
+_app = supermatrix
+_desc = 'Only 4 genes are selected. Just for testing purposes'
+_cog_selector         = @cog_dummy
+_alg_concatenator     = @alg_concat_default
+_aa_tree_builder      = @fasttree_default
+_nt_tree_builder      = @fasttree_default
+_appset = @builtin_apps
+
+[cog_dummy]
+_desc = 'Only 4 genes are selected. Just for testing purposes'
+_app = cogselector
+_species_missing_factor = 0.50
+_max_species_missing_factor = 0.60
+_max_cogs = 4
+
+[alg_concat_default]
+_app = concatalg
+_default_aa_model = JTT
+_default_nt_model = GTR
+
+[cog_all]
+_app = cogselector
+_desc = 'all clusters of orthologous groups (COGs) will be used'
+_species_missing_factor = 1.0
+_max_species_missing_factor = 1.0
+_max_cogs = 999999
+
+[cog_100]
+_desc = 'only COGs including 100% of the target species will be used'
+_app = cogselector
+_species_missing_factor = 0
+_max_species_missing_factor = 0
+_max_cogs = 999999
+
+[cog_95]
+_desc = 'all COGs including at least 95% of the target species will be used'
+_app = cogselector
+_species_missing_factor = 0.05
+_max_species_missing_factor = 0.07
+_max_cogs = 999999
+
+
+[cog_90]
+_desc = 'all COGs including at least 90% of the target species will be used'
+_app = cogselector
+_species_missing_factor = 0.10
+_max_species_missing_factor = 0.15
+_max_cogs = 999999
+
+[cog_85]
+_desc = 'all COGs including at least 85% of the target species will be used'
+_app = cogselector
+_species_missing_factor = 0.15
+_max_species_missing_factor = 0.20
+_max_cogs = 999999
+
+# #################
+# NPR configs
+# ################
+
+[splitter_default]
+_desc = 'Select anchoring sequences from sister clade until reaching 10% of the actual partition size.'
+_app = treesplitter
+_max_outgroup_size = 10%
+_min_outgroup_support = 0.90
+_outgroup_topology_dist = False
+_first_split = midpoint
+
diff --git a/ete3/tools/phylobuild.py b/ete3/tools/phylobuild.py
new file mode 100755
index 0000000..2e950ce
--- /dev/null
+++ b/ete3/tools/phylobuild.py
@@ -0,0 +1,1104 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import re
+import errno
+import six.moves.builtins
+import six
+from six.moves import map
+from six.moves import range
+from six import StringIO
+from six.moves import input
+
+import sys
+import os
+import shutil
+import signal
+from collections import defaultdict
+import filecmp
+import logging
+import tempfile
+log = None
+from time import ctime, time
+
+# This avoids installing phylobuild_lib module. npr script will find it in the
+# same directory in which it is
+BASEPATH = os.path.split(os.path.realpath(__file__))[0]
+APPSPATH = None
+args = None
+
+sys.path.insert(0, BASEPATH)
+
+import argparse
+from ..citation import Citator
+
+from .phylobuild_lib.utils import (SeqGroup, generate_runid, AA, NT, GLOBALS,
+                                   encode_seqname, pjoin, pexist, hascontent,
+                                   clear_tempdir, colorify, GENCODE,
+                                   silent_remove, _max, _min, _std, _mean,
+                                   _median, iter_cog_seqs)
+from .phylobuild_lib.errors import ConfigError, DataError
+from .phylobuild_lib.master_task import Task
+from .phylobuild_lib.interface import app_wrapper
+from .phylobuild_lib.scheduler import schedule
+from .phylobuild_lib import db
+from .phylobuild_lib import apps
+from .phylobuild_lib.logger import logindent
+
+from .phylobuild_lib.configcheck import (is_file, is_dir, check_config,
+                                         build_genetree_workflow,
+                                         build_supermatrix_workflow,
+                                         parse_block, list_workflows,
+                                         block_detail, list_apps)
+from .phylobuild_lib import seqio
+
+
+try:
+    from ..version import __version__
+except ImportError:
+     __version__ = 'unknown'
+
+__DESCRIPTION__ = (
+"""
+      --------------------------------------------------------------------------------
+                  ETE build (%s) - reproducible phylogenetic workflows 
+
+      Citation: 
+
+       Huerta-Cepas J, Serra F and Bork P. ETE 3: Reconstruction, analysis and
+       visualization of phylogenomic data. Mol Biol Evol (2016)
+       doi:10.1093/molbev/msw046
+
+      (Note that a list of the external programs used to complete all necessary
+      computations will be shown after workflow execution. Those programs should
+      also be cited.)
+
+      --------------------------------------------------------------------------------
+      """ %(__version__))
+
+__EXAMPLES__ = """
+"""
+
+def main(args):
+    """ Read and parse all configuration and command line options,
+    setup global variables and data, and initialize the master task of
+    all workflows. """
+
+    global log
+    log = logging.getLogger("main")
+
+    base_dir = GLOBALS["basedir"]
+
+    # -------------------------------------
+    # READ CONFIG FILE AND PARSE WORKFLOWS
+    # -------------------------------------
+
+    # Load and check config file
+
+
+    if args.custom_config:
+        concat_config = open(args.base_config).readlines()
+        concat_config += open(args.custom_config).readlines()
+        base_config = check_config(concat_config)
+    else:
+        base_config = check_config(args.base_config)
+        
+    # Check for config file overwriting
+    clearname = os.path.basename(args.base_config)
+    local_conf_file = pjoin(base_dir, "ete_build.cfg")
+    if pexist(base_dir):
+        if hascontent(local_conf_file):
+            if not args.clearall and not args.resume:
+                raise ConfigError("Output directory seems to contain"
+                                  " data from a previous run."
+                                  " Use --clearall to restart the analysis or --resume to continue.")
+
+    # Creates a tree splitter config block on the fly. In the future this
+    # options should be more accessible by users.
+    base_config['default_tree_splitter'] = {
+        '_app' : 'treesplitter',
+        '_max_outgroup_size' : '10%', # dynamic or fixed selection of out seqs.
+        '_min_outgroup_support' : 0.9, # avoids fixing labile nodes as monophyletic
+        '_outgroup_topology_dist' : False}
+
+
+    # prepare workflow config dictionaries
+    workflow_types = defaultdict(list)
+    TARGET_CLADES = set()
+    VALID_WORKFLOW_TYPES = set(['genetree', 'supermatrix'])
+    # extract workflow filters
+
+
+    def parse_workflows(names, target_wtype, parse_filters=False):
+        parsed_workflows = []
+        if not names:
+            return parsed_workflows
+
+        for wkname in names:
+            if parse_filters:
+                wfilters = {}
+                fields = [_f.strip() for _f in wkname.split(",")]
+                if len(fields) == 1:
+                    wkname = fields[0]
+                else:
+                    wkname = fields[-1]
+                    for f in fields[:-1]:
+                        if f.startswith("size-range:"): # size filter
+                            f = f.replace("size-range:",'')
+                            try:
+                                min_size, max_size = list(map(int, f.split('-')))
+                                if min_size < 0 or min_size > max_size:
+                                    raise ValueError
+
+                            except ValueError:
+                                raise ConfigError('size filter should consist of two integer numbers (i.e. 50-100). Found [%s] instead' %f)
+                            wfilters["max_size"] = max_size
+                            wfilters["min_size"] = min_size
+                        elif f.startswith("seq-sim-range:"):
+                            f = f.replace("seq-sim-range:",'')
+                            try:
+                                min_seq_sim, max_seq_sim  = map(float, f.split('-'))
+                                if min_seq_sim > 1 or min_seq_sim < 0:
+                                    raise ValueError
+                                if max_seq_sim > 1 or max_seq_sim < 0:
+                                    raise ValueError
+                                if min_seq_sim > max_seq_sim:
+                                    raise ValueError
+                            except ValueError:
+                                raise ConfigError('sequence similarity filter should consist of two float numbers between 0 and 1 (i.e. 0-0.95). Found [%s] instead' %f)
+                            wfilters["min_seq_sim"] = min_seq_sim
+                            wfilters["max_seq_sim"] = max_seq_sim
+                        else:
+                            raise ConfigError('Unknown workflow filter [%s]' %f)
+
+            if target_wtype == "genetree" and wkname in base_config.get('genetree_meta_workflow', {}):
+                temp_workflows = [x.lstrip('@') for x in base_config['genetree_meta_workflow'][wkname]]
+            elif target_wtype == "supermatrix" and wkname in base_config.get('supermatrix_meta_workflow', {}):
+                temp_workflows = [x.lstrip('@') for x in base_config['supermatrix_meta_workflow'][wkname]]
+            else:
+                temp_workflows = [wkname]
+
+            # if wkname not in base_config and wkname in base_config.get('meta_workflow', {}):
+            #     temp_workflows = [x.lstrip('@') for x in base_config['meta_workflow'][wkname]]
+            # else:
+            #     temp_workflows = [wkname]
+
+            for _w in temp_workflows:
+                if target_wtype == "genetree":
+                    base_config.update(build_genetree_workflow(_w))
+                elif target_wtype == "supermatrix":
+                    base_config.update(build_supermatrix_workflow(_w))
+                parse_block(_w, base_config)
+                
+                if _w not in base_config:
+                    list_workflows(base_config)
+                    raise ConfigError('[%s] workflow or meta-workflow name is not found in the config file.' %_w)
+                wtype = base_config[_w]['_app']
+                if wtype not in VALID_WORKFLOW_TYPES:
+                    raise ConfigError('[%s] is not a valid workflow: %s?' %(_w, wtype))
+                if wtype != target_wtype:
+                    raise ConfigError('[%s] is not a valid %s workflow' %(wkname, target_wtype))
+
+            if parse_filters:
+                if len(temp_workflows) == 1:
+                    parsed_workflows.extend([(temp_workflows[0], wfilters)])
+                else:
+                    raise ConfigError('Meta-workflows with multiple threads are not allowed as recursive workflows [%s]' %wkname)
+            else:
+                parsed_workflows.extend(temp_workflows)
+        return parsed_workflows
+
+    genetree_workflows = parse_workflows(args.workflow, "genetree")
+    supermatrix_workflows = parse_workflows(args.supermatrix_workflow, "supermatrix")
+
+    # Stop if mixing types of meta-workflows
+    if supermatrix_workflows and len(genetree_workflows) > 1:
+        raise ConfigError("A single genetree workflow must be specified when used in combination with super-matrix workflows.")
+
+    # Sets master workflow type
+    if supermatrix_workflows:
+        WORKFLOW_TYPE = "supermatrix"
+        master_workflows = supermatrix_workflows
+    else:
+        WORKFLOW_TYPE = "genetree"
+        master_workflows = genetree_workflows
+
+    # Parse npr workflows and filters
+    npr_workflows = []
+    use_npr = False
+    if args.npr_workflows is not None:
+        use_npr = True
+        npr_workflows = parse_workflows(args.npr_workflows, WORKFLOW_TYPE, parse_filters=True)
+
+    # setup workflows and create a separate config dictionary for each of them
+    run2config = {}
+    for wkname in master_workflows:
+        config = dict(base_config)
+        run2config[wkname] = config
+
+        appset = config[config[wkname]['_appset'][1:]]
+
+        # Initialized application command line commands for this workflow
+        config['app'] = {}
+        config['threading'] = {}
+
+        apps_to_test = {}
+        for k, (appsrc, cores) in six.iteritems(appset):
+            cores = int(cores)
+            if appsrc == "built-in":
+                #cores = int(config["threading"].get(k, args.maxcores))
+                cores = min(args.maxcores, cores)
+                config["threading"][k] = cores
+                cmd = apps.get_call(k, APPSPATH, base_dir, str(cores))
+                config["app"][k] = cmd
+                apps_to_test[k] = cmd
+
+        # Copy config file
+        config["_outpath"] = pjoin(base_dir, wkname)
+        config["_nodeinfo"] = defaultdict(dict)
+        try:
+            os.makedirs(config["_outpath"])
+        except OSError:
+            pass
+
+        # setup genetree workflow as the processor of concat alignment jobs
+        if WORKFLOW_TYPE == "supermatrix":
+            concatenator = config[wkname]["_alg_concatenator"][1:]
+            config[concatenator]["_workflow"] = '@%s' % genetree_workflows[0]
+
+        # setup npr options for master workflows
+        if use_npr:
+            config['_npr'] = {
+                # register root workflow as the main workflow if the contrary not said
+                "wf_type": WORKFLOW_TYPE,
+                "workflows": npr_workflows if npr_workflows else [(wkname, {})],
+                'nt_switch_thr': args.nt_switch_thr,
+                'max_iters': args.max_iters,
+                }
+
+            #config[wkname]['_npr'] = '@'+npr_config
+            #target_levels = config[npr_config].get('_target_levels', [])
+            #target_dict = config['_optimized_levels'] = {}
+            #for tg in target_levels:
+                # If target level name starts with ~, we allow para and
+                # poly-phyletic grouping of the species in such level
+                #strict_monophyly = True
+                #if tg.startswith("~"):
+                    #tg = target_level.lstrip("~")
+                    #strict_monophyly = False
+                #tg = tg.lower()
+                # We add the level as non-optimized
+                #target_dict[target_level] = [False, strict_monophyly]
+            #TARGET_CLADES.update(target_levels)
+        else:
+            config['_npr'] = {
+                'nt_switch_thr': args.nt_switch_thr,
+            }
+
+
+    # dump log config file
+    with open(local_conf_file, "w") as OUTPUT:
+        with open(args.base_config) as INPUT:
+            OUTPUT.write(INPUT.read()) # replace by simple copy?
+
+    TARGET_CLADES.discard('')
+
+    if WORKFLOW_TYPE == 'genetree':
+        from .phylobuild_lib.workflow.genetree import pipeline
+    elif WORKFLOW_TYPE == 'supermatrix':
+        from .phylobuild_lib.workflow.supermatrix import pipeline
+
+    #if args.arch == "auto":
+    #    arch = "64 " if sys.maxsize > 2**32 else "32"
+    #else:
+    #    arch = args.arch
+
+    arch = "64 " if sys.maxsize > 2**32 else "32"
+
+    print(__DESCRIPTION__)
+
+    # check application binary files
+    if not args.nochecks:
+        log.log(28, "Testing x86-%s portable applications..." % arch)
+        apps.test_apps(apps_to_test)
+
+    log.log(28, "Starting ETE-build execution at %s" %(ctime()))
+    log.log(28, "Output directory %s" %(GLOBALS["output_dir"]))
+
+
+    # -------------------------------------
+    # PATH CONFIGs
+    # -------------------------------------
+
+    # Set up paths
+    gallery_dir = os.path.join(base_dir, "gallery")
+    sge_dir = pjoin(base_dir, "sge_jobs")
+    tmp_dir = pjoin(base_dir, "tmp")
+    tasks_dir = os.path.realpath(args.tasks_dir) if args.tasks_dir else  pjoin(base_dir, "tasks")
+    input_dir = pjoin(base_dir, "input")
+    db_dir = os.path.realpath(args.db_dir) if args.db_dir else  pjoin(base_dir, "db")
+
+    GLOBALS["db_dir"] = db_dir
+    GLOBALS["sge_dir"] = sge_dir
+    GLOBALS["tmp"] = tmp_dir
+    GLOBALS["gallery_dir"] = gallery_dir
+    GLOBALS["tasks_dir"] = tasks_dir
+    GLOBALS["input_dir"] = input_dir
+
+    GLOBALS["nprdb_file"]  = pjoin(db_dir, "npr.db")
+    GLOBALS["datadb_file"]  = pjoin(db_dir, "data.db")
+    
+    GLOBALS["seqdb_file"]  = pjoin(db_dir, "seq.db") if not args.seqdb else args.seqdb
+
+    # Clear databases if necessary
+    if args.clearall:
+        log.log(28, "Erasing all existing npr data...")
+        shutil.rmtree(GLOBALS["tasks_dir"]) if pexist(GLOBALS["tasks_dir"]) else None
+        shutil.rmtree(GLOBALS["tmp"]) if pexist(GLOBALS["tmp"]) else None
+        shutil.rmtree(GLOBALS["input_dir"]) if pexist(GLOBALS["input_dir"]) else None
+
+        if not args.seqdb:
+            silent_remove(GLOBALS["seqdb_file"])
+
+        silent_remove(GLOBALS["datadb_file"])
+        silent_remove(pjoin(base_dir, "nprdata.tar"))
+        silent_remove(pjoin(base_dir, "nprdata.tar.gz"))
+        #silent_remove(pjoin(base_dir, "npr.log"))
+        silent_remove(pjoin(base_dir, "npr.log.gz"))
+    else:
+        if args.softclear:
+            log.log(28, "Erasing precomputed data (reusing task directory)")
+            shutil.rmtree(GLOBALS["tmp"]) if pexist(GLOBALS["tmp"]) else None
+            shutil.rmtree(GLOBALS["input_dir"]) if pexist(GLOBALS["input_dir"]) else None
+            os.remove(GLOBALS["datadb_file"]) if pexist(GLOBALS["datadb_file"]) else None
+        if args.clearseqs and pexist(GLOBALS["seqdb_file"]) and not args.seqdb:
+            log.log(28, "Erasing existing sequence database...")
+            os.remove(GLOBALS["seqdb_file"])
+
+    if not args.clearall and base_dir != GLOBALS["output_dir"]:
+        log.log(24, "Copying previous output files to scratch directory: %s..." %base_dir)
+        try:
+            shutil.copytree(pjoin(GLOBALS["output_dir"], "db"), db_dir)
+        except IOError as e:
+            print(e)
+            pass
+
+        try:
+            shutil.copytree(pjoin(GLOBALS["output_dir"], "tasks/"), pjoin(base_dir, "tasks/"))
+        except IOError as e:
+            try:
+                shutil.copy(pjoin(GLOBALS["output_dir"], "nprdata.tar.gz"), base_dir)
+            except IOError as e:
+                pass
+
+        # try: os.system("cp -a %s/* %s/" %(GLOBALS["output_dir"],  base_dir))
+        # except Exception: pass
+
+
+    # UnCompress packed execution data
+    if pexist(os.path.join(base_dir,"nprdata.tar.gz")):
+        log.warning("Compressed data found. Extracting content to start execution...")
+        cmd = "cd %s && gunzip -f nprdata.tar.gz && tar -xf nprdata.tar && rm nprdata.tar" % base_dir
+        os.system(cmd)
+
+    # Create dir structure
+    for dirname in [tmp_dir, tasks_dir, input_dir, db_dir]:
+        try:
+            os.makedirs(dirname)
+        except OSError:
+            log.warning("Using existing dir: %s", dirname)
+
+
+    # -------------------------------------
+    # DATA READING AND CHECKING
+    # -------------------------------------
+
+    # Set number of CPUs available
+
+    if WORKFLOW_TYPE == "supermatrix" and not args.cogs_file:
+        raise ConfigError("Species tree workflow requires a list of COGS"
+                          " to be supplied through the --cogs"
+                          " argument.")
+    elif WORKFLOW_TYPE == "supermatrix":
+        GLOBALS["cogs_file"] = os.path.abspath(args.cogs_file)
+
+    GLOBALS["seqtypes"] = set()
+    if args.nt_seed_file:
+        GLOBALS["seqtypes"].add("nt")
+        GLOBALS["inputname"] = os.path.split(args.nt_seed_file)[-1]
+
+    if args.aa_seed_file:
+        GLOBALS["seqtypes"].add("aa")
+        GLOBALS["inputname"] = os.path.split(args.aa_seed_file)[-1]
+
+    # Initialize db if necessary, otherwise extract basic info
+    db.init_nprdb(GLOBALS["nprdb_file"])
+    db.init_datadb(GLOBALS["datadb_file"])
+
+    # Species filter
+    if args.spfile:
+        target_species = set([line.strip() for line in open(args.spfile)])
+        target_species.discard("")
+        log.log(28, "Enabling %d species", len(target_species))
+    else:
+        target_species = None
+    
+    # Load supermatrix data
+    if WORKFLOW_TYPE == "supermatrix":
+        observed_species= set()
+        target_seqs = set()
+        for cog_number, seq_cogs in iter_cog_seqs(args.cogs_file, args.spname_delimiter):
+            for seqname, spcode, seqcode in seq_cogs:
+                if target_species is None or spcode in target_species:
+                    observed_species.add(spcode)
+                    target_seqs.add(seqname)            
+                
+        if target_species is not None:
+            if target_species - observed_species:
+                raise DataError("The following target_species could not be found in COGs file: %s" %(','.join(target_species-observed_species)))
+        else:
+            target_species = observed_species
+        log.warning("COG file restriction: %d sequences from %s species " %(len(target_seqs), len(target_species)))
+    else:
+        target_seqs = None
+
+    GLOBALS["target_species"] = target_species
+    
+    # Check and load data
+    ERROR = ""
+    if not pexist(GLOBALS["seqdb_file"]):
+        db.init_seqdb(GLOBALS["seqdb_file"])
+        seqname2seqid = None
+        if args.aa_seed_file:
+            seqname2seqid = seqio.load_sequences(args, "aa", target_seqs, target_species, seqname2seqid)
+            if not target_seqs:
+                target_seqs = list(seqname2seqid.keys())
+                
+        if args.nt_seed_file:
+            seqname2seqid = seqio.load_sequences(args, "nt", target_seqs, target_species, seqname2seqid)
+        # Integrity checks?
+        pass
+            
+    else:
+        db.init_seqdb(GLOBALS["seqdb_file"])
+        log.warning("Reusing sequences from existing database!")
+        if target_seqs is None:
+            seqname2seqid = db.get_seq_name_dict()
+        else:
+            seqname2seqid = db.get_seq_name_dict()
+            if target_seqs - set(seqname2seqid.keys()):
+                raise DataError("The following sequence names in COGs file"
+                                " are not found in current database: %s" %(
+                                    ','.join(target_seqs - db_seqs)))
+                      
+    log.warning("%d target sequences" %len(seqname2seqid))
+    GLOBALS["target_sequences"] = seqname2seqid.values()
+        
+    if ERROR:
+        with open(pjoin(base_dir, "error.log"), "w") as OUTPUT:
+            OUTPUT.write(' '.join(arguments) + "\n\n" + ERROR)
+        raise DataError("Errors were found while loading data. Please"
+                        " check error file for details")
+
+    # Prepare target taxa levels, if any
+    if WORKFLOW_TYPE == "supermatrix" and args.lineages_file and TARGET_CLADES:
+        sp2lin = {}
+        lin2sp = defaultdict(set)
+        all_sorted_levels = []
+        for line in open(args.lineages_file):
+            sp, lineage = line.split("\t")
+            sp = sp.strip()
+            if sp in target_species:
+                sp2lin[sp] = [x.strip().lower() for x in lineage.split(",")]
+                for lin in sp2lin[sp]:
+                    if lin not in lin2sp:
+                        all_sorted_levels.append(lin)
+                    lin2sp[lin].add(sp)
+        # any target species without lineage information?
+        if target_species - set(sp2lin):
+            missing = target_species - set(sp2lin)
+            log.warning("%d species not found in lineages file" %len(missing))
+
+        # So, the following levels (with at least 2 species) could be optimized
+        avail_levels = [(lin, len(lin2sp[lin])) for lin in all_sorted_levels if len(lin2sp[lin])>=2]
+        log.log(26, "Available levels for NPR optimization:\n%s", '\n'.join(["% 30s (%d spcs)"%x for x in avail_levels]))
+        avail_levels = set([lv[0] for lv in avail_levels])
+        GLOBALS["lineages"] = (sp2lin, lin2sp)
+        
+    # if no lineages file, raise an error
+    elif WORKFLOW_TYPE == "supermatrix" and TARGET_CLADES:
+        raise ConfigError("The use of target_levels requires a species lineage file provided through the --lineages option")
+
+    # -------------------------------------
+    # MISC
+    # -------------------------------------
+
+    GLOBALS["_max_cores"] = args.maxcores
+    log.debug("Enabling %d CPU cores" %args.maxcores)
+
+
+    # how task will be executed
+    if args.no_execute:
+        execution = (None, False)
+    # elif args.sge_execute:
+    #     execution = ("sge", False)
+    else:
+        if args.monitor:
+            execution =("insitu", True) # True is for run-detached flag
+        else:
+            execution = ("insitu", False)
+
+    # Scheduling starts here
+    log.log(28, "ETE build starts now!")
+
+    # This initialises all pipelines
+    pending_tasks = []
+    start_time = ctime()
+    for wkname, config in six.iteritems(run2config):
+        # Feeds pending task with the first task of the workflow
+        config["_name"] = wkname
+        new_tasks = pipeline(None, wkname, config)
+        if not new_tasks:
+            continue # skips pipelines not fitting workflow filters
+        thread_id = new_tasks[0].threadid
+        config["_configid"] = thread_id
+        GLOBALS[thread_id] = config
+        pending_tasks.extend(new_tasks)
+
+        # Clear info from previous runs
+        open(os.path.join(config["_outpath"], "runid"), "a").write('\t'.join([thread_id, GLOBALS["nprdb_file"]+"\n"]))
+        # Write command line info
+        cmd_info = '\t'.join([start_time, thread_id, str(args.monitor), GLOBALS["cmdline"]])
+        open(pjoin(config["_outpath"], "command_lines"), "a").write(cmd_info+"\n")
+
+    thread_errors = schedule(pipeline, pending_tasks, args.schedule_time,
+                             execution, args.debug, args.noimg)
+    db.close()
+
+    if not thread_errors:
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+
+        if args.compress:
+            log.log(28, "Compressing intermediate data...")
+            cmd = "cd %s && tar --remove-files -cf nprdata.tar tasks/ && gzip -f nprdata.tar; if [ -e npr.log ]; then gzip -f npr.log; fi;" %\
+              GLOBALS["basedir"]
+            os.system(cmd)
+        log.log(28, "Deleting temporal data...")
+        cmd = "cd %s && rm -rf tmp/" %GLOBALS["basedir"]
+        os.system(cmd)
+        cmd = "cd %s && rm -rf input/" %GLOBALS["basedir"]
+        os.system(cmd)
+        GLOBALS["citator"].show()
+    else:
+        raise DataError("Errors found in some tasks")
+
+
+def _main(arguments, builtin_apps_path=None):
+    global BASEPATH, APPSPATH, args
+    
+    if builtin_apps_path:
+        APPSPATH = builtin_apps_path
+        
+    if not pexist(pjoin(APPSPATH, "bin")):
+        APPSPATH = os.path.expanduser("~/.etetoolkit/ext_apps-latest/")
+        
+    ETEHOMEDIR = os.path.expanduser("~/.etetoolkit/")
+
+    if len(arguments) == 1:
+        if not pexist(APPSPATH):
+            print(colorify('\nWARNING: external applications not found', "yellow"), file=sys.stderr)
+            print(colorify('Install using conda (recomended):', "lgreen"), file=sys.stderr)
+            print(colorify(' conda install -c etetoolkit ete3_external_tools', "white"), file=sys.stderr)
+            print(colorify('or manually compile by running:', "lgreen"), file=sys.stderr)
+            print(colorify(' ete3 upgrade-external-tools', "white"), file=sys.stderr)
+            print()
+
+
+    if len(arguments) > 1:
+        _config_path = pjoin(BASEPATH, 'phylobuild.cfg')
+
+
+        if arguments[1] == "check":
+            if not pexist(APPSPATH):
+                print(colorify('\nWARNING: external applications not found', "yellow"), file=sys.stderr)
+                print(colorify('Install using conda (recomended):', "lgreen"), file=sys.stderr)
+                print(colorify(' conda install -c etetoolkit ete3_external_tools', "white"), file=sys.stderr)
+                print(colorify('or manually compile by running:', "lgreen"), file=sys.stderr)
+                print(colorify(' ete3 upgrade-external-tools', "white"), file=sys.stderr)
+                sys.exit(0)
+            
+            try:
+                toolchain_version = open(pjoin(APPSPATH, "__version__")).readline()
+            except IOError:
+                toolchain_version = "unknown"
+
+            print("Current Toolchain path: %s " %APPSPATH)
+            print("Current Toolchain version: %s" %toolchain_version)
+                
+            # setup portable apps
+            config = {}
+            for k in apps.builtin_apps:
+                cmd = apps.get_call(k, APPSPATH, "/tmp", "1")
+                config[k] = cmd
+            apps.test_apps(config)
+            sys.exit(0)
+
+        elif arguments[1] in ("workflows", "wl"):
+            if arguments[1] == "wl":
+                print(colorify("WARNING: 'wl' is obsolete and will be removed in the future, use 'workflows' instead", "orange"), file=sys.stderr)
+
+            base_config = check_config(_config_path)
+            try:
+                wf_type = arguments[2]
+            except IndexError:
+                wf_type = None
+            list_workflows(base_config, wf_type)
+            sys.exit(0)
+
+        elif arguments[1] == "apps":
+            base_config = check_config(_config_path)
+            list_apps(base_config, set(arguments[2:]))
+            sys.exit(0)
+            
+        elif arguments[1] == "show":
+            base_config = check_config(_config_path)
+            try:
+                block = arguments[2]
+            except IndexError:
+                print("Expected a block name, found none")
+                sys.exit(1)
+
+            block_detail(block, base_config)
+            sys.exit(0)
+
+        elif arguments[1] == "dump":
+            if len(arguments) > 2:
+                base_config = check_config(_config_path)
+                block_detail(arguments[2], base_config, color=False)
+            else:
+                print(open(_config_path).read())
+            sys.exit(0)
+
+        elif arguments[1] == "validate":
+            print('Validating configuration file ', arguments[2])
+            if pexist(arguments[2]):
+                base_config = check_config(arguments[2])
+                print('Everything ok')
+            else:
+                print('File does not exist')
+                sys.exit(-1)
+            sys.exit(0)
+
+        elif arguments[1] == "version":
+            print(__version__)
+            sys.exit(0)
+
+    parser = argparse.ArgumentParser(description=__DESCRIPTION__ + __EXAMPLES__,
+                                     formatter_class=argparse.RawDescriptionHelpFormatter)
+
+    # Input data related flags
+    input_group = parser.add_argument_group('==== Input Options ====')
+
+    input_group.add_argument('[check | workflows | apps | show | dump | validate | version | install_tools]',
+                             nargs='?',
+                             help=("Utility commands:\n"
+                                   "check: check that external applications are executable.\n"
+                                   "wl: show a list of available workflows.\n"
+                                   "show [name]: show the configuration parameters of a given workflow or application config block.\n"
+                                   "dump [name]: dump the configuration parameters of the specified block (allows to modify predefined config).\n"
+                                   "validate [configfile]: Validate a custom configuration file.\n"
+                                   "version: Show current version.\n"
+                                   ))
+
+    input_group.add_argument("-c", "--custom-config", dest="custom_config",
+                             type=is_file, 
+                             help="Custom configuration file.")
+
+    input_group.add_argument("--base-config", dest="base_config",
+                             type=is_file, default=BASEPATH+'/phylobuild.cfg',
+                             help="Base configuration file.")
+
+    input_group.add_argument("--tools-dir", dest="tools_dir",
+                             type=str,
+                             help="Custom path where external software is avaiable.")
+
+    input_group.add_argument("-w", dest="workflow",
+                             required=True,
+                             nargs='+',
+                             help="One or more gene-tree workflow names. All the specified workflows will be executed using the same input data.")
+
+    input_group.add_argument("-m", dest="supermatrix_workflow",
+                             required=False,
+                             nargs='+',
+                             help="One or more super-matrix workflow names. All the specified workflows will be executed using the same input data.")
+
+    input_group.add_argument("-a", dest="aa_seed_file",
+                             type=is_file,
+                             help="Initial multi sequence file with"
+                             " protein sequences.")
+
+
+    input_group.add_argument("-n", dest="nt_seed_file",
+                             type=is_file,
+                             help="Initial multi sequence file with"
+                             " nucleotide sequences")
+
+    # input_group.add_argument("--seqformat", dest="seqformat",
+    #                          choices=["fasta", "phylip", "iphylip", "phylip_relaxed", "iphylip_relaxed"],
+    #                          default="fasta",
+    #                          help="")
+
+    input_group.add_argument("--dealign", dest="dealign",
+                             action="store_true",
+                             help="when used, gaps in the orginal fasta file will"
+                             " be removed, thus allowing to use alignment files as input.")
+
+    input_group.add_argument("--seq-name-parser", dest="seq_name_parser",
+                             type=str, 
+                             help=("A Perl regular expression containing a matching group, which is"
+                                   " used to parse sequence names from the input files. Use this option to"
+                                   " customize the names that should be shown in the output files."
+                                   " The matching group (the two parentheses) in the provided regular"
+                                   " expression will be assumed as sequence name. By default, all "
+                                   " characthers until the first blank space or tab delimiter are "
+                                   " used as the sequence names."),
+                             default='^([^\s]+)')
+                                 
+    input_group.add_argument("--no-seq-rename", dest="seq_rename",
+                             action="store_false",
+                             help="If used, sequence names will NOT be"
+                             " internally translated to 10-character-"
+                             "identifiers.")
+
+    input_group.add_argument("--no-seq-checks", dest="no_seq_checks",
+                            action="store_true",
+                            help="Skip consistency sequence checks for not allowed symbols, etc.")
+    input_group.add_argument("--no-seq-correct", dest="no_seq_correct",
+                            action="store_true",
+                            help="Skip sequence compatibility changes: i.e. U, J and O symbols are converted into X by default.")
+
+    dup_names_group = input_group.add_mutually_exclusive_group()
+
+    dup_names_group.add_argument("--ignore-dup-seqnames", dest="ignore_dup_seqnames",
+                                 action = "store_true",
+                                 help=("If duplicated sequence names exist in the input"
+                                       " fasta file, a single random instance will be used."))
+
+    dup_names_group.add_argument("--rename-dup-seqnames", dest="rename_dup_seqnames",
+                                 action = "store_true",
+                                 help=("If duplicated sequence names exist in the input"
+                                       " fasta file, duplicates will be renamed."))
+
+    input_group.add_argument("--seqdb", dest="seqdb",
+                             type=str,
+                             help="Uses a custom sequence database file")
+
+
+    # supermatrix workflow
+
+    input_group.add_argument("--cogs", dest="cogs_file",
+                             type=is_file,
+                             help="A file defining clusters of orthologous groups."
+                             " One per line. Tab delimited sequence ids. ")
+
+    input_group.add_argument("--lineages", dest="lineages_file",
+                             type=is_file,
+                             help="EXPERIMENTAL:A file containing the (sorted) lineage "
+                                  "track of each species. It enables "
+                                  "NPR algorithm to fix what taxonomic "
+                                  "levels should be optimized."
+                                  "Note that linage tracks must consist in "
+                                  "a comma separated list of taxonomic levels "
+                                  "sorted from deeper to swallower clades "
+                                  "(i.e. 9606 [TAB] Eukaryotes,Mammals,Primates)"
+                             )
+
+    input_group.add_argument("--spname-delimiter", dest="spname_delimiter",
+                             type=str, default="_",
+                             help="spname_delimiter is used to split"
+                             " the name of sequences into species code and"
+                             " sequence identifier (i.e. HUMAN_p53 = HUMAN, p53)."
+                             " Note that species name must always precede seq.identifier.")
+
+    input_group.add_argument("--spfile", dest="spfile",
+                             type=is_file,
+                             help="If specified, only the sequences and ortholog"
+                             " pairs matching the group of species in this file"
+                             " (one species code per line) will be used. ")
+
+    npr_group = parser.add_argument_group('==== NPR options ====')
+    npr_group.add_argument("-r", "--recursive", dest="npr_workflows",
+                           required=False,
+                           nargs="*",
+                           help="EXPERIMENTAL:Enables recursive NPR capabilities (Nested Phylogenetic Reconstruction)"
+                           " and specifies custom workflows and filters for each NPR iteration.")
+    npr_group.add_argument("--nt-switch-threshold", dest="nt_switch_thr",
+                           required=False,
+                           type=float,
+                           default = 0.95,
+                           help="Sequence similarity at which nucleotide based alignments should be used"
+                           " instead of amino-acids. ")
+    npr_group.add_argument("--max-iters", dest="max_iters",
+                           required=False,
+                           type=int,
+                           default=99999999,
+                           help="EXPERIMENTAL:Set a maximum number of NPR iterations allowed.")
+    npr_group.add_argument("--first-split-outgroup", dest="first_split",
+                           type=str,
+                           default='midpoint',
+                           help=("EXPERIMENTAL:When used, it overrides first_split option"
+                                 " in any tree merger config block in the"
+                                 " config file. Default: 'midpoint' "))
+
+
+    # Output data related flags
+    output_group = parser.add_argument_group('==== Output Options ====')
+    output_group.add_argument("-o", "--outdir", dest="outdir",
+                              type=str, required=True,
+                              help="""Output directory for results.""")
+
+    output_group.add_argument("--scratch-dir", dest="scratch_dir",
+                              type=is_dir,
+                              help="""If provided, ete-build will run on the scratch folder and all files will be transferred to the output dir when finished. """)
+
+    output_group.add_argument("--db-dir", dest="db_dir",
+                              type=is_dir,
+                              help="""Alternative location of the database directory""")
+
+    output_group.add_argument("--tasks-dir", dest="tasks_dir",
+                              type=is_dir,
+                              help="""Output directory for the executed processes (intermediate files).""")
+
+    output_group.add_argument("--compress", action="store_true",
+                              help="Compress all intermediate files when"
+                              " a workflow is finished.")
+
+    output_group.add_argument("--logfile", action="store_true",
+                              help="Log messages will be saved into a file named npr.log within the output directory.")
+
+    output_group.add_argument("--noimg", action="store_true",
+                              help="Tree images will not be generated when a workflow is finished.")
+
+    output_group.add_argument("--email", dest="email",
+                              type=str,
+                              help="EXPERIMENTAL:Send an email when errors occur or a workflow is done.")
+
+    output_group.add_argument("--email-report-time", dest="email_report_time",
+                              type=int, default = 0,
+                              help="EXPERIMENTAL:How often (in minutes) an email reporting the status of the execution should be sent. 0=No reports")
+
+
+    # Task execution related flags
+    exec_group = parser.add_argument_group('==== Execution Mode Options ====')
+
+    exec_group.add_argument("-C", "--cpu", dest="maxcores", type=int,
+                            default=1, help="Maximum number of CPU cores"
+                            " available in the execution host. If higher"
+                            " than 1, tasks with multi-threading"
+                            " capabilities will enabled. Note that this"
+                            " number will work as a hard limit for all applications,"
+                            "regardless of their specific configuration.")
+
+    exec_group.add_argument("-t", "--schedule-time", dest="schedule_time",
+                            type=float, default=2,
+                            help="""How often (in secs) tasks should be checked for available results.""")
+
+    exec_group.add_argument("--launch-time", dest="launch_time",
+                            type=float, default=3,
+                            help="""How often (in secs) queued jobs should be checked for launching""")
+
+    exec_type_group = exec_group.add_mutually_exclusive_group()
+
+    exec_type_group.add_argument("--noexec", dest="no_execute",
+                                 action="store_true",
+                                 help=("Prevents launching any external application."
+                                       " Tasks will be processed and intermediate steps will"
+                                       " run, but no real computation will be performed."))
+
+    # exec_type_group.add_argument("--sge", dest="sge_execute",
+    #                              action="store_true", help="EXPERIMENTAL!: Jobs will be"
+    #                              " launched using the Sun Grid Engine"
+    #                              " queue system.")
+
+    exec_group.add_argument("--monitor", dest="monitor",
+                            action="store_true",
+                            help="Monitor mode: pipeline jobs will be"
+                            " detached from the main process. This means that"
+                            " when npr execution is interrupted, all currently"
+                            " running jobs will keep running. Use this option if you"
+                            " want to stop and recover an execution thread or"
+                            " if jobs are expected to be executed remotely."
+                            )
+
+    exec_group.add_argument("--resume", dest="resume",
+                            action="store_true",
+                            help="If output directory exists, reuse data from it if possible. ")
+
+    exec_group.add_argument("--clearall", dest="clearall",
+                            action="store_true",
+                            help="If output directory exists, erase all previous data and start a clean execution.")
+
+    
+    exec_group.add_argument("--softclear", dest="softclear",
+                            action="store_true",
+                            help="Clear all precomputed data (data.db), but keeps task raw data in the directory, so they can be re-processed.")
+
+    exec_group.add_argument("--clear-seqdb", dest="clearseqs",
+                            action="store_true",
+                            help="Reload sequences deleting previous database if necessary.")
+
+    # exec_group.add_argument("--arch", dest="arch",
+    #                         choices=["auto", "32", "64"],
+    #                         default="auto", help="Set the architecture of"
+    #                         " execution hosts (needed only when using"
+    #                         " built-in applications.)")
+
+    exec_group.add_argument("--nochecks", dest="nochecks",
+                            action="store_true",
+                            help="Skip basic checks (i.e. tools available) everytime the application starts.")
+
+    # Interface related flags
+    ui_group = parser.add_argument_group("==== Program Interface Options ====")
+    # ui_group.add_argument("-u", dest="enable_ui",
+    #                     action="store_true", help="When used, a color"
+    #                     " based interface is launched to monitor NPR"
+    #                     " processes. This feature is EXPERIMENTAL and"
+    #                     " requires NCURSES libraries installed in your"
+    #                     " system.")
+
+    ui_group.add_argument("-v", dest="verbosity",
+                          default=0,
+                          type=int, choices=[0,1,2,3,4],
+                          help="Verbosity level: 0=very quiet, 4=very "
+                          " verbose.")
+
+    ui_group.add_argument("--debug", nargs="?",
+                          const="all",
+                          help="Start debugging"
+                          " A taskid can be provided, so"
+                          " debugging will start from such task on.")
+
+    args = parser.parse_args(arguments)
+    if args.tools_dir:
+        APPSPATH = args.tools_dir
+
+    try:
+        toolchain_version = open(pjoin(APPSPATH, "__version__")).readline()
+    except IOError:
+        toolchain_version = "unknown"       
+    print("Toolchain path: %s " %APPSPATH)
+    print("Toolchain version: %s" %toolchain_version)
+        
+    if not pexist(APPSPATH):
+        print(colorify('\nWARNING: external applications directory are not found at %s' %APPSPATH, "yellow"), file=sys.stderr)
+        print(colorify('Use "ete build install_tools" to install or upgrade tools', "orange"), file=sys.stderr)
+
+    args.enable_ui = False
+    if not args.noimg:
+        try:
+            from .. import Tree
+            Tree().render('/tmp/etenpr_img_test.png')
+        except:            
+            print('X11 DISPLAY = %s' %colorify(os.environ.get('DISPLAY', 'not detected!'), 'yellow'))            
+            print('(You can use --noimg to disable graphical capabilities)')
+            raise ConfigError('img generation not supported')
+
+    if not args.aa_seed_file and not args.nt_seed_file:
+        parser.error('At least one input file argument (-a, -n) is required')
+
+    outdir = os.path.abspath(args.outdir)
+    final_dir, runpath = os.path.split(outdir)
+    if not runpath:
+        raise ValueError("Invalid outdir")
+
+    GLOBALS["output_dir"] = os.path.abspath(args.outdir)
+
+    if args.scratch_dir:
+        # set paths for scratch folder for sqlite files
+        print("Creating temporary scratch dir...", file=sys.stderr)
+        base_scratch_dir = os.path.abspath(args.scratch_dir)
+        scratch_dir = tempfile.mkdtemp(prefix='npr_tmp', dir=base_scratch_dir)
+        GLOBALS["scratch_dir"] = scratch_dir
+        GLOBALS["basedir"] = scratch_dir
+    else:
+        GLOBALS["basedir"] = GLOBALS["output_dir"]
+
+
+    GLOBALS["first_split_outgroup"] = args.first_split
+
+    GLOBALS["email"] = args.email
+    GLOBALS["verbosity"] = args.verbosity
+    GLOBALS["email_report_time"] = args.email_report_time * 60
+    GLOBALS["launch_time"] = args.launch_time
+    GLOBALS["cmdline"] = ' '.join(arguments)
+
+    GLOBALS["threadinfo"] = defaultdict(dict)
+    GLOBALS["seqtypes"] = set()
+    GLOBALS["target_species"] = set()
+    GLOBALS["target_sequences"] = set()
+    GLOBALS["spname_delimiter"] = args.spname_delimiter
+    GLOBALS["color_shell"] = True
+    GLOBALS["citator"] = Citator()
+
+
+    GLOBALS["lineages"] = None
+    GLOBALS["cogs_file"] = None
+
+    GLOBALS["citator"].add("ETE")
+
+    if not pexist(GLOBALS["basedir"]):
+        os.makedirs(GLOBALS["basedir"])
+
+    # when killed, translate signal into exception so program can exit cleanly
+    def raise_control_c(_signal, _frame):
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+        raise KeyboardInterrupt
+    signal.signal(signal.SIGTERM, raise_control_c)
+
+    # Start the application
+    app_wrapper(main, args)
+
+if __name__ == "__main__":
+    _main(sys.argv)
diff --git a/ete3/tools/phylobuild_lib/__init__.py b/ete3/tools/phylobuild_lib/__init__.py
new file mode 100644
index 0000000..daababf
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/__init__.py
@@ -0,0 +1,38 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
diff --git a/ete3/tools/phylobuild_lib/apps.py b/ete3/tools/phylobuild_lib/apps.py
new file mode 100644
index 0000000..6350056
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/apps.py
@@ -0,0 +1,249 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+import os
+import re
+import logging
+import subprocess
+import six
+
+from .utils import colorify
+
+log = logging.getLogger("main")
+
+APPTYPES = {
+    "aligners": set(["muscle", "mafft", "clustalo", "metaligner", "dialingtx", "tcoffee"]),
+    "model testers": set(["prottest", "pmodeltest"]),
+    "alg cleaners": set(["trimal"]),
+    "tree builders": set(["fasttree", "phyml", "raxml"]),
+    "COG selectors": set(["cogselector"]),
+    "alg concatenators": set(["concatalg"]),
+    }
+  
+
+OPTION2APPTYPE = {
+    "_aa_aligner": APPTYPES["aligners"],
+    "_nt_aligner": APPTYPES["aligners"],
+
+    "_aa_alg_cleaner": APPTYPES["alg cleaners"],
+    "_nt_alg_cleaner": APPTYPES["alg cleaners"],
+    
+    "_aa_tree_builder": APPTYPES["tree builders"],
+    "_nt_tree_builder": APPTYPES["tree builders"], 
+    
+    "_aa_model_tester": APPTYPES["model testers"],
+    "_nt_model_tester": APPTYPES["model testers"],
+
+    "_cog_selector": APPTYPES["COG selectors"],
+    "_alg_concatenator": APPTYPES["alg concatenators"], 
+    
+}
+
+APP2CLASS = {
+    "tcoffee"             : "TCoffee",
+    "muscle"              : "Muscle",
+    "mafft"               : "Mafft",
+    "clustalo"            : "Clustalo",
+    "metaligner"          : "MetaAligner",
+    "phyml"               : "Phyml",
+    "raxml-pthreads"      : "Raxml",
+    "raxml"               : "Raxml",
+    # "raxml-pthreads-sse3" : "Raxml",
+    # "raxml-sse3"          : "Raxml",
+    # "raxml-pthreads-avx"  : "Raxml",
+    # "raxml-avx"           : "Raxml",
+    # "raxml-pthreads-avx2" : "Raxml",
+    # "raxml-avx2"          : "Raxml",
+    "jmodeltest"          : "JModeltest",
+    "dialigntx"           : "Dialigntx",
+    "fasttree"            : "FastTree",
+    "trimal"              : "Trimal",
+    "prottest"            : "Prottest",
+    "pmodeltest"          : "PModelTest",
+#    "jmodeltest"          : "JModeltest",
+    "treesplitter"        : "TreeMerger",
+    "concatalg"           : "ConcatAlg",
+    "cogselector"         : "CogSelector",
+    }
+
+CLASS2MODULE = {
+    "Muscle"        : "muscle",
+    "Trimal"        : "trimal",
+    "Mafft"         : "mafft",
+    "Clustalo"      : "clustalo",
+    "MetaAligner"   : "meta_aligner",
+    "TCoffee"       : "tcoffee",
+    "Phyml"         : "phyml",
+#    "JModeltest"    : "jmodeltest",
+    "Dialigntx"     : "dialigntx",
+    "FastTree"      : "fasttree",
+    "PModelTest"    : "pmodeltest",
+    }
+
+builtin_apps = {
+    'muscle'             : "%BIN%/muscle",
+    'mafft'              : "MAFFT_BINARIES=%BIN%  %BIN%/mafft --thread %CORES%",
+    'clustalo'           : "%BIN%/clustalo --threads %CORES%",
+    'trimal'             : "%BIN%/trimal",
+    'readal'             : "%BIN%/readal",
+    'tcoffee'            : "export HOME=/tmp MAFFT_BINARIES=%BIN% TMP_4_TCOFFEE=%TMP% LOCKDIR_4_TCOFFEE=%TMP% PLUGINS_4_TCOFFEE=%BIN%/ && %BIN%/t_coffee",
+    'phyml'              : "%BIN%/phyml",
+    'raxml-pthreads'     : "%BIN%/raxmlHPC-PTHREADS-SSE3 -T%CORES%", # defaults to SSE3
+    'raxml'              : "%BIN%/raxmlHPC-SSE3",                    # defaults to SSE3
+    #'raxml-pthreads-sse3': "%BIN%/raxmlHPC-PTHREADS-SSE3 -T%CORES%",
+    #'raxml-sse3'         : "%BIN%/raxmlHPC-SSE3",
+    #'raxml-pthreads-avx' : "%BIN%/raxmlHPC-PTHREADS-AVX -T%CORES%",
+    #'raxml-avx'          : "%BIN%/raxmlHPC-AVX",
+    #'raxml-pthreads-avx2': "%BIN%/raxmlHPC-PTHREADS-AVX2 -T%CORES%",
+    #'raxml-avx2'         : "%BIN%/raxmlHPC-AVX2",
+    'pmodeltest'         : "python %BIN%/pmodeltest.py --nprocs %CORES% --phyml %BIN%/phyml",
+    'dialigntx'          : "%BIN%/dialign-tx %BIN%/dialigntx_conf",
+    'fasttree'           : "export OMP_NUM_THREADS=%CORES%; %BIN%/FastTree",
+    'statal'             : "%BIN%/statal",
+    'prank'              : "%BIN%/prank",
+    'probcons'           : "%BIN%/probcons",
+    'kalign'             : "%BIN%/kalign",
+    'codeml'             : "%BIN%/codeml",
+    'slr'                : "%BIN%/Slr",
+    }
+
+app2check = {
+    'muscle'              : "| grep -i Edgar|wc -l",
+    'mafft'               : "--help | grep -i bioinformatics |wc -l",
+    'clustalo'            : "--help | grep -i omega|wc -l",
+    'trimal'              : "-h | grep -i capella |wc -l",
+    'readal'              : "-h | grep -i capella |wc -l",
+    'tcoffee'             : "| grep -i notredame |wc -l",
+    'phyml'               : "--help |grep -i Guindon|wc -l",
+    'raxml-pthreads'      : "-help |grep -i stamatakis|wc -l",
+    'raxml'               : "-help |grep -i stamatakis|wc -l",
+    #'raxml-pthreads-sse3' : "-help |grep -i stamatakis|wc -l",
+    #'raxml-sse3'          : "-help |grep -i stamatakis|wc -l",
+    #'raxml-pthreads-avx'  : "-help |grep -i stamatakis|wc -l",
+    #'raxml-avx'           : "-help |grep -i stamatakis|wc -l",
+    #'raxml-pthreads-avx2' : "-help |grep -i stamatakis|wc -l",
+    #'raxml-avx2'          : "-help |grep -i stamatakis|wc -l",
+    #'jmodeltest'          : "--help | grep -i posada |wc -l",
+    'dialigntx'           : "| grep alignment |wc -l",
+    'fasttree'            : "| grep -i 'FastTree ver'|wc -l",
+    'statal'              : "-h | grep -i capella |wc -l ",
+    'pmodeltest'          : "--version 2>&1|grep 'pmodeltest.py v'",
+    'prank'              : "|grep 'prank v'", 
+    'probcons'           : " 2>&1 |grep -i version",
+    'kalign'             : " 2>&1 |grep -i version",
+    'codeml'             : " /dev/null 2>&1 |grep -i version",
+    'slr'                : " 2>&1 |grep -i version",   
+    }
+
+app2version = {
+    'muscle'              : "-version|grep MUSCLE",
+    'mafft'               : "--noflagavailable 2>&1 |grep MAFFT",
+    'clustalo'            : "--version",
+    'trimal'              : "--version|grep -i trimal",
+    'readal'              : "--version| grep -i readal",
+    'tcoffee'             : "-version|grep -i version",
+    'phyml'               : "--version | grep -i version",
+    'raxml-pthreads'      : "-version| grep -i version",
+    'raxml'               : "-version| grep -i version",
+    #'raxml-pthreads-sse3' : "-version| grep -i version",
+    #'raxml-sse3'          : "-version| grep -i version",
+    #'raxml-pthreads-avx'  : "-version| grep -i version",
+    #'raxml-avx'           : "-version| grep -i version",
+    #'raxml-pthreads-avx2' : "-version| grep -i version",
+    #'raxml-avx2'          : "-version| grep -i version",
+    'dialigntx'           : "/bin/sh |grep -i version",
+    'fasttree'            : "2>&1 | grep -i version",
+    'statal'              : "--version| grep -i statal",
+    'pmodeltest'          : "--version 2>&1|grep 'pmodeltest.py v'",
+    'prank'              : "|grep 'prank v'", 
+    'probcons'           : "2>&1 |grep -i version",
+    'kalign'             : "2>&1 |grep -i version",   
+    'codeml'             : " /dev/null 2>&1 |grep -i version",
+    'slr'                : " 2>&1 |grep -i version",   
+}
+
+
+def get_call(appname, apps_path, exec_path, cores):
+    try:
+        cmd = builtin_apps[appname]
+    except KeyError:
+        return None
+    
+    bin_path = os.path.join(apps_path, "bin")
+    tmp_path = os.path.join(exec_path, "tmp")
+    #apps_base = apps_path.rstrip("/x86-64").rstrip("/x86-32")
+    cmd = re.sub("%BIN%", bin_path, cmd)
+    cmd = re.sub("%BASE%", os.path.join(apps_path, "src"), cmd)
+    cmd = re.sub("%TMP%", tmp_path, cmd)
+    cmd = re.sub("%CORES%", cores, cmd)
+    #cmd = "export NPR_APP_PATH=%s; %s" %(apps_path, cmd)
+    return cmd
+
+def test_apps(apps):
+    errors = 0
+    for name, cmd in sorted(apps.items()):
+        if name == "dialigntx" and sys.platform == "darwin":
+            print(colorify('Dialign-tx not supported in OS X', "orange"), file=sys.stderr)
+            continue
+        if app2version.get(name):
+            print(" %14s:" %name, end=' ')
+            test_cmd = cmd + " " + app2version.get(name, "")
+
+            process = subprocess.Popen(test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            out, err = process.communicate()
+            out = bytes.decode(out)
+            #print (process.returncode)
+            #print (test_cmd)
+            if out:
+                print("%s - %s" %(colorify("OK", "green"), str(out).strip()))
+            else:
+                print(colorify("ERROR", "red"))
+                errors += 1
+                #print("** ", test_cmd)
+                #log.debug(test_cmd)
+                #log.debug(subprocess.check_output(test_cmd.rstrip("wc -l")), shell=True)
+    if errors:
+        print(colorify('\nWARNING: %d external tools seem to be missing or unfunctional' %errors, "yellow"), file=sys.stderr)
+        print(colorify('Install using conda (recomended):', "lgreen"), file=sys.stderr)
+        print(colorify(' conda install -c etetoolkit ete3_external_tools', "white"), file=sys.stderr)
+        print(colorify('or manually compile by running:', "lgreen"), file=sys.stderr)
+        print(colorify(' ete3 upgrade-external-tools', "white"), file=sys.stderr)
+        print()
diff --git a/ete3/tools/phylobuild_lib/configcheck.py b/ete3/tools/phylobuild_lib/configcheck.py
new file mode 100644
index 0000000..5983cc9
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/configcheck.py
@@ -0,0 +1,472 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+from ...utils import print_table
+from .configobj import ConfigObj
+from .errors import ConfigError
+from .utils import colorify
+from .apps import APP2CLASS, OPTION2APPTYPE, APPTYPES
+
+import six
+from six.moves import map
+
+def build_supermatrix_workflow(wname):
+    try:
+        cog_selector, alg_concatenator, treebuilder = map(lambda x: "@%s" %x, wname.split("-"))
+    except ValueError:
+        raise ConfigError("Invalid supermatrix workflow: %s" %wname)
+    
+    workflow = {wname: {
+        "_app": "supermatrix",
+        "_cog_selector": cog_selector,
+        "_alg_concatenator": alg_concatenator, 
+        "_aa_tree_builder": treebuilder,
+        "_nt_tree_builder": treebuilder, 
+        "_appset":"@builtin_apps"}
+    }
+    return workflow
+
+def build_genetree_workflow(wname):
+    try:
+        aligner, trimmer, modeltester, treebuilder = map(lambda x: "none" if x.lower() == "none" else "@%s"%x,
+                                                         wname.split("-"))
+    except ValueError:
+        raise ConfigError("Invalid genetree workflow: %s" %wname)
+    
+    workflow = {wname: {
+        "_app": "genetree",
+        "_aa_aligner": aligner,
+        "_aa_alg_cleaner": trimmer, 
+        "_aa_model_tester": modeltester,
+        "_aa_tree_builder": treebuilder,
+        "_nt_aligner": aligner,
+        "_nt_alg_cleaner": trimmer,
+        "_nt_model_tester": modeltester,
+        "_nt_tree_builder": treebuilder, 
+        "_appset":"@builtin_apps"}
+    }
+    return workflow
+
+def list_workflows(config, target_type=None):
+
+    if not target_type or target_type == 'supermatrix':
+        print()
+        avail_meta = [(k, config["workflow_desc"].get(k, ""), len(v)) for k,v in six.iteritems(config.get('supermatrix_meta_workflow', {}))]
+        print_table(avail_meta, fix_col_width=[45, 60, 10], header=["Worflow name", "Description", "threads"], title="Supermatrix Workflows", row_line=True)
+        
+    if not target_type or target_type == 'genetree':        
+        print()
+        avail_meta = [(k, config["workflow_desc"].get(k, ""), len(v)) for k,v in six.iteritems(config.get('genetree_meta_workflow', {}))]
+        print_table(avail_meta, fix_col_width=[45, 60, 10], header=["Worflow name", "Description", "threads"], title="GeneTree Workflows", row_line=True)
+
+
+def list_apps(config, target_apps = None):
+    for appname, validapps in APPTYPES.items():
+        if target_apps:
+            if appname not in target_apps and target_apps & validapps:
+                validapps = target_apps & validapps
+            elif appname in target_apps:
+                pass
+            else:
+                continue
+                        
+        avail_blocks = [[blockname, block["_app"], block.get("_desc", "")] for blockname, block in config.items() if block.get("_app") in validapps]
+        print_table(avail_blocks, header=["name", "app type", "desc."], max_col_width=70, title=appname, row_line=True)
+        print()
+
+def block_detail(block_name, config, color=True):
+    blocks_to_show = {}
+    iterable_types = set([set, list, tuple, frozenset])
+    if block_name not in config:
+        try:
+            next_block = [x.lstrip('@') for x in config.get('genetree_meta_workflow', {})[block_name]]
+            metaworkflow = True
+        except Exception as e:
+            print(e)
+            raise ValueError('block name not found [%s]' %block_name)
+    else:
+        metaworkflow = False
+        next_block = [block_name]
+
+    pos = 0
+    while next_block:
+        block = next_block.pop()
+        blocks_to_show[block] = pos
+        for k1, v1 in six.iteritems(config[block]):
+            if type(v1) in iterable_types:
+                for v2 in v1:
+                    if isinstance(v2, str) and v2.startswith('@'):
+                        next_block.append(v2[1:])
+            elif isinstance(v1, str) and v1.startswith('@'):
+                next_block.append(v1[1:])
+        pos += 1
+
+    if metaworkflow and color:
+        print(colorify('[genetree_meta_workflow]', 'yellow'))
+        print("%s = %s" %(block_name, ', '.join(config["genetree_meta_workflow"][block_name])))
+        print()
+    elif metaworkflow:
+        print('[genetree_meta_workflow]')
+        print("%s = %s" %(block_name, ', '.join(config["genetree_meta_workflow"][block_name])))
+        print()
+
+    for b, pos in sorted(list(blocks_to_show.items()), key=lambda x: x[1]):
+        if b == "builtin_apps":
+            continue
+        if color:
+            print(colorify('[%s]' %b, 'green'))
+        else:
+            print('[%s]' %b)
+
+        for k,v in six.iteritems(config[b]):
+            if type(v) in iterable_types:
+                v = ', '.join(map(str, v))+','
+
+            if color:
+                if k == '_app':
+                    print(colorify('% 35s = %s' %(k, v), "lblue"))
+                else:
+                    print('%s = %s' %(colorify("% 35s" %k, "orange"), v))
+            else:
+                print('% 40s = %s' %(k, v))
+        print()
+
+def parse_block(blockname, conf):
+    blocktype = conf[blockname].get('_app', 'unknown')
+    for attr, v in list(conf[blockname].items()):
+        conf[blockname][attr] = check_type(blocktype, attr, v)
+        if isinstance(conf[blockname][attr], list):
+            for i in conf[blockname][attr]:
+                check_block_link(conf, blockname, i, attr)
+        else:
+            check_block_link(conf, blockname, conf[blockname][attr], attr)
+            
+    # Check for missing attributes     
+    for tag, tester in six.iteritems(CHECKERS):
+        if tag[0] == blocktype and (tester[2] and tag[1] not in conf[blockname]):
+            raise ConfigError('[%s] attribute expected in block [%s]' %(tag[1], blockname))
+            
+def check_config(fname):
+    conf = ConfigObj(fname, list_values=True)
+
+    # expand meta_workflows
+    for meta_name, meta_wf in conf["genetree_meta_workflow"].items():
+        for wkname in meta_wf:        
+            conf.update(build_genetree_workflow(wkname.lstrip("@")))
+    for meta_name, meta_wf in conf["supermatrix_meta_workflow"].items():
+        for wkname in meta_wf:        
+            conf.update(build_supermatrix_workflow(wkname.lstrip("@")))
+            
+    # expand inherits options 
+    for k, v in list(conf.items()):
+        if '_inherits' in v:
+            base = v['_inherits']
+            try:
+                new_dict = dict(conf[base])
+            except KeyError:
+                raise ConfigError('[%s] config block is referred in [%s] but not present in config file' %(base, k))
+            new_dict.update(v)
+            conf[k] = new_dict
+
+    # check blocks
+    for blockname in list(conf.keys()):
+        parse_block(blockname, conf)
+
+    # Check that the number of columns in main workflow definition is the same in all attributes
+    for flow_name in six.iterkeys(conf):
+        if conf[flow_name].get("_app", "") != "main":
+            continue
+        npr_config = [len(v) for k, v in six.iteritems(conf[flow_name])
+                      if type(v) == list and k != "target_levels"]
+        if len(set(npr_config)) != 1:
+            raise ConfigError("List values in [%s] should all have the same length" %flow_name)
+    return conf
+
+def check_type(blocktype, attr, v):
+    tag = (blocktype, attr)
+    if tag in CHECKERS:
+        tester, kargs, required = CHECKERS[tag]
+        return tester(v, **kargs)
+    else:
+        return v
+
+def check_block_link(conf, parent, v, attr_name):
+    if isinstance(v, str) and v.startswith('@'):
+        if v[1:] not in conf:
+            raise ConfigError('[%s] config block referred in [%s] but not found in config' %(v, parent))
+        if attr_name in OPTION2APPTYPE and conf[v[1:]]["_app"] not in OPTION2APPTYPE[attr_name]:
+            raise ConfigError('[%s] is not valid [%s] application block' %(v, attr_name))
+
+def is_file(value):
+    if os.path.isfile(value):
+        return value
+    else:
+        raise ConfigError("Not valid file")
+
+def is_dir(value):
+    if os.path.isdir(value):
+        return value
+    else:
+        raise ConfigError("Not valid file")
+
+def check_number(value, cast, minv=0, maxv=None):
+    try:
+        typed_value = cast(value)
+    except ValueError:
+        raise ConfigError("Expected [%s] number. Found [%s]" %(cast, value))
+    else:
+        if (minv is not None and typed_value < cast(minv)) or \
+           (maxv is not None and typed_value > cast(maxv)):
+            _minv = minv if minv is not None else "any"
+            _maxv = maxv if maxv is not None else "any"
+            raise ConfigError("[%s] not in the range (%s,%s)" %
+                              (value, _minv, _maxv))
+    return typed_value
+
+def is_set(value):
+    if not isinstance(value, list):
+        raise ConfigError("Expected a list of values. Found [%s]" %value)
+    return set(value)
+
+def is_appset_entry(value):
+    if not isinstance(value, list) or len(value) != 2:
+        raise ConfigError("unexpected application format [%s]. Expected [appname, maxcpus] format" %value)
+    try:
+        cores = int(value[2])
+    except ValueError:
+        raise ConfigError("unexpected application format [%s]. Expected [appname, maxcpus] format (maxcpus as integer)" %value)
+
+    return [value[0], cores]
+
+def is_float_list(value, minv=0, maxv=None):
+    is_list(value)
+    typed_value = []
+    for v in value:
+        typed_value.append(check_number(v, float, minv, maxv))
+    return typed_value
+
+def is_integer_list(value, minv=0, maxv=None):
+    is_list(value)
+    typed_value = []
+    for v in value:
+        typed_value.append(check_number(v, int, minv, maxv))
+    return typed_value
+
+def is_float(value, minv=None, maxv=None):
+    return check_number(value, float, minv, maxv)
+
+def is_integer(value, minv=None, maxv=None):
+    return check_number(value, int, minv, maxv)
+
+
+def is_list(value):
+    if not isinstance(value, list):
+        raise ConfigError("[%s] is not a list" %value)
+    return value
+
+def is_app_link(value, allow_none=True):
+    if allow_none and value == 'none':
+        return value
+    elif value.startswith('@'):
+        return value
+    else:
+        raise ConfigError('[%s] is not a valid block link' %value)
+
+def is_app_list(value, allow_none=True):
+    is_list(value)
+    for v in value:
+        is_app_link(v, allow_none=allow_none)
+    return value
+
+
+def is_boolean(value):
+    if str(value).lower() in set(["1", "true", "yes"]):
+        return True
+    elif str(value).lower() in set(["0", "false", "no"]):
+        return False
+    else:
+        raise ConfigError('[%s] is not a boolean value' %(value))
+
+def is_integer_list(value, maxv=None, minv=None):
+    is_list(value)
+    return [is_integer(v, maxv=maxv, minv=minv) for v in value]
+
+def is_correlative_integer_list(value, minv=None, maxv=None):
+    is_list(value)
+    typed_value = []
+    last_value = 0
+    for v in value:
+        cv = is_integer(v, minv=None, maxv=None)
+        typed_value.append(cv)
+        if cv <= last_value:
+            raise ConfigError("[%s] Numeric values are not correlative" %value)
+        last_value = cv
+    return typed_value
+
+def is_text(value):
+    if isinstance(value, str):
+        return value
+    else:
+        raise ConfigError("[%s] is not a valid text string" %value)
+
+def is_percent(value):
+    try:
+        is_float(value.rstrip('%'))
+    except ConfigError:
+        raise ConfigError('[%s] should a percentage value (i.e. 0.4%%)' %value)
+    return value
+
+def is_integer_or_percent(value):
+    try:
+        return is_integer(value)
+    except ConfigError:
+        try:
+            is_percent(value)
+        except ConfigError:
+            raise ConfigError('[%s] should be an integer or a percentage (i.e. 15 or 0.4%%)' %value)
+    return value
+
+def is_choice(value, choices):
+    if value in choices:
+        return value
+    else:
+        raise ConfigError('[%s] should be one of %s' %(value, choices))
+
+def is_raxml_bootstrap(value):
+    try:
+        return is_integer(value)
+    except ValueError:
+        if value == 'alrt' or value == 'alrt_phyml':
+            return value
+        else:
+            raise ConfigError('[%s] bootstrap value should an integer, "alrt" or "phyml_alrt"' %(value))
+
+
+
+CHECKERS = {
+    # (app_name, attr_name): (checker_fn, args, required_attr)
+    ("main", "_npr"): (is_app_list, {}, True),
+    ("main", "_workflow"): (is_app_list, {"allow_none":False}, True),
+    ("main", "_appset"): (is_app_link, {"allow_none":False}, True),
+
+    ("npr", "_max_iters"): (is_integer, {"minv":1}, True),
+    ("npr", "_switch_aa_similarity"): (is_float, {"minv":0, "maxv":1}, True),
+    ("npr", "_max_seq_similarity"): (is_float, {"minv":0, "maxv":1}, True),
+    ("npr", "_min_branch_support"): (is_float, {"minv":0, "maxv":1}, True),
+    ("npr", "_min_npr_size"): (is_integer, {"minv":3}, True),
+    ("npr", "_tree_splitter"): (is_app_link, {}, True),
+    ("npr", "_target_levels"): (is_list, {}, False),
+
+    ("genetree", "_aa_aligner"): (is_app_link, {}, True),
+    ("genetree", "_nt_aligner"): (is_app_link, {}, True),
+    ("genetree", "_aa_alg_cleaner"): (is_app_link, {}, True),
+    ("genetree", "_nt_alg_cleaner"): (is_app_link, {}, True),
+    ("genetree", "_aa_model_tester"): (is_app_link, {}, True),
+    ("genetree", "_nt_model_tester"): (is_app_link, {}, True),
+    ("genetree", "_aa_tree_builder"): (is_app_link, {}, True),
+    ("genetree", "_nt_tree_builder"): (is_app_link, {}, True),
+    ("genetree", "_appset"): (is_app_link, {"allow_none":False}, True),
+
+    ("supermatrix", "_cog_selector"): (is_app_link, {}, True),
+    ("supermatrix", "_alg_concatenator"): (is_app_link, {}, True),
+    ("supermatrix", "_aa_tree_builder"): (is_app_link, {}, True),
+    ("supermatrix", "_nt_tree_builder"): (is_app_link, {}, True),
+    ("genetree", "_appset"): (is_app_link, {"allow_none":False}, True),
+
+    ("concatalg", "_default_aa_model"): (is_text, {}, True),
+    ("concatalg", "_default_nt_model"): (is_text, {}, True),
+
+    #("concatalg", "_workflow"): (is_app_link, {"allow_none":False}, True),
+
+    ("cogselector", "_species_missing_factor"): (is_float, {"minv":0, "maxv":1}, True),
+    ("cogselector", "_max_cogs"): (is_integer, {"minv":1}, True),
+
+    ("treesplitter", "_max_outgroup_size"): (is_integer_or_percent, {}, True),
+    ("treesplitter", "_min_outgroup_support"): (is_float, {"minv":0, "maxv":1}, True),
+    ("treesplitter", "_outgroup_topology_dist"): (is_boolean, {}, True),
+    ("treesplitter", "_first_split"): (is_text, {}, True),
+
+    ("metaaligner", "_aligners"): (is_app_list, {}, True),
+    ("metaaligner", "_alg_trimming"): (is_boolean, {}, True),
+
+    ("prottest", "_lk_mode"): (is_choice, {"choices":set(['phyml', 'raxml'])}, True),
+    ("prottest", "_models"): (is_list, {}, True),
+
+
+    ("pmodeltest", "_aa_models"): (is_text, {}, True),
+    ("pmodeltest", "_nt_models"): (is_text, {}, True),
+        
+    ("raxml", "_aa_model"): (is_text, {}, True),
+    ("raxml", "_method"): (is_choice, {"choices":set(['GAMMA', 'CAT'])}, True),
+    ("raxml", "_bootstrap"): (is_raxml_bootstrap, {}, True),
+    ("raxml", "_model_suffix"): (is_text, {}, True),
+
+    ("raxml-sse", "_aa_model"): (is_text, {}, True),
+    ("raxml-sse", "_method"): (is_choice, {"choices":set(['GAMMA', 'CAT'])}, True),
+    ("raxml-sse", "_alrt_calculation"): (is_choice, {"choices":set(['phyml', 'raxml'])}, True),
+
+    ("raxml-avx", "_aa_model"): (is_text, {}, True),
+    ("raxml-avx", "_method"): (is_choice, {"choices":set(['GAMMA', 'CAT'])}, True),
+    ("raxml-avx", "_alrt_calculation"): (is_choice, {"choices":set(['phyml', 'raxml'])}, True),
+
+    ("appset", "muscle"): (is_appset_entry, {}, True),
+    ("appset", "mafft"): (is_appset_entry, {}, True),
+    ("appset", "clustalo"): (is_appset_entry, {}, True),
+    ("appset", "trimal"): (is_appset_entry, {}, True),
+    ("appset", "readal"): (is_appset_entry, {}, True),
+    ("appset", "tcoffee"): (is_appset_entry, {}, True),
+    ("appset", "phyml"): (is_appset_entry, {}, True),
+    ("appset", "raxml-pthreads"): (is_appset_entry, {}, True),
+    ("appset", "raxml"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-pthreads-sse3"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-sse3"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-pthreads-avx"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-avx"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-pthreads-avx2"): (is_appset_entry, {}, True),
+    # ("appset", "raxml-avx2"): (is_appset_entry, {}, True),
+    ("appset", "dialigntx"): (is_appset_entry, {}, True),
+    ("appset", "fasttree"): (is_appset_entry, {}, True),
+    ("appset", "statal"): (is_appset_entry, {}, True),
+
+
+
+    }
diff --git a/ete3/tools/phylobuild_lib/configobj.py b/ete3/tools/phylobuild_lib/configobj.py
new file mode 100644
index 0000000..ab221fb
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/configobj.py
@@ -0,0 +1,2524 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# configobj.py
+# A config file reader/writer that supports nested sections in config files.
+# Copyright (C) 2005-2010 Michael Foord, Nicola Larosa
+# E-mail: fuzzyman AT voidspace DOT org DOT uk
+#         nico AT tekNico DOT net
+
+# ConfigObj 4
+# http://www.voidspace.org.uk/python/configobj.html
+
+# Released subject to the BSD License
+# Please see http://www.voidspace.org.uk/python/license.shtml
+
+# Scripts maintained at http://www.voidspace.org.uk/python/index.shtml
+# For information about bugfixes, updates and support, please join the
+# ConfigObj mailing list:
+# http://lists.sourceforge.net/lists/listinfo/configobj-develop
+# Comments, suggestions and bug reports welcome.
+
+from __future__ import generators
+from __future__ import absolute_import
+
+import os
+import re
+import sys
+
+from codecs import BOM_UTF8, BOM_UTF16, BOM_UTF16_BE, BOM_UTF16_LE
+import six
+from six.moves import map
+from six.moves import range
+from six.moves import zip
+
+
+# imported lazily to avoid startup performance hit if it isn't used
+compiler = None
+
+# A dictionary mapping BOM to
+# the encoding to decode with, and what to set the
+# encoding attribute to.
+BOMS = {
+    BOM_UTF8: ('utf_8', None),
+    BOM_UTF16_BE: ('utf16_be', 'utf_16'),
+    BOM_UTF16_LE: ('utf16_le', 'utf_16'),
+    BOM_UTF16: ('utf_16', 'utf_16'),
+    }
+# All legal variants of the BOM codecs.
+# TODO: the list of aliases is not meant to be exhaustive, is there a
+#   better way ?
+BOM_LIST = {
+    'utf_16': 'utf_16',
+    'u16': 'utf_16',
+    'utf16': 'utf_16',
+    'utf-16': 'utf_16',
+    'utf16_be': 'utf16_be',
+    'utf_16_be': 'utf16_be',
+    'utf-16be': 'utf16_be',
+    'utf16_le': 'utf16_le',
+    'utf_16_le': 'utf16_le',
+    'utf-16le': 'utf16_le',
+    'utf_8': 'utf_8',
+    'u8': 'utf_8',
+    'utf': 'utf_8',
+    'utf8': 'utf_8',
+    'utf-8': 'utf_8',
+    }
+
+# Map of encodings to the BOM to write.
+BOM_SET = {
+    'utf_8': BOM_UTF8,
+    'utf_16': BOM_UTF16,
+    'utf16_be': BOM_UTF16_BE,
+    'utf16_le': BOM_UTF16_LE,
+    None: BOM_UTF8
+    }
+
+
+def match_utf8(encoding):
+    return BOM_LIST.get(encoding.lower()) == 'utf_8'
+
+
+# Quote strings used for writing values
+squot = "'%s'"
+dquot = '"%s"'
+noquot = "%s"
+wspace_plus = ' \r\n\v\t\'"'
+tsquot = '"""%s"""'
+tdquot = "'''%s'''"
+
+# Sentinel for use in getattr calls to replace hasattr
+MISSING = object()
+
+__version__ = '4.7.2'
+
+try:
+    any
+except NameError:
+    def any(iterable):
+        for entry in iterable:
+            if entry:
+                return True
+        return False
+
+
+__all__ = (
+    '__version__',
+    'DEFAULT_INDENT_TYPE',
+    'DEFAULT_INTERPOLATION',
+    'ConfigObjError',
+    'NestingError',
+    'ParseError',
+    'DuplicateError',
+    'ConfigspecError',
+    'ConfigObj',
+    'SimpleVal',
+    'InterpolationError',
+    'InterpolationLoopError',
+    'MissingInterpolationOption',
+    'RepeatSectionError',
+    'ReloadError',
+    'UnreprError',
+    'UnknownType',
+    'flatten_errors',
+    'get_extra_values'
+)
+
+DEFAULT_INTERPOLATION = 'configparser'
+DEFAULT_INDENT_TYPE = '    '
+MAX_INTERPOL_DEPTH = 10
+
+OPTION_DEFAULTS = {
+    'interpolation': True,
+    'raise_errors': False,
+    'list_values': True,
+    'create_empty': False,
+    'file_error': False,
+    'configspec': None,
+    'stringify': True,
+    # option may be set to one of ('', ' ', '\t')
+    'indent_type': None,
+    'encoding': None,
+    'default_encoding': None,
+    'unrepr': False,
+    'write_empty_values': False,
+}
+
+
+
+def getObj(s):
+    global compiler
+    if compiler is None:
+        import compiler
+    s = "a=" + s
+    p = compiler.parse(s)
+    return p.getChildren()[1].getChildren()[0].getChildren()[1]
+
+
+class UnknownType(Exception):
+    pass
+
+
+class Builder(object):
+
+    def build(self, o):
+        m = getattr(self, 'build_' + o.__class__.__name__, None)
+        if m is None:
+            raise UnknownType(o.__class__.__name__)
+        return m(o)
+
+    def build_List(self, o):
+        return list(map(self.build, o.getChildren()))
+
+    def build_Const(self, o):
+        return o.value
+
+    def build_Dict(self, o):
+        d = {}
+        i = iter(map(self.build, o.getChildren()))
+        for el in i:
+            d[el] = next(i)
+        return d
+
+    def build_Tuple(self, o):
+        return tuple(self.build_List(o))
+
+    def build_Name(self, o):
+        if o.name == 'None':
+            return None
+        if o.name == 'True':
+            return True
+        if o.name == 'False':
+            return False
+
+        # An undefined Name
+        raise UnknownType('Undefined Name')
+
+    def build_Add(self, o):
+        real, imag = list(map(self.build_Const, o.getChildren()))
+        try:
+            real = float(real)
+        except TypeError:
+            raise UnknownType('Add')
+        if not isinstance(imag, complex) or imag.real != 0.0:
+            raise UnknownType('Add')
+        return real+imag
+
+    def build_Getattr(self, o):
+        parent = self.build(o.expr)
+        return getattr(parent, o.attrname)
+
+    def build_UnarySub(self, o):
+        return -self.build_Const(o.getChildren()[0])
+
+    def build_UnaryAdd(self, o):
+        return self.build_Const(o.getChildren()[0])
+
+
+_builder = Builder()
+
+
+def unrepr(s):
+    if not s:
+        return s
+    return _builder.build(getObj(s))
+
+
+
+class ConfigObjError(SyntaxError):
+    """
+    This is the base class for all errors that ConfigObj raises.
+    It is a subclass of SyntaxError.
+    """
+    def __init__(self, message='', line_number=None, line=''):
+        self.line = line
+        self.line_number = line_number
+        SyntaxError.__init__(self, message)
+
+
+class NestingError(ConfigObjError):
+    """
+    This error indicates a level of nesting that doesn't match.
+    """
+
+
+class ParseError(ConfigObjError):
+    """
+    This error indicates that a line is badly written.
+    It is neither a valid ``key = value`` line,
+    nor a valid section marker line.
+    """
+
+
+class ReloadError(IOError):
+    """
+    A 'reload' operation failed.
+    This exception is a subclass of ``IOError``.
+    """
+    def __init__(self):
+        IOError.__init__(self, 'reload failed, filename is not set.')
+
+
+class DuplicateError(ConfigObjError):
+    """
+    The keyword or section specified already exists.
+    """
+
+
+class ConfigspecError(ConfigObjError):
+    """
+    An error occured whilst parsing a configspec.
+    """
+
+
+class InterpolationError(ConfigObjError):
+    """Base class for the two interpolation errors."""
+
+
+class InterpolationLoopError(InterpolationError):
+    """Maximum interpolation depth exceeded in string interpolation."""
+
+    def __init__(self, option):
+        InterpolationError.__init__(
+            self,
+            'interpolation loop detected in value "%s".' % option)
+
+
+class RepeatSectionError(ConfigObjError):
+    """
+    This error indicates additional sections in a section with a
+    ``__many__`` (repeated) section.
+    """
+
+
+class MissingInterpolationOption(InterpolationError):
+    """A value specified for interpolation was missing."""
+    def __init__(self, option):
+        msg = 'missing option "%s" in interpolation.' % option
+        InterpolationError.__init__(self, msg)
+
+
+class UnreprError(ConfigObjError):
+    """An error parsing in unrepr mode."""
+
+
+
+class InterpolationEngine(object):
+    """
+    A helper class to help perform string interpolation.
+
+    This class is an abstract base class; its descendants perform
+    the actual work.
+    """
+
+    # compiled regexp to use in self.interpolate()
+    _KEYCRE = re.compile(r"%\(([^)]*)\)s")
+    _cookie = '%'
+
+    def __init__(self, section):
+        # the Section instance that "owns" this engine
+        self.section = section
+
+
+    def interpolate(self, key, value):
+        # short-cut
+        if not self._cookie in value:
+            return value
+
+        def recursive_interpolate(key, value, section, backtrail):
+            """The function that does the actual work.
+
+            ``value``: the string we're trying to interpolate.
+            ``section``: the section in which that string was found
+            ``backtrail``: a dict to keep track of where we've been,
+            to detect and prevent infinite recursion loops
+
+            This is similar to a depth-first-search algorithm.
+            """
+            # Have we been here already?
+            if (key, section.name) in backtrail:
+                # Yes - infinite loop detected
+                raise InterpolationLoopError(key)
+            # Place a marker on our backtrail so we won't come back here again
+            backtrail[(key, section.name)] = 1
+
+            # Now start the actual work
+            match = self._KEYCRE.search(value)
+            while match:
+                # The actual parsing of the match is implementation-dependent,
+                # so delegate to our helper function
+                k, v, s = self._parse_match(match)
+                if k is None:
+                    # That's the signal that no further interpolation is needed
+                    replacement = v
+                else:
+                    # Further interpolation may be needed to obtain final value
+                    replacement = recursive_interpolate(k, v, s, backtrail)
+                # Replace the matched string with its final value
+                start, end = match.span()
+                value = ''.join((value[:start], replacement, value[end:]))
+                new_search_start = start + len(replacement)
+                # Pick up the next interpolation key, if any, for next time
+                # through the while loop
+                match = self._KEYCRE.search(value, new_search_start)
+
+            # Now safe to come back here again; remove marker from backtrail
+            del backtrail[(key, section.name)]
+
+            return value
+
+        # Back in interpolate(), all we have to do is kick off the recursive
+        # function with appropriate starting values
+        value = recursive_interpolate(key, value, self.section, {})
+        return value
+
+
+    def _fetch(self, key):
+        """Helper function to fetch values from owning section.
+
+        Returns a 2-tuple: the value, and the section where it was found.
+        """
+        # switch off interpolation before we try and fetch anything !
+        save_interp = self.section.main.interpolation
+        self.section.main.interpolation = False
+
+        # Start at section that "owns" this InterpolationEngine
+        current_section = self.section
+        while True:
+            # try the current section first
+            val = current_section.get(key)
+            if val is not None and not isinstance(val, Section):
+                break
+            # try "DEFAULT" next
+            val = current_section.get('DEFAULT', {}).get(key)
+            if val is not None and not isinstance(val, Section):
+                break
+            # move up to parent and try again
+            # top-level's parent is itself
+            if current_section.parent is current_section:
+                # reached top level, time to give up
+                break
+            current_section = current_section.parent
+
+        # restore interpolation to previous value before returning
+        self.section.main.interpolation = save_interp
+        if val is None:
+            raise MissingInterpolationOption(key)
+        return val, current_section
+
+
+    def _parse_match(self, match):
+        """Implementation-dependent helper function.
+
+        Will be passed a match object corresponding to the interpolation
+        key we just found (e.g., "%(foo)s" or "$foo"). Should look up that
+        key in the appropriate config file section (using the ``_fetch()``
+        helper function) and return a 3-tuple: (key, value, section)
+
+        ``key`` is the name of the key we're looking for
+        ``value`` is the value found for that key
+        ``section`` is a reference to the section where it was found
+
+        ``key`` and ``section`` should be None if no further
+        interpolation should be performed on the resulting value
+        (e.g., if we interpolated "$$" and returned "$").
+        """
+        raise NotImplementedError()
+
+
+
+class ConfigParserInterpolation(InterpolationEngine):
+    """Behaves like ConfigParser."""
+    _cookie = '%'
+    _KEYCRE = re.compile(r"%\(([^)]*)\)s")
+
+    def _parse_match(self, match):
+        key = match.group(1)
+        value, section = self._fetch(key)
+        return key, value, section
+
+
+
+class TemplateInterpolation(InterpolationEngine):
+    """Behaves like string.Template."""
+    _cookie = '$'
+    _delimiter = '$'
+    _KEYCRE = re.compile(r"""
+        \$(?:
+          (?P<escaped>\$)              |   # Two $ signs
+          (?P<named>[_a-z][_a-z0-9]*)  |   # $name format
+          {(?P<braced>[^}]*)}              # ${name} format
+        )
+        """, re.IGNORECASE | re.VERBOSE)
+
+    def _parse_match(self, match):
+        # Valid name (in or out of braces): fetch value from section
+        key = match.group('named') or match.group('braced')
+        if key is not None:
+            value, section = self._fetch(key)
+            return key, value, section
+        # Escaped delimiter (e.g., $$): return single delimiter
+        if match.group('escaped') is not None:
+            # Return None for key and section to indicate it's time to stop
+            return None, self._delimiter, None
+        # Anything else: ignore completely, just return it unchanged
+        return None, match.group(), None
+
+
+interpolation_engines = {
+    'configparser': ConfigParserInterpolation,
+    'template': TemplateInterpolation,
+}
+
+
+def __newobj__(cls, *args):
+    # Hack for pickle
+    return cls.__new__(cls, *args)
+
+class Section(dict):
+    """
+    A dictionary-like object that represents a section in a config file.
+
+    It does string interpolation if the 'interpolation' attribute
+    of the 'main' object is set to True.
+
+    Interpolation is tried first from this object, then from the 'DEFAULT'
+    section of this object, next from the parent and its 'DEFAULT' section,
+    and so on until the main object is reached.
+
+    A Section will behave like an ordered dictionary - following the
+    order of the ``scalars`` and ``sections`` attributes.
+    You can use this to change the order of members.
+
+    Iteration follows the order: scalars, then sections.
+    """
+
+
+    def __setstate__(self, state):
+        dict.update(self, state[0])
+        self.__dict__.update(state[1])
+
+    def __reduce__(self):
+        state = (dict(self), self.__dict__)
+        return (__newobj__, (self.__class__,), state)
+
+
+    def __init__(self, parent, depth, main, indict=None, name=None):
+        """
+        * parent is the section above
+        * depth is the depth level of this section
+        * main is the main ConfigObj
+        * indict is a dictionary to initialise the section with
+        """
+        if indict is None:
+            indict = {}
+        dict.__init__(self)
+        # used for nesting level *and* interpolation
+        self.parent = parent
+        # used for the interpolation attribute
+        self.main = main
+        # level of nesting depth of this Section
+        self.depth = depth
+        # purely for information
+        self.name = name
+        #
+        self._initialise()
+        # we do this explicitly so that __setitem__ is used properly
+        # (rather than just passing to ``dict.__init__``)
+        for entry, value in six.iteritems(indict):
+            self[entry] = value
+
+
+    def _initialise(self):
+        # the sequence of scalar values in this Section
+        self.scalars = []
+        # the sequence of sections in this Section
+        self.sections = []
+        # for comments :-)
+        self.comments = {}
+        self.inline_comments = {}
+        # the configspec
+        self.configspec = None
+        # for defaults
+        self.defaults = []
+        self.default_values = {}
+        self.extra_values = []
+        self._created = False
+
+
+    def _interpolate(self, key, value):
+        try:
+            # do we already have an interpolation engine?
+            engine = self._interpolation_engine
+        except AttributeError:
+            # not yet: first time running _interpolate(), so pick the engine
+            name = self.main.interpolation
+            if name == True:  # note that "if name:" would be incorrect here
+                # backwards-compatibility: interpolation=True means use default
+                name = DEFAULT_INTERPOLATION
+            name = name.lower()  # so that "Template", "template", etc. all work
+            class_ = interpolation_engines.get(name, None)
+            if class_ is None:
+                # invalid value for self.main.interpolation
+                self.main.interpolation = False
+                return value
+            else:
+                # save reference to engine so we don't have to do this again
+                engine = self._interpolation_engine = class_(self)
+        # let the engine do the actual work
+        return engine.interpolate(key, value)
+
+
+    def __getitem__(self, key):
+        """Fetch the item and do string interpolation."""
+        val = dict.__getitem__(self, key)
+        if self.main.interpolation:
+            if isinstance(val, six.string_types):
+                return self._interpolate(key, val)
+            if isinstance(val, list):
+                def _check(entry):
+                    if isinstance(entry, six.string_types):
+                        return self._interpolate(key, entry)
+                    return entry
+                new = [_check(entry) for entry in val]
+                if new != val:
+                    return new
+        return val
+
+
+    def __setitem__(self, key, value, unrepr=False):
+        """
+        Correctly set a value.
+
+        Making dictionary values Section instances.
+        (We have to special case 'Section' instances - which are also dicts)
+
+        Keys must be strings.
+        Values need only be strings (or lists of strings) if
+        ``main.stringify`` is set.
+
+        ``unrepr`` must be set when setting a value to a dictionary, without
+        creating a new sub-section.
+        """
+        if not isinstance(key, six.string_types):
+            raise ValueError('The key "%s" is not a string.' % key)
+
+        # add the comment
+        if key not in self.comments:
+            self.comments[key] = []
+            self.inline_comments[key] = ''
+        # remove the entry from defaults
+        if key in self.defaults:
+            self.defaults.remove(key)
+        #
+        if isinstance(value, Section):
+            if key not in self:
+                self.sections.append(key)
+            dict.__setitem__(self, key, value)
+        elif isinstance(value, dict) and not unrepr:
+            # First create the new depth level,
+            # then create the section
+            if key not in self:
+                self.sections.append(key)
+            new_depth = self.depth + 1
+            dict.__setitem__(
+                self,
+                key,
+                Section(
+                    self,
+                    new_depth,
+                    self.main,
+                    indict=value,
+                    name=key))
+        else:
+            if key not in self:
+                self.scalars.append(key)
+            if not self.main.stringify:
+                if isinstance(value, six.string_types):
+                    pass
+                elif isinstance(value, (list, tuple)):
+                    for entry in value:
+                        if not isinstance(entry, six.string_types):
+                            raise TypeError('Value is not a string "%s".' % entry)
+                else:
+                    raise TypeError('Value is not a string "%s".' % value)
+            dict.__setitem__(self, key, value)
+
+
+    def __delitem__(self, key):
+        """Remove items from the sequence when deleting."""
+        dict. __delitem__(self, key)
+        if key in self.scalars:
+            self.scalars.remove(key)
+        else:
+            self.sections.remove(key)
+        del self.comments[key]
+        del self.inline_comments[key]
+
+
+    def get(self, key, default=None):
+        """A version of ``get`` that doesn't bypass string interpolation."""
+        try:
+            return self[key]
+        except KeyError:
+            return default
+
+
+    def update(self, indict):
+        """
+        A version of update that uses our ``__setitem__``.
+        """
+        for entry in indict:
+            self[entry] = indict[entry]
+
+
+    def pop(self, key, default=MISSING):
+        """
+        'D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
+        If key is not found, d is returned if given, otherwise KeyError is raised'
+        """
+        try:
+            val = self[key]
+        except KeyError:
+            if default is MISSING:
+                raise
+            val = default
+        else:
+            del self[key]
+        return val
+
+
+    def popitem(self):
+        """Pops the first (key,val)"""
+        sequence = (self.scalars + self.sections)
+        if not sequence:
+            raise KeyError(": 'popitem(): dictionary is empty'")
+        key = sequence[0]
+        val =  self[key]
+        del self[key]
+        return key, val
+
+
+    def clear(self):
+        """
+        A version of clear that also affects scalars/sections
+        Also clears comments and configspec.
+
+        Leaves other attributes alone :
+            depth/main/parent are not affected
+        """
+        dict.clear(self)
+        self.scalars = []
+        self.sections = []
+        self.comments = {}
+        self.inline_comments = {}
+        self.configspec = None
+        self.defaults = []
+        self.extra_values = []
+
+
+    def setdefault(self, key, default=None):
+        """A version of setdefault that sets sequence if appropriate."""
+        try:
+            return self[key]
+        except KeyError:
+            self[key] = default
+            return self[key]
+
+
+    def items(self):
+        """D.items() -> list of D's (key, value) pairs, as 2-tuples"""
+        return list(zip((self.scalars + self.sections), list(self.values())))
+
+
+    def keys(self):
+        """D.keys() -> list of D's keys"""
+        return (self.scalars + self.sections)
+
+
+    def values(self):
+        """D.values() -> list of D's values"""
+        return [self[key] for key in (self.scalars + self.sections)]
+
+
+    def iteritems(self):
+        """D.iteritems() -> an iterator over the (key, value) items of D"""
+        return iter(list(self.items()))
+
+
+    def iterkeys(self):
+        """D.iterkeys() -> an iterator over the keys of D"""
+        return iter((self.scalars + self.sections))
+
+    __iter__ = iterkeys
+
+
+    def itervalues(self):
+        """D.itervalues() -> an iterator over the values of D"""
+        return iter(list(self.values()))
+
+
+    def __repr__(self):
+        """x.__repr__() <==> repr(x)"""
+        def _getval(key):
+            try:
+                return self[key]
+            except MissingInterpolationOption:
+                return dict.__getitem__(self, key)
+        return '{%s}' % ', '.join([('%s: %s' % (repr(key), repr(_getval(key))))
+            for key in (self.scalars + self.sections)])
+
+    __str__ = __repr__
+    __str__.__doc__ = "x.__str__() <==> str(x)"
+
+
+    # Extra methods - not in a normal dictionary
+
+    def dict(self):
+        """
+        Return a deepcopy of self as a dictionary.
+
+        All members that are ``Section`` instances are recursively turned to
+        ordinary dictionaries - by calling their ``dict`` method.
+
+        >>> n = a.dict()
+        >>> n == a
+        1
+        >>> n is a
+        0
+        """
+        newdict = {}
+        for entry in self:
+            this_entry = self[entry]
+            if isinstance(this_entry, Section):
+                this_entry = this_entry.dict()
+            elif isinstance(this_entry, list):
+                # create a copy rather than a reference
+                this_entry = list(this_entry)
+            elif isinstance(this_entry, tuple):
+                # create a copy rather than a reference
+                this_entry = tuple(this_entry)
+            newdict[entry] = this_entry
+        return newdict
+
+
+    def merge(self, indict):
+        """
+        A recursive update - useful for merging config files.
+
+        >>> a = '''[section1]
+        ...     option1 = True
+        ...     [[subsection]]
+        ...     more_options = False
+        ...     # end of file'''.splitlines()
+        >>> b = '''# File is user.ini
+        ...     [section1]
+        ...     option1 = False
+        ...     # end of file'''.splitlines()
+        >>> c1 = ConfigObj(b)
+        >>> c2 = ConfigObj(a)
+        >>> c2.merge(c1)
+        >>> c2
+        ConfigObj({'section1': {'option1': 'False', 'subsection': {'more_options': 'False'}}})
+        """
+        for key, val in list(indict.items()):
+            if (key in self and isinstance(self[key], dict) and
+                                isinstance(val, dict)):
+                self[key].merge(val)
+            else:
+                self[key] = val
+
+
+    def rename(self, oldkey, newkey):
+        """
+        Change a keyname to another, without changing position in sequence.
+
+        Implemented so that transformations can be made on keys,
+        as well as on values. (used by encode and decode)
+
+        Also renames comments.
+        """
+        if oldkey in self.scalars:
+            the_list = self.scalars
+        elif oldkey in self.sections:
+            the_list = self.sections
+        else:
+            raise KeyError('Key "%s" not found.' % oldkey)
+        pos = the_list.index(oldkey)
+        #
+        val = self[oldkey]
+        dict.__delitem__(self, oldkey)
+        dict.__setitem__(self, newkey, val)
+        the_list.remove(oldkey)
+        the_list.insert(pos, newkey)
+        comm = self.comments[oldkey]
+        inline_comment = self.inline_comments[oldkey]
+        del self.comments[oldkey]
+        del self.inline_comments[oldkey]
+        self.comments[newkey] = comm
+        self.inline_comments[newkey] = inline_comment
+
+
+    def walk(self, function, raise_errors=True,
+            call_on_sections=False, **keywargs):
+        """
+        Walk every member and call a function on the keyword and value.
+
+        Return a dictionary of the return values
+
+        If the function raises an exception, raise the errror
+        unless ``raise_errors=False``, in which case set the return value to
+        ``False``.
+
+        Any unrecognised keyword arguments you pass to walk, will be pased on
+        to the function you pass in.
+
+        Note: if ``call_on_sections`` is ``True`` then - on encountering a
+        subsection, *first* the function is called for the *whole* subsection,
+        and then recurses into it's members. This means your function must be
+        able to handle strings, dictionaries and lists. This allows you
+        to change the key of subsections as well as for ordinary members. The
+        return value when called on the whole subsection has to be discarded.
+
+        See  the encode and decode methods for examples, including functions.
+
+        .. admonition:: caution
+
+            You can use ``walk`` to transform the names of members of a section
+            but you mustn't add or delete members.
+
+        >>> config = '''[XXXXsection]
+        ... XXXXkey = XXXXvalue'''.splitlines()
+        >>> cfg = ConfigObj(config)
+        >>> cfg
+        ConfigObj({'XXXXsection': {'XXXXkey': 'XXXXvalue'}})
+        >>> def transform(section, key):
+        ...     val = section[key]
+        ...     newkey = key.replace('XXXX', 'CLIENT1')
+        ...     section.rename(key, newkey)
+        ...     if isinstance(val, (tuple, list, dict)):
+        ...         pass
+        ...     else:
+        ...         val = val.replace('XXXX', 'CLIENT1')
+        ...         section[newkey] = val
+        >>> cfg.walk(transform, call_on_sections=True)
+        {'CLIENT1section': {'CLIENT1key': None}}
+        >>> cfg
+        ConfigObj({'CLIENT1section': {'CLIENT1key': 'CLIENT1value'}})
+        """
+        out = {}
+        # scalars first
+        for i in range(len(self.scalars)):
+            entry = self.scalars[i]
+            try:
+                val = function(self, entry, **keywargs)
+                # bound again in case name has changed
+                entry = self.scalars[i]
+                out[entry] = val
+            except Exception:
+                if raise_errors:
+                    raise
+                else:
+                    entry = self.scalars[i]
+                    out[entry] = False
+        # then sections
+        for i in range(len(self.sections)):
+            entry = self.sections[i]
+            if call_on_sections:
+                try:
+                    function(self, entry, **keywargs)
+                except Exception:
+                    if raise_errors:
+                        raise
+                    else:
+                        entry = self.sections[i]
+                        out[entry] = False
+                # bound again in case name has changed
+                entry = self.sections[i]
+            # previous result is discarded
+            out[entry] = self[entry].walk(
+                function,
+                raise_errors=raise_errors,
+                call_on_sections=call_on_sections,
+                **keywargs)
+        return out
+
+
+    def as_bool(self, key):
+        """
+        Accepts a key as input. The corresponding value must be a string or
+        the objects (``True`` or 1) or (``False`` or 0). We allow 0 and 1 to
+        retain compatibility with Python 2.2.
+
+        If the string is one of  ``True``, ``On``, ``Yes``, or ``1`` it returns
+        ``True``.
+
+        If the string is one of  ``False``, ``Off``, ``No``, or ``0`` it returns
+        ``False``.
+
+        ``as_bool`` is not case sensitive.
+
+        Any other input will raise a ``ValueError``.
+
+        >>> a = ConfigObj()
+        >>> a['a'] = 'fish'
+        >>> a.as_bool('a')
+        Traceback (most recent call last):
+        ValueError: Value "fish" is neither True nor False
+        >>> a['b'] = 'True'
+        >>> a.as_bool('b')
+        1
+        >>> a['b'] = 'off'
+        >>> a.as_bool('b')
+        0
+        """
+        val = self[key]
+        if val == True:
+            return True
+        elif val == False:
+            return False
+        else:
+            try:
+                if not isinstance(val, six.string_types):
+                    # TODO: Why do we raise a KeyError here?
+                    raise KeyError()
+                else:
+                    return self.main._bools[val.lower()]
+            except KeyError:
+                raise ValueError('Value "%s" is neither True nor False' % val)
+
+
+    def as_int(self, key):
+        """
+        A convenience method which coerces the specified value to an integer.
+
+        If the value is an invalid literal for ``int``, a ``ValueError`` will
+        be raised.
+
+        >>> a = ConfigObj()
+        >>> a['a'] = 'fish'
+        >>> a.as_int('a')
+        Traceback (most recent call last):
+        ValueError: invalid literal for int() with base 10: 'fish'
+        >>> a['b'] = '1'
+        >>> a.as_int('b')
+        1
+        >>> a['b'] = '3.2'
+        >>> a.as_int('b')
+        Traceback (most recent call last):
+        ValueError: invalid literal for int() with base 10: '3.2'
+        """
+        return int(self[key])
+
+
+    def as_float(self, key):
+        """
+        A convenience method which coerces the specified value to a float.
+
+        If the value is an invalid literal for ``float``, a ``ValueError`` will
+        be raised.
+
+        >>> a = ConfigObj()
+        >>> a['a'] = 'fish'
+        >>> a.as_float('a')
+        Traceback (most recent call last):
+        ValueError: invalid literal for float(): fish
+        >>> a['b'] = '1'
+        >>> a.as_float('b')
+        1.0
+        >>> a['b'] = '3.2'
+        >>> a.as_float('b')
+        3.2000000000000002
+        """
+        return float(self[key])
+
+
+    def as_list(self, key):
+        """
+        A convenience method which fetches the specified value, guaranteeing
+        that it is a list.
+
+        >>> a = ConfigObj()
+        >>> a['a'] = 1
+        >>> a.as_list('a')
+        [1]
+        >>> a['a'] = (1,)
+        >>> a.as_list('a')
+        [1]
+        >>> a['a'] = [1]
+        >>> a.as_list('a')
+        [1]
+        """
+        result = self[key]
+        if isinstance(result, (tuple, list)):
+            return list(result)
+        return [result]
+
+
+    def restore_default(self, key):
+        """
+        Restore (and return) default value for the specified key.
+
+        This method will only work for a ConfigObj that was created
+        with a configspec and has been validated.
+
+        If there is no default value for this key, ``KeyError`` is raised.
+        """
+        default = self.default_values[key]
+        dict.__setitem__(self, key, default)
+        if key not in self.defaults:
+            self.defaults.append(key)
+        return default
+
+
+    def restore_defaults(self):
+        """
+        Recursively restore default values to all members
+        that have them.
+
+        This method will only work for a ConfigObj that was created
+        with a configspec and has been validated.
+
+        It doesn't delete or modify entries without default values.
+        """
+        for key in self.default_values:
+            self.restore_default(key)
+
+        for section in self.sections:
+            self[section].restore_defaults()
+
+
+class ConfigObj(Section):
+    """An object to read, create, and write config files."""
+
+    _keyword = re.compile(r'''^ # line start
+        (\s*)                   # indentation
+        (                       # keyword
+            (?:".*?")|          # double quotes
+            (?:'.*?')|          # single quotes
+            (?:[^'"=].*?)       # no quotes
+        )
+        \s*=\s*                 # divider
+        (.*)                    # value (including list values and comments)
+        $   # line end
+        ''',
+        re.VERBOSE)
+
+    _sectionmarker = re.compile(r'''^
+        (\s*)                     # 1: indentation
+        ((?:\[\s*)+)              # 2: section marker open
+        (                         # 3: section name open
+            (?:"\s*\S.*?\s*")|    # at least one non-space with double quotes
+            (?:'\s*\S.*?\s*')|    # at least one non-space with single quotes
+            (?:[^'"\s].*?)        # at least one non-space unquoted
+        )                         # section name close
+        ((?:\s*\])+)              # 4: section marker close
+        \s*(\#.*)?                # 5: optional comment
+        $''',
+        re.VERBOSE)
+
+    # this regexp pulls list values out as a single string
+    # or single values and comments
+    # FIXME: this regex adds a '' to the end of comma terminated lists
+    #   workaround in ``_handle_value``
+    _valueexp = re.compile(r'''^
+        (?:
+            (?:
+                (
+                    (?:
+                        (?:
+                            (?:".*?")|              # double quotes
+                            (?:'.*?')|              # single quotes
+                            (?:[^'",\#][^,\#]*?)    # unquoted
+                        )
+                        \s*,\s*                     # comma
+                    )*      # match all list items ending in a comma (if any)
+                )
+                (
+                    (?:".*?")|                      # double quotes
+                    (?:'.*?')|                      # single quotes
+                    (?:[^'",\#\s][^,]*?)|           # unquoted
+                    (?:(?<!,))                      # Empty value
+                )?          # last item in a list - or string value
+            )|
+            (,)             # alternatively a single comma - empty list
+        )
+        \s*(\#.*)?          # optional comment
+        $''',
+        re.VERBOSE)
+
+    # use findall to get the members of a list value
+    _listvalueexp = re.compile(r'''
+        (
+            (?:".*?")|          # double quotes
+            (?:'.*?')|          # single quotes
+            (?:[^'",\#]?.*?)       # unquoted
+        )
+        \s*,\s*                 # comma
+        ''',
+        re.VERBOSE)
+
+    # this regexp is used for the value
+    # when lists are switched off
+    _nolistvalue = re.compile(r'''^
+        (
+            (?:".*?")|          # double quotes
+            (?:'.*?')|          # single quotes
+            (?:[^'"\#].*?)|     # unquoted
+            (?:)                # Empty value
+        )
+        \s*(\#.*)?              # optional comment
+        $''',
+        re.VERBOSE)
+
+    # regexes for finding triple quoted values on one line
+    _single_line_single = re.compile(r"^'''(.*?)'''\s*(#.*)?$")
+    _single_line_double = re.compile(r'^"""(.*?)"""\s*(#.*)?$')
+    _multi_line_single = re.compile(r"^(.*?)'''\s*(#.*)?$")
+    _multi_line_double = re.compile(r'^(.*?)"""\s*(#.*)?$')
+
+    _triple_quote = {
+        "'''": (_single_line_single, _multi_line_single),
+        '"""': (_single_line_double, _multi_line_double),
+    }
+
+    # Used by the ``istrue`` Section method
+    _bools = {
+        'yes': True, 'no': False,
+        'on': True, 'off': False,
+        '1': True, '0': False,
+        'true': True, 'false': False,
+        }
+
+
+    def __init__(self, infile=None, options=None, configspec=None, encoding=None,
+                 interpolation=True, raise_errors=False, list_values=True,
+                 create_empty=False, file_error=False, stringify=True,
+                 indent_type=None, default_encoding=None, unrepr=False,
+                 write_empty_values=False, _inspec=False):
+        """
+        Parse a config file or create a config file object.
+
+        ``ConfigObj(infile=None, configspec=None, encoding=None,
+                    interpolation=True, raise_errors=False, list_values=True,
+                    create_empty=False, file_error=False, stringify=True,
+                    indent_type=None, default_encoding=None, unrepr=False,
+                    write_empty_values=False, _inspec=False)``
+        """
+        self._inspec = _inspec
+        # init the superclass
+        Section.__init__(self, self, 0, self)
+
+        infile = infile or []
+
+        _options = {'configspec': configspec,
+                    'encoding': encoding, 'interpolation': interpolation,
+                    'raise_errors': raise_errors, 'list_values': list_values,
+                    'create_empty': create_empty, 'file_error': file_error,
+                    'stringify': stringify, 'indent_type': indent_type,
+                    'default_encoding': default_encoding, 'unrepr': unrepr,
+                    'write_empty_values': write_empty_values}
+
+        if options is None:
+            options = _options
+        else:
+            import warnings
+            warnings.warn('Passing in an options dictionary to ConfigObj() is '
+                          'deprecated. Use **options instead.',
+                          DeprecationWarning, stacklevel=2)
+
+            # TODO: check the values too.
+            for entry in options:
+                if entry not in OPTION_DEFAULTS:
+                    raise TypeError('Unrecognised option "%s".' % entry)
+            for entry, value in list(OPTION_DEFAULTS.items()):
+                if entry not in options:
+                    options[entry] = value
+                keyword_value = _options[entry]
+                if value != keyword_value:
+                    options[entry] = keyword_value
+
+        # XXXX this ignores an explicit list_values = True in combination
+        # with _inspec. The user should *never* do that anyway, but still...
+        if _inspec:
+            options['list_values'] = False
+
+        self._initialise(options)
+        configspec = options['configspec']
+        self._original_configspec = configspec
+        self._load(infile, configspec)
+
+
+    def _load(self, infile, configspec):
+        if isinstance(infile, six.string_types):
+            self.filename = infile
+            if os.path.isfile(infile):
+                h = open(infile, 'r') # before it was 'rb' for handling encodings. This is Py3 safe
+                infile = str(h.read()).splitlines() or []
+                h.close()
+                
+            elif self.file_error:
+                # raise an error if the file doesn't exist
+                raise IOError('Config file not found: "%s".' % self.filename)
+            else:
+                # file doesn't already exist
+                if self.create_empty:
+                    # this is a good test that the filename specified
+                    # isn't impossible - like on a non-existent device
+                    h = open(infile, 'w')
+                    h.write('')
+                    h.close()
+                infile = []
+
+        elif isinstance(infile, (list, tuple)):
+            infile = list(infile)
+
+        elif isinstance(infile, dict):
+            # initialise self
+            # the Section class handles creating subsections
+            if isinstance(infile, ConfigObj):
+                # get a copy of our ConfigObj
+                def set_section(in_section, this_section):
+                    for entry in in_section.scalars:
+                        this_section[entry] = in_section[entry]
+                    for section in in_section.sections:
+                        this_section[section] = {}
+                        set_section(in_section[section], this_section[section])
+                set_section(infile, self)
+
+            else:
+                for entry in infile:
+                    self[entry] = infile[entry]
+            del self._errors
+
+            if configspec is not None:
+                self._handle_configspec(configspec)
+            else:
+                self.configspec = None
+            return
+
+        elif getattr(infile, 'read', MISSING) is not MISSING:
+            # This supports file like objects
+            infile = infile.read() or []
+            # needs splitting into lines - but needs doing *after* decoding
+            # in case it's not an 8 bit encoding
+        else:
+            raise TypeError('infile must be a filename, file like object, or list of lines.')
+
+        if infile:
+            # don't do it for the empty ConfigObj
+
+            # WATCH OUT: I have commented this line to ensure Py2/Py3 compatibility,
+            #as ete build always expect a text file as config does not require
+            #further checking or conversion (Jaime)
+            #
+            #infile = self._handle_bom(infile)
+            
+            # infile is now *always* a list
+            #
+            # Set the newlines attribute (first line ending it finds)
+            # and strip trailing '\n' or '\r' from lines
+            for line in infile:
+                if (not line) or (line[-1] not in ('\r', '\n', '\r\n')):
+                    continue
+                for end in ('\r\n', '\n', '\r'):
+                    if line.endswith(end):
+                        self.newlines = end
+                        break
+                break
+
+            infile = [line.rstrip('\r\n') for line in infile]
+
+            
+        self._parse(infile)
+        # if we had any errors, now is the time to raise them
+        if self._errors:
+            info = "at line %s." % self._errors[0].line_number
+            if len(self._errors) > 1:
+                msg = "Parsing failed with several errors.\nFirst error %s" % info
+                error = ConfigObjError(msg)
+            else:
+                error = self._errors[0]
+            # set the errors attribute; it's a list of tuples:
+            # (error_type, message, line_number)
+            error.errors = self._errors
+            # set the config attribute
+            error.config = self
+            raise error
+        # delete private attributes
+        del self._errors
+
+        if configspec is None:
+            self.configspec = None
+        else:
+            self._handle_configspec(configspec)
+
+
+    def _initialise(self, options=None):
+        if options is None:
+            options = OPTION_DEFAULTS
+
+        # initialise a few variables
+        self.filename = None
+        self._errors = []
+        self.raise_errors = options['raise_errors']
+        self.interpolation = options['interpolation']
+        self.list_values = options['list_values']
+        self.create_empty = options['create_empty']
+        self.file_error = options['file_error']
+        self.stringify = options['stringify']
+        self.indent_type = options['indent_type']
+        self.encoding = options['encoding']
+        self.default_encoding = options['default_encoding']
+        self.BOM = False
+        self.newlines = None
+        self.write_empty_values = options['write_empty_values']
+        self.unrepr = options['unrepr']
+
+        self.initial_comment = []
+        self.final_comment = []
+        self.configspec = None
+
+        if self._inspec:
+            self.list_values = False
+
+        # Clear section attributes as well
+        Section._initialise(self)
+
+
+    def __repr__(self):
+        def _getval(key):
+            try:
+                return self[key]
+            except MissingInterpolationOption:
+                return dict.__getitem__(self, key)
+        return ('ConfigObj({%s})' %
+                ', '.join([('%s: %s' % (repr(key), repr(_getval(key))))
+                for key in (self.scalars + self.sections)]))
+
+
+    def _handle_bom(self, infile):
+        """
+        Handle any BOM, and decode if necessary.
+
+        If an encoding is specified, that *must* be used - but the BOM should
+        still be removed (and the BOM attribute set).
+
+        (If the encoding is wrongly specified, then a BOM for an alternative
+        encoding won't be discovered or removed.)
+
+        If an encoding is not specified, UTF8 or UTF16 BOM will be detected and
+        removed. The BOM attribute will be set. UTF16 will be decoded to
+        unicode.
+
+        NOTE: This method must not be called with an empty ``infile``.
+
+        Specifying the *wrong* encoding is likely to cause a
+        ``UnicodeDecodeError``.
+
+        ``infile`` must always be returned as a list of lines, but may be
+        passed in as a single string.
+        """
+        if ((self.encoding is not None) and
+            (self.encoding.lower() not in BOM_LIST)):
+            # No need to check for a BOM
+            # the encoding specified doesn't have one
+            # just decode
+            return self._decode(infile, self.encoding)
+
+        if isinstance(infile, (list, tuple)):
+            line = infile[0]
+        else:
+            line = infile
+        if self.encoding is not None:
+            # encoding explicitly supplied
+            # And it could have an associated BOM
+            # TODO: if encoding is just UTF16 - we ought to check for both
+            # TODO: big endian and little endian versions.
+            enc = BOM_LIST[self.encoding.lower()]
+            if enc == 'utf_16':
+                # For UTF16 we try big endian and little endian
+                for BOM, (encoding, final_encoding) in list(BOMS.items()):
+                    if not final_encoding:
+                        # skip UTF8
+                        continue
+                    if infile.startswith(BOM):
+                        ### BOM discovered
+                        ##self.BOM = True
+                        # Don't need to remove BOM
+                        return self._decode(infile, encoding)
+
+                # If we get this far, will *probably* raise a DecodeError
+                # As it doesn't appear to start with a BOM
+                return self._decode(infile, self.encoding)
+
+            # Must be UTF8
+            BOM = BOM_SET[enc]
+            if not line.startswith(BOM):
+                return self._decode(infile, self.encoding)
+
+            newline = line[len(BOM):]
+
+            # BOM removed
+            if isinstance(infile, (list, tuple)):
+                infile[0] = newline
+            else:
+                infile = newline
+            self.BOM = True
+            return self._decode(infile, self.encoding)
+
+        # No encoding specified - so we need to check for UTF8/UTF16
+        for BOM, (encoding, final_encoding) in list(BOMS.items()):
+            print(BOM, type(line))
+            if not line.startswith(BOM):
+                continue
+            else:
+                # BOM discovered
+                self.encoding = final_encoding
+                if not final_encoding:
+                    self.BOM = True
+                    # UTF8
+                    # remove BOM
+                    newline = line[len(BOM):]
+                    if isinstance(infile, (list, tuple)):
+                        infile[0] = newline
+                    else:
+                        infile = newline
+                    # UTF8 - don't decode
+                    if isinstance(infile, six.string_types):
+                        return infile.splitlines(True)
+                    else:
+                        return infile
+                # UTF16 - have to decode
+                return self._decode(infile, encoding)
+
+        # No BOM discovered and no encoding specified, just return
+        #if isinstance(infile, six.string_types):
+            # infile read from a file will be a single string
+        #    return infile.splitlines(True)
+        
+        infile = infile.splitlines(True)
+        print( infile)
+        print(len(infile), type(infile), type(infile[0]))
+        return infile
+
+
+    def _a_to_u(self, aString):
+        """Decode ASCII strings to unicode if a self.encoding is specified."""
+        if self.encoding:
+            return aString.decode('ascii')
+        else:
+            return aString
+
+
+    def _decode(self, infile, encoding):
+        """
+        Decode infile to unicode. Using the specified encoding.
+
+        if is a string, it also needs converting to a list.
+        """
+        if isinstance(infile, six.string_types):
+            # can't be unicode
+            # NOTE: Could raise a ``UnicodeDecodeError``
+            return infile.decode(encoding).splitlines(True)
+        for i, line in enumerate(infile):
+            if not isinstance(line, six.text_type):
+                # NOTE: The isinstance test here handles mixed lists of unicode/string
+                # NOTE: But the decode will break on any non-string values
+                # NOTE: Or could raise a ``UnicodeDecodeError``
+                infile[i] = line.decode(encoding)
+        return infile
+
+
+    def _decode_element(self, line):
+        """Decode element to unicode if necessary."""
+        if not self.encoding:
+            return line
+        if isinstance(line, str) and self.default_encoding:
+            return line.decode(self.default_encoding)
+        return line
+
+
+    def _str(self, value):
+        """
+        Used by ``stringify`` within validate, to turn non-string values
+        into strings.
+        """
+        if not isinstance(value, six.string_types):
+            return str(value)
+        else:
+            return value
+
+
+    def _parse(self, infile):
+        """Actually parse the config file."""
+        temp_list_values = self.list_values
+        if self.unrepr:
+            self.list_values = False
+
+        comment_list = []
+        done_start = False
+        this_section = self
+        maxline = len(infile) - 1
+        cur_index = -1
+        reset_comment = False
+
+        while cur_index < maxline:
+            if reset_comment:
+                comment_list = []
+            cur_index += 1
+            line = infile[cur_index]
+            sline = line.strip()
+            # do we have anything on the line ?
+            if not sline or sline.startswith('#'):
+                reset_comment = False
+                comment_list.append(line)
+                continue
+
+            if not done_start:
+                # preserve initial comment
+                self.initial_comment = comment_list
+                comment_list = []
+                done_start = True
+
+            reset_comment = True
+            # first we check if it's a section marker
+            mat = self._sectionmarker.match(line)
+            if mat is not None:
+                # is a section line
+                (indent, sect_open, sect_name, sect_close, comment) = mat.groups()
+                if indent and (self.indent_type is None):
+                    self.indent_type = indent
+                cur_depth = sect_open.count('[')
+                if cur_depth != sect_close.count(']'):
+                    self._handle_error("Cannot compute the section depth at line %s.",
+                                       NestingError, infile, cur_index)
+                    continue
+
+                if cur_depth < this_section.depth:
+                    # the new section is dropping back to a previous level
+                    try:
+                        parent = self._match_depth(this_section,
+                                                   cur_depth).parent
+                    except SyntaxError:
+                        self._handle_error("Cannot compute nesting level at line %s.",
+                                           NestingError, infile, cur_index)
+                        continue
+                elif cur_depth == this_section.depth:
+                    # the new section is a sibling of the current section
+                    parent = this_section.parent
+                elif cur_depth == this_section.depth + 1:
+                    # the new section is a child the current section
+                    parent = this_section
+                else:
+                    self._handle_error("Section too nested at line %s.",
+                                       NestingError, infile, cur_index)
+
+                sect_name = self._unquote(sect_name)
+                if sect_name in parent:
+                    self._handle_error('Duplicate section name at line %s.',
+                                       DuplicateError, infile, cur_index)
+                    continue
+
+                # create the new section
+                this_section = Section(
+                    parent,
+                    cur_depth,
+                    self,
+                    name=sect_name)
+                parent[sect_name] = this_section
+                parent.inline_comments[sect_name] = comment
+                parent.comments[sect_name] = comment_list
+                continue
+            #
+            # it's not a section marker,
+            # so it should be a valid ``key = value`` line
+            mat = self._keyword.match(line)
+            if mat is None:
+                # it neither matched as a keyword
+                # or a section marker
+                self._handle_error(
+                    'Invalid line at line "%s".',
+                    ParseError, infile, cur_index)
+            else:
+                # is a keyword value
+                # value will include any inline comment
+                (indent, key, value) = mat.groups()
+                if indent and (self.indent_type is None):
+                    self.indent_type = indent
+                # check for a multiline value
+                if value[:3] in ['"""', "'''"]:
+                    try:
+                        value, comment, cur_index = self._multiline(
+                            value, infile, cur_index, maxline)
+                    except SyntaxError:
+                        self._handle_error(
+                            'Parse error in value at line %s.',
+                            ParseError, infile, cur_index)
+                        continue
+                    else:
+                        if self.unrepr:
+                            comment = ''
+                            try:
+                                value = unrepr(value)
+                            except Exception as e:
+                                if type(e) == UnknownType:
+                                    msg = 'Unknown name or type in value at line %s.'
+                                else:
+                                    msg = 'Parse error in value at line %s.'
+                                self._handle_error(msg, UnreprError, infile,
+                                    cur_index)
+                                continue
+                else:
+                    if self.unrepr:
+                        comment = ''
+                        try:
+                            value = unrepr(value)
+                        except Exception as e:
+                            if isinstance(e, UnknownType):
+                                msg = 'Unknown name or type in value at line %s.'
+                            else:
+                                msg = 'Parse error in value at line %s.'
+                            self._handle_error(msg, UnreprError, infile,
+                                cur_index)
+                            continue
+                    else:
+                        # extract comment and lists
+                        try:
+                            (value, comment) = self._handle_value(value)
+                        except SyntaxError:
+                            self._handle_error(
+                                'Parse error in value at line %s.',
+                                ParseError, infile, cur_index)
+                            continue
+                #
+                key = self._unquote(key)
+                if key in this_section:
+                    self._handle_error(
+                        'Duplicate keyword name at line %s.',
+                        DuplicateError, infile, cur_index)
+                    continue
+                # add the key.
+                # we set unrepr because if we have got this far we will never
+                # be creating a new section
+                this_section.__setitem__(key, value, unrepr=True)
+                this_section.inline_comments[key] = comment
+                this_section.comments[key] = comment_list
+                continue
+        #
+        if self.indent_type is None:
+            # no indentation used, set the type accordingly
+            self.indent_type = ''
+
+        # preserve the final comment
+        if not self and not self.initial_comment:
+            self.initial_comment = comment_list
+        elif not reset_comment:
+            self.final_comment = comment_list
+        self.list_values = temp_list_values
+
+
+    def _match_depth(self, sect, depth):
+        """
+        Given a section and a depth level, walk back through the sections
+        parents to see if the depth level matches a previous section.
+
+        Return a reference to the right section,
+        or raise a SyntaxError.
+        """
+        while depth < sect.depth:
+            if sect is sect.parent:
+                # we've reached the top level already
+                raise SyntaxError()
+            sect = sect.parent
+        if sect.depth == depth:
+            return sect
+        # shouldn't get here
+        raise SyntaxError()
+
+
+    def _handle_error(self, text, ErrorClass, infile, cur_index):
+        """
+        Handle an error according to the error settings.
+
+        Either raise the error or store it.
+        The error will have occured at ``cur_index``
+        """
+        line = infile[cur_index]
+        cur_index += 1
+        message = text % cur_index
+        error = ErrorClass(message, cur_index, line)
+        if self.raise_errors:
+            # raise the error - parsing stops here
+            raise error
+        # store the error
+        # reraise when parsing has finished
+        self._errors.append(error)
+
+
+    def _unquote(self, value):
+        """Return an unquoted version of a value"""
+        if not value:
+            # should only happen during parsing of lists
+            raise SyntaxError
+        if (value[0] == value[-1]) and (value[0] in ('"', "'")):
+            value = value[1:-1]
+        return value
+
+
+    def _quote(self, value, multiline=True):
+        """
+        Return a safely quoted version of a value.
+
+        Raise a ConfigObjError if the value cannot be safely quoted.
+        If multiline is ``True`` (default) then use triple quotes
+        if necessary.
+
+        * Don't quote values that don't need it.
+        * Recursively quote members of a list and return a comma joined list.
+        * Multiline is ``False`` for lists.
+        * Obey list syntax for empty and single member lists.
+
+        If ``list_values=False`` then the value is only quoted if it contains
+        a ``\\n`` (is multiline) or '#'.
+
+        If ``write_empty_values`` is set, and the value is an empty string, it
+        won't be quoted.
+        """
+        if multiline and self.write_empty_values and value == '':
+            # Only if multiline is set, so that it is used for values not
+            # keys, and not values that are part of a list
+            return ''
+
+        if multiline and isinstance(value, (list, tuple)):
+            if not value:
+                return ','
+            elif len(value) == 1:
+                return self._quote(value[0], multiline=False) + ','
+            return ', '.join([self._quote(val, multiline=False)
+                for val in value])
+        if not isinstance(value, six.string_types):
+            if self.stringify:
+                value = str(value)
+            else:
+                raise TypeError('Value "%s" is not a string.' % value)
+
+        if not value:
+            return '""'
+
+        no_lists_no_quotes = not self.list_values and '\n' not in value and '#' not in value
+        need_triple = multiline and ((("'" in value) and ('"' in value)) or ('\n' in value ))
+        hash_triple_quote = multiline and not need_triple and ("'" in value) and ('"' in value) and ('#' in value)
+        check_for_single = (no_lists_no_quotes or not need_triple) and not hash_triple_quote
+
+        if check_for_single:
+            if not self.list_values:
+                # we don't quote if ``list_values=False``
+                quot = noquot
+            # for normal values either single or double quotes will do
+            elif '\n' in value:
+                # will only happen if multiline is off - e.g. '\n' in key
+                raise ConfigObjError('Value "%s" cannot be safely quoted.' % value)
+            elif ((value[0] not in wspace_plus) and
+                    (value[-1] not in wspace_plus) and
+                    (',' not in value)):
+                quot = noquot
+            else:
+                quot = self._get_single_quote(value)
+        else:
+            # if value has '\n' or "'" *and* '"', it will need triple quotes
+            quot = self._get_triple_quote(value)
+
+        if quot == noquot and '#' in value and self.list_values:
+            quot = self._get_single_quote(value)
+
+        return quot % value
+
+
+    def _get_single_quote(self, value):
+        if ("'" in value) and ('"' in value):
+            raise ConfigObjError('Value "%s" cannot be safely quoted.' % value)
+        elif '"' in value:
+            quot = squot
+        else:
+            quot = dquot
+        return quot
+
+
+    def _get_triple_quote(self, value):
+        if (value.find('"""') != -1) and (value.find("'''") != -1):
+            raise ConfigObjError('Value "%s" cannot be safely quoted.' % value)
+        if value.find('"""') == -1:
+            quot = tdquot
+        else:
+            quot = tsquot
+        return quot
+
+
+    def _handle_value(self, value):
+        """
+        Given a value string, unquote, remove comment,
+        handle lists. (including empty and single member lists)
+        """
+        if self._inspec:
+            # Parsing a configspec so don't handle comments
+            return (value, '')
+        # do we look for lists in values ?
+        if not self.list_values:
+            mat = self._nolistvalue.match(value)
+            if mat is None:
+                raise SyntaxError()
+            # NOTE: we don't unquote here
+            return mat.groups()
+        #
+        mat = self._valueexp.match(value)
+        if mat is None:
+            # the value is badly constructed, probably badly quoted,
+            # or an invalid list
+            raise SyntaxError()
+        (list_values, single, empty_list, comment) = mat.groups()
+        if (list_values == '') and (single is None):
+            # change this if you want to accept empty values
+            raise SyntaxError()
+        # NOTE: note there is no error handling from here if the regex
+        # is wrong: then incorrect values will slip through
+        if empty_list is not None:
+            # the single comma - meaning an empty list
+            return ([], comment)
+        if single is not None:
+            # handle empty values
+            if list_values and not single:
+                # FIXME: the '' is a workaround because our regex now matches
+                #   '' at the end of a list if it has a trailing comma
+                single = None
+            else:
+                single = single or '""'
+                single = self._unquote(single)
+        if list_values == '':
+            # not a list value
+            return (single, comment)
+        the_list = self._listvalueexp.findall(list_values)
+        the_list = [self._unquote(val) for val in the_list]
+        if single is not None:
+            the_list += [single]
+        return (the_list, comment)
+
+
+    def _multiline(self, value, infile, cur_index, maxline):
+        """Extract the value, where we are in a multiline situation."""
+        quot = value[:3]
+        newvalue = value[3:]
+        single_line = self._triple_quote[quot][0]
+        multi_line = self._triple_quote[quot][1]
+        mat = single_line.match(value)
+        if mat is not None:
+            retval = list(mat.groups())
+            retval.append(cur_index)
+            return retval
+        elif newvalue.find(quot) != -1:
+            # somehow the triple quote is missing
+            raise SyntaxError()
+        #
+        while cur_index < maxline:
+            cur_index += 1
+            newvalue += '\n'
+            line = infile[cur_index]
+            if line.find(quot) == -1:
+                newvalue += line
+            else:
+                # end of multiline, process it
+                break
+        else:
+            # we've got to the end of the config, oops...
+            raise SyntaxError()
+        mat = multi_line.match(line)
+        if mat is None:
+            # a badly formed line
+            raise SyntaxError()
+        (value, comment) = mat.groups()
+        return (newvalue + value, comment, cur_index)
+
+
+    def _handle_configspec(self, configspec):
+        """Parse the configspec."""
+        # FIXME: Should we check that the configspec was created with the
+        #        correct settings ? (i.e. ``list_values=False``)
+        if not isinstance(configspec, ConfigObj):
+            try:
+                configspec = ConfigObj(configspec,
+                                       raise_errors=True,
+                                       file_error=True,
+                                       _inspec=True)
+            except ConfigObjError as e:
+                # FIXME: Should these errors have a reference
+                #        to the already parsed ConfigObj ?
+                raise ConfigspecError('Parsing configspec failed: %s' % e)
+            except IOError as e:
+                raise IOError('Reading configspec failed: %s' % e)
+
+        self.configspec = configspec
+
+
+
+    def _set_configspec(self, section, copy):
+        """
+        Called by validate. Handles setting the configspec on subsections
+        including sections to be validated by __many__
+        """
+        configspec = section.configspec
+        many = configspec.get('__many__')
+        if isinstance(many, dict):
+            for entry in section.sections:
+                if entry not in configspec:
+                    section[entry].configspec = many
+
+        for entry in configspec.sections:
+            if entry == '__many__':
+                continue
+            if entry not in section:
+                section[entry] = {}
+                section[entry]._created = True
+                if copy:
+                    # copy comments
+                    section.comments[entry] = configspec.comments.get(entry, [])
+                    section.inline_comments[entry] = configspec.inline_comments.get(entry, '')
+
+            # Could be a scalar when we expect a section
+            if isinstance(section[entry], Section):
+                section[entry].configspec = configspec[entry]
+
+
+    def _write_line(self, indent_string, entry, this_entry, comment):
+        """Write an individual line, for the write method"""
+        # NOTE: the calls to self._quote here handles non-StringType values.
+        if not self.unrepr:
+            val = self._decode_element(self._quote(this_entry))
+        else:
+            val = repr(this_entry)
+        return '%s%s%s%s%s' % (indent_string,
+                               self._decode_element(self._quote(entry, multiline=False)),
+                               self._a_to_u(' = '),
+                               val,
+                               self._decode_element(comment))
+
+
+    def _write_marker(self, indent_string, depth, entry, comment):
+        """Write a section marker line"""
+        return '%s%s%s%s%s' % (indent_string,
+                               self._a_to_u('[' * depth),
+                               self._quote(self._decode_element(entry), multiline=False),
+                               self._a_to_u(']' * depth),
+                               self._decode_element(comment))
+
+
+    def _handle_comment(self, comment):
+        """Deal with a comment."""
+        if not comment:
+            return ''
+        start = self.indent_type
+        if not comment.startswith('#'):
+            start += self._a_to_u(' # ')
+        return (start + comment)
+
+
+    # Public methods
+
+    def write(self, outfile=None, section=None):
+        """
+        Write the current ConfigObj as a file
+
+        tekNico: FIXME: use StringIO instead of real files
+
+        >>> filename = a.filename
+        >>> a.filename = 'test.ini'
+        >>> a.write()
+        >>> a.filename = filename
+        >>> a == ConfigObj('test.ini', raise_errors=True)
+        1
+        >>> import os
+        >>> os.remove('test.ini')
+        """
+        if self.indent_type is None:
+            # this can be true if initialised from a dictionary
+            self.indent_type = DEFAULT_INDENT_TYPE
+
+        out = []
+        cs = self._a_to_u('#')
+        csp = self._a_to_u('# ')
+        if section is None:
+            int_val = self.interpolation
+            self.interpolation = False
+            section = self
+            for line in self.initial_comment:
+                line = self._decode_element(line)
+                stripped_line = line.strip()
+                if stripped_line and not stripped_line.startswith(cs):
+                    line = csp + line
+                out.append(line)
+
+        indent_string = self.indent_type * section.depth
+        for entry in (section.scalars + section.sections):
+            if entry in section.defaults:
+                # don't write out default values
+                continue
+            for comment_line in section.comments[entry]:
+                comment_line = self._decode_element(comment_line.lstrip())
+                if comment_line and not comment_line.startswith(cs):
+                    comment_line = csp + comment_line
+                out.append(indent_string + comment_line)
+            this_entry = section[entry]
+            comment = self._handle_comment(section.inline_comments[entry])
+
+            if isinstance(this_entry, dict):
+                # a section
+                out.append(self._write_marker(
+                    indent_string,
+                    this_entry.depth,
+                    entry,
+                    comment))
+                out.extend(self.write(section=this_entry))
+            else:
+                out.append(self._write_line(
+                    indent_string,
+                    entry,
+                    this_entry,
+                    comment))
+
+        if section is self:
+            for line in self.final_comment:
+                line = self._decode_element(line)
+                stripped_line = line.strip()
+                if stripped_line and not stripped_line.startswith(cs):
+                    line = csp + line
+                out.append(line)
+            self.interpolation = int_val
+
+        if section is not self:
+            return out
+
+        if (self.filename is None) and (outfile is None):
+            # output a list of lines
+            # might need to encode
+            # NOTE: This will *screw* UTF16, each line will start with the BOM
+            if self.encoding:
+                out = [l.encode(self.encoding) for l in out]
+            if (self.BOM and ((self.encoding is None) or
+                (BOM_LIST.get(self.encoding.lower()) == 'utf_8'))):
+                # Add the UTF8 BOM
+                if not out:
+                    out.append('')
+                out[0] = BOM_UTF8 + out[0]
+            return out
+
+        # Turn the list to a string, joined with correct newlines
+        newline = self.newlines or os.linesep
+        if (getattr(outfile, 'mode', None) is not None and outfile.mode == 'w'
+            and sys.platform == 'win32' and newline == '\r\n'):
+            # Windows specific hack to avoid writing '\r\r\n'
+            newline = '\n'
+        output = self._a_to_u(newline).join(out)
+        if self.encoding:
+            output = output.encode(self.encoding)
+        if self.BOM and ((self.encoding is None) or match_utf8(self.encoding)):
+            # Add the UTF8 BOM
+            output = BOM_UTF8 + output
+
+        if not output.endswith(newline):
+            output += newline
+        if outfile is not None:
+            outfile.write(output)
+        else:
+            h = open(self.filename, 'wb')
+            h.write(output)
+            h.close()
+
+
+    def validate(self, validator, preserve_errors=False, copy=False,
+                 section=None):
+        """
+        Test the ConfigObj against a configspec.
+
+        It uses the ``validator`` object from *validate.py*.
+
+        To run ``validate`` on the current ConfigObj, call: ::
+
+            test = config.validate(validator)
+
+        (Normally having previously passed in the configspec when the ConfigObj
+        was created - you can dynamically assign a dictionary of checks to the
+        ``configspec`` attribute of a section though).
+
+        It returns ``True`` if everything passes, or a dictionary of
+        pass/fails (True/False). If every member of a subsection passes, it
+        will just have the value ``True``. (It also returns ``False`` if all
+        members fail).
+
+        In addition, it converts the values from strings to their native
+        types if their checks pass (and ``stringify`` is set).
+
+        If ``preserve_errors`` is ``True`` (``False`` is default) then instead
+        of a marking a fail with a ``False``, it will preserve the actual
+        exception object. This can contain info about the reason for failure.
+        For example the ``VdtValueTooSmallError`` indicates that the value
+        supplied was too small. If a value (or section) is missing it will
+        still be marked as ``False``.
+
+        You must have the validate module to use ``preserve_errors=True``.
+
+        You can then use the ``flatten_errors`` function to turn your nested
+        results dictionary into a flattened list of failures - useful for
+        displaying meaningful error messages.
+        """
+        if section is None:
+            if self.configspec is None:
+                raise ValueError('No configspec supplied.')
+            if preserve_errors:
+                # We do this once to remove a top level dependency on the validate module
+                # Which makes importing configobj faster
+                from .validate import VdtMissingValue
+                self._vdtMissingValue = VdtMissingValue
+
+            section = self
+
+            if copy:
+                section.initial_comment = section.configspec.initial_comment
+                section.final_comment = section.configspec.final_comment
+                section.encoding = section.configspec.encoding
+                section.BOM = section.configspec.BOM
+                section.newlines = section.configspec.newlines
+                section.indent_type = section.configspec.indent_type
+
+        #
+        # section.default_values.clear() #??
+        configspec = section.configspec
+        self._set_configspec(section, copy)
+
+
+        def validate_entry(entry, spec, val, missing, ret_true, ret_false):
+            section.default_values.pop(entry, None)
+
+            try:
+                section.default_values[entry] = validator.get_default_value(configspec[entry])
+            except (KeyError, AttributeError, validator.baseErrorClass):
+                # No default, bad default or validator has no 'get_default_value'
+                # (e.g. SimpleVal)
+                pass
+
+            try:
+                check = validator.check(spec,
+                                        val,
+                                        missing=missing
+                                        )
+            except validator.baseErrorClass as e:
+                if not preserve_errors or isinstance(e, self._vdtMissingValue):
+                    out[entry] = False
+                else:
+                    # preserve the error
+                    out[entry] = e
+                    ret_false = False
+                ret_true = False
+            else:
+                ret_false = False
+                out[entry] = True
+                if self.stringify or missing:
+                    # if we are doing type conversion
+                    # or the value is a supplied default
+                    if not self.stringify:
+                        if isinstance(check, (list, tuple)):
+                            # preserve lists
+                            check = [self._str(item) for item in check]
+                        elif missing and check is None:
+                            # convert the None from a default to a ''
+                            check = ''
+                        else:
+                            check = self._str(check)
+                    if (check != val) or missing:
+                        section[entry] = check
+                if not copy and missing and entry not in section.defaults:
+                    section.defaults.append(entry)
+            return ret_true, ret_false
+
+        #
+        out = {}
+        ret_true = True
+        ret_false = True
+
+        unvalidated = [k for k in section.scalars if k not in configspec]
+        incorrect_sections = [k for k in configspec.sections if k in section.scalars]
+        incorrect_scalars = [k for k in configspec.scalars if k in section.sections]
+
+        for entry in configspec.scalars:
+            if entry in ('__many__', '___many___'):
+                # reserved names
+                continue
+            if (not entry in section.scalars) or (entry in section.defaults):
+                # missing entries
+                # or entries from defaults
+                missing = True
+                val = None
+                if copy and entry not in section.scalars:
+                    # copy comments
+                    section.comments[entry] = (
+                        configspec.comments.get(entry, []))
+                    section.inline_comments[entry] = (
+                        configspec.inline_comments.get(entry, ''))
+                #
+            else:
+                missing = False
+                val = section[entry]
+
+            ret_true, ret_false = validate_entry(entry, configspec[entry], val,
+                                                 missing, ret_true, ret_false)
+
+        many = None
+        if '__many__' in configspec.scalars:
+            many = configspec['__many__']
+        elif '___many___' in configspec.scalars:
+            many = configspec['___many___']
+
+        if many is not None:
+            for entry in unvalidated:
+                val = section[entry]
+                ret_true, ret_false = validate_entry(entry, many, val, False,
+                                                     ret_true, ret_false)
+            unvalidated = []
+
+        for entry in incorrect_scalars:
+            ret_true = False
+            if not preserve_errors:
+                out[entry] = False
+            else:
+                ret_false = False
+                msg = 'Value %r was provided as a section' % entry
+                out[entry] = validator.baseErrorClass(msg)
+        for entry in incorrect_sections:
+            ret_true = False
+            if not preserve_errors:
+                out[entry] = False
+            else:
+                ret_false = False
+                msg = 'Section %r was provided as a single value' % entry
+                out[entry] = validator.baseErrorClass(msg)
+
+        # Missing sections will have been created as empty ones when the
+        # configspec was read.
+        for entry in section.sections:
+            # FIXME: this means DEFAULT is not copied in copy mode
+            if section is self and entry == 'DEFAULT':
+                continue
+            if section[entry].configspec is None:
+                unvalidated.append(entry)
+                continue
+            if copy:
+                section.comments[entry] = configspec.comments.get(entry, [])
+                section.inline_comments[entry] = configspec.inline_comments.get(entry, '')
+            check = self.validate(validator, preserve_errors=preserve_errors, copy=copy, section=section[entry])
+            out[entry] = check
+            if check == False:
+                ret_true = False
+            elif check == True:
+                ret_false = False
+            else:
+                ret_true = False
+
+        section.extra_values = unvalidated
+        if preserve_errors and not section._created:
+            # If the section wasn't created (i.e. it wasn't missing)
+            # then we can't return False, we need to preserve errors
+            ret_false = False
+        #
+        if ret_false and preserve_errors and out:
+            # If we are preserving errors, but all
+            # the failures are from missing sections / values
+            # then we can return False. Otherwise there is a
+            # real failure that we need to preserve.
+            ret_false = not any(out.values())
+        if ret_true:
+            return True
+        elif ret_false:
+            return False
+        return out
+
+
+    def reset(self):
+        """Clear ConfigObj instance and restore to 'freshly created' state."""
+        self.clear()
+        self._initialise()
+        # FIXME: Should be done by '_initialise', but ConfigObj constructor (and reload)
+        #        requires an empty dictionary
+        self.configspec = None
+        # Just to be sure ;-)
+        self._original_configspec = None
+
+
+    def reload(self):
+        """
+        Reload a ConfigObj from file.
+
+        This method raises a ``ReloadError`` if the ConfigObj doesn't have
+        a filename attribute pointing to a file.
+        """
+        if not isinstance(self.filename, six.string_types):
+            raise ReloadError()
+
+        filename = self.filename
+        current_options = {}
+        for entry in OPTION_DEFAULTS:
+            if entry == 'configspec':
+                continue
+            current_options[entry] = getattr(self, entry)
+
+        configspec = self._original_configspec
+        current_options['configspec'] = configspec
+
+        self.clear()
+        self._initialise(current_options)
+        self._load(filename, configspec)
+
+
+
+class SimpleVal(object):
+    """
+    A simple validator.
+    Can be used to check that all members expected are present.
+
+    To use it, provide a configspec with all your members in (the value given
+    will be ignored). Pass an instance of ``SimpleVal`` to the ``validate``
+    method of your ``ConfigObj``. ``validate`` will return ``True`` if all
+    members are present, or a dictionary with True/False meaning
+    present/missing. (Whole missing sections will be replaced with ``False``)
+    """
+
+    def __init__(self):
+        self.baseErrorClass = ConfigObjError
+
+    def check(self, check, member, missing=False):
+        """A dummy check method, always returns the value unchanged."""
+        if missing:
+            raise self.baseErrorClass()
+        return member
+
+
+def flatten_errors(cfg, res, levels=None, results=None):
+    """
+    An example function that will turn a nested dictionary of results
+    (as returned by ``ConfigObj.validate``) into a flat list.
+
+    ``cfg`` is the ConfigObj instance being checked, ``res`` is the results
+    dictionary returned by ``validate``.
+
+    (This is a recursive function, so you shouldn't use the ``levels`` or
+    ``results`` arguments - they are used by the function.)
+
+    Returns a list of keys that failed. Each member of the list is a tuple::
+
+        ([list of sections...], key, result)
+
+    If ``validate`` was called with ``preserve_errors=False`` (the default)
+    then ``result`` will always be ``False``.
+
+    *list of sections* is a flattened list of sections that the key was found
+    in.
+
+    If the section was missing (or a section was expected and a scalar provided
+    - or vice-versa) then key will be ``None``.
+
+    If the value (or section) was missing then ``result`` will be ``False``.
+
+    If ``validate`` was called with ``preserve_errors=True`` and a value
+    was present, but failed the check, then ``result`` will be the exception
+    object returned. You can use this as a string that describes the failure.
+
+    For example *The value "3" is of the wrong type*.
+    """
+    if levels is None:
+        # first time called
+        levels = []
+        results = []
+    if res == True:
+        return results
+    if res == False or isinstance(res, Exception):
+        results.append((levels[:], None, res))
+        if levels:
+            levels.pop()
+        return results
+    for (key, val) in list(res.items()):
+        if val == True:
+            continue
+        if isinstance(cfg.get(key), dict):
+            # Go down one level
+            levels.append(key)
+            flatten_errors(cfg[key], val, levels, results)
+            continue
+        results.append((levels[:], key, val))
+    #
+    # Go up one level
+    if levels:
+        levels.pop()
+    #
+    return results
+
+
+def get_extra_values(conf, _prepend=()):
+    """
+    Find all the values and sections not in the configspec from a validated
+    ConfigObj.
+
+    ``get_extra_values`` returns a list of tuples where each tuple represents
+    either an extra section, or an extra value.
+
+    The tuples contain two values, a tuple representing the section the value
+    is in and the name of the extra values. For extra values in the top level
+    section the first member will be an empty tuple. For values in the 'foo'
+    section the first member will be ``('foo',)``. For members in the 'bar'
+    subsection of the 'foo' section the first member will be ``('foo', 'bar')``.
+
+    NOTE: If you call ``get_extra_values`` on a ConfigObj instance that hasn't
+    been validated it will return an empty list.
+    """
+    out = []
+
+    out.extend([(_prepend, name) for name in conf.extra_values])
+    for name in conf.sections:
+        if name not in conf.extra_values:
+            out.extend(get_extra_values(conf[name], _prepend + (name,)))
+    return out
+
+
+"""*A programming language is a medium of expression.* - Paul Graham"""
diff --git a/ete3/tools/phylobuild_lib/curses_gui.py b/ete3/tools/phylobuild_lib/curses_gui.py
new file mode 100644
index 0000000..733f533
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/curses_gui.py
@@ -0,0 +1,152 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import curses
+import time
+from collections import deque
+
+
+class CursesList():
+    def __init__(self, win):
+        self._win = win
+        self.h, self.w = win.getmaxyx()
+        self._items = deque()
+        self._top = 0
+
+    def scroll(self, n):
+        pos = self._top + n
+        if pos < 0:
+            pos = 0
+        elif pos >= len(self._items):
+            pos = len(self._items) - 1
+
+        if self._top != pos:
+            self._top = pos
+            self.refresh()
+
+    def goto(self, n):
+        if n >= 0 and n < len(self._items):
+            self._top = pos
+            self.refresh()
+
+    def goto_end(self):
+        self._top = len(self._items)-1
+        self.refresh()
+
+    def goto_start(self):
+        self._top = 0
+        self.refresh()
+
+    def refresh(self):
+        self._win.clear()
+        start_pos = self._top
+        ln = 0
+        while ln < self.h and len(self._items) > ln + start_pos:
+            self._win.addstr(ln, 0, self._items[ln + start_pos])
+            ln += 1
+        self._win.refresh()
+
+    def add_item(self, txt):
+        self._items.append(txt)
+
+def main(scr):
+    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)
+    curses.init_pair(2, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
+    curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK)
+    curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK)
+    curses.init_pair(5, curses.COLOR_RED, curses.COLOR_BLACK)
+    curses.init_pair(6, curses.COLOR_RED, curses.COLOR_WHITE)
+
+    dbg_h = 40
+    WIN = {}
+    WIN[0] = scr
+    h, w = WIN[0].getmaxyx()
+    WIN[1] = curses.newwin(h-2, w/2, 1,1)
+    WIN[2] = curses.newwin(h-dbg_h, (w/2)-1, 1, (w/2)+2)
+    WIN[3] = curses.newwin(dbg_h, (w/2)-1, h-dbg_h-1, (w/2)-2)
+
+
+
+
+    p = curses.newpad(1000, 1000)
+    p.addstr("HOLA\n")
+    p.addstr("AMIGO\n")
+    p.addstr("DE VIGO")
+    p.refresh(0, 0, 5, 30, 5, 35)
+    key = p.getch()
+    return
+
+
+
+    for w in list(WIN.values()):
+        w.keypad(1)
+        w.idlok(True)
+        w.scrollok(True)
+    p.refresh(0, 0, 10, 10, 20, 20)
+    return
+
+
+
+    C = CursesList(WIN[2])
+    for line in open("/var/log/Xorg.0.log"):
+        C.add_item(line.strip())
+    C.refresh()
+    #WIN[1].addstr("(%d)" %len(C._items))
+    while 1:
+        key = WIN[2].getch()
+        WIN[1].addstr("%s (%d)" %(key, C._top))
+        WIN[1].refresh()
+        if key == 113:
+            break
+        elif key == curses.KEY_UP:
+            C.scroll(-1)
+        elif key == curses.KEY_DOWN:
+            C.scroll(1)
+        elif key == curses.KEY_NPAGE:
+            C.scroll(10)
+        elif key == curses.KEY_PPAGE:
+            C.scroll(-10)
+        elif key == curses.KEY_END:
+            C.goto_end()
+        elif key == curses.KEY_HOME:
+            C.goto_start()
+        else:
+            C.refresh()
+
+curses.wrapper(main)
diff --git a/ete3/tools/phylobuild_lib/db.py b/ete3/tools/phylobuild_lib/db.py
new file mode 100644
index 0000000..eaca431
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/db.py
@@ -0,0 +1,539 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import time
+from collections import defaultdict
+import sqlite3
+import six.moves.cPickle
+import base64
+import zlib
+import gzip
+import logging
+from .utils import md5, pexist, pjoin, GLOBALS
+import six
+from six.moves import map
+from six.moves import range
+from six.moves import zip
+
+log = logging.getLogger("main")
+
+conn = None
+cursor = None
+seqconn = None
+seqcursor = None
+dataconn = None
+datacursor = None
+
+AUTOCOMMIT = False
+def autocommit(targetconn = conn):
+    if AUTOCOMMIT:
+        targetconn.commit()
+
+def encode(x):
+    return bytes.decode(base64.encodestring(six.moves.cPickle.dumps(x, 2)))
+
+def decode(x):
+    if six.PY3:
+        x = str.encode(x)
+        
+    return six.moves.cPickle.loads(base64.decodestring(x))
+
+# SQLITE_MAX_LENGTH issue: files larger than ~1GB cannot be stored. limit cannot
+# be changed at runtime. Big files are then stored in disk instead
+# def zencode(x):
+#     return base64.encodestring(zlib.compress(cPickle.dumps(x)))
+
+# def zdecode(x):
+#     return cPickle.loads(zlib.decompress(base64.decodestring(x)))
+
+MAX_SQLITE_SIZE = 500000000
+MAX_SQLITE_SIZE = 5
+
+def zencode(x, data_id):
+    pdata = six.moves.cPickle.dumps(x)
+    if sys.getsizeof(pdata) > MAX_SQLITE_SIZE:
+        # using protocol 2 fails because of the integer overflow python bug
+        # i.e. http://bugs.python.org/issue13555
+        six.moves.cPickle.dump(x, open(pjoin(GLOBALS['db_dir'], data_id+".pkl"), "wb"), protocol=1)
+        return "__DBDIR__:%s" %data_id
+    else:
+        return base64.encodestring(zlib.compress(pdata))
+
+def zdecode(x):
+    if x.startswith("__DBDIR__:"):
+        data_id = x.split(':', 1)[1]
+        data = six.moves.cPickle.load(open(pjoin(GLOBALS['db_dir'], data_id+".pkl"), "rb"))
+    else:
+        data = six.moves.cPickle.loads(zlib.decompress(base64.decodestring(x)))
+    return data
+
+def prevent_sqlite_umask_bug(fname):
+    # avoids using sqlite module to create the file with deafult 644 umask
+    # permissions. Bug
+    # http://www.mail-archive.com/sqlite-users@sqlite.org/msg59080.html
+    if not pexist(fname):
+        open(fname, "w").close()
+
+def connect_nprdb(nprdb_file):
+    global conn, cursor
+    conn = sqlite3.connect(nprdb_file)
+    cursor = conn.cursor()
+
+def init_datadb(datadb_file):
+    global dataconn, datacursor
+    prevent_sqlite_umask_bug(datadb_file)
+    dataconn = sqlite3.connect(datadb_file)
+    datacursor = dataconn.cursor()
+    create_data_db()
+
+def init_nprdb(nprdb_file):
+    global conn, cursor
+    prevent_sqlite_umask_bug(nprdb_file)
+    conn = sqlite3.connect(nprdb_file)
+    cursor = conn.cursor()
+    create_db()
+
+def init_seqdb(seqdb_file):
+    global seqconn, seqcursor
+    prevent_sqlite_umask_bug(seqdb_file)
+    seqconn = sqlite3.connect(seqdb_file)
+    seqcursor = seqconn.cursor()
+    create_seq_db()
+
+
+def close():
+    conn.close()
+    seqconn.close()
+    dataconn.close()
+
+
+def parse_job_list(jobs):
+    if isjob(jobs) or istask(jobs):
+        jobs = [jobs]
+    ids = ','.join(["'%s'" %j.jobid for j in jobs if isjob(j)] +
+                   ["'%s'" %j.taskid for j in jobs if istask(j)])
+    return jobs, ids
+
+
+def create_data_db():
+    data_table = '''
+    CREATE TABLE IF NOT EXISTS task(
+    taskid CHAR(32) PRIMARY KEY,
+    type INTEGER,
+    tasktype INTEGER,
+    cmd BLOB,
+    stdout BLOB,
+    stderr BLOB,
+    time BLOB,
+    status CHAR(1)
+    );
+
+    CREATE TABLE IF NOT EXISTS task2data(
+      taskid CHAR(32),
+      datatype INTEGER,
+      md5 CHAR(32),
+      PRIMARY KEY(taskid, datatype)
+    );
+
+    CREATE TABLE IF NOT EXISTS data(
+      md5 CHAR(32) PRIMARY KEY,
+      data BLOB
+    );
+
+    '''
+    # indexes are created while importing
+    datacursor.executescript(data_table)
+    autocommit(dataconn)
+
+def get_dataid(taskid, datatype):
+    cmd = """ SELECT md5 FROM task2data WHERE taskid="%s" AND datatype = "%s"
+        """ %(taskid, datatype)
+    datacursor.execute(cmd)
+    try:
+        return datacursor.fetchone()[0]
+    except TypeError:
+        raise ValueError("data not found")
+
+def get_data(dataid):
+    cmd = """ SELECT data.data FROM data WHERE md5="%s" """ %(dataid)
+    datacursor.execute(cmd)
+    return zdecode(datacursor.fetchone()[0])
+
+def get_task_data(taskid, datatype):
+    cmd = """ SELECT data FROM task2data as t LEFT JOIN data AS d ON(d.md5 = t.md5) WHERE taskid="%s" AND t.datatype = "%s"
+        """ %(taskid, datatype)
+    datacursor.execute(cmd)
+    return zdecode(datacursor.fetchone()[0])
+
+def task_is_saved(taskid):
+    cmd = """ SELECT status FROM task WHERE taskid="%s" """ %taskid
+    datacursor.execute(cmd)
+    try:
+        st = datacursor.fetchone()[0]
+    except TypeError:
+        return False
+    else:
+        return True if st =="D" else False
+
+def add_task_data(taskid, datatype, data, duplicates="OR IGNORE"):
+    data_id = md5(str(data))
+    cmd = """ INSERT %s INTO task (taskid, status) VALUES
+    ("%s", "D") """ %(duplicates, taskid)
+    datacursor.execute(cmd)
+
+    cmd = """ INSERT %s INTO task2data (taskid, datatype, md5) VALUES
+    ("%s", "%s", "%s") """ %(duplicates, taskid, datatype, data_id)
+    datacursor.execute(cmd)
+    cmd = """ INSERT %s INTO data (md5, data) VALUES
+    ("%s", "%s") """ %(duplicates, data_id, zencode(data, data_id))
+    datacursor.execute(cmd)
+    autocommit()
+    return data_id
+
+def register_task_data(taskid, datatype, data_id, duplicates="OR IGNORE"):
+    cmd = """ INSERT %s INTO task2data (taskid, datatype, md5) VALUES
+    ("%s", "%s", "%s") """ %(duplicates, taskid, datatype, data_id)
+    datacursor.execute(cmd)
+    autocommit()
+    return data_id
+
+
+def create_seq_db():
+    seq_table ='''
+    CREATE TABLE IF NOT EXISTS nt_seq(
+    seqid CHAR(10) PRIMARY KEY,
+    seq TEXT
+    );
+
+    CREATE TABLE IF NOT EXISTS aa_seq(
+    seqid CHAR(10) PRIMARY KEY,
+    seq TEXT
+    );
+
+    CREATE TABLE IF NOT EXISTS seqid2name(
+    seqid CHAR(32) PRIMARY KEY,
+    name VARCHAR(32)
+    );
+
+    CREATE TABLE IF NOT EXISTS species(
+      taxid VARCHAR(16) PRIMARY KEY,
+      size INT
+    );
+
+    CREATE INDEX IF NOT EXISTS i6 ON seqid2name(name);
+    '''
+    seqcursor.executescript(seq_table)
+    autocommit(seqconn)
+
+def create_db():
+    job_table = '''
+    CREATE TABLE IF NOT EXISTS node(
+    nodeid CHAR(32),
+    runid CHAR(32),
+    cladeid CHAR(32),
+    target_seqs TEXT,
+    out_seqs TEXT,
+    target_size INTEGER,
+    out_size INTEGER,
+    newick BLOB,
+    PRIMARY KEY (runid, nodeid)
+    );
+
+    CREATE TABLE IF NOT EXISTS task(
+    taskid CHAR(32) PRIMARY KEY,
+    nodeid CHAR(32),
+    parentid CHAR(32),
+    status CHAR(1),
+    type VARCHAR,
+    subtype VARCHAR,
+    name VARCHAR,
+    host VARCHAR,
+    pid VARCHAR,
+    cores INTEGER,
+    tm_start FLOAT,
+    tm_end FLOAT
+    );
+
+    CREATE TABLE IF NOT EXISTS runid2task(
+    runid CHAR(32),
+    taskid CHAR(32),
+    PRIMARY KEY(runid, taskid)
+    );
+
+
+    CREATE INDEX IF NOT EXISTS i1 ON task(host, status);
+    CREATE INDEX IF NOT EXISTS i2 ON task(nodeid, status);
+    CREATE INDEX IF NOT EXISTS i3 ON task(parentid, status);
+    CREATE INDEX IF NOT EXISTS i4 ON task(status, host, pid);
+    CREATE INDEX IF NOT EXISTS i5 ON node(runid, cladeid);
+
+'''
+    cursor.executescript(job_table)
+    autocommit()
+
+
+def add_task(tid, nid, parent=None, status=None, type=None, subtype=None,
+             name=None):
+    values = ','.join(['"%s"' % (v or "") for v in
+              [tid, nid, parent, status, type, subtype, name]])
+    cmd = ('INSERT OR REPLACE INTO task (taskid, nodeid, parentid, status,'
+           ' type, subtype, name) VALUES (%s);' %(values))
+    execute(cmd)
+    autocommit()
+
+def add_runid2task(runid, tid):
+    cmd = ('INSERT OR REPLACE INTO runid2task (runid, taskid)'
+           ' VALUES ("%s", "%s");' %(runid, tid))
+    execute(cmd)
+    autocommit()
+
+def get_runid_tasks(runid):
+
+    cmd = ('SELECT taskid FROM runid2task'
+           ' WHERE runid = "%s";' %(runid))
+    execute(cmd)
+    return [e[0] for e in cursor.fetchall()]
+
+
+def update_task(tid, **kargs):
+    if kargs:
+        values = ', '.join(['%s="%s"' %(k,v) for k,v in
+                       six.iteritems(kargs)])
+        cmd = 'UPDATE task SET %s where taskid="%s";' %(values, tid)
+        execute(cmd)
+        autocommit()
+
+def update_node(nid, runid, **kargs):
+    if kargs:
+        values = ', '.join(['%s="%s"' %(k,v) for k,v in
+                       six.iteritems(kargs)])
+        cmd = 'UPDATE node SET %s where nodeid="%s" AND runid="%s";' %\
+              (values, nid, runid)
+        execute(cmd)
+        autocommit()
+
+def get_last_task_status(tid):
+    cmd = 'SELECT status FROM task WHERE taskid="%s"' %(tid)
+    execute(cmd)
+    return cursor.fetchone()[0]
+
+def get_task_info(tid):
+    cmd = 'SELECT status, host, pid  FROM task WHERE taskid="%s"' %(tid)
+    execute(cmd)
+    values = cursor.fetchone()
+    if values:
+        keys = ["status", "host", "pid"]
+        return dict(list(zip(keys, values)))
+    else:
+        return {}
+
+def get_sge_tasks():
+    cmd = ('SELECT taskid, pid FROM task WHERE host="@sge" '
+           ' AND status IN ("Q", "R", "L");')
+    execute(cmd)
+    values = cursor.fetchall()
+    pid2jobs = defaultdict(list)
+    for tid, pid in values:
+        pid2jobs[pid].append(tid)
+    return pid2jobs
+
+def add_node(runid, nodeid, cladeid, targets, outgroups):
+    values = ','.join(['"%s"' % (v or "") for v in
+                       [nodeid, cladeid, encode(targets),
+                        encode(outgroups), len(targets),
+                        len(outgroups), runid]])
+    cmd = ('INSERT OR REPLACE INTO node (nodeid, cladeid, target_seqs, out_seqs,'
+           ' target_size, out_size, runid) VALUES (%s);' %(values))
+    execute(cmd)
+    autocommit()
+
+def get_cladeid(nodeid):
+    cmd = 'SELECT cladeid FROM node WHERE nodeid="%s"' %(nodeid)
+    execute(cmd)
+    return (cursor.fetchone() or [])[0]
+
+def get_node_info(threadid, nodeid):
+    cmd = ('SELECT cladeid, target_seqs, out_seqs FROM'
+           ' node WHERE runid="%s" AND nodeid="%s"' %(threadid,
+           nodeid))
+
+    execute(cmd)
+    cladeid, targets, outgroups = cursor.fetchone()
+    targets = decode(targets)
+    outgroups = decode(outgroups)
+    return cladeid, targets, outgroups
+
+def print_node_by_clade(threadid, cladeid):
+    cmd = ('SELECT nodeid, target_seqs, out_seqs, newick FROM'
+           ' node WHERE runid="%s" AND cladeid="%s"' %(threadid,
+           cladeid))
+
+    execute(cmd)
+    newicks = []
+    for nodeid, targets, outgroups, newick in cursor.fetchall():
+        targets = decode(targets)
+        outgroups = decode(outgroups)
+        if newick:
+            print(threadid, nodeid, len(targets), len(outgroups),len(decode(newick)))
+            return targets, outgroups
+        else:
+            print()
+
+def get_runid_nodes(runid):
+    cmd = ('SELECT cladeid, newick, target_size FROM node'
+           ' WHERE runid="%s" ORDER BY target_size DESC' %(runid))
+    execute(cmd)
+    return cursor.fetchall()
+
+def report(runid, filter_rules=None):
+    task_ids = get_runid_tasks(runid)
+    #filters = 'WHERE runid ="%s" AND taskid IN (%s) ' %(runid,
+    #                        ','.join(map(lambda x: '"%s"' %x, task_ids)))
+    # There is a single npr.db file per runid
+    filters = 'WHERE runid ="%s" ' %(runid)
+
+    if filter_rules:
+        custom_filter = ' AND '.join(filter_rules)
+        filters += " AND " + custom_filter
+    cmd = ('SELECT task.taskid, task.nodeid, task.parentid, node.cladeid, task.status, type, subtype, name,'
+           ' target_size, out_size, tm_end-tm_start, tm_start, tm_end FROM task '
+           ' LEFT JOIN node ON task.nodeid = node.nodeid %s ' %filters)
+    #ORDER BY task.status ASC,target_size DESC;
+    execute(cmd)
+    report = cursor.fetchall()
+    return report
+
+def add_seq_name(seqid, name):
+    cmd = ('INSERT OR REPLACE INTO seqid2name (seqid, name)'
+           ' VALUES ("%s", "%s");' %(seqid, name))
+    execute(cmd, seqcursor)
+    autocommit()
+
+def add_seq_name_table(entries):
+    cmd = 'INSERT OR REPLACE INTO seqid2name (seqid, name) VALUES (?, ?)'
+    seqcursor.executemany(cmd, entries)
+    autocommit()
+
+def get_seq_name(seqid):
+    cmd = 'SELECT name FROM seqid2name WHERE seqid="%s"' %seqid
+    execute(cmd, seqcursor)
+    return (seqcursor.fetchone() or [seqid])[0]
+
+def get_seq_name_dict():
+    cmd = 'SELECT name, seqid FROM seqid2name'
+    execute(cmd, seqcursor)
+    return dict(seqcursor.fetchall())
+
+    
+def get_all_seq_names():
+    cmd = 'SELECT name FROM seqid2name'
+    execute(cmd, seqcursor)
+    return set([name[0] for name in seqcursor.fetchall()])
+
+def translate_names(names):
+    name_string = ",".join(['"%s"'%x for x in names])
+    cmd = 'SELECT name, seqid FROM seqid2name WHERE name in (%s);' %name_string
+    execute(cmd, seqcursor)
+    return dict(seqcursor.fetchall())
+
+def get_all_seqids(seqtype):
+    cmd = 'SELECT seqid FROM %s_seq;' %seqtype
+    execute(cmd, seqcursor)
+    seqids = set()
+    for sid in seqcursor.fetchall():
+        seqids.add(sid[0])
+    return seqids
+
+def add_seq(seqid, seq, seqtype):
+    cmd = 'INSERT OR REPLACE INTO %s_seq (seqid, seq) VALUES ("%s", "%s")' %(seqtype, seqid, seq)
+    execute(cmd, seqcursor)
+    autocommit(seqconn)
+
+def add_seq_table(entries, seqtype):
+    cmd = 'INSERT OR REPLACE INTO %s_seq (seqid, seq) VALUES (?, ?)' %seqtype
+    seqcursor.executemany(cmd, entries)
+    autocommit(seqconn)
+
+def get_seq(seqid, seqtype):
+    cmd = 'SELECT seq FROM %s_seq WHERE seqid = "%s";' %(seqtype, seqid)
+    execute(cmd, seqcursor)
+    return seqcursor.fetchone()[0]
+
+    
+def get_seq_species():
+    cmd = 'SELECT DISTINCT taxid FROM species;'
+    execute(cmd, seqcursor)
+    species = set([name[0] for name in seqcursor.fetchall()])
+    return species
+
+def add_seq_species(species):
+    cmd = 'INSERT OR REPLACE INTO species (taxid, size) VALUES (?, ?)'
+    seqcursor.executemany(cmd, [[sp, counter] for sp, counter in
+                                six.iteritems(species)])
+    autocommit()
+
+
+def get_all_task_states():
+    cmd = 'SELECT status FROM task'
+    execute(cmd)
+    return [v[0] for v in cursor.fetchall()]
+
+def execute(cmd, dbcursor=None):
+    if not dbcursor:
+        dbcursor = cursor
+    for retry in range(10):
+        try:
+            s = dbcursor.execute(cmd)
+        except sqlite3.OperationalError as e:
+            log.warning(e)
+            if retry > 1:
+                raise
+            time.sleep(1)
+            retry +=1
+        else:
+            return s
+
+def commit(dbconn=None):
+    if not dbconn:
+        dbconn = conn
+    conn.commit()
+
diff --git a/ete3/tools/phylobuild_lib/errors.py b/ete3/tools/phylobuild_lib/errors.py
new file mode 100644
index 0000000..dc7bff5
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/errors.py
@@ -0,0 +1,67 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+class ConfigError(ValueError):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        # return repr(self.value)
+        return self.value
+
+
+class DataError(ValueError):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        # return repr(self.value)
+        return self.value
+
+class TaskError(ValueError):
+    def __init__(self, value, msg=""):
+        self.value = value
+        self.msg = msg
+    def __str__(self):
+        return str(self.msg)
+
+class SgeError(ValueError):
+    def __init__(self, value):
+        self.value = value
+    def __str__(self):
+        # return repr(self.value)
+        return self.value
+
diff --git a/ete3/tools/phylobuild_lib/getch.py b/ete3/tools/phylobuild_lib/getch.py
new file mode 100644
index 0000000..e12716e
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/getch.py
@@ -0,0 +1,108 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+class Getch:
+    """Gets a single character from standard input.  Does not echo to the
+    screen."""
+    def __init__(self):
+        try:
+            self.impl = _GetchWindows()
+        except ImportError:
+            try:
+                self.impl = _GetchUnix()
+            except ImportError:
+                self.impl = _GetchMacCarbon()
+
+    def __call__(self):
+        try:
+            return self.impl()
+        except IOError:
+            return None
+
+
+class _GetchUnix:
+    def __init__(self):
+        import tty, sys, termios # import termios now or else you'll get the Unix version on the Mac
+
+    def __call__(self):
+        import sys, tty, termios
+        fd = sys.stdin.fileno()
+        old_settings = termios.tcgetattr(fd)
+        try:
+            tty.setraw(sys.stdin.fileno())
+            ch = sys.stdin.read(1)
+        finally:
+            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
+        return ch
+
+class _GetchWindows:
+    def __init__(self):
+        import msvcrt
+
+    def __call__(self):
+        import msvcrt
+        return msvcrt.getch()
+
+
+class _GetchMacCarbon:
+    """
+    A function which returns the current ASCII key that is down;
+    if no ASCII key is down, the null string is returned.  The
+    page http://www.mactech.com/macintosh-c/chap02-1.html was
+    very helpful in figuring out how to do this.
+    """
+    def __init__(self):
+        import Carbon
+
+    def __call__(self):
+        import Carbon
+        if Carbon.Evt.EventAvail(0x0008)[0]==0: # 0x0008 is the keyDownMask
+            return ''
+        else:
+            #
+            # The event contains the following info:
+            # (what,msg,when,where,mod)=Carbon.Evt.GetNextEvent(0x0008)[1]
+            #
+            # The message (msg) contains the ASCII char which is
+            # extracted with the 0x000000FF charCodeMask; this
+            # number is converted to an ASCII character with chr() and
+            # returned
+            #
+            (what,msg,when,where,mod)=Carbon.Evt.GetNextEvent(0x0008)[1]
+            return chr(msg)
diff --git a/ete3/tools/phylobuild_lib/interface.py b/ete3/tools/phylobuild_lib/interface.py
new file mode 100644
index 0000000..7cd2dc4
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/interface.py
@@ -0,0 +1,529 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import os
+import re
+import time
+
+from signal import signal, SIGWINCH, SIGKILL, SIGTERM
+from collections import deque
+from textwrap import TextWrapper
+
+import six.moves.queue
+import threading
+
+from .logger import get_main_log
+from .utils import GLOBALS, clear_tempdir, terminate_job_launcher, pjoin, pexist
+from .errors import *
+import six
+from six import StringIO
+
+MAIN_LOG = False
+
+# try:
+#     import curses
+# except ImportError:
+#     NCURSES = False
+# else:
+#     NCURSES = True
+NCURSES = False
+
+# CONVERT shell colors to the same curses palette
+SHELL_COLORS = {
+    "10": '\033[1;37;41m', # white on red
+    "11": '\033[1;37;43m', # white on orange
+    "12": '\033[1;37;45m', # white on magenta
+    "16": '\033[1;37;46m', # white on blue
+    "13": '\033[1;37;40m', # black on white
+    "06": '\033[1;34m', # light blue
+    "05": '\033[1;31m', # light red
+    "03": '\033[1;32m', # light green
+    "8": '\033[1;33m', # yellow
+    "7": '\033[36m', # cyan
+    "6": '\033[34m', # blue
+    "3": '\033[32m', # green
+    "4": '\033[33m', # orange
+    "5": '\033[31m', # red
+    "2": "\033[35m", # magenta
+    "1": "\033[0m", # white
+    "0": "\033[0m", # end
+}
+
+def safe_int(x):
+    try:
+        return int(x)
+    except TypeError:
+        return x
+
+def shell_colorify_match(match):
+    return SHELL_COLORS[match.groups()[2]]
+
+class ExcThread(threading.Thread):
+    def __init__(self, bucket, *args, **kargs):
+        threading.Thread.__init__(self, *args, **kargs)
+        self.bucket = bucket
+
+    def run(self):
+        try:
+            threading.Thread.run(self)
+        except Exception:
+            self.bucket.put(sys.exc_info())
+            raise
+
+class Screen(StringIO):
+    # tags used to control color of strings and select buffer
+    TAG = re.compile("@@((\d+),)?(\d+):", re.MULTILINE)
+    def __init__(self, windows):
+        StringIO.__init__(self)
+        self.windows = windows
+        self.autoscroll = {}
+        self.pos = {}
+        self.lines = {}
+        self.maxsize = {}
+        self.stdout = None
+        self.logfile = None
+        self.wrapper = TextWrapper(width=80, initial_indent="",
+                                   subsequent_indent="         ",
+                                   replace_whitespace=False)
+
+
+        if NCURSES:
+            for windex in windows:
+                h, w = windows[windex][0].getmaxyx()
+                self.maxsize[windex] = (h, w)
+                self.pos[windex] = [0, 0]
+                self.autoscroll[windex] = True
+                self.lines[windex] = 0
+
+    def scroll(self, win, vt, hz=0, refresh=True):
+        line, col = self.pos[win]
+
+        hz_pos = col + hz
+        if hz_pos < 0:
+            hz_pos = 0
+        elif hz_pos >= 1000:
+            hz_pos = 999
+
+        vt_pos = line + vt
+        if vt_pos < 0:
+            vt_pos = 0
+        elif vt_pos >= 1000:
+            vt_pos = 1000 - 1
+
+        if line != vt_pos or col != hz_pos:
+            self.pos[win] = [vt_pos, hz_pos]
+            if refresh:
+                self.refresh()
+
+    def scroll_to(self, win, vt, hz=0, refresh=True):
+        line, col = self.pos[win]
+
+        hz_pos = hz
+        if hz_pos < 0:
+            hz_pos = 0
+        elif hz_pos >= 1000:
+            hz_pos = 999
+
+        vt_pos = vt
+        if vt_pos < 0:
+            vt_pos = 0
+        elif vt_pos >= 1000:
+            vt_pos = 1000 - 1
+
+        if line != vt_pos or col != hz_pos:
+            self.pos[win] = [vt_pos, hz_pos]
+            if refresh:
+                self.refresh()
+
+    def refresh(self):
+        for windex, (win, dim) in six.iteritems(self.windows):
+            h, w, sy, sx = dim
+            line, col = self.pos[windex]
+            if h is not None:
+                win.touchwin()
+                win.noutrefresh(line, col, sy+1, sx+1, sy+h-2, sx+w-2)
+            else:
+                win.noutrefresh()
+        curses.doupdate()
+
+    def write(self, text):
+        if six.PY3:
+            text = str(text)
+        else:
+            if isinstance(text, six.text_type):
+                #text = text.encode(self.stdout.encoding)
+                text = text.encode("UTF-8")
+        
+        if NCURSES:
+            self.write_curses(text)
+            if self.logfile:
+                text = re.sub(self.TAG, "", text)
+                self.write_log(text)
+        else:
+            if GLOBALS["color_shell"]:
+                text = re.sub(self.TAG, shell_colorify_match, text)
+            else:
+                text = re.sub(self.TAG, "", text)
+
+            self.write_normal(text)
+            if self.logfile:
+                self.write_log(text)
+
+    def write_log(self, text):
+        self.logfile.write(text)
+        self.logfile.flush()
+
+    def write_normal(self, text):
+        #_text = '\n'.join(self.wrapper.wrap(text))
+        #self.stdout.write(_text+"\n")
+        self.stdout.write(text)
+
+    def write_curses(self, text):
+        formatstr = deque()
+        for m in re.finditer(self.TAG, text):
+            x1, x2  = m.span()
+            cindex = safe_int(m.groups()[2])
+            windex = safe_int(m.groups()[1])
+            formatstr.append([x1, x2, cindex, windex])
+        if not formatstr:
+            formatstr.append([None, 0, 1, 1])
+
+        if formatstr[0][1] == 0:
+            stop, start, cindex, windex = formatstr.popleft()
+            if windex is None:
+                windex = 1
+        else:
+            stop, start, cindex, windex = None, 0, 1, 1
+
+        while start is not None:
+            if formatstr:
+                next_stop, next_start, next_cindex, next_windex = formatstr.popleft()
+            else:
+                next_stop, next_start, next_cindex, next_windex = None, None, cindex, windex
+
+            face = curses.color_pair(cindex)
+            win, (h, w, sy, sx) = self.windows[windex]
+            ln, cn = self.pos[windex]
+            # Is this too inefficient?
+            new_lines = text[start:next_stop].count("\n")
+            self.lines[windex] += new_lines
+            if self.lines[windex] > self.maxsize[windex]:
+                _y, _x = win.getyx()
+
+                for _i in self.lines[windex]-self.maxsize(windex):
+                    win.move(0,0)
+                    win.deleteln()
+                win.move(_y, _x)
+
+            # Visual scroll
+            if self.autoscroll[windex]:
+                scroll = self.lines[windex] - ln - h
+                if scroll > 0:
+                    self.scroll(windex, scroll, refresh=False)
+
+            try:
+                win.addstr(text[start:next_stop], face)
+            except curses.error:
+                win.addstr("???")
+
+            start = next_start
+            stop = next_stop
+            cindex = next_cindex
+            if next_windex is not None:
+                windex = next_windex
+
+        self.refresh()
+
+    def resize_screen(self, s, frame):
+
+        import sys,fcntl,termios,struct
+        data = fcntl.ioctl(self.stdout.fileno(), termios.TIOCGWINSZ, '1234')
+        h, w = struct.unpack('hh', data)
+
+        win = self.windows
+        #main = curses.initscr()
+        #h, w = main.getmaxyx()
+        #win[0] = (main, (None, None, 0, 0))
+        #curses.resizeterm(h, w)
+
+        win[0][0].resize(h, w)
+        win[0][0].clear()
+        info_win, error_win, debug_win = setup_layout(h, w)
+        win[1][1] = info_win
+        win[2][1] = error_win
+        win[3][1] = debug_win
+        self.refresh()
+
+def init_curses(main_scr):
+    if not NCURSES or not main_scr:
+        # curses disabled, no multi windows
+        return None
+
+    # Colors
+    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)
+    curses.init_pair(2, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
+    curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK)
+    curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK)
+    curses.init_pair(5, curses.COLOR_RED, curses.COLOR_BLACK)
+    curses.init_pair(6, curses.COLOR_RED, curses.COLOR_BLACK)
+    curses.init_pair(10, curses.COLOR_WHITE, curses.COLOR_RED)
+    curses.init_pair(11, curses.COLOR_WHITE, curses.COLOR_YELLOW)
+    curses.init_pair(12, curses.COLOR_WHITE, curses.COLOR_MAGENTA)
+
+    WIN = {}
+    main = main_scr
+    h, w = main.getmaxyx()
+    WIN[0] = (main, (None, None, 0, 0))
+
+    # Creates layout
+    info_win, error_win, debug_win = setup_layout(h, w)
+
+    WIN[1] = [curses.newpad(5000, 1000), info_win]
+    WIN[2] = [curses.newpad(5000, 1000), error_win]
+    WIN[3] = [curses.newpad(5000, 1000), debug_win]
+
+
+    #WIN[1], WIN[11] = newwin(h-1, w/2, 1,1)
+    #WIN[2], WIN[12] = newwin(h-dbg_h-1, (w/2)-1, 1, (w/2)+2)
+    #WIN[3], WIN[13] = newwin(dbg_h-1, (w/2)-1, h-dbg_h+1, (w/2)+2)
+
+    for windex, (w, dim) in six.iteritems(WIN):
+        #w = WIN[i]
+        #w.bkgd(str(windex))
+        w.bkgd(" ")
+        w.keypad(1)
+        w.idlok(True)
+        w.scrollok(True)
+    return WIN
+
+def clear_env():
+    try:
+        terminate_job_launcher()
+    except:
+        pass
+
+    base_dir = GLOBALS["basedir"]
+    lock_file = pjoin(base_dir, "alive")
+    try:
+        os.remove(lock_file)
+    except Exception:
+        print("could not remove lock file %s" %lock_file, file=sys.stderr)
+
+    clear_tempdir()
+
+def app_wrapper(func, args):
+    global NCURSES
+    base_dir = GLOBALS.get("scratch_dir", GLOBALS["basedir"])
+    lock_file = pjoin(base_dir, "alive")
+
+    if not args.enable_ui:
+        NCURSES = False
+
+    if not pexist(lock_file) or args.clearall:
+        open(lock_file, "w").write(time.ctime())
+    else:
+        clear_env()
+        print('\nThe same process seems to be running. Use --clearall or remove the lock file "alive" within the output dir', file=sys.stderr)
+        sys.exit(-1)
+
+    try:
+        if NCURSES:
+            curses.wrapper(main, func, args)
+        else:
+            main(None, func, args)
+    except ConfigError as e:
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+
+        print("\nConfiguration Error:", e, file=sys.stderr)
+        clear_env()
+        sys.exit(-1)
+    except DataError as e:
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+
+        print("\nData Error:", e, file=sys.stderr)
+        clear_env()
+        sys.exit(-1)
+    except KeyboardInterrupt:
+        # Control-C is also grabbed by the back_launcher, so it is no necessary
+        # to terminate from here
+        print("\nProgram was interrupted.", file=sys.stderr)
+        if args.monitor:
+            print(("VERY IMPORTANT !!!: Note that launched"
+                                 " jobs will keep running as you provided the --monitor flag"), file=sys.stderr)
+        clear_env()
+        sys.exit(-1)
+    except:
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+
+        clear_env()
+        raise
+    else:
+        if GLOBALS.get('_background_scheduler', None):
+            GLOBALS['_background_scheduler'].terminate()
+
+        clear_env()
+
+
+def main(main_screen, func, args):
+    """ Init logging and Screen. Then call main function """
+    global MAIN_LOG
+    # Do I use ncurses or basic terminal interface?
+    screen = Screen(init_curses(main_screen))
+
+    # prints are handled by my Screen object
+    screen.stdout = sys.stdout    
+    if args.logfile:
+        screen.logfile = open(os.path.join(GLOBALS["basedir"], "npr.log"), "w")
+    sys.stdout = screen
+    sys.stderr = screen
+
+    # Start logger, pointing to the selected screen
+    if not MAIN_LOG:
+        MAIN_LOG = True
+        log = get_main_log(screen, [28,26,24,22,20,10][args.verbosity])
+
+    # Call main function as lower thread
+    if NCURSES:
+        screen.refresh()
+        exceptions = six.moves.queue.Queue()
+        t = ExcThread(bucket=exceptions, target=func, args=[args])
+        t.daemon = True
+        t.start()
+        ln = 0
+        chars = "\\|/-\\|/-"
+        cbuff = 1
+        try:
+            while 1:
+                try:
+                    exc = exceptions.get(block=False)
+                except six.moves.queue.Empty:
+                    pass
+                else:
+                    exc_type, exc_obj, exc_trace = exc
+                    # deal with the exception
+                    #print exc_trace, exc_type, exc_obj
+                    raise exc_obj
+
+                mwin = screen.windows[0][0]
+                key = mwin.getch()
+                mwin.addstr(0, 0, "%s (%s) (%s) (%s)" %(key, screen.pos, ["%s %s" %(i,w[1]) for i,w in list(screen.windows.items())], screen.lines) + " "*50)
+                mwin.refresh()
+                if key == 113:
+                    # Fixes the problem of prints without newline char
+                    raise KeyboardInterrupt("Q Pressed")
+                if key == 9:
+                    cbuff += 1
+                    if cbuff>3:
+                        cbuff = 1
+                elif key == curses.KEY_UP:
+                    screen.scroll(cbuff, -1)
+                elif key == curses.KEY_DOWN:
+                    screen.scroll(cbuff, 1)
+                elif key == curses.KEY_LEFT:
+                    screen.scroll(cbuff, 0, -1)
+                elif key == curses.KEY_RIGHT:
+                    screen.scroll(cbuff, 0, 1)
+                elif key == curses.KEY_NPAGE:
+                    screen.scroll(cbuff, 10)
+                elif key == curses.KEY_PPAGE:
+                    screen.scroll(cbuff, -10)
+                elif key == curses.KEY_END:
+                    screen.scroll_to(cbuff, 999, 0)
+                elif key == curses.KEY_HOME:
+                    screen.scroll_to(cbuff, 0, 0)
+                elif key == curses.KEY_RESIZE:
+                    screen.resize_screen(None, None)
+                else:
+                    pass
+        except:
+            # fixes the problem of restoring screen when last print
+            # did not contain a newline char. WTF!
+            print("\n")
+            raise
+
+        #while 1:
+        #    if ln >= len(chars):
+        #        ln = 0
+        #    #screen.windows[0].addstr(0,0, chars[ln])
+        #    #screen.windows[0].refresh()
+        #    time.sleep(0.2)
+        #    ln += 1
+    else:
+        func(args)
+
+def setup_layout(h, w):
+    # Creates layout
+    header = 4
+
+    start_x = 0
+    start_y = header
+    h -= start_y
+    w -= start_x
+
+    h1 = h/2 + h%2
+    h2 = h/2
+    if w > 160:
+        #  _______
+        # |   |___|
+        # |___|___|
+        w1 = w/2 + w%2
+        w2 = w/2
+        info_win = [h, w1, start_y, start_x]
+        error_win = [h1, w2, start_y, w1]
+        debug_win = [h2, w2, h1, w1]
+    else:
+        #  ___
+        # |___|
+        # |___|
+        # |___|
+        h2a = h2/2 + h2%2
+        h2b = h2/2
+        info_win = [h1, w, start_y, start_x]
+        error_win = [h2a, w, h1, start_x]
+        debug_win = [h2b, w, h1+h2a, start_x]
+
+    return info_win, error_win, debug_win
+
+
diff --git a/ete3/tools/phylobuild_lib/logger.py b/ete3/tools/phylobuild_lib/logger.py
new file mode 100644
index 0000000..6958399
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/logger.py
@@ -0,0 +1,82 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import logging
+
+__LOGINDENT__ = 0
+
+class IndentedFormatter(logging.Formatter):
+    def __init__( self, fmt=None, datefmt=None ):
+        logging.Formatter.__init__(self, fmt, datefmt)
+
+    def format(self, rec ):
+        rec.indent = ' ' * __LOGINDENT__
+        out = logging.Formatter.format(self, rec)
+        return out
+
+def set_logindent(x):
+    global __LOGINDENT__
+    __LOGINDENT__ = x
+
+def logindent(x):
+    global __LOGINDENT__
+    __LOGINDENT__ += x
+
+def get_logindent():
+    return __LOGINDENT__
+
+def get_main_log(handler, level=20):
+    # Prepares main log
+    log = logging.getLogger("main")
+    log.setLevel(level)
+    lformat = IndentedFormatter("%(levelname) 4s@@1: - %(indent)s %(message)s")
+    logging.addLevelName(10, "@@3,12:DEBUG")
+    logging.addLevelName(20, "@@1,3:INFO")
+    logging.addLevelName(22, "@@1,3:INFO")
+    logging.addLevelName(24, "@@1,3:INFO")
+    logging.addLevelName(26, "@@1,3:INFO")
+    logging.addLevelName(28, "@@1,3:INFO")
+    logging.addLevelName(30, "@@2,11:WRNG")
+    logging.addLevelName(40, "@@2,10:ERR ")
+    logging.addLevelName(50, "@@2,10:DISASTER")
+    log_handler = logging.StreamHandler(handler)
+    log_handler.setFormatter(lformat)
+    log.addHandler(log_handler)
+    return log
+
diff --git a/ete3/tools/phylobuild_lib/master_job.py b/ete3/tools/phylobuild_lib/master_job.py
new file mode 100644
index 0000000..61e73fb
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/master_job.py
@@ -0,0 +1,228 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import shutil
+import re
+#from . import sge
+from . import db
+import logging
+import six
+from six.moves import map
+log = logging.getLogger("main")
+
+from .utils import (md5, basename, pid_up, HOSTNAME,
+                    GLOBALS, TIME_FORMAT, pjoin)
+
+class Job(object):
+    ''' A generic program launcher.
+
+    A job is executed and monitored. Execution time, standard output
+    and error are tracked into log files. The final status of the
+    application is also logged. Possible status for process status are
+    (W)aiting, (R)unning, (E)rror and (D)one.
+
+    Each job generates the following info files:
+
+      self.status_file = join(self.jobdir, "__status__")
+      self.time_file = join(self.jobdir, "__time__")
+      self.stdout_file = join(self.jobdir, "__stdout__")
+      self.stderr_file = join(self.jobdir, "__stderr__")
+      self.pid_file = join(self.jobdir, "__pid__")
+
+    In addition, job launching command is stored in:
+
+      self.cmd_file = join(self.jobdir, "__cmd__")
+
+    '''
+    def __repr__(self):
+        return "Job (%s, %s)" %(self.jobname, self.jobid[:6])
+
+    def __init__(self, bin, args, jobname=None, parent_ids=None):
+        # Used at execution time
+        self.status = None
+        # How to run the app
+        self.bin = bin
+        # command line arguments
+        self.args = args
+        # Default number of cores used by the job. If more than 1,
+        # this attribute should be changed
+        self.cores = 1
+        self.exec_type = "insitu"
+        self.jobname = jobname
+
+        # generates the unique job identifier based on the params of
+        # the app. Some params include path names that can prevent
+        # recycling the job, so a clean it.
+        clean = lambda x: basename(x) if GLOBALS["basedir"] in x or GLOBALS["tasks_dir"] in x else x
+        parsed_id_string = ["%s %s" %(clean(str(pair[0])), clean(str(pair[1])))
+                            for pair in six.iteritems(self.args)]
+        #print '\n'.join(map(str, self.args.items()))
+
+        self.jobid = md5(','.join(sorted([md5(e) for e in
+                                          parsed_id_string])))
+        # self.jobid = md5(','.join(sorted([md5(str(pair)) for pair in
+        #                                  self.args.iteritems()])))
+        if parent_ids:
+            self.jobid = md5(','.join(sorted(parent_ids+[self.jobid])))
+
+        if not self.jobname:
+            self.jobname = re.sub("[^0-9a-zA-Z]", "-", basename(self.bin))
+
+        self.ifdone_cmd = ""
+        self.iffail_cmd = ""
+        self.set_jobdir(pjoin(GLOBALS["tasks_dir"], self.jobid))
+        self.input_files = {}
+        self.dependencies = set()
+
+    def add_input_file(self, ifile, outpath = None):
+        self.input_files[ifile] = outpath
+
+    def set_jobdir(self, basepath):
+        ''' Initialize the base path for all info files associated to
+        the job. '''
+        #self.jobdir = os.path.join(basepath, self.jobid)
+        #jobname = "%s_%s" %(basename(self.bin), self.jobid[:6])
+        #jobname = re.sub("[^0-9a-zA-Z]", "-",jobname)
+        #self.jobdir = os.path.join(basepath, "%s_%s" %\
+        #                               (self.jobname, self.jobid[:6]))
+
+        self.jobdir = basepath
+        #if not os.path.exists(self.jobdir):
+        #    os.makedirs(self.jobdir)
+        self.status_file = os.path.join(self.jobdir, "__status__")
+        self.time_file = os.path.join(self.jobdir, "__time__")
+        self.cmd_file = os.path.join(self.jobdir, "__cmd__")
+        self.stdout_file = os.path.join(self.jobdir, "__stdout__")
+        self.stderr_file = os.path.join(self.jobdir, "__stderr__")
+        self.pid_file = os.path.join(self.jobdir, "__pid__")
+
+    def write_pid(self, host, pid):
+        open(self.pid_file,"w").write("%s\t%s" %(host, pid))
+
+    def read_pid(self):
+        try:
+           host, pid = [_f.strip() for _f in 
+                        open(self.pid_file,"rU").readline().split("\t")]
+        except IOError:
+            host, pid = "", ""
+        else:
+            pid = int(pid)
+
+        return host, pid
+
+    def get_launch_cmd(self):
+        return ' '.join([self.bin] + ["%s %s" %(k,v) for k,v in six.iteritems(self.args) if v is not None])
+
+    def dump_script(self):
+        ''' Generates the shell script launching the job. '''
+
+        launch_cmd = self.get_launch_cmd()
+        lines = [
+            "#!/bin/sh",
+            " (echo R > %s && date +'%s' > %s) &&" %(self.status_file,
+                                                     TIME_FORMAT,
+                                                     self.time_file),
+            " (cd %s && %s && (echo D > %s; %s) || (echo E > %s; %s));" %\
+                (self.jobdir, launch_cmd,  self.status_file, self.ifdone_cmd,
+                 self.status_file, self.iffail_cmd),
+            " date +'%s' >> %s; " %(TIME_FORMAT, self.time_file),
+            ]
+        script = '\n'.join(lines)
+        if not os.path.exists(self.jobdir):
+            os.makedirs(self.jobdir)
+        open(self.cmd_file, "w").write(script)
+
+    def get_status(self, sge_jobs=None):
+        # Finished status:
+        #  E.rror
+        #  D.one
+        # In execution status:
+        #  W.ating
+        #  Q.ueued
+        #  R.unning
+        #  L.ost
+        if self.status not in set("DE"):
+            jinfo = db.get_task_info(self.jobid)
+            self.host = jinfo.get("host", None) or ""
+            self.pid = jinfo.get("pid", None) or ""
+            saved_status = jinfo.get("status", "W")
+
+            try:
+                st = open(self.status_file).read(1)
+            except IOError:
+                st = saved_status
+
+            # If this is in execution, tries to track the job
+            if st in set("QRL"):
+                if self.host.startswith("@sge"):
+                    sge_st = sge_jobs.get(self.pid, {}).get("state", None)
+                    log.debug("%s %s", self, sge_st)
+                    if not sge_st:
+                        log.debug("%s %s %s", self, sge_st, self.pid)
+                        st = "L"
+                    elif "E" in sge_st:
+                        pass
+                elif self.host == HOSTNAME and not pid_up(self.pid):
+                    st = "L"
+            elif st == "E":
+                log.error("Job error reported: %s" %self)
+            elif st == "":
+                st = "L"
+
+            # if this is the first time this job is checked and has an error
+            # state saved from prev runs, retry if necessary
+            if (st == "E" and self.status is None):
+                log.warning('@@3:Retrying job marked as error from previous executions.@@1:')
+                self.status = 'W'
+                try:
+                    st = open(self.status_file, "w").write("W")
+                except IOError:
+                    pass
+            else:
+                self.status = st
+
+        return self.status
+
+    def clean(self):
+        if os.path.exists(self.jobdir):
+            shutil.rmtree(self.jobdir)
+        self.status = "W"
+
+
diff --git a/ete3/tools/phylobuild_lib/master_task.py b/ete3/tools/phylobuild_lib/master_task.py
new file mode 100644
index 0000000..e3c8ecd
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/master_task.py
@@ -0,0 +1,631 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import logging
+import traceback
+import six
+log = logging.getLogger("main")
+from collections import defaultdict
+
+from .logger import logindent
+from .utils import (md5, merge_arg_dicts, PhyloTree, SeqGroup,
+                          checksum, read_time_file, generate_runid,
+                          GLOBALS, DATATYPES)
+from .master_job import Job
+from .errors import TaskError
+from . import db
+import shutil
+
+isjob = lambda j: isinstance(j, Job)
+istask = lambda j: isinstance(j, Task)
+
+def thread_name(task):
+    tid = getattr(task, "threadid", None)
+    if hasattr(task, 'target_wkname'):
+        name = getattr(task, 'target_wkname')
+    else:
+        name = GLOBALS.get(tid, {}).get("_name", "?")
+
+    if GLOBALS.get('verbosity', 4) < 2:
+        if len(name)>23:
+            name = "%s...%s" %(name[:10], name[-10:])
+    return "@@13:%s@@1:" %name
+
+def genetree_class_repr(cls, cls_name):
+    """ Human readable representation of NPR genetree tasks."""
+    return "%s (%s %s seqs, %s, %s/%s)" %\
+        (cls_name, getattr(cls, "size", None) or "", getattr(cls, "seqtype", None) or 0,
+         cls.tname,
+         "", #(getattr(cls, "taskid", None) or "?")[:6],
+         thread_name(cls))
+
+def sptree_class_repr(cls, cls_name):
+    """ Human readable representation of NPR sptree tasks."""
+    return "%s (%s species, %s, %s/%s)" %\
+        (cls_name,
+         getattr(cls, "size", None) or 0,
+         cls.tname,
+         "", #(getattr(cls, "taskid", None) or "?")[:6],
+         thread_name(cls))
+
+def concatalg_class_repr(cls, cls_name):
+    """ Human readable representation of NPR  concat alg tasks."""
+    return "%s (%s species, %s COGs, %s, %s/%s)" %\
+        (cls_name, getattr(cls, "size", None) or 0,
+         getattr(cls, "used_cogs", None) or "?",
+         cls.tname,
+         "", #(getattr(cls, "taskid", None) or "?")[:6],
+         thread_name(cls))
+
+def generic_class_repr(cls, cls_name):
+    """ Human readable representation of NPR sptree tasks."""
+    return "%s (%s %s seqs, %s, %s/%s)" %\
+        (cls_name, getattr(cls, "size", None) or 0, getattr(cls, "seqtype", None) or "",
+         cls.tname,
+         "", #(getattr(cls, "taskid", None) or "?")[:6],
+         thread_name(cls))
+
+class Task(object):
+    def _get_max_cores(self):
+        return max([j.cores for j in self.jobs]) or 1
+
+    cores = property(_get_max_cores,None)
+
+    def __repr__(self):
+        return generic_class_repr(self, "Task")
+
+    def print_summary(self):
+        print("Type:", self.ttype)
+        print("Name:", self.tname)
+        print("Id:", self.taskid)
+        print("Dir:", self.taskdir)
+        print("Jobs", len(self.jobs))
+        print("Status", self.status)
+        for tag, value in six.iteritems(self.args):
+            print(tag,":", value)
+
+    def __init__(self, nodeid, task_type, task_name, base_args=None,
+                 extra_args=None):
+
+        if not base_args: base_args = {}
+        if not extra_args: extra_args = {}
+
+        self.taskid = None
+
+        # This define which task-processor should be used
+        # (i.e. genetree, sptree).
+        self.task_processor = None
+
+        # Nodeid is used to identify the tree node associated with
+        # the task. It is calculated as a hash string based on the
+        # list of sequence IDs grouped by the node.
+        self.nodeid = nodeid
+
+        # task type: "alg|tree|acleaner|mchooser|etc."
+        self.ttype = task_type
+
+        # Used only to name directories and identify task in log
+        # messages
+        self.tname = task_name
+
+        # Path to the file containing task status: (D)one, (R)unning
+        # or (W)aiting or (Un)Finished
+        #self.status_file = None
+        #self.inkey_file = None
+        #self.info_file = None
+        self.status = "W"
+        self.all_status = None
+
+        # keeps a counter of how many cores are being used by running jobs
+        self.cores_used = 0
+
+        self.job_status = {}
+
+        # Set arguments that could be sent to jobs
+        self.args = merge_arg_dicts(extra_args, base_args, parent=self)
+
+        # extract all internal config values associated to this task
+        # and generate its unique id (later used to generate taskid)
+        self._config_id = md5(','.join(sorted(["%s %s" %(str(pair[0]),str(pair[1])) for pair in
+                                       six.iteritems(extra_args) if pair[0].startswith("_")])))
+        self.dependencies = set()
+
+    def get_status(self, sge_jobs=None):
+        # If another tasks with the same id (same work to be done) has
+        # been checked in the same cycle, reuse its information
+        if self.taskid in GLOBALS["cached_status"]:
+            return GLOBALS["cached_status"][self.taskid]
+
+        # Otherwise check the status or all its children jobs and
+        # tasks
+        logindent(2)
+
+        #last_status = db.get_last_task_status(self.taskid)
+        task_saved = db.task_is_saved(self.taskid)
+
+        # If task is processed and saved, just return its state
+        # without checking children
+        if task_saved and self.status == "D":
+            log.log(24, "@@8:Task is done and processed@@1:")
+            self.status = "D"
+        # If I have just noticed the task is done and saved, load its
+        # stored data.
+        elif task_saved and self.status != "D":
+            log.log(26, "@@8:Loading pre-computed data@@1:")
+            self.status = "D"
+            self.load_stored_data()
+        else:
+            # Otherwise, we need to check for all children
+            self.job_status = self.get_jobs_status(sge_jobs)
+            job_statuses = set(self.job_status.keys())
+            # If all children jobs have just finished, we process the
+            # task, and save it into the database
+            if job_statuses == set("D"):
+                logindent(-2)
+                log.log(22, "Processing done task: %s", self)
+                logindent(2)
+                try:
+                    self.finish()
+                except Exception as e:
+                    print(traceback.print_exc())
+                    raise TaskError(self, e)
+                else:
+                    #store in database .......
+                    if self.check():
+                        self.status = "D"
+                    elif self.status == "!":
+                        #this means the finish procedure has generate
+                        #new jobs associated to the task, so it
+                        #requires relaunching
+                        self.status = "W"
+                    else:
+                        # Otherwise, everything point to errors when
+                        # processing
+                        raise TaskError(self, "Task check not passed")
+            # Otherwise, update the ongoing task status, but do not
+            # store result yet.
+            else:
+                # Order matters
+                if "E" in job_statuses:
+                    self.status = "E"
+                elif "L" in job_statuses:
+                    self.status = "L"
+                elif "R" in job_statuses:
+                    self.status =  "R"
+                elif "Q" in job_statuses:
+                    self.status =  "Q"
+                elif "W" in job_statuses:
+                    self.status = "W"
+                else:
+                    log.error("unknown task state %s" %(job_statuses))
+
+        logindent(-2)
+
+        GLOBALS["cached_status"][self.taskid] = self.status
+        return self.status
+
+    def init(self):
+        # List of associated jobs necessary to complete the task. Job
+        # and Task classes are accepted as elements in the list.
+        self.jobs = []
+
+        self._donejobs = set()
+        self._running_jobs = set()
+
+        # Prepare required jobs
+        self.load_jobs()
+
+        # Set task information, such as taskid
+        self.load_task_info()
+
+        # Now taskid is set, so we can save output file ids
+        self.init_output_info()
+
+    def get_saved_status(self):
+        try:
+            return open(self.status_file, "ru").read(1)
+        except IOError:
+            return "?"
+
+    def get_jobs_status(self, sge_jobs=None):
+        ''' Check the status of all children jobs. '''
+        self.cores_used = 0
+        all_states = defaultdict(int)
+        jobs_to_check = set(reversed(self.jobs))
+        while jobs_to_check:
+            j = jobs_to_check.pop()
+            logindent(1)
+            jobid = j.taskid if istask(j) else j.jobid
+
+            if jobid in GLOBALS["cached_status"]:
+                log.log(22, "@@8:Recycling status@@1: %s" %j)
+                st = GLOBALS["cached_status"][jobid]
+                all_states[st] += 1
+
+            elif j not in self._donejobs:
+                st = j.get_status(sge_jobs)
+                GLOBALS["cached_status"][jobid] = st
+                all_states[st] += 1
+                if st == "D":
+                    self._donejobs.add(j)
+                    # If task has an internal worflow processor,
+                    # launch it and populate with new jobs
+                    if istask(j) and j.task_processor:
+                        pipeline = j.task_processor
+                        target_workflow = j.target_wkname
+                        for new_job in pipeline(j, target_workflow):
+                            jobs_to_check.add(new_job)
+                            self.jobs.append(new_job)
+
+                elif st in set("QRL"):
+                    if isjob(j) and not j.host.startswith("@sge"):
+                        self.cores_used += j.cores
+                    elif istask(j):
+                        self.cores_used += j.cores_used
+                elif st == "E":
+                    errorpath = j.jobdir if isjob(j) else j.taskid
+                    raise TaskError(j, "Job execution error %s" %errorpath)
+            else:
+                all_states["D"] += 1
+
+            logindent(-1)
+        if not all_states:
+            all_states["D"] +=1
+
+        return all_states
+
+    def load_task_info(self):
+        ''' Initialize task information. It generates a unique taskID based on
+        the sibling jobs and sets task working directory.'''
+
+        # Creates a task id based on its target node and job arguments. The same
+        # tasks, including the same parameters would raise the same id, so it is
+        # easy to check if a task is already done in the working path.
+        if not self.taskid:
+            args_id = md5(','.join(sorted(["%s %s" %(str(pair[0]), str(pair[1]))
+                                           for pair in six.iteritems(self.args)])))
+
+            unique_id = md5(','.join([self.nodeid, self._config_id, args_id] +\
+                                         sorted([getattr(j, "jobid", "taskid")
+                                                 for j in self.jobs])))
+            self.taskid = unique_id
+
+    def retry(self):
+        for job in self.jobs:
+            if job.get_status() == "E":
+                if isjob(job):
+                    job.clean()
+                elif istask(job):
+                    job.retry()
+        self.status = "W"
+        #self.post_init()
+
+    def iter_waiting_jobs(self):
+        for j in self.jobs:
+            # Process only  jobs whose dependencies are satisfied
+            st = j.status
+            if st == "W" and not (j.dependencies - self._donejobs):
+                if hasattr(j, "_post_dependencies_hook"):
+                    j._post_dependencies_hook()
+
+                if isjob(j):
+                    j.dump_script()
+                    cmd = "sh %s >%s 2>%s" %\
+                        (j.cmd_file, j.stdout_file, j.stderr_file)
+                    yield j, cmd
+                elif istask(j):
+                    for subj, cmd in j.iter_waiting_jobs():
+                        yield subj, cmd
+
+    def load_jobs(self):
+        ''' Customizable function. It must create all job objects and add
+        them to self.jobs'''
+
+    def finish(self):
+        ''' Customizable function. It must process all jobs and set
+        the resulting values of the task. For instance, set variables
+        pointing to the resulting file'''
+
+    def check(self):
+        ''' Customizable function. Return true if task is done and
+        expected results are available. '''
+        return True
+
+    def post_init(self):
+        '''Customizable function. Put here or the initialization steps
+        that must run after init (load_jobs, taskid, etc).
+        '''
+    def store_data(self, DB):
+        ''' This should store in the database all relevant data
+        associated to the task '''
+        pass
+    def init_output_info(self):
+        ''' This should set the expected file ids of task output '''
+        pass
+    def load_stored_data(self):
+        ''' Restore data from DB if available '''
+        pass
+
+class MsfTask(Task):
+    def __repr__(self):
+        return genetree_class_repr(self, "@@6:MultiSeqTask@@1:")
+
+    def init_output_info(self):
+        self.multiseq_file = "%s.%s" %(self.taskid, DATATYPES.msf)
+
+    def load_stored_data(self):
+        pass
+
+    def store_data(self, msf):
+        db.add_task_data(self.taskid, DATATYPES.msf, msf)
+
+    def check(self):
+        if self.multiseq_file:
+            return True
+        return False
+
+class AlgTask(Task):
+    def __repr__(self):
+        return genetree_class_repr(self, "@@5:AlgTask@@1:")
+
+    def check(self):
+        if self.alg_fasta_file and self.alg_phylip_file:
+            return True
+        return False
+
+    def init_output_info(self):
+        self.alg_fasta_file = "%s.%s" %(self.taskid, DATATYPES.alg_fasta)
+        self.alg_phylip_file = "%s.%s" %(self.taskid, DATATYPES.alg_phylip)
+
+    def store_data(self, fasta, phylip):
+        # self.alg_fasta_file = db.add_task_data(self.taskid, DATATYPES.alg_fasta,
+        #                                        fasta)
+        # self.alg_phylip_file = db.add_task_data(self.taskid,
+        #                                         DATATYPES.alg_phylip, phylip)
+        db.add_task_data(self.taskid, DATATYPES.alg_fasta, fasta)
+        db.add_task_data(self.taskid, DATATYPES.alg_phylip, phylip)
+
+class AlgCleanerTask(Task):
+    def __repr__(self):
+        return genetree_class_repr(self, "@@4:AlgCleanerTask@@1:")
+
+    def check(self):
+        if self.clean_alg_fasta_file and \
+                self.clean_alg_phylip_file:
+            return True
+        return False
+
+    def init_output_info(self):
+        self.clean_alg_fasta_file = "%s.%s" %(self.taskid,
+                                                  DATATYPES.clean_alg_fasta)
+        self.clean_alg_phylip_file = "%s.%s" %(self.taskid,
+                                               DATATYPES.clean_alg_phylip)
+        self.kept_columns = []
+
+    def load_stored_data(self):
+        self.kept_columns[:] = [] # clear list
+        self.kept_columns.append(
+            db.get_task_data(self.taskid, DATATYPES.kept_alg_columns))
+
+    def store_data(self, fasta, phylip, kept_columns):
+        db.add_task_data(self.taskid, DATATYPES.clean_alg_fasta, fasta)
+        db.add_task_data(self.taskid, DATATYPES.clean_alg_phylip, phylip)
+        db.add_task_data(self.taskid, DATATYPES.kept_alg_columns, kept_columns)
+        self.kept_columns[:] = [] # security clear
+        self.kept_columns.extend(kept_columns)
+
+class ModelTesterTask(Task):
+    def __repr__(self):
+        return genetree_class_repr(self, "@@2:ModelTesterTask@@1:")
+
+    def check(self):
+        if self.best_model and self.model_ranking:
+            return True
+        return False
+
+    def init_output_info(self):
+        self.best_model = ""
+        self.model_ranking = []
+
+    def store_data(self, best_model, ranking):
+        db.add_task_data(self.taskid, DATATYPES.best_model, best_model)
+        db.add_task_data(self.taskid, DATATYPES.model_ranking, ranking)
+        self.best_model = best_model
+        self.model_ranking[:] = []
+        self.model_ranking.extend(ranking)
+
+    def load_stored_data(self):
+        self.best_model = db.get_task_data(self.taskid, DATATYPES.best_model)
+        self.model_ranking = db.get_task_data(self.taskid, DATATYPES.model_ranking)
+        #print self.best_model, self.model_ranking
+
+class TreeTask(Task):
+    def __init__(self, nodeid, task_type, task_name, base_args=None,
+                 extra_args=None):
+        if not base_args: base_args = {}
+        extra_args = {} if not extra_args else dict(extra_args)
+        extra_args["_alg_checksum"] = self.alg_phylip_file
+        extra_args["_constrain_checksum"] = getattr(self, "constrain_tree", None)
+        extra_args["_partitions_checksum"] = getattr(self, "partitions_file", None)
+
+        Task.__init__(self, nodeid, task_type, task_name, base_args,
+                      extra_args)
+
+    def __repr__(self):
+        return generic_class_repr(self, "@@3:TreeTask@@1:")
+
+    def check(self):
+        if self.tree_file:
+            return True
+        return False
+
+    def init_output_info(self):
+        self.tree_file = "%s.%s" %(self.taskid, DATATYPES.tree)
+
+    def load_stored_data(self):
+        # self.tree_file = db.get_dataid(self.taskid, DATATYPES.tree)
+        self.stats = db.get_task_data(self.taskid, DATATYPES.tree_stats)
+
+    def store_data(self, newick, stats):
+        db.add_task_data(self.taskid, DATATYPES.tree, newick)
+        db.add_task_data(self.taskid, DATATYPES.tree_stats, stats)
+        self.stats = stats
+
+class TreeMergeTask(Task):
+    def __init__(self, nodeid, task_type, task_name, base_args=None,
+                 extra_args=None):
+        # I want every tree merge instance to be unique (avoids recycling and
+        # undesired collisions between trees from different threads containing
+        # the same topology, so I create a random checksum to compute taskid
+        extra_args = {} if not extra_args else dict(extra_args)
+        extra_args["_treechecksum"] = generate_runid()
+        Task.__init__(self, nodeid, task_type, task_name, base_args,
+                      extra_args)
+
+    def __repr__(self):
+        return generic_class_repr(self, "@@7:TreeMergeTask@@1:")
+
+
+class ConcatAlgTask(Task):
+    def __init__(self, nodeid, task_type, task_name, workflow_checksum,
+                 base_args=None, extra_args=None,):
+        if not base_args: base_args = {}
+        extra_args = {} if not extra_args else dict(extra_args)
+        extra_args["_workflow_checksum"] = workflow_checksum
+        Task.__init__(self, nodeid, task_type, task_name, base_args,
+                      extra_args)
+
+    def __repr__(self):
+        return concatalg_class_repr(self, "@@5:ConcatAlgTask@@1:")
+
+    def check(self):
+        if self.alg_fasta_file and self.alg_phylip_file:
+            return True
+        return False
+
+    def init_output_info(self):
+        self.partitions_file = "%s.%s" %(self.taskid, DATATYPES.model_partitions)
+        self.alg_fasta_file = "%s.%s"  %(self.taskid, DATATYPES.concat_alg_fasta)
+        self.alg_phylip_file = "%s.%s" %(self.taskid, DATATYPES.concat_alg_phylip)
+
+    def store_data(self, fasta, phylip, partitions):
+        db.add_task_data(self.taskid, DATATYPES.model_partitions, partitions)
+        db.add_task_data(self.taskid, DATATYPES.concat_alg_fasta, fasta)
+        db.add_task_data(self.taskid, DATATYPES.concat_alg_phylip, phylip)
+
+
+class CogSelectorTask(Task):
+    def __repr__(self):
+        return sptree_class_repr(self, "@@6:CogSelectorTask@@1:")
+
+    def check(self):
+        if self.cogs:
+            return True
+        return False
+
+    def load_stored_data(self):
+        self.cogs = db.get_task_data(self.taskid, DATATYPES.cogs)
+        self.cog_analysis = db.get_task_data(self.taskid,
+                                             DATATYPES.cog_analysis)
+
+    def store_data(self, cogs, cog_analysis):
+        db.add_task_data(self.taskid, DATATYPES.cogs, cogs)
+        db.add_task_data(self.taskid, DATATYPES.cog_analysis, cog_analysis)
+        self.cogs = cogs
+        self.cog_analysis = cog_analysis
+
+def register_task_recursively(task, parentid=None):
+    db.add_task(tid=task.taskid, nid=task.nodeid,
+                parent=parentid, status=task.status, type="task",
+                subtype=task.ttype, name=task.tname)
+    for j in task.jobs:
+        if isjob(j):
+            db.add_task(tid=j.jobid, nid=task.nodeid,
+                        parent=task.taskid, status="W", type="job",
+                        name=j.jobname)
+        else:
+            register_task_recursively(j, parentid=task.taskid)
+
+def update_task_states_recursively(task):
+    task_start = 0
+    task_end = 0
+    for j in task.jobs:
+        if isjob(j):
+            start, end = update_job_status(j)
+        else:
+            start, end = update_task_states_recursively(j)
+        if start is not None:
+            task_start = min(task_start, start) if task_start >0 else start
+        task_end = max(task_end, end) if end is not None else task_end
+
+    db.update_task(task.taskid, status=task.status, tm_start=task_start, tm_end=task_end)
+    return task_start, task_end
+
+def store_task_data_recursively(task):
+    # store task data
+    task.store_data(db)
+    for j in task.jobs:
+        if isjob(j):
+            pass
+        else:
+            store_task_data_recursively(j)
+
+def remove_task_dir_recursively(task):
+    # store task data
+    for j in task.jobs:
+        if isjob(j):
+            shutil.rmtree(j.jobdir)
+        else:
+            remove_task_dir_recursively(j)
+    shutil.rmtree(task.taskdir)
+
+def update_job_status(j):
+    start = None
+    end = None
+    if j.status == "D":
+        try:
+            start, end = read_time_file(j.time_file)
+        except Exception as e:
+            log.warning("Execution time could not be loaded into DB: %s", j.jobid[:6])
+            log.warning(e)
+    db.update_task(j.jobid, status=j.status, tm_start=start, tm_end=end)
+    return start, end
diff --git a/ete3/tools/phylobuild_lib/ordereddict.py b/ete3/tools/phylobuild_lib/ordereddict.py
new file mode 100644
index 0000000..51db14c
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/ordereddict.py
@@ -0,0 +1,298 @@
+from __future__ import absolute_import
+import six
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy.
+# Passes Python2.7's test suite and incorporates all the latest updates.
+
+try:
+    from six.moves._thread import get_ident as _get_ident
+except ImportError:
+    from six.moves._dummy_thread import get_ident as _get_ident
+
+try:
+    from _abcoll import KeysView, ValuesView, ItemsView
+except ImportError:
+    pass
+
+
+class OrderedDict(dict):
+    'Dictionary that remembers insertion order'
+    # An inherited dict maps keys to values.
+    # The inherited dict provides __getitem__, __len__, __contains__, and get.
+    # The remaining methods are order-aware.
+    # Big-O running times for all methods are the same as for regular dictionaries.
+
+    # The internal self.__map dictionary maps keys to links in a doubly linked list.
+    # The circular doubly linked list starts and ends with a sentinel element.
+    # The sentinel element never gets deleted (this simplifies the algorithm).
+    # Each link is stored as a list of length three:  [PREV, NEXT, KEY].
+
+    def __init__(self, *args, **kwds):
+        '''Initialize an ordered dictionary.  Signature is the same as for
+        regular dictionaries, but keyword arguments are not recommended
+        because their insertion order is arbitrary.
+
+        '''
+        if len(args) > 1:
+            raise TypeError('expected at most 1 arguments, got %d' % len(args))
+        try:
+            self.__root
+        except AttributeError:
+            self.__root = root = []                     # sentinel node
+            root[:] = [root, root, None]
+            self.__map = {}
+        self.__update(*args, **kwds)
+
+    def __setitem__(self, key, value, dict_setitem=dict.__setitem__):
+        'od.__setitem__(i, y) <==> od[i]=y'
+        # Setting a new item creates a new link which goes at the end of the linked
+        # list, and the inherited dictionary is updated with the new key/value pair.
+        if key not in self:
+            root = self.__root
+            last = root[0]
+            last[1] = root[0] = self.__map[key] = [last, root, key]
+        dict_setitem(self, key, value)
+
+    def __delitem__(self, key, dict_delitem=dict.__delitem__):
+        'od.__delitem__(y) <==> del od[y]'
+        # Deleting an existing item uses self.__map to find the link which is
+        # then removed by updating the links in the predecessor and successor nodes.
+        dict_delitem(self, key)
+        link_prev, link_next, key = self.__map.pop(key)
+        link_prev[1] = link_next
+        link_next[0] = link_prev
+
+    def __iter__(self):
+        'od.__iter__() <==> iter(od)'
+        root = self.__root
+        curr = root[1]
+        while curr is not root:
+            yield curr[2]
+            curr = curr[1]
+
+    def __reversed__(self):
+        'od.__reversed__() <==> reversed(od)'
+        root = self.__root
+        curr = root[0]
+        while curr is not root:
+            yield curr[2]
+            curr = curr[0]
+
+    def clear(self):
+        'od.clear() -> None.  Remove all items from od.'
+        try:
+            for node in six.itervalues(self.__map):
+                del node[:]
+            root = self.__root
+            root[:] = [root, root, None]
+            self.__map.clear()
+        except AttributeError:
+            pass
+        dict.clear(self)
+
+    def popitem(self, last=True):
+        '''od.popitem() -> (k, v), return and remove a (key, value) pair.
+        Pairs are returned in LIFO order if last is true or FIFO order if false.
+
+        '''
+        if not self:
+            raise KeyError('dictionary is empty')
+        root = self.__root
+        if last:
+            link = root[0]
+            link_prev = link[0]
+            link_prev[1] = root
+            root[0] = link_prev
+        else:
+            link = root[1]
+            link_next = link[1]
+            root[1] = link_next
+            link_next[0] = root
+        key = link[2]
+        del self.__map[key]
+        value = dict.pop(self, key)
+        return key, value
+
+    # -- the following methods do not depend on the internal structure --
+
+    def keys(self):
+        'od.keys() -> list of keys in od'
+        return list(self)
+
+    def values(self):
+        'od.values() -> list of values in od'
+        return [self[key] for key in self]
+
+    def items(self):
+        'od.items() -> list of (key, value) pairs in od'
+        return [(key, self[key]) for key in self]
+
+    def iterkeys(self):
+        'od.iterkeys() -> an iterator over the keys in od'
+        return iter(self)
+
+    def itervalues(self):
+        'od.itervalues -> an iterator over the values in od'
+        for k in self:
+            yield self[k]
+
+    def iteritems(self):
+        'od.iteritems -> an iterator over the (key, value) items in od'
+        for k in self:
+            yield (k, self[k])
+
+    def update(*args, **kwds):
+        '''od.update(E, **F) -> None.  Update od from dict/iterable E and F.
+
+        If E is a dict instance, does:           for k in E: od[k] = E[k]
+        If E has a .keys() method, does:         for k in E.keys(): od[k] = E[k]
+        Or if E is an iterable of items, does:   for k, v in E: od[k] = v
+        In either case, this is followed by:     for k, v in F.items(): od[k] = v
+
+        '''
+        if len(args) > 2:
+            raise TypeError('update() takes at most 2 positional '
+                            'arguments (%d given)' % (len(args),))
+        elif not args:
+            raise TypeError('update() takes at least 1 argument (0 given)')
+        self = args[0]
+        # Make progressively weaker assumptions about "other"
+        other = ()
+        if len(args) == 2:
+            other = args[1]
+        if isinstance(other, dict):
+            for key in other:
+                self[key] = other[key]
+        elif hasattr(other, 'keys'):
+            for key in list(other.keys()):
+                self[key] = other[key]
+        else:
+            for key, value in other:
+                self[key] = value
+        for key, value in list(kwds.items()):
+            self[key] = value
+
+    __update = update  # let subclasses override update without breaking __init__
+
+    __marker = object()
+
+    def pop(self, key, default=__marker):
+        '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value.
+        If key is not found, d is returned if given, otherwise KeyError is raised.
+
+        '''
+        if key in self:
+            result = self[key]
+            del self[key]
+            return result
+        if default is self.__marker:
+            raise KeyError(key)
+        return default
+
+    def setdefault(self, key, default=None):
+        'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od'
+        if key in self:
+            return self[key]
+        self[key] = default
+        return default
+
+    def __repr__(self, _repr_running={}):
+        'od.__repr__() <==> repr(od)'
+        call_key = id(self), _get_ident()
+        if call_key in _repr_running:
+            return '...'
+        _repr_running[call_key] = 1
+        try:
+            if not self:
+                return '%s()' % (self.__class__.__name__,)
+            return '%s(%r)' % (self.__class__.__name__, list(self.items()))
+        finally:
+            del _repr_running[call_key]
+
+    def __reduce__(self):
+        'Return state information for pickling'
+        items = [[k, self[k]] for k in self]
+        inst_dict = vars(self).copy()
+        for k in vars(OrderedDict()):
+            inst_dict.pop(k, None)
+        if inst_dict:
+            return (self.__class__, (items,), inst_dict)
+        return self.__class__, (items,)
+
+    def copy(self):
+        'od.copy() -> a shallow copy of od'
+        return self.__class__(self)
+
+    @classmethod
+    def fromkeys(cls, iterable, value=None):
+        '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S
+        and values equal to v (which defaults to None).
+
+        '''
+        d = cls()
+        for key in iterable:
+            d[key] = value
+        return d
+
+    def __eq__(self, other):
+        '''od.__eq__(y) <==> od==y.  Comparison to another OD is order-sensitive
+        while comparison to a regular mapping is order-insensitive.
+
+        '''
+        if isinstance(other, OrderedDict):
+            return len(self)==len(other) and list(self.items()) == list(other.items())
+        return dict.__eq__(self, other)
+
+    def __ne__(self, other):
+        return not self == other
+
+    # -- the following methods are only used in Python 2.7 --
+
+    def viewkeys(self):
+        "od.viewkeys() -> a set-like object providing a view on od's keys"
+        return KeysView(self)
+
+    def viewvalues(self):
+        "od.viewvalues() -> an object providing a view on od's values"
+        return ValuesView(self)
+
+    def viewitems(self):
+        "od.viewitems() -> a set-like object providing a view on od's items"
+        return ItemsView(self)
diff --git a/ete3/tools/phylobuild_lib/scheduler.py b/ete3/tools/phylobuild_lib/scheduler.py
new file mode 100644
index 0000000..3137a1a
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/scheduler.py
@@ -0,0 +1,685 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+import os
+import signal
+import subprocess
+from multiprocessing import Process, Queue
+from six.moves.queue import Empty as QueueEmpty
+from time import sleep, ctime, time
+from collections import defaultdict, deque
+import re
+import logging
+import six
+from six.moves import map
+from six.moves import range
+log = logging.getLogger("main")
+
+from . import db
+from .errors import ConfigError, TaskError
+from .logger import set_logindent, logindent, get_logindent
+from .utils import (generate_id, PhyloTree, NodeStyle, Tree,
+                    DEBUG, NPR_TREE_STYLE, faces, GLOBALS,
+                    basename, pjoin, ask, send_mail, pid_up, SeqGroup)
+from .master_task import (isjob, update_task_states_recursively,
+                          store_task_data_recursively,
+                          remove_task_dir_recursively,
+                          update_job_status)
+from .workflow.common import assembly_tree, get_cmd_log
+
+def cmp_to_key(mycmp):
+    'Convert a cmp= function into a key= function'
+    class K:
+        def __init__(self, obj, *args):
+            self.obj = obj
+        def __lt__(self, other):
+            return mycmp(self.obj, other.obj) < 0
+        def __gt__(self, other):
+            return mycmp(self.obj, other.obj) > 0
+        def __eq__(self, other):
+            return mycmp(self.obj, other.obj) == 0
+        def __le__(self, other):
+            return mycmp(self.obj, other.obj) <= 0
+        def __ge__(self, other):
+            return mycmp(self.obj, other.obj) >= 0
+        def __ne__(self, other):
+            return mycmp(self.obj, other.obj) != 0
+    return K
+    
+def debug(_signal, _frame):
+    import pdb
+    pdb.set_trace()
+
+def control_c(_signal, _frame):
+    signal.signal(signal.SIGINT, signal.SIG_IGN)
+    db.commit()
+
+    ver = {28: "0", 26: "1", 24: "2", 22: "3", 20: "4", 10: "5"}
+    ver_level = log.level
+
+    print('\n\nYou pressed Ctrl+C!')
+    print('q) quit')
+    print('v) change verbosity level:', ver.get(ver_level, ver_level))
+    print('d) enter debug mode')
+    print('c) continue execution')
+    key = ask("   Choose:", ["q", "v", "d", "c"])
+    if key == "q":
+        raise KeyboardInterrupt
+    elif key == "d":
+        signal.signal(signal.SIGALRM, debug)
+        signal.alarm(1)
+        return
+    elif key == "v":
+        vl = ask("new level", sorted(ver.values()))
+        new_level = sorted(list(ver.keys()), reverse=True)[int(vl)]
+        log.setLevel(new_level)
+    elif key == "d":
+        import pdb
+        pdb.set_trace()
+    signal.signal(signal.SIGINT, control_c)
+
+def sort_tasks(x, y):
+    priority = {
+        "treemerger": 1,
+        "tree": 2,
+        "mchooser": 3,
+        "alg": 4,
+        "concat_alg": 5,
+        "acleaner": 6,
+        "msf":7,
+        "cog_selector":8}
+
+    x_type_prio = priority.get(x.ttype, 100)
+    y_type_prio = priority.get(y.ttype, 100)
+
+    prio_cmp = cmp(x_type_prio, y_type_prio)
+    if prio_cmp == 0:
+        x_size = getattr(x, "size", 0)
+        y_size = getattr(y, "size", 0)
+        size_cmp = cmp(x_size, y_size) * -1
+        if size_cmp == 0:
+            return cmp(x.threadid, y.threadid)
+        else:
+            return size_cmp
+    else:
+        return prio_cmp
+
+def get_stored_data(fileid):
+    try:
+        _tid, _did = fileid.split(".")
+        _did = int(_did)
+    except (IndexError, ValueError):
+        dataid = fileid
+    else:
+        dataid = db.get_dataid(_tid, _did)
+    return db.get_data(dataid)
+
+def schedule(workflow_task_processor, pending_tasks, schedule_time, execution, debug, norender):
+    # Adjust debug mode
+    if debug == "all":
+        log.setLevel(10)
+    pending_tasks = set(pending_tasks)
+
+    ## ===================================
+    ## INITIALIZE BASIC VARS
+    execution, run_detached = execution
+    thread2tasks = defaultdict(list)
+    for task in pending_tasks:
+        thread2tasks[task.configid].append(task)
+    expected_threads = set(thread2tasks.keys())
+    past_threads = {}
+    thread_errors = defaultdict(list)
+    ## END OF VARS AND SHORTCUTS
+    ## ===================================
+
+    cores_total = GLOBALS["_max_cores"]
+    if cores_total > 0:
+        job_queue = Queue()
+
+        back_launcher = Process(target=background_job_launcher,
+                                args=(job_queue, run_detached,
+                                      GLOBALS["launch_time"], cores_total))
+        back_launcher.start()
+    else:
+        job_queue = None
+        back_launcher = None
+
+    GLOBALS["_background_scheduler"] = back_launcher
+    GLOBALS["_job_queue"] = job_queue
+    # Captures Ctrl-C for debuging DEBUG
+    #signal.signal(signal.SIGINT, control_c)
+
+    last_report_time = None
+
+    BUG = set()
+    try:
+        # Enters into task scheduling
+        while pending_tasks:
+            wtime = schedule_time
+
+            # ask SGE for running jobs
+            if execution == "sge":
+                #sgeid2jobs = db.get_sge_tasks()
+                #qstat_jobs = sge.qstat()
+                pass
+            else:
+                qstat_jobs = None
+
+            # Show summary of pending tasks per thread
+            thread2tasks = defaultdict(list)
+            for task in pending_tasks:
+                thread2tasks[task.configid].append(task)
+            set_logindent(0)
+            log.log(28, "@@13: Updating tasks status:@@1: (%s)" % (ctime()))
+            info_lines = []
+            for tid, tlist in six.iteritems(thread2tasks):
+                threadname = GLOBALS[tid]["_name"]
+                sizelist = ["%s" %getattr(_ts, "size", "?") for _ts in tlist]
+                info = "Thread @@13:%s@@1:: pending tasks: @@8:%s@@1: of sizes: %s" %(
+                    threadname, len(tlist), ', '.join(sizelist))
+                info_lines.append(info)
+
+            for line in info_lines:
+                log.log(28, line)
+
+            if GLOBALS["email"]  and last_report_time is None:
+                last_report_time = time()
+                send_mail(GLOBALS["email"], "Your NPR process has started", '\n'.join(info_lines))
+
+            ## ================================
+            ## CHECK AND UPDATE CURRENT TASKS
+            checked_tasks = set()
+            check_start_time = time()
+            to_add_tasks = set()
+
+            GLOBALS["cached_status"] = {}
+            for task in sorted(pending_tasks, key=cmp_to_key(sort_tasks)):
+                # Avoids endless periods without new job submissions
+                elapsed_time = time() - check_start_time
+                #if not back_launcher and pending_tasks and \
+                #        elapsed_time > schedule_time * 2:
+                #    log.log(26, "@@8:Interrupting task checks to schedule new jobs@@1:")
+                #    db.commit()
+                #    wtime = launch_jobs(sorted(pending_tasks, sort_tasks),
+                #                        execution, run_detached)
+                #    check_start_time = time()
+
+                # Enter debuging mode if necessary
+                if debug and log.level > 10 and task.taskid.startswith(debug):
+                    log.setLevel(10)
+                    log.debug("ENTERING IN DEBUGGING MODE")
+                thread2tasks[task.configid].append(task)
+
+                # Update tasks and job statuses
+
+                if task.taskid not in checked_tasks:
+                    try:
+                        show_task_info(task)
+                        task.status = task.get_status(qstat_jobs)
+                        db.dataconn.commit()
+                        if back_launcher and task.status not in set("DE"):
+                            for j, cmd in task.iter_waiting_jobs():
+                                j.status = "Q"
+                                GLOBALS["cached_status"][j.jobid] = "Q"
+                                if j.jobid not in BUG:
+                                    if not os.path.exists(j.jobdir):
+                                        os.makedirs(j.jobdir)
+                                    for ifile, outpath in six.iteritems(j.input_files):
+                                        try:
+                                            _tid, _did = ifile.split(".")
+                                            _did = int(_did)
+                                        except (IndexError, ValueError):
+                                            dataid = ifile
+                                        else:
+                                            dataid = db.get_dataid(_tid, _did)
+
+                                        if not outpath:
+                                            outfile = pjoin(GLOBALS["input_dir"], ifile)
+                                        else:
+                                            outfile = pjoin(outpath, ifile)
+
+                                        if not os.path.exists(outfile):
+                                            open(outfile, "w").write(db.get_data(dataid))
+
+                                    log.log(24, "  @@8:Queueing @@1: %s from %s" %(j, task))
+                                    if execution:
+                                        with open(pjoin(GLOBALS[task.configid]["_outpath"], "commands.log"), "a") as CMD_LOGGER:
+                                            print('\t'.join([task.tname, task.taskid, j.jobname, j.jobid, j.get_launch_cmd()]), file=CMD_LOGGER)
+                                            
+                                        job_queue.put([j.jobid, j.cores, cmd, j.status_file])
+                                BUG.add(j.jobid)
+
+                        update_task_states_recursively(task)
+                        db.commit()
+                        checked_tasks.add(task.taskid)
+                    except TaskError as e:
+                        log.error("Errors found in %s" %task)
+                        import traceback
+                        traceback.print_exc()
+                        if GLOBALS["email"]:
+                            threadname = GLOBALS[task.configid]["_name"]
+                            send_mail(GLOBALS["email"], "Errors found in %s!" %threadname,
+                                      '\n'.join(map(str, [task, e.value, e.msg])))
+                        pending_tasks.discard(task)
+                        thread_errors[task.configid].append([task, e.value, e.msg])
+                        continue
+                else:
+                    # Set temporary Queued state to avoids launching
+                    # jobs from clones
+                    task.status = "Q"
+                    if log.level < 24:
+                        show_task_info(task)
+
+                if task.status == "D":
+                    #db.commit()
+                    show_task_info(task)
+                    logindent(3)
+
+
+                    # Log commands of every task
+                    # if 'cmd_log_file' not in GLOBALS[task.configid]:
+                    #      GLOBALS[task.configid]['cmd_log_file'] = pjoin(GLOBALS[task.configid]["_outpath"], "cmd.log")
+                    #      O = open(GLOBALS[task.configid]['cmd_log_file'], "w")
+                    #      O.close()
+
+                    # cmd_lines =  get_cmd_log(task)
+                    # CMD_LOG = open(GLOBALS[task.configid]['cmd_log_file'], "a")
+                    # print(task, file=CMD_LOG)
+                    # for c in cmd_lines:
+                    #     print('   '+'\t'.join(map(str, c)), file=CMD_LOG)
+                    # CMD_LOG.close()
+                    #
+
+                    try:
+                        #wkname = GLOBALS[task.configid]['_name']
+                        create_tasks = workflow_task_processor(task, task.target_wkname)
+                    except TaskError as e:
+                        log.error("Errors found in %s" %task)
+                        pending_tasks.discard(task)
+                        thread_errors[task.configid].append([task, e.value, e.msg])
+                        continue
+                    else:
+                        logindent(-3)
+
+                        to_add_tasks.update(create_tasks)
+                        pending_tasks.discard(task)
+
+                elif task.status == "E":
+                    log.error("task contains errors: %s " %task)
+                    log.error("Errors found in %s")
+                    pending_tasks.discard(task)
+                    thread_errors[task.configid].append([task, None, "Found (E) task status"])
+
+            #db.commit()
+            #if not back_launcher:
+            #    wtime = launch_jobs(sorted(pending_tasks, sort_tasks),
+            #                    execution, run_detached)
+
+            # Update global task list with recently added jobs to be check
+            # during next cycle
+            pending_tasks.update(to_add_tasks)
+
+            ## END CHECK AND UPDATE CURRENT TASKS
+            ## ================================
+
+            if wtime:
+                set_logindent(0)
+                log.log(28, "@@13:Waiting %s seconds@@1:" %wtime)
+                sleep(wtime)
+            else:
+                sleep(schedule_time)
+
+            # Dump / show ended threads
+            error_lines = []
+            for configid, etasks in six.iteritems(thread_errors):
+                error_lines.append("Thread @@10:%s@@1: contains errors:" %\
+                            (GLOBALS[configid]["_name"]))
+                for error in etasks:
+                    error_lines.append(" ** %s" %error[0])
+                    e_obj = error[1] if error[1] else error[0]
+                    error_path = e_obj.jobdir if isjob(e_obj) else e_obj.taskid
+                    if e_obj is not error[0]:
+                        error_lines.append("      -> %s" %e_obj)
+                    error_lines.append("      -> %s" %error_path)
+                    error_lines.append("        -> %s" %error[2])
+            for eline in error_lines:
+                log.error(eline)
+
+            pending_threads = set([ts.configid for ts in pending_tasks])
+            finished_threads = expected_threads - (pending_threads | set(thread_errors.keys()))
+            just_finished_lines = []
+            finished_lines = []
+            for configid in finished_threads:
+                # configid is the the same as threadid in master tasks
+                final_tree_file = pjoin(GLOBALS[configid]["_outpath"],
+                                        GLOBALS["inputname"] + ".final_tree")
+                threadname = GLOBALS[configid]["_name"]
+
+                if configid in past_threads:
+                    log.log(28, "Done thread @@12:%s@@1: in %d iteration(s)",
+                            threadname, past_threads[configid])
+                    finished_lines.append("Finished %s in %d iteration(s)" %(
+                            threadname, past_threads[configid]))
+                else:
+
+                    log.log(28, "Assembling final tree...")
+                    main_tree, treeiters =  assembly_tree(configid)
+                    past_threads[configid] = treeiters - 1
+
+                    log.log(28, "Done thread @@12:%s@@1: in %d iteration(s)",
+                            threadname, past_threads[configid])
+
+
+                    log.log(28, "Writing final tree for @@13:%s@@1:\n   %s\n   %s",
+                            threadname, final_tree_file+".nw",
+                            final_tree_file+".nwx (newick extended)")
+                    main_tree.write(outfile=final_tree_file+".nw")
+                    main_tree.write(outfile=final_tree_file+ ".nwx", features=[],
+                                    format_root_node=True)
+
+                    if hasattr(main_tree, "tree_phylip_alg"):
+                        log.log(28, "Writing final tree alignment @@13:%s@@1:\n   %s",
+                                threadname, final_tree_file+".used_alg.fa")
+
+                        alg = SeqGroup(get_stored_data(main_tree.tree_phylip_alg), format="iphylip_relaxed")
+                        OUT = open(final_tree_file+".used_alg.fa", "w")
+                        for name, seq, comments in alg:
+                            realname = db.get_seq_name(name)
+                            print(">%s\n%s" %(realname, seq), file=OUT)
+                        OUT.close()
+
+                    
+                    if hasattr(main_tree, "alg_path"):
+                        log.log(28, "Writing root node alignment @@13:%s@@1:\n   %s",
+                                threadname, final_tree_file+".fa")
+
+                        alg = SeqGroup(get_stored_data(main_tree.alg_path))
+                        OUT = open(final_tree_file+".fa", "w")
+                        for name, seq, comments in alg:
+                            realname = db.get_seq_name(name)
+                            print(">%s\n%s" %(realname, seq), file=OUT)
+                        OUT.close()
+
+                    if hasattr(main_tree, "clean_alg_path"):
+                        log.log(28, "Writing root node trimmed alignment @@13:%s@@1:\n   %s",
+                                threadname, final_tree_file+".trimmed.fa")
+
+                        alg = SeqGroup(get_stored_data(main_tree.clean_alg_path))
+                        OUT = open(final_tree_file+".trimmed.fa", "w")
+                        for name, seq, comments in alg:
+                            realname = db.get_seq_name(name)
+                            print(">%s\n%s" %(realname, seq), file=OUT)
+                        OUT.close()
+
+                    if norender == False:
+                        log.log(28, "Generating tree image for @@13:%s@@1:\n   %s",
+                                threadname, final_tree_file+".png")
+                        for lf in main_tree:
+                            lf.add_feature("sequence", alg.get_seq(lf.safename))
+                        try:
+                            from .visualize import draw_tree
+                            draw_tree(main_tree, GLOBALS[configid], final_tree_file+".png")
+                        except Exception as e:
+                            log.warning('@@8:something went wrong when generating the tree image. Try manually :(@@1:')
+                            if DEBUG:
+                                import traceback, sys
+                                traceback.print_exc(file=sys.stdout)
+
+                    just_finished_lines.append("Finished %s in %d iteration(s)" %(
+                            threadname, past_threads[configid]))
+            if GLOBALS["email"]:
+                if not pending_tasks:
+                    all_lines = finished_lines + just_finished_lines + error_lines
+                    send_mail(GLOBALS["email"], "Your NPR process has ended", '\n'.join(all_lines))
+
+                elif GLOBALS["email_report_time"] and time() - last_report_time >= \
+                        GLOBALS["email_report_time"]:
+                    all_lines = info_lines + error_lines + just_finished_lines
+                    send_mail(GLOBALS["email"], "Your NPR report", '\n'.join(all_lines))
+                    last_report_time = time()
+
+                elif just_finished_lines:
+                    send_mail(GLOBALS["email"], "Finished threads!",
+                              '\n'.join(just_finished_lines))
+
+            log.log(26, "")
+    except:
+        raise
+
+    if thread_errors:
+        log.error("Done with ERRORS")
+    else:
+        log.log(28, "Done")
+
+    return thread_errors
+
+
+def background_job_launcher(job_queue, run_detached, schedule_time, max_cores):
+    running_jobs = {}
+    visited_ids = set()
+    # job_queue = [jid, cores, cmd, status_file]
+    GLOBALS["myid"] = 'back_launcher'
+    finished_states = set("ED")
+    cores_used = 0
+    dups = set()
+    pending_jobs = deque()
+    try:
+        while True:
+            launched = 0
+            done_jobs = set()
+            cores_used = 0
+            for jid, (cores, cmd, st_file, pid) in six.iteritems(running_jobs):
+                process_done = pid.poll() if pid else None
+                try:
+                    st = open(st_file).read(1)
+                except IOError:
+                    st = "?"
+                #print pid.poll(), pid.pid, st
+                if st in finished_states:
+                     done_jobs.add(jid)
+                elif process_done is not None and st == "R":
+                    # check if a running job is actually running
+                    print("LOST PROCESS", pid, jid)
+                    ST=open(st_file, "w"); ST.write("E"); ST.flush(); ST.close()
+                    done_jobs.add(jid)
+                else:
+                    cores_used += cores
+
+            for d in done_jobs:
+                del running_jobs[d]
+
+            cores_avail = max_cores - cores_used
+            for i in range(cores_avail):
+                try:
+                    jid, cores, cmd, st_file = job_queue.get(False)
+                except QueueEmpty:
+                    pass
+                else:
+                    pending_jobs.append([jid, cores, cmd, st_file])
+
+                if pending_jobs and pending_jobs[0][1] <= cores_avail:
+                    jid, cores, cmd, st_file = pending_jobs.popleft()
+                    if jid in visited_ids:
+                        dups.add(jid)
+                        print("DUPLICATED execution!!!!!!!!!!!! This should not occur!", jid)
+                        continue
+                elif pending_jobs:
+                    log.log(28, "@@8:waiting for %s cores" %pending_jobs[0][1])
+                    break
+                else:
+                    break
+
+                ST=open(st_file, "w"); ST.write("R"); ST.flush(); ST.close()
+                try:
+                    if run_detached:
+                        cmd += " &"
+                        running_proc = None
+                        subprocess.call(cmd, shell=True)
+                    else:
+                        # create a process group, so I can kill the thread if necessary
+                        running_proc = subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
+
+                except Exception as e:
+                    print(e)
+                    ST=open(st_file, "w"); ST.write("E"); ST.flush(); ST.close()
+                else:
+                    launched += 1
+                    running_jobs[jid] = [cores, cmd, st_file, running_proc]
+                    cores_avail -= cores
+                    cores_used += cores
+                    visited_ids.add(jid)
+            try:
+                waiting_jobs = job_queue.qsize() + len(pending_jobs)
+            except NotImplementedError: # OSX does not support qsize
+                waiting_jobs = len(pending_jobs)
+                
+            log.log(28, "@@8:Launched@@1: %s jobs. %d(R), %s(W). Cores usage: %s/%s",
+                    launched, len(running_jobs), waiting_jobs, cores_used, max_cores)
+            for _d in dups:
+                print("duplicate bug", _d)
+
+            sleep(schedule_time)
+    except:
+        if len(running_jobs):
+            print(' Killing %s running jobs...' %len(running_jobs), file=sys.stderr)
+            for jid, (cores, cmd, st_file, pid) in six.iteritems(running_jobs):
+                if pid:
+                    #print >>sys.stderr, ".",
+                    #sys.stderr.flush()
+                    try:
+                        os.killpg(pid.pid, signal.SIGTERM)
+                    except:
+                        print("Ooops, the process", pid.pid, "could not be terminated!")
+                        pass
+                    try:
+                        open(st_file, "w").write("E")
+                    except:
+                        print("Ooops,", st_file, "could not be labeled as Error task. Please remove file before resuming the analysis.")
+
+    sys.exit(0)
+
+
+def launch_detached_process(cmd):
+    os.system(cmd)
+
+def color_status(status):
+    if status == "D":
+        stcolor = "@@06:"
+    elif status == "E":
+        stcolor = "@@03:"
+    elif status == "R":
+        stcolor = "@@05:"
+    else:
+        stcolor = ""
+    return "%s%s@@1:" %(stcolor, status)
+
+def show_task_info(task):
+    log.log(26, "")
+    set_logindent(1)
+    log.log(28, "(%s) %s" % (color_status(task.status), task))
+    logindent(2)
+    st_info = ', '.join(["%d(%s)" % (v, k) for k, v in
+                         six.iteritems(task.job_status)])
+    log.log(26, "%d jobs: %s" %(len(task.jobs), st_info))
+    tdir = task.taskid
+    tdir = tdir.lstrip("/")
+    log.log(20, "TaskDir: %s" %tdir)
+    if task.status == "L":
+        logindent(-2)
+        log.warning("Some jobs within the task [%s] are marked as (L)ost,"
+                    " meaning that although they look as running,"
+                    " its execution could not be tracked. NPR will"
+                    " continue execution with other pending tasks."
+                    %task)
+        logindent(2)
+    logindent(2)
+    # Shows details about jobs
+    for j in task.jobs:
+        if j.status == "D":
+            log.log(20, "(%s): %s", j.status, j)
+        else:
+            log.log(24, "(%s): %s", j.status, j)
+    logindent(-2)
+
+
+def check_cores(j, cores_used, cores_total, execution):
+    if j.cores > cores_total:
+        raise ConfigError("Job [%s] is trying to be executed using [%d] cores."
+                          " However, the program is limited to [%d] core(s)."
+                          " Use the --multicore option to enable more cores." %
+                          (j, j.cores, cores_total))
+    elif execution =="insitu" and j.cores > cores_total-cores_used:
+        log.log(22, "Job [%s] awaiting [%d] core(s)"
+                 % (j, j.cores))
+        return False
+    else:
+        return True
+
+def launch_detached(cmd):
+    pid1 = os.fork()
+    if pid1 == 0:
+        pid2 = os.fork()
+
+        if pid2 == 0:	
+            os.setsid()
+            pid3 = os.fork()
+            if pid3 == 0:
+                os.chdir("/")
+                os.umask(0)
+                P = subprocess.Popen(cmd, shell=True)
+                P.wait()
+                os._exit(0)
+            else:
+                # exit() or _exit()?  See below.
+                os._exit(0)
+        else:
+            # exit() or _exit()?
+            # _exit is like exit(), but it doesn't call any functions registered
+            # with atexit (and on_exit) or any registered signal handlers.  It also
+            # closes any open file descriptors.  Using exit() may cause all stdio
+            # streams to be flushed twice and any temporary files may be unexpectedly
+            # removed.  It's therefore recommended that child branches of a fork()
+            # and the parent branch(es) of a daemon use _exit().
+            os._exit(0)
+    else:
+        return
+
diff --git a/ete3/tools/phylobuild_lib/seqio.py b/ete3/tools/phylobuild_lib/seqio.py
new file mode 100644
index 0000000..71ff07f
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/seqio.py
@@ -0,0 +1,287 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+import re
+import os
+import sys
+import time
+from collections import defaultdict
+
+from .utils import log
+from . import db
+from .errors import ConfigError, DataError
+
+
+def iter_fasta_seqs(source):
+    """Iter records in a FASTA file"""
+
+    if os.path.isfile(source):
+        if source.endswith('.gz'):
+            import gzip
+            _source = gzip.open(source)
+        else:
+            _source = open(source, "rU")
+    else:
+        _source = iter(source.split("\n"))
+
+    seq_chunks = []
+    seq_name = None
+    for line in _source:
+        line = line.strip()
+        if line.startswith('#') or not line:
+            continue       
+        elif line.startswith('>'):
+            # yield seq if finished
+            if seq_name and not seq_chunks:
+                raise ValueError("Error parsing fasta file. %s has no sequence" %seq_name)
+            elif seq_name:
+                yield seq_name, ''.join(seq_chunks)
+                
+            seq_name = line[1:].split('\t')[0].strip()
+            seq_chunks = []
+        else:
+            if seq_name is None:
+                raise Exception("Error reading sequences: Wrong format.")
+            seq_chunks.append(line.replace(" ",""))
+
+    # return last sequence
+    if seq_name and not seq_chunks:
+        raise ValueError("Error parsing fasta file. %s has no sequence" %seq_name)
+    elif seq_name:
+        yield seq_name, ''.join(seq_chunks)        
+
+        
+def load_sequences(args, seqtype, target_seqs, target_species, cached_seqs):
+    seqfile = getattr(args, "%s_seed_file" %seqtype)
+    skipped_seqs = 0                   
+    loaded_seqs = {} 
+                   
+    log.log(28, "Reading %s sequences from %s...", seqtype, seqfile)
+    fix_dups = True if args.rename_dup_seqnames else False
+    if args.seq_name_parser:
+        NAME_PARSER = re.compile(args.seq_name_parser)
+        
+    seq_repl = {}
+    # Clear problematic symbols
+    if not args.no_seq_correct:
+        seq_repl["."] = "-"
+        seq_repl["*"] = "X"
+        if seqtype == "aa":
+            seq_repl["J"] = "X" # phyml fails with J
+            seq_repl["O"] = "X" # mafft fails with O
+            seq_repl["U"] = "X" # selenocysteines
+    if args.dealign:
+        seq_repl["-"] = ""
+        seq_repl["."] = ""
+    if seq_repl:
+        SEQ_PARSER = re.compile("(%s)" %('|'.join(map(re.escape,seq_repl.keys()))))
+
+    start_time = time.time()
+    dupnames = defaultdict(int)
+    for c1, (raw_seqname, seq) in enumerate(iter_fasta_seqs(seqfile)):
+        if c1 and c1 % 10000 == 0:
+            if loaded_seqs:
+                estimated_time = ((len(target_seqs)-len(loaded_seqs)) * (time.time()-start_time)) / float(c1)
+                percent = (len(loaded_seqs)/float(len(target_seqs))) * 100.0
+            else:
+                percent = 0
+                estimated_time = -1            
+            print("loaded:%07d skipped:%07d scanned:%07d %0.1f%%" %\
+                  (len(loaded_seqs), skipped_seqs, c1, percent), end='\n', file=sys.stderr)
+        
+        if args.seq_name_parser:
+            name_match = re.search(NAME_PARSER, raw_seqname)
+            if name_match:
+                seqname = name_match.groups()[0]
+            else:
+                raise ConfigError("Could not parse sequence name: %s" %raw_seqname)
+        else:
+            seq_name = raw_seqname
+        
+        if target_seqs and loaded_seqs == len(target_seqs):
+            break 
+        elif target_seqs and seqname not in target_seqs:
+            skipped_seqs += 1
+            continue
+        elif target_species and seqname.split(args.spname_delimiter, 1)[0] not in target_species:
+            skipped_seqs += 1
+            continue
+            
+        if seq_repl:
+            seq = SEQ_PARSER.sub(lambda m: seq_repl[m.groups()[0]], seq)
+            
+        if cached_seqs:
+            try:
+                seqid = cached_seqs[seqname]
+            except:
+                raise DataError("%s sequence not found in %s sequence file" %(seqname, seqtype))
+        else:
+            seqid = "S%09d" %(len(loaded_seqs)+1)
+
+        if seqname in loaded_seqs:
+            if fix_dups:
+                dupnames[seqname] += 1
+                seqname = seqname + "_%d"%dupnames[seqname]
+            else:
+                raise DataError("Duplicated sequence name [%s] found. Fix manually or use --rename-dup-seqnames to continue" %(seqname))
+            
+            
+        loaded_seqs[seqname] = seqid
+        db.add_seq(seqid, seq, seqtype)
+        if not cached_seqs:            
+            db.add_seq_name(seqid, seqname)
+    print('\n', file=sys.stderr)
+    db.seqconn.commit()
+    return loaded_seqs
+
+
+
+    
+        # if not args.no_seq_checks:
+        #     # Load unknown symbol inconsistencies
+        #     if seqtype == "nt" and set(seq) - NT:
+        #         seq2unknown[seqtype][seqname] = set(seq) - NT
+        #     elif seqtype == "aa" and set(seq) - AA:
+        #         seq2unknown[seqtype][seqname] = set(seq) - AA
+
+        # seq2seq[seqtype][seqname] = seq
+        # seq2length[seqtype][seqname] = len(seq)
+
+
+    # Initialize target sets using aa as source
+    # if not target_seqs: # and seqtype == "aa":
+    #     target_seqs = set(visited_seqs[source_seqtype])
+
+    # if skipped_seqs:
+    #     log.warning("%d sequences will not be used since they are"
+    #                 "  not present in the aa seed file." %skipped_seqs)
+
+    # return target_seqs, visited_seqs, seq2length, seq2unknown, seq2seq
+
+
+
+
+
+
+
+
+def check_seq_integrity(args, target_seqs, visited_seqs, seq2length, seq2unknown, seq2seq):
+    log.log(28, "Checking data consistency ...")
+    source_seqtype = "aa" if "aa" in GLOBALS["seqtypes"] else "nt"
+    error = ""
+
+    # Check for duplicate ids
+    if not args.ignore_dup_seqnames:
+        seq_number = len(set(visited_seqs[source_seqtype]))
+        if len(visited_seqs[source_seqtype]) != seq_number:
+            counter = defaultdict(int)
+            for seqname in visited_seqs[source_seqtype]:
+                counter[seqname] += 1
+            duplicates = ["%s\thas %d copies" %(key, value) for key, value in six.iteritems(counter) if value > 1]
+            error += "\nDuplicate sequence names.\n"
+            error += '\n'.join(duplicates)
+
+    # check that the seq of all targets is available
+    if target_seqs:
+        for seqtype in GLOBALS["seqtypes"]:
+            missing_seq = target_seqs - set(seq2seq[seqtype].keys())
+            if missing_seq:
+                error += "\nThe following %s sequences are missing:\n" %seqtype
+                error += '\n'.join(missing_seq)
+
+    # check for unknown characters
+    for seqtype in GLOBALS["seqtypes"]:
+        if seq2unknown[seqtype]:
+            error += "\nThe following %s sequences contain unknown symbols:\n" %seqtype
+            error += '\n'.join(["%s\tcontains:\t%s" %(k,' '.join(v)) for k,v in six.iteritems(seq2unknown[seqtype])] )
+
+    # check for aa/cds consistency
+    REAL_NT = set('ACTG')
+    if GLOBALS["seqtypes"] == set(["aa", "nt"]):
+        inconsistent_cds = set()
+        for seqname, ntlen in six.iteritems(seq2length["nt"]):
+            if seqname in seq2length["aa"]:
+                aa_len = seq2length["aa"][seqname]
+                if ntlen / 3.0 != aa_len:
+                    inconsistent_cds.add("%s\tExpected:%d\tFound:%d" %\
+                                         (seqname,
+                                         aa_len*3,
+                                         ntlen))
+                else:
+                    if not args.no_seq_checks:
+                        for i, aa in enumerate(seq2seq["aa"][seqname]):
+                            codon = seq2seq["nt"][seqname][i*3:(i*3)+3]
+                            if not (set(codon) - REAL_NT):
+                                if GENCODE[codon] != aa:
+                                    log.warning('@@2:Unmatching codon in seq:%s, aa pos:%s (%s != %s)@@1: Use --no-seq-checks to skip' %(seqname, i, codon, aa))
+                                    inconsistent_cds.add('Unmatching codon in seq:%s, aa pos:%s (%s != %s)' %(seqname, i, codon, aa))
+
+        if inconsistent_cds:
+            error += "\nUnexpected coding sequence length for the following ids:\n"
+            error += '\n'.join(inconsistent_cds)
+
+    # Show some stats
+    all_len = list(seq2length[source_seqtype].values())
+    max_len = _max(all_len)
+    min_len = _min(all_len)
+    mean_len = _mean(all_len)
+    std_len = _std(all_len)
+    outliers = []
+    for v in all_len:
+        if abs(mean_len - v) >  (3 * std_len):
+            outliers.append(v)
+    log.log(28, "Total sequences:  %d" %len(all_len))
+    log.log(28, "Average sequence length: %d +- %0.1f " %(mean_len, std_len))
+    log.log(28, "Max sequence length:  %d" %max_len)
+    log.log(28, "Min sequence length:  %d" %min_len)
+
+    if outliers:
+        log.warning("%d sequence lengths look like outliers" %len(outliers))
+
+    return error
+
+
+def hash_names(target_names):
+    """Given a set of strings of variable lengths, it returns their
+    conversion to fixed and safe hash-strings.
+    """
+    # An example of hash name collision
+    #test= ['4558_15418', '9600_21104', '7222_13002', '3847_37647', '412133_16266']
+    #hash_names(test)
+
+    log.log(28, "Generating safe sequence names...")
+    hash2name = defaultdict(list)
+    for c1, name in enumerate(target_names):
+        print(c1, "\r", end=' ', file=sys.stderr)
+        sys.stderr.flush()
+        hash_name = encode_seqname(name)
+        hash2name[hash_name].append(name)
+
+    collisions = [(k,v) for k,v in six.iteritems(hash2name) if len(v)>1]
+    #GLOBALS["name_collisions"] = {}
+    if collisions:
+        visited = set(hash2name.keys())
+        for old_hash, coliding_names in collisions:
+            logindent(2)
+            log.log(20, "Collision found when hash-encoding the following gene names: %s", coliding_names)
+            niter = 1
+            valid = False
+            while not valid or len(new_hashes) < len(coliding_names):
+                niter += 1
+                new_hashes = defaultdict(list)
+                for name in coliding_names:
+                    hash_name = encode_seqname(name*niter)
+                    new_hashes[hash_name].append(name)
+                valid = set(new_hashes.keys()).isdisjoint(visited)
+
+            log.log(20, "Fixed with %d concatenations! %s", niter, ', '.join(['%s=%s' %(e[1][0], e[0]) for e in  six.iteritems(new_hashes)]))
+            del hash2name[old_hash]
+            hash2name.update(new_hashes)
+            #GLOBALS["name_collisions"].update([(_name, _code) for _code, _name in new_hashes.iteritems()])
+            logindent(-2)
+    #collisions = [(k,v) for k,v in hash2name.iteritems() if len(v)>1]
+    #log.log(28, "Final collisions %s", collisions )
+    hash2name = dict([(k, v[0]) for  k,v in six.iteritems(hash2name)])
+    name2hash = dict([(v, k) for  k,v in six.iteritems(hash2name)])
+    return name2hash, hash2name
+
diff --git a/ete3/tools/phylobuild_lib/sge.py b/ete3/tools/phylobuild_lib/sge.py
new file mode 100644
index 0000000..69c584f
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/sge.py
@@ -0,0 +1,160 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import sys
+import os
+import time
+import re
+from collections import defaultdict
+from commands import getoutput as run
+
+
+import logging
+import six
+from six.moves import map
+log = logging.getLogger("main")
+
+from . import db
+from .errors import SgeError
+from .utils import GLOBALS
+OK_PATTERN = 'Your job-array ([\d]+).\d+\-\d+:\d+ \("[^"]*"\) has been submitted'
+DEFAULT_SGE_CELL = "cgenomics"
+
+def launch_jobs(jobs, conf):
+    # Group jobs with identical config
+    sge_path = GLOBALS["sge_dir"]
+
+    conf2jobs = defaultdict(list)
+    for j, cmd in jobs:
+        job_config = conf["sge"].copy()
+        job_config["-pe smp"] = j.cores
+        for k,v in six.iteritems(j.sge):
+            job_config[k] = v
+        conf_key = tuple(sorted(job_config.items()))
+        conf2jobs[conf_key].append((j,cmd))
+
+    for job_config, commands in six.iteritems(conf2jobs):
+        job_config = dict(job_config)
+        job_file = "%s_%d_jobs" %(time.ctime().replace(" ", "_").replace(":","-"),
+                                  len(commands))
+        cmds_file = os.path.join(sge_path, job_file+".cmds")
+        qsub_file = os.path.join(sge_path, job_file+".qsub")
+
+        script =  '''#!/bin/sh\n'''
+        for k,v in six.iteritems(job_config):
+            if not k.startswith("_"):
+                script += '#$ %s %s\n' %(k,v)
+        script += '#$ -f \n'
+        script += '#$ -o %s\n' % sge_path
+        script += '#$ -e %s\n' % sge_path
+        script += '#$ -N %s\n' % "NPR%djobs" %len(commands)
+        script += '#$ -t 1-%d\n' % len(commands)
+        script += 'SEEDFILE=%s\n' % cmds_file
+        script += 'sh -c "`cat $SEEDFILE | head -n $SGE_TASK_ID | tail -n 1`" \n'
+
+        open(cmds_file, "w").write('\n'.join([cmd for j,cmd in commands]))
+        open(qsub_file, "w").write(script)
+
+        log.log(28, "Launching %d SGE jobs." %len(commands))
+        log.debug(script)
+        answer = run("SGE_CELL=%s qsub %s" %(job_config["_cell"], qsub_file))
+        log.debug(answer)
+        match =  re.search(OK_PATTERN, answer)
+        if match:
+            jobid = match.groups()[0]
+            for j, cmd in commands:
+                db.update_task(j.jobid, status = "Q", host="@sge", pid=jobid)
+        else:
+            raise SgeError(answer)
+
+def queue_has_jobs(sge_cell=DEFAULT_SGE_CELL, queue=None):
+    if queue:
+        resource = "-q %s" %queue
+    else:
+        resource = ""
+    rawoutput = commands.getoutput("SGE_CELL=%s qstat %s" %(sge_cell, resource))
+    if rawoutput:
+        return len(rawoutput.split("\n"))
+    else:
+        return 0
+
+def qstat(sge_cell=DEFAULT_SGE_CELL):
+    ### OUTPUT EXAMPLE:
+    ##
+    ## job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
+    ## -----------------------------------------------------------------------------------------------------------------
+    ## 127 0.30007 tmpYW50Rl  jhuerta      r     07/15/2010 18:51:41 cgenomics at gen18.crg.es             1 141
+    ## 127 0.30007 tmpYW50Rl  jhuerta      r     07/15/2010 18:51:41 cgenomics at gen19.crg.es             1 142
+    ## 127 0.30007 tmpYW50Rl  jhuerta      r     07/15/2010 18:51:41 cgenomics at gen14.crg.es             1 143
+    ## 127 0.30007 tmpYW50Rl  jhuerta      r     07/15/2010 18:51:41 cgenomics at gen20.crg.es             1 144
+    ## 127 0.30002 tmpYW50Rl  jhuerta      qw    07/15/2010 18:51:35                                    1 145-1038:1
+
+    #rawoutput = commands.getoutput("SGE_CELL=%s qstat" %(sge_cell))
+    rawoutput = run("qstat")
+    jobs = []
+    proc = []
+    for line in rawoutput.split("\n")[2:]:
+        fields = list(map(str.strip, line.split()))
+        if len(fields)==9:
+            jobs.append(fields)
+        elif len(fields)==10:
+            proc.append(fields)
+
+    job2info = {}
+    for (jobid, prior, name, user, state, stime,
+         slots, slot_ja, slot_ta) in jobs:
+        job2info[jobid] = {"prior":prior, "name":name, "user":user,
+                           "state":state, "stime":stime,
+                           "ja":slot_ja, "ta":slot_ta }
+
+    for (jobid, prior, name, user, state, stime, queue,
+         slots, slot_ja, slot_ta) in proc:
+        if jobid not in job2info:
+            job2info[jobid] = {"prior":prior, "name":name, "user":user,
+                               "state":state, "stime":stime, "queue":queue,
+                               "ja":slot_ja, "ta":slot_ta }
+
+    return job2info
+
+def cancel_job(jobid):
+    pass
+
+def clean_job_outputs(jobid):
+    pass
+
diff --git a/ete3/tools/phylobuild_lib/task/__init__.py b/ete3/tools/phylobuild_lib/task/__init__.py
new file mode 100644
index 0000000..113dd2e
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/__init__.py
@@ -0,0 +1,62 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+
+from .msf import *
+from .clustalo import *
+from .muscle import *
+from .trimal import *
+from .raxml import *
+from .prottest import *
+from .pmodeltest import *
+from .merger import *
+#from .jmodeltest import *
+from .phyml import *
+from .mafft import *
+from .meta_aligner import *
+from .tcoffee import *
+from .dialigntx import *
+from .fasttree import *
+
+from .concat_alg import *
+from .cog_selector import *
+from .cog_creator import *
+
+from .dummytree import *
+from .dummyalg import *
diff --git a/ete3/tools/phylobuild_lib/task/clustalo.py b/ete3/tools/phylobuild_lib/task/clustalo.py
new file mode 100644
index 0000000..1b76888
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/clustalo.py
@@ -0,0 +1,92 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import sys
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+
+from ..utils import (read_fasta, OrderedDict, GLOBALS, pjoin)
+
+__all__ = ["Clustalo"]
+
+class Clustalo(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        GLOBALS["citator"].add('clustalo')
+
+        base_args = OrderedDict({
+                '-i': None,
+                '-o': None,
+                '--outfmt': "fa",
+                })
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "Clustal-Omega",
+                      base_args, self.conf[self.confname])
+
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.init()
+
+    def load_jobs(self):
+        appname = self.conf[self.confname]["_app"]
+        # Only one Muscle job is necessary to run this task
+        args = OrderedDict(self.args)
+        args["-i"] = pjoin(GLOBALS["input_dir"], self.multiseq_file)
+        args["-o"] = "clustalo_alg.fasta"
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.cores = self.conf["threading"].get(appname, 1)
+        job.add_input_file(self.multiseq_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format.
+        alg_file = os.path.join(self.jobs[0].jobdir, "clustalo_alg.fasta")
+        # ClustalO returns a tricky fasta file
+        alg = read_fasta(alg_file, header_delimiter=" ")
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
+
diff --git a/ete3/tools/phylobuild_lib/task/cog_creator.py b/ete3/tools/phylobuild_lib/task/cog_creator.py
new file mode 100644
index 0000000..a1ab327
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/cog_creator.py
@@ -0,0 +1,552 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from six import StringIO
+import six.moves.cPickle
+from collections import defaultdict
+import logging
+import os
+import time
+import six
+from six.moves import map
+from six.moves import range
+log = logging.getLogger("main")
+
+from ..master_task import CogSelectorTask
+from ..errors import DataError
+from ..utils import (GLOBALS, print_as_table, generate_node_ids,
+                     encode_seqname, md5, pjoin, _mean, _median, _max, _min, _std)
+from .. import db
+
+__all__ = ["BrhCogCreator"]
+
+quote = lambda _x: '"%s"' %_x
+
+class BrhCogCreator(CogSelectorTask):
+    def __init__(self, target_sp, out_sp, seqtype, conf, confname):
+
+        self.seed = conf[confname]["_seed"]
+        self.missing_factor = float(conf[confname]["_species_missing_factor"])
+        node_id, clade_id = generate_node_ids(target_sp, out_sp)
+        # Initialize task
+        CogSelectorTask.__init__(self, node_id, "cog_selector",
+                                 "Cog-Selector", None, conf[confname])
+
+        # taskid does not depend on jobs, so I set it manually
+        self.cladeid = clade_id
+        self.seqtype = seqtype
+        self.targets = target_sp
+        self.outgroups = out_sp
+        self.init()
+        self.size = len(target_sp | out_sp)
+        self.cog_analysis = None
+        self.cogs = None
+
+    def finish(self):
+        tm_start = time.ctime()
+        all_species = self.targets | self.outgroups
+        cogs, cog_analysis = brh_cogs2(db, all_species,
+                                      missing_factor=self.missing_factor,
+                                      seed_sp=self.seed)
+        self.raw_cogs = cogs
+        self.cog_analysis = cog_analysis
+        self.cogs = []
+        for co in cogs:
+            # self.cogs.append(map(encode_seqname, co))
+            encoded_names = db.translate_names(co)
+            if len(encoded_names) != len(co):
+                print(set(co) - set(encoded_names.keys()))
+                raise DataError("Some sequence ids could not be translated")
+            self.cogs.append(list(encoded_names.values()))
+
+        # Sort Cogs according to the md5 hash of its content. Random
+        # sorting but kept among runs
+        list(map(lambda x: x.sort(), self.cogs))
+        self.cogs.sort(lambda x,y: cmp(md5(','.join(x)), md5(','.join(y))))
+        log.log(28, "%s COGs detected" %len(self.cogs))
+        tm_end = time.ctime()
+        #open(pjoin(self.taskdir, "__time__"), "w").write(
+        #    '\n'.join([tm_start, tm_end]))
+        CogSelectorTask.store_data(self, self.cogs, self.cog_analysis)
+
+
+def brh_cogs(DB, species, missing_factor=0.0, seed_sp=None, min_score=0):
+    """It scans all precalculate BRH relationships among the species
+       passed as an argument, and detects Clusters of Orthologs
+       according to several criteria:
+
+       min_score: the min coverage/overalp value required for a
+       blast to be a reliable hit.
+
+       missing_factor: the min percentage of species in which a
+       given seq must have  orthologs.
+
+    """
+    log.log(26, "Searching BRH orthologs")
+    species = set(map(str, species))
+
+    min_species = len(species) - round(missing_factor * len(species))
+
+    if seed_sp == "auto":
+        # seed2size = get_sorted_seeds(seed_sp, species, species, min_species, DB)
+        # sort_seeds =  sorted([(len(size), sp) for sp, size in seed2size.iteritems()])
+        # sp_to_test = [sort_seeds[-1][1]]
+        sp_to_test = list(species)
+    elif seed_sp == "largest":
+        cmd = """SELECT taxid, size FROM species"""
+        db.seqcursor.execute(cmd)
+        sp2size = {}
+        for tax, counter in db.seqcursor.fetchall():
+            if tax in species:
+                sp2size[tax] = counter
+
+        sorted_sp = sorted(list(sp2size.items()), lambda x,y: cmp(x[1],y[1]))
+        log.log(24, sorted_sp[:6])
+        largest_sp = sorted_sp[-1][0]
+        sp_to_test = [largest_sp]
+        log.log(28, "Using %s as search seed. Proteome size=%s genes" %\
+            (largest_sp, sp2size[largest_sp]))
+    else:
+        sp_to_test = [str(seed_sp)]
+
+    # The following loop tests each possible seed if none is
+    # specified.
+    log.log(28, "Detecting Clusters of Orthologs groups (COGs)")
+    log.log(28, "Min number of species per COG: %d" %min_species)
+    cogs_selection = []
+
+    for j, seed in enumerate(sp_to_test):
+        log.log(26,"Testing new seed species:%s (%d/%d)", seed, j+1, len(sp_to_test))
+        species_side1 = ','.join(map(quote, [s for s in species if str(s)>str(seed)]))
+        species_side2 = ','.join(map(quote, [s for s in species if str(s)<str(seed)]))
+        pairs1 = []
+        pairs2 = []
+        # Select all ids with matches in the target species, and
+        # return the total number of species covered by each of
+        # such ids.
+        if species_side1 != "":
+            cmd = """SELECT seqid1, taxid1, seqid2, taxid2 from ortho_pair WHERE
+            taxid1="%s" AND taxid2 IN (%s) """ %\
+            (seed, species_side1)
+            DB.orthocursor.execute(cmd)
+            pairs1 = DB.orthocursor.fetchall()
+
+        if species_side2 != "":
+            cmd = """SELECT seqid2, taxid2, seqid1, taxid1 from ortho_pair WHERE
+            taxid1 IN (%s) AND taxid2 = "%s" """ %\
+            (species_side2, seed)
+
+            #taxid2="%s" AND taxid1 IN (%s) AND score >= %s""" %\
+            #(seed, species_side2, min_score)
+            DB.orthocursor.execute(cmd)
+            pairs2 = DB.orthocursor.fetchall()
+
+        cog_candidates = defaultdict(set)
+        for seq1, sp1, seq2, sp2 in pairs1 + pairs2:
+            s1 = (sp1, seq1)
+            s2 = (sp2, seq2)
+            cog_candidates[(sp1, seq1)].update([s1, s2])
+
+        all_cogs = [cand for cand in list(cog_candidates.values()) if
+                    len(cand) >= min_species]
+
+        cog_sizes = [len(cog) for cog in all_cogs]
+        cog_spsizes = [len(set([e[0] for e in cog])) for cog in all_cogs]
+
+        if [1 for i in range(len(cog_sizes)) if cog_sizes[i] != cog_spsizes[i]]:
+            # for i in xrange(len(cog_sizes)):
+            #     if cog_sizes[i] != cog_spsizes[i]:
+            #         print cog_sizes[i], cog_spsizes[i]
+            #         raw_input()
+            raise ValueError("Inconsistent COG found")
+
+        if cog_sizes:
+            cogs_selection.append([seed, all_cogs])
+        log.log(26, "Found %d COGs" % len(all_cogs))
+
+    def _sort_cogs(cogs1, cogs2):
+        cogs1 = cogs1[1] # discard seed info
+        cogs2 = cogs2[1] # discard seed info
+        cog_sizes1 = [len(cog) for cog in cogs1]
+        cog_sizes2 = [len(cog) for cog in cogs2]
+        mx1, mn1, avg1 = _max(cog_sizes1), _min(cog_sizes1), round(_mean(cog_sizes1))
+        mx2, mn2, avg2 = _max(cog_sizes2), _min(cog_sizes2), round(_mean(cog_sizes2))
+
+        # we want to maximize all these values in the following order:
+        for i, j in ((mx1, mx2), (avg1, avg2), (len(cogs1), len(cogs2))):
+            v = -1 * cmp(i, j)
+            if v != 0:
+                break
+        return v
+
+    log.log(26, "Finding best COG selection...")
+    cogs_selection.sort(_sort_cogs)
+    lines = []
+    for seed, all_cogs in cogs_selection:
+        cog_sizes = [len(cog) for cog in all_cogs]
+        mx, mn, avg = max(cog_sizes), min(cog_sizes), round(_mean(cog_sizes))
+        lines.append([seed, mx, mn, avg, len(all_cogs)])
+    analysis_txt = StringIO()
+    print_as_table(lines[:25], stdout=analysis_txt,
+                   header=["Seed","largest COG", "smallest COGs", "avg COG size", "total COGs"])
+    log.log(28, "Analysis details:\n"+analysis_txt.getvalue())
+    best_seed, best_cogs = cogs_selection[0]
+    cog_sizes = [len(cog) for cog in best_cogs]
+
+    # Not necessary since they will be sorted differently later on
+    #best_cogs.sort(lambda x,y: cmp(len(x), len(y)), reverse=True)
+
+    if max(cog_sizes) < len(species):
+        raise ValueError("Current COG selection parameters do not permit to cover all species")
+
+    recoded_cogs = []
+    for cog in best_cogs:
+        named_cog = ["%s%s%s" %(x[0], GLOBALS["spname_delimiter"],x[1]) for x in cog]
+        recoded_cogs.append(named_cog)
+
+    return recoded_cogs, analysis_txt.getvalue()
+
+def brh_cogs2(DB, species, missing_factor=0.0, seed_sp=None, min_score=0):
+    """It scans all precalculate BRH relationships among the species
+       passed as an argument, and detects Clusters of Orthologs
+       according to several criteria:
+
+       min_score: the min coverage/overalp value required for a
+       blast to be a reliable hit.
+
+       missing_factor: the min percentage of species in which a
+       given seq must have  orthologs.
+
+    """
+    def _sort_cogs(cogs1, cogs2):
+        seed1, mx1, avg1, ncogs1 = cogs1
+        seed2, mx2, avg2, ncogs2 = cogs2
+        for i, j in ((mx1, mx2), (avg1, avg2), (ncogs1, ncogs2)):
+            v = -1 * cmp(i, j)
+            if v != 0:
+                break
+        return v
+
+    log.log(26, "Searching BRH orthologs")
+    species = set(map(str, species))
+
+    min_species = len(species) - round(missing_factor * len(species))
+
+    if seed_sp == "auto":
+        sp_to_test = list(species)
+    elif seed_sp == "largest":
+        cmd = """SELECT taxid, size FROM species"""
+        db.seqcursor.execute(cmd)
+        sp2size = {}
+        for tax, counter in db.seqcursor.fetchall():
+            if tax in species:
+                sp2size[tax] = counter
+
+        sorted_sp = sorted(list(sp2size.items()), lambda x,y: cmp(x[1],y[1]))
+        log.log(24, sorted_sp[:6])
+        largest_sp = sorted_sp[-1][0]
+        sp_to_test = [largest_sp]
+        log.log(28, "Using %s as search seed. Proteome size=%s genes" %\
+            (largest_sp, sp2size[largest_sp]))
+    else:
+        sp_to_test = [str(seed_sp)]
+
+    analysis_txt = StringIO()
+    if sp_to_test:
+        log.log(26, "Finding best COG selection...")
+        seed2size = get_sorted_seeds(seed_sp, species, sp_to_test, min_species, DB)
+        size_analysis = []
+        for seedname, content in six.iteritems(seed2size):
+            cog_sizes = [size for seq, size in content]
+            mx, avg = _max(cog_sizes), round(_mean(cog_sizes))
+            size_analysis.append([seedname, mx, avg, len(content)])
+        size_analysis.sort(_sort_cogs)
+        #print '\n'.join(map(str, size_analysis))
+        seed = size_analysis[0][0]
+        print_as_table(size_analysis[:25], stdout=analysis_txt,
+                   header=["Seed","largest COG", "avg COG size", "total COGs"])
+        if size_analysis[0][1] < len(species)-1:
+            print(size_analysis[0][1])
+            raise ValueError("Current COG selection parameters do not permit to cover all species")
+
+    log.log(28, analysis_txt.getvalue())
+    # The following loop tests each possible seed if none is
+    # specified.
+    log.log(28, "Computing Clusters of Orthologs groups (COGs)")
+    log.log(28, "Min number of species per COG: %d" %min_species)
+    cogs_selection = []
+    log.log(26,"Using seed species:%s", seed)
+    species_side1 = ','.join(map(quote, [s for s in species if str(s)>str(seed)]))
+    species_side2 = ','.join(map(quote, [s for s in species if str(s)<str(seed)]))
+    pairs1 = []
+    pairs2 = []
+    # Select all ids with matches in the target species, and
+    # return the total number of species covered by each of
+    # such ids.
+    if species_side1 != "":
+        cmd = """SELECT seqid1, taxid1, seqid2, taxid2 from ortho_pair WHERE
+            taxid1="%s" AND taxid2 IN (%s) """ % (seed, species_side1)
+        DB.orthocursor.execute(cmd)
+        pairs1 = DB.orthocursor.fetchall()
+
+    if species_side2 != "":
+        cmd = """SELECT seqid2, taxid2, seqid1, taxid1 from ortho_pair WHERE
+            taxid1 IN (%s) AND taxid2 = "%s" """ % (species_side2, seed)
+        DB.orthocursor.execute(cmd)
+        pairs2 = DB.orthocursor.fetchall()
+
+    cog_candidates = defaultdict(set)
+    for seq1, sp1, seq2, sp2 in pairs1 + pairs2:
+        s1 = (sp1, seq1)
+        s2 = (sp2, seq2)
+        cog_candidates[(sp1, seq1)].update([s1, s2])
+
+    all_cogs = [cand for cand in list(cog_candidates.values()) if
+                len(cand) >= min_species]
+
+    # CHECK CONSISTENCY
+    seqs = set()
+    for cand in all_cogs:
+        seqs.update([b for a,b  in cand if a == seed])
+    pre_selected_seqs = set([v[0] for v in seed2size[seed]])
+    if len(seqs & pre_selected_seqs) != len(set(seed2size[seed])) or\
+            len(seqs & pre_selected_seqs) != len(seqs):
+        print("old method seqs", len(seqs), "new seqs", len(set(seed2size[seed])), "Common", len(seqs & pre_selected_seqs))
+        raise ValueError("ooops")
+
+    cog_sizes = [len(cog) for cog in all_cogs]
+    cog_spsizes = [len(set([e[0] for e in cog])) for cog in all_cogs]
+
+    if [1 for i in range(len(cog_sizes)) if cog_sizes[i] != cog_spsizes[i]]:
+        raise ValueError("Inconsistent COG found")
+
+    if cog_sizes:
+        cogs_selection.append([seed, all_cogs])
+    log.log(26, "Found %d COGs" % len(all_cogs))
+
+    recoded_cogs = []
+    for cog in all_cogs:
+        named_cog = ["%s%s%s" %(x[0], GLOBALS["spname_delimiter"],x[1]) for x in cog]
+        recoded_cogs.append(named_cog)
+
+    return recoded_cogs, analysis_txt.getvalue()
+
+
+def get_sorted_seeds(seed, species, sp_to_test, min_species, DB):
+    seed2count = {}
+    species = set(species)
+    for j, seed in enumerate(sp_to_test):
+        log.log(26,"Testing SIZE of new seed species:%s (%d/%d)", seed, j+1, len(sp_to_test))
+        pairs1 = []
+        pairs2 = []
+        cmd = """SELECT seqid1, GROUP_CONCAT(taxid2) FROM ortho_pair WHERE
+            taxid1="%s" GROUP BY (seqid1)""" % (seed)
+        DB.orthocursor.execute(cmd)
+        pairs1= DB.orthocursor.fetchall()
+
+        cmd = """SELECT seqid2, GROUP_CONCAT(taxid1) FROM ortho_pair WHERE
+            taxid2 = "%s" GROUP BY seqid2""" % (seed)
+        DB.orthocursor.execute(cmd)
+        pairs2 = DB.orthocursor.fetchall()
+
+
+        # Compute number of species for each seqid representing a cog
+        counter = defaultdict(set)
+        all_pairs = pairs1 + pairs2
+        for seqid, targets in all_pairs:
+            counter[seqid].update(set(targets.split(",")) & species)
+
+        # Filter out too small COGs
+        valid_seqs = [(k, len(v)) for k, v in six.iteritems(counter) if
+                      len(v)>= min_species-1]
+
+        seed2count[seed] = valid_seqs
+        log.log(28, "Seed species:%s COGs:%s" %(seed, len(seed2count[seed])))
+    return seed2count
+
+def get_best_selection(cogs_selections, species):
+    ALL_SPECIES = set(species)
+
+    def _compare_cog_selection(cs1, cs2):
+        seed_1, missing_sp_allowed_1, candidates_1, sp2hits_1 = cs1
+        seed_2, missing_sp_allowed_2, candidates_2, sp2hits_2 = cs2
+
+        score_1, min_cov_1, max_cov_1, median_cov_1, cov_std_1, cog_cov_1 = get_cog_score(candidates_1, sp2hits_1, median_cogs, ALL_SPECIES-set([seed_1]))
+        score_2, min_cov_2, max_cov_2, median_cov_2, cov_std_2, cog_cov_2 = get_cog_score(candidates_2, sp2hits_2, median_cogs, ALL_SPECIES-set([seed_2]))
+
+        sp_represented_1 = len(sp2hits_1)
+        sp_represented_2 = len(sp2hits_1)
+        cmp_rpr = cmp(sp_represented_1, sp_represented_2)
+        if cmp_rpr == 1:
+            return 1
+        elif cmp_rpr == -1:
+            return -1
+        else:
+            cmp_score = cmp(score_1, score_2)
+            if cmp_score == 1:
+                return 1
+            elif cmp_score == -1:
+                return -1
+            else:
+                cmp_mincov = cmp(min_cov_1, min_cov_2)
+                if cmp_mincov == 1:
+                    return 1
+                elif cmp_mincov == -1:
+                    return -1
+                else:
+                    cmp_maxcov = cmp(max_cov_1, max_cov_2)
+                    if cmp_maxcov == 1:
+                        return 1
+                    elif cmp_maxcov == -1:
+                        return -1
+                    else:
+                        cmp_cand = cmp(len(candidates_1), len(candidates_2))
+                        if cmp_cand == 1:
+                            return 1
+                        elif cmp_cand == -1:
+                            return -1
+                        else:
+                            return 0
+
+    min_score = 0.5
+    max_cogs = _max([len(data[2]) for data in cogs_selections])
+    median_cogs = _median([len(data[2]) for data in cogs_selections])
+
+    cogs_selections.sort(_compare_cog_selection)
+    cogs_selections.reverse()
+
+    header = ['seed',
+              'missing sp allowed',
+              'spcs covered',
+              '#COGs',
+              'mean sp coverage)',
+              '#COGs for worst sp.',
+              '#COGs for best sp.',
+              'sp. in COGS(avg)',
+              'SCORE' ]
+    print_header = True
+    best_cog_selection = None
+    cog_analysis = StringIO()
+    for i, cogs in enumerate(cogs_selections):
+        seed, missing_sp_allowed, candidates, sp2hits = cogs
+        sp_percent_coverages = [(100*sp2hits.get(sp,0))/float(len(candidates)) for sp in species]
+        sp_coverages = [sp2hits.get(sp, 0) for sp in species]
+        score, min_cov, max_cov, median_cov, cov_std, cog_cov = get_cog_score(candidates, sp2hits, median_cogs, ALL_SPECIES-set([seed]))
+
+        if best_cog_selection is None:
+            best_cog_selection = i
+            flag = "*"
+        else:
+            flag = " "
+        data = (candidates,
+                flag+"%10s" %seed, \
+                    missing_sp_allowed, \
+                    "%d (%0.1f%%)" %(len(set(sp2hits.keys()))+1, 100*float(len(ALL_SPECIES))/(len(sp2hits)+1)) , \
+                    len(candidates), \
+                    "%0.1f%% +- %0.1f" %(_mean(sp_percent_coverages), _std(sp_percent_coverages)), \
+                    "% 3d (%0.1f%%)" %(min(sp_coverages),100*min(sp_coverages)/float(len(candidates))), \
+                    "% 3d (%0.1f%%)" %(max(sp_coverages),100*max(sp_coverages)/float(len(candidates))), \
+                    cog_cov,
+                    score
+                )
+        if print_header:
+            print_as_table([data[1:]], header=header, print_header=True, stdout=cog_analysis)
+            print_header = False
+        else:
+            print_as_table([data[1:]], header=header, print_header=False, stdout=cog_analysis)
+
+    #raw_input("Press")
+    print(cog_analysis.getvalue())
+    #best_cog_selection = int(raw_input("choose:"))
+    return cogs_selections[best_cog_selection], cog_analysis
+
+def _analyze_cog_selection(all_cogs):
+    print("total cogs:", len(all_cogs))
+    sp2cogcount = {}
+    size2cogs = {}
+    for cog in all_cogs:
+        for seq in cog:
+            sp = seq.split(GLOBALS["spname_delimiter"])[0]
+            sp2cogcount[sp] = sp2cogcount.setdefault(sp, 0)+1
+        size2cogs.setdefault(len(cog), []).append(cog)
+
+    sorted_spcs = sorted(list(sp2cogcount.items()), lambda x,y: cmp(x[1], y[1]))
+    # Take only first 20 species
+    coverages = [s[1] for s in sorted_spcs][:20]
+    spnames  = [str(s[0])+ s[0] for s in sorted_spcs][:20]
+    pylab.subplot(1,2,1)
+    pylab.bar(list(range(len(coverages))), coverages)
+    labels = pylab.xticks(pylab.arange(len(spnames)), spnames)
+    pylab.subplots_adjust(bottom=0.35)
+    pylab.title(str(len(all_cogs))+" COGs")
+    pylab.setp(labels[1], 'rotation', 90,fontsize=10, horizontalalignment = 'center')
+    pylab.subplot(1,2,2)
+    pylab.title("Best COG contains "+str(max(size2cogs.values()))+" species" )
+    pylab.bar(list(range(1,216)), [len(size2cogs.get(s, [])) for s in range(1,216)])
+    pylab.show()
+
+
+def cog_info(candidates, sp2hits):
+    sp_coverages = [hits/float(len(candidates)) for hits in list(sp2hits.values())]
+    species_covered = len(set(sp2hits.keys()))+1
+    min_cov = _min(sp_coverages)
+    max_cov = _min(sp_coverages)
+    median_cov = _median(sp_coverages)
+    return min_cov, max_cov, median_cov
+
+
+def get_cog_score(candidates, sp2hits, max_cogs, all_species):
+
+    cog_cov = _mean([len(cogs) for cogs in candidates])/float(len(sp2hits)+1)
+    cog_mean_cov = _mean([len(cogs)/float(len(sp2hits)) for cogs in candidates]) # numero medio de especies en cada cog
+    cog_min_sp = _min([len(cogs) for cogs in candidates])
+
+    sp_coverages = [sp2hits.get(sp, 0)/float(len(candidates)) for sp in all_species]
+    species_covered = len(set(sp2hits.keys()))+1
+
+    nfactor = len(candidates)/float(max_cogs) # Numero de cogs
+    min_cov = _min(sp_coverages) # el coverage de la peor especie
+    max_cov = _min(sp_coverages)
+    median_cov = _median(sp_coverages)
+    cov_std = _std(sp_coverages)
+
+    score = _min([nfactor, cog_mean_cov, min_cov])
+    return score, min_cov, max_cov, median_cov, cov_std, cog_cov
+
diff --git a/ete3/tools/phylobuild_lib/task/cog_selector.py b/ete3/tools/phylobuild_lib/task/cog_selector.py
new file mode 100644
index 0000000..18fa990
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/cog_selector.py
@@ -0,0 +1,247 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from six import StringIO
+import six.moves.cPickle
+from collections import defaultdict
+import logging
+import os
+import six
+from six.moves import map
+log = logging.getLogger("main")
+
+from ..master_task import CogSelectorTask
+from ..errors import DataError, TaskError
+from ..utils import (GLOBALS, print_as_table, generate_node_ids, encode_seqname,
+                     md5, pjoin, _min, _max, _mean, _median, _std, iter_cog_seqs)
+from .. import db
+
+__all__ = ["CogSelector"]
+
+class CogSelector(CogSelectorTask):
+    def __init__(self, target_sp, out_sp, seqtype, conf, confname):
+        self.missing_factor = float(conf[confname]["_species_missing_factor"])
+        self.max_missing_factor = float(conf[confname]["_max_species_missing_factor"])
+        self.cog_hard_limit = int(conf[confname]["_max_cogs"])
+        node_id, clade_id = generate_node_ids(target_sp, out_sp)
+        # Initialize task
+        CogSelectorTask.__init__(self, node_id, "cog_selector",
+                                 "MCL-COGs", None, conf[confname])
+
+        # taskid does not depend on jobs, so I set it manually
+        self.cladeid = clade_id
+        self.seqtype = seqtype
+        self.targets = target_sp
+        self.outgroups = out_sp
+        self.init()
+        self.size = len(target_sp | out_sp)
+        self.cog_analysis = None
+        self.cogs = None
+
+    def finish(self):
+        def sort_cogs_by_size(c1, c2):
+            '''
+            sort cogs by descending size. If two cogs are the same size, sort
+            them keeping first the one with the less represented
+            species. Otherwise sort by sequence name sp_seqid.'''
+
+            r = -1 * cmp(len(c1), len(c2))
+            if r == 0:
+                # finds the cog including the less represented species
+                c1_repr = _min([sp2cogs[_sp] for _sp, _seq in c1])
+                c2_repr = _min([sp2cogs[_sp] for _sp, _seq in c2])
+                r = cmp(c1_repr, c2_repr)
+                if r == 0:
+                    return cmp(sorted(c1), sorted(c2))
+                else:
+                    return r
+            else:
+                return r
+
+        def sort_cogs_by_sp_repr(c1, c2):
+            c1_repr = _min([sp2cogs[_sp] for _sp, _seq in c1])
+            c2_repr = _min([sp2cogs[_sp] for _sp, _seq in c2])
+            r = cmp(c1_repr, c2_repr)
+            if r == 0:
+                r = -1 * cmp(len(c1), len(c2))
+                if r == 0:
+                    return cmp(sorted(c1), sorted(c2))
+                else:
+                    return r
+            else:
+                return r
+
+        all_species = self.targets | self.outgroups
+        # strict threshold
+        #min_species = len(all_species) - int(round(self.missing_factor * len(all_species)))
+
+        # Relax threshold for cog selection to ensure sames genes are always included
+        min_species = len(all_species) - int(round(self.missing_factor * len(GLOBALS["target_species"])))
+        min_species = max(min_species, (1-self.max_missing_factor) * len(all_species))
+
+        smallest_cog, largest_cog = len(all_species), 0
+        all_singletons = []
+        sp2cogs = defaultdict(int)
+
+        for cognumber, seq_cogs in iter_cog_seqs(GLOBALS["cogs_file"], GLOBALS["spname_delimiter"]):
+            sp2seqs = defaultdict(list)
+            for seqname, spcode, seqcode in seq_cogs:
+                sp2seqs[spcode].append(seqcode)
+                
+            one2one_cog = set()
+            for sp, seqs in six.iteritems(sp2seqs):
+                #if len(seqs) != 1:
+                #    print sp, len(seqs)
+                if sp in all_species and len(seqs) == 1:
+                    sp2cogs[sp] += 1
+                    one2one_cog.add((sp, seqs[0]))
+                    
+            smallest_cog = min(smallest_cog, len(one2one_cog))
+            largest_cog = max(largest_cog, len(one2one_cog))
+            all_singletons.append(one2one_cog)
+            #if len(one2one_cog) >= min_species:
+            #    valid_cogs.append(one2one_cog)
+
+        cognumber += 1 # sets the ammount of cogs in file
+        for sp, ncogs in sorted(list(sp2cogs.items()), key=lambda x: x[1], reverse=True):
+            log.log(28, "% 20s  found in single copy in  % 6d (%0.1f%%) COGs " %(sp, ncogs, 100 * ncogs/float(cognumber)))
+
+        valid_cogs = sorted([sing for sing in all_singletons if len(sing) >= min_species],
+                            sort_cogs_by_size)
+
+        log.log(28, "Largest cog size: %s. Smallest cog size: %s" %(
+                largest_cog, smallest_cog))
+        self.cog_analysis = ""
+
+        # save original cog names hitting the hard limit
+        if len(valid_cogs) > self.cog_hard_limit:
+            log.warning("Applying hard limit number of COGs: %d out of %d available" %(self.cog_hard_limit, len(valid_cogs)))
+        self.raw_cogs = valid_cogs[:self.cog_hard_limit]
+        self.cogs = []
+        # Translate sequence names into the internal DB names
+        sp_repr = defaultdict(int)
+        sizes = []
+        for co in self.raw_cogs:
+            sizes.append(len(co))
+            for sp, seq in co:
+                sp_repr[sp] += 1
+            co_names = ["%s%s%s" %(sp, GLOBALS["spname_delimiter"], seq) for sp, seq in co]
+            encoded_names = db.translate_names(co_names)
+            if len(encoded_names) != len(co):
+                print(set(co_names) - set(encoded_names.keys()))
+                raise DataError("Some sequence ids could not be translated")
+            self.cogs.append(list(encoded_names.values()))
+
+        # ERROR! COGs selected are not the prioritary cogs sorted out before!!!
+        # Sort Cogs according to the md5 hash of its content. Random
+        # sorting but kept among runs
+        #map(lambda x: x.sort(), self.cogs)
+        #self.cogs.sort(lambda x,y: cmp(md5(','.join(x)), md5(','.join(y))))
+
+        log.log(28, "Analysis of current COG selection:")
+        for sp, ncogs in sorted(list(sp_repr.items()), key=lambda x:x[1], reverse=True):
+            log.log(28, " % 30s species present in % 6d COGs (%0.1f%%)" %(sp, ncogs, 100 * ncogs/float(len(self.cogs))))
+
+        log.log(28, " %d COGs selected with at least %d species out of %d" %(len(self.cogs), min_species, len(all_species)))
+        log.log(28, " Average COG size %0.1f/%0.1f +- %0.1f" %(_mean(sizes), _median(sizes), _std(sizes)))
+
+        # Some consistency checks
+        missing_sp = (all_species) - set(sp_repr.keys())
+        if missing_sp:
+            log.error("%d missing species or not present in single-copy in any cog:\n%s" %\
+                      (len(missing_sp), '\n'.join(missing_sp)))
+            open('etebuild.valid_species_names.tmp', 'w').write('\n'.join(list(sp_repr.keys())) +'\n')
+            log.error("All %d valid species have been dumped into etebuild.valid_species_names.tmp."
+                      " You can use --spfile to restrict the analysis to those species." %len(sp_repr))
+            raise TaskError('missing or not single-copy species under current cog selection')
+
+        CogSelectorTask.store_data(self, self.cogs, self.cog_analysis)
+
+if __name__ == "__main__":
+    ## TEST CODE
+    import argparse
+    parser = argparse.ArgumentParser()
+
+    # Input data related flags
+
+    parser.add_argument("--cogs_file", dest="cogs_file",
+                        required=True,
+                        help="Cogs file")
+
+    parser.add_argument("--spname_delimiter", dest="spname_delimiter",
+                             type=str, default = "_",
+                             help="species name delimiter character")
+
+    parser.add_argument("--target_sp", dest="target_sp",
+                             type=str, nargs="+",
+                             help="target species sperated by")
+
+    parser.add_argument("-m", dest="missing_factor",
+                             type=float, required=True,
+                             help="missing factor for cog selection")
+
+    parser.add_argument("--max_missing", dest="max_missing_factor",
+                             type=float, default = 0.3,
+                             help="max missing factor for cog selection")
+
+    parser.add_argument("--total_species", dest="total_species",
+                             type=int, required=True,
+                             help="total number of species in the analysis")
+
+    args = parser.parse_args()
+
+    GLOBALS["cogs_file"] = args.cogs_file
+    GLOBALS["spname_delimiter"] = args.spname_delimiter
+    target_sp = args.target_sp
+    logging.basicConfig(level=logging.DEBUG)
+    log = logging
+    GLOBALS["target_species"] = [1] * args.total_species
+
+    conf = { "user": {"_species_missing_factor": args.missing_factor,
+                      "_max_species_missing_factor": args.max_missing_factor,
+                      "_max_cogs": 10000
+                  }}
+    CogSelectorTask.store_data=lambda a,b,c: True
+    C =  CogSelector(set(target_sp), set(), "aa", conf, "user")
+
+    db.translate_names = lambda x:  dict([(n,n) for n in x])
+
+    C.finish()
diff --git a/ete3/tools/phylobuild_lib/task/concat_alg.py b/ete3/tools/phylobuild_lib/task/concat_alg.py
new file mode 100644
index 0000000..d6f1a95
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/concat_alg.py
@@ -0,0 +1,292 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from os.path import join as pjoin
+import logging
+from collections import defaultdict
+import six
+from six.moves import zip
+log = logging.getLogger("main")
+
+from . import Msf
+from ..master_task import ConcatAlgTask
+from ..master_job import Job
+from ..utils import SeqGroup, GLOBALS, generate_runid, pexist, md5
+from .. import db
+from ..errors import TaskError
+
+__all__ = ["ConcatAlg"]
+
+class ConcatAlg(ConcatAlgTask):
+    def __init__(self, cogs, seqtype, conf, confname, workflow_checksum):
+        self.confname = confname
+        self.conf = conf
+        #self.cogs_hard_limit = int(conf[confname]["_max_cogs"])
+        #used_cogs = cogs[:self.cogs_hard_limit]
+        used_cogs = cogs
+
+        cog_string = '#'.join([','.join(sorted(c)) for c in used_cogs])
+        cog_keyid = md5(cog_string) # This will be nodeid
+        base_args = {}
+        ConcatAlgTask.__init__(self, cog_keyid, "concat_alg", "ConcatAlg",
+                               workflow_checksum=workflow_checksum,
+                               base_args=base_args, extra_args=conf[confname])
+        self.avail_cogs = len(cogs)
+        self.used_cogs = len(used_cogs)
+        self.cogs = used_cogs
+        self.seqtype = seqtype
+        self.cog_ids = set()
+
+        self.job2alg = {}
+        self.job2model = {}
+        if seqtype == "aa":
+            self.default_model = conf[confname]["_default_aa_model"]
+        elif seqtype == "nt":
+            self.default_model = conf[confname]["_default_nt_model"]
+
+        self.genetree_workflow = conf[confname]["_workflow"][1:]
+        self.init()
+
+    def load_jobs(self):
+        # I want a single phylognetic tree for each cog
+        from ..workflow.genetree import pipeline
+
+        for co in self.cogs:
+            # Register a new msf task for each COG, using the same
+            # config file but opening an new tree reconstruction
+            # thread.
+            job = Msf(set(co), set(), seqtype = self.seqtype)
+            job.main_tree = None
+            job.threadid = generate_runid()
+            job.configid = self.conf["_configid"]
+            # This converts the job in a workflow job. As soon as a
+            # task is done, it will be automatically processed and the
+            # new tasks will be registered as new jobs.
+            job.task_processor = pipeline
+            job.target_wkname = self.genetree_workflow
+            self.jobs.append(job)
+            self.cog_ids.add(job.nodeid)
+
+    def finish(self):
+        # Assumes tasks resulting from genetree workflow, in which
+        # only Alg and Acleaner tasks could contain the results
+        log.log(26, "Collecting supermatrix data")
+        jobtypes = set()
+        job2alg, job2acleaner = {}, {}
+        alg_seqtypes = set()
+        clean_alg_seqtypes = set()
+        for job in self.jobs:
+            jobtypes.add(job.ttype)
+            if job.ttype == "alg" and job.nodeid not in self.job2alg:
+                try:
+                    tid, datatype = job.alg_nt_fasta_file.split(".")
+                except:
+                    tid, datatype = job.alg_fasta_file.split(".")
+                    alg_seqtypes.add(job.seqtype)
+                else:
+                    alg_seqtypes.add("nt")
+                    
+                dataid = db.get_dataid(tid, datatype)
+                job2alg[job.nodeid] = db.get_data(dataid)
+            elif job.ttype == "acleaner":
+                try:
+                    tid, datatype = job.alg_nt_fasta_file.split(".")
+                except:
+                    tid, datatype = job.clean_alg_fasta_file.split(".")
+                    clean_alg_seqtypes.add(job.seqtype)
+                else:
+                    clean_alg_seqtypes.add("nt")
+                    
+                dataid = db.get_dataid(tid, datatype)
+                job2acleaner[job.nodeid] = db.get_data(dataid)
+            elif job.ttype == "mchooser":
+                # clean model comming from pmodeltest
+                clean_model = job.best_model.replace('pmodeltest-', '').split("+")[0].split("!")[0]
+                self.job2model[job.nodeid] = clean_model
+
+        if "acleaner" in jobtypes:
+            log.warning("Concatenating trimmed alignments")
+            self.job2alg = job2acleaner
+            seqtypes = clean_alg_seqtypes
+        else:
+            log.warning("Concatenating alignments")
+            self.job2alg = job2alg
+            seqtypes = alg_seqtypes
+                
+        if len(seqtypes) > 1:
+            raise TaskError("Mixed nt/aa concatenated alignments not yet supported")
+        else:
+            seqtype = seqtypes.pop()
+
+        log.warning("Using %s concatenated alignment" %seqtype)
+            
+        if seqtype == "aa":
+            self.default_model = self.conf[self.confname]["_default_aa_model"]
+        elif seqtype == "nt":
+            self.default_model = self.conf[self.confname]["_default_nt_model"]            
+        self.seqtype = seqtype            
+
+        if self.cog_ids - set(self.job2alg):
+            log.error("Missing %s algs", len(self.cog_ids -
+                                             set(self.job2alg)))
+            missing = self.cog_ids - set(self.job2alg)
+            raise TaskError(self, "Missing algs (%d): i.e. %s" %(len(missing),missing[:10]))
+        
+        alg_data = [(self.job2alg[nid],
+                     self.job2model.get(nid, self.default_model))
+                    for nid in self.job2alg]
+        filenames, models = list(zip(*alg_data))
+
+        mainalg, partitions, sp2alg, species, alg_lenghts = get_concatenated_alg(
+            filenames,
+            models, sp_field=0,
+            sp_delimiter=GLOBALS["spname_delimiter"])
+
+        log.log(20, "Done concat alg, now writting fasta format")
+        fasta = mainalg.write(format="fasta")
+        log.log(20, "Done concat alg, now writting phylip format")
+        phylip = mainalg.write(format="iphylip_relaxed")
+        txt_partitions = '\n'.join(partitions)
+        log.log(26, "Modeled regions: \n"+'\n'.join(partitions))
+        ConcatAlg.store_data(self, fasta, phylip, txt_partitions)
+
+def get_species_code(name, splitter, field):
+    # By default, taxid is the first par of the seqid, separated by
+    # underscore
+    return name.split(splitter, 1)[field].strip()
+
+def get_concatenated_alg(alg_filenames, models=None,
+                        sp_field=0, sp_delimiter="_",
+                        kill_thr=0.0,
+                        keep_species=set()):
+    # Concat alg container
+    concat = SeqGroup()
+    # Used to store different model partitions
+    concat.id2partition = {}
+
+    if not models:
+        models = ["None"]*len(alg_filenames)
+    else:
+        if len(models) != len(alg_filenames):
+            raise ValueError("Different number of algs and model names was found!")
+
+    expected_total_length = 0
+    # Check algs and gets the whole set of species
+    alg_objects = []
+    sp2alg = defaultdict(list)
+
+    for algfile, matrix in zip(alg_filenames, models):
+        alg = SeqGroup(algfile, "fasta")
+        alg_objects.append(alg)
+        lenseq = None
+        browsed_species = set()
+        alg.sp2seq = {}
+        # Set best matrix for this alignment
+        alg.matrix = matrix
+        # Change seq names to contain only species names
+        for i, seq in six.iteritems(alg.id2seq):
+            name = db.get_seq_name(alg.id2name[i])
+            taxid = get_species_code(name, splitter=sp_delimiter, field=sp_field)
+            if lenseq is not None and len(seq) != lenseq:
+                raise Exception("Inconsistent alignment when concatenating: Unequal length")
+            elif lenseq is None:
+                lenseq = len(seq)
+                alg.seqlength = len(seq)
+                expected_total_length += len(seq)
+            if taxid in browsed_species:
+                raise Exception("Inconsistent alignment when concatenating: Repeated species")
+            browsed_species.add(taxid) # Check no duplicated species in the same alg
+            sp2alg[taxid].append(alg) # Records all species seen in all algs.
+            alg.sp2seq[taxid] = seq
+
+    valid_species = [sp for sp in six.iterkeys(sp2alg) \
+                         if sp in keep_species or \
+                         len(sp2alg[sp])/float(len(alg_objects)) > kill_thr]
+
+    log.info("%d out of %d will be kept (missing factor threshold=%g, %d species forced to kept)" %\
+                 (len(valid_species), len(sp2alg), kill_thr, len(keep_species)))
+
+    def sort_single_algs(alg1, alg2):
+        r = cmp(alg1.matrix, alg2.matrix)
+        if r == 0:
+            return cmp(sorted(alg1.id2name.values()),
+                       sorted(alg2.id2name.values()))
+        else:
+            return r
+
+    sorted_algs = sorted(alg_objects, sort_single_algs)
+    concat_alg_lengths = [alg.seqlength for alg in sorted_algs]
+    model2win = {}
+    model2size = {}
+    for alg in sorted_algs:
+        model2size[alg.matrix] = model2size.get(alg.matrix, 0) + alg.seqlength
+
+    # Create concat alg
+    concat.id2seq = defaultdict(list)
+    for sp in sorted(valid_species):
+        log.log(20, "Concatenating sequences of [%s]" %sp)
+        for alg in sorted_algs:
+            seq = alg.sp2seq.get(sp, "-" * alg.seqlength)
+            concat.id2seq[sp].append(seq)
+            #current_seq = concat.id2seq.get(sp, "")
+            #concat.id2seq[sp] = current_seq + seq.strip()
+            concat.id2name[sp] = sp
+            concat.name2id[sp] = sp
+            concat.id2comment[sp] = [""]
+        concat.id2seq[sp] = ''.join(concat.id2seq[sp])
+
+    current_pos = 0
+    partitions = []
+    for model in sorted(model2size.keys()):
+        size = model2size[model]
+        part = "%s, %s = %d-%d" % (model, model+"_genes", \
+                                       current_pos + 1,\
+                                       current_pos + size)
+        current_pos += size
+        partitions.append(part)
+
+    # Basic Checks
+    seq_sizes = [len(seq) for seq in list(concat.id2seq.values())]
+    if len(set(seq_sizes)) != 1:
+        raise Exception("Concatenated alignment is not consistent: unequal seq length ")
+    if seq_sizes[0] != expected_total_length:
+        raise Exception("The size of concatenated alg is not what expected")
+    return concat, partitions, sp2alg, valid_species, concat_alg_lengths
+
+
diff --git a/ete3/tools/phylobuild_lib/task/dialigntx.py b/ete3/tools/phylobuild_lib/task/dialigntx.py
new file mode 100644
index 0000000..73b62d9
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/dialigntx.py
@@ -0,0 +1,85 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from ..utils import SeqGroup, OrderedDict, GLOBALS, pjoin
+
+__all__ = ["Dialigntx"]
+
+class Dialigntx(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        GLOBALS["citator"].add('dialigntx')
+
+        # fixed options for running this task
+        base_args = OrderedDict({
+                '': None,
+                })
+        # Initialize task
+        self.confname = confname
+        self.conf = conf
+        AlgTask.__init__(self, nodeid, "alg", "DialignTX",
+                      base_args, self.conf[self.confname])
+
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.init()
+
+    def load_jobs(self):
+        # Only one Muscle job is necessary to run this task
+        appname = self.conf[self.confname]["_app"]
+        args = OrderedDict(self.args)
+        args[''] = "%s %s" %(pjoin(GLOBALS["input_dir"], self.multiseq_file),
+                             "alg.fasta")
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.multiseq_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format.
+        alg = SeqGroup(os.path.join(self.jobs[0].jobdir, "alg.fasta"))
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
diff --git a/ete3/tools/phylobuild_lib/task/dummyalg.py b/ete3/tools/phylobuild_lib/task/dummyalg.py
new file mode 100644
index 0000000..027dce5
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/dummyalg.py
@@ -0,0 +1,49 @@
+from __future__ import absolute_import
+import os
+import sys
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from .. import db
+from ..utils import (read_fasta, OrderedDict, GLOBALS, pjoin, SeqGroup)
+from ..errors import TaskError
+
+__all__ = ["ManualAlg"]
+
+class ManualAlg(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        base_args = {}
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "ManualAlg",
+                         base_args, {})
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.init()
+
+    def load_jobs(self):
+        pass
+    
+    def finish(self):
+        # Uses the original MSF file as alignment
+        alg_file = os.path.join(self.multiseq_file)
+        try:
+            _tid, _did = alg_file.split(".")
+            _did = int(_did)
+        except (IndexError, ValueError):
+            dataid = alg_file
+        else:
+            dataid = db.get_dataid(_tid, _did)
+        alg = SeqGroup(db.get_data(dataid))
+
+        lengths = set([len(seq) for seq in alg.id2seq.values()])
+        if len(lengths) > 1:
+            raise TaskError("Original sequences are not aligned!")            
+        
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
diff --git a/ete3/tools/phylobuild_lib/task/dummytree.py b/ete3/tools/phylobuild_lib/task/dummytree.py
new file mode 100644
index 0000000..eab6a31
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/dummytree.py
@@ -0,0 +1,87 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import sys
+import re
+import shutil
+
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import TreeTask
+from ..master_job import Job
+from ..utils import (basename, GLOBALS, DATATYPES)
+from .. import db
+
+
+__all__ = ["DummyTree"]
+
+class DummyTree(TreeTask):
+    def __init__(self, nodeid, alg_file, constrain_id, model, seqtype,
+                 conf, confname, parts_id=None):
+        self.confname = confname
+        self.conf = conf
+        self.alg_phylip_file = alg_file
+        self.constrain_tree = None
+        if constrain_id:
+            self.constrain_tree = db.get_dataid(constrain_id, DATATYPES.constrain_alg)
+        self.alg_basename = basename(self.alg_phylip_file)
+        self.seqtype = seqtype
+        self.tree_file = ""
+        self.model = None
+        self.lk = None
+
+        TreeTask.__init__(self, nodeid, "tree", "DummyTree", {}, {})
+        self.init()
+
+    def load_jobs(self):
+        pass
+
+    def finish(self):
+        node_info = self.conf["_nodeinfo"][self.nodeid]
+
+        target_seqs = node_info.get("target_seqs", set())
+        out_seqs = node_info.get("out_seqs", set())
+        all_seqs = list(target_seqs | out_seqs)
+
+        newick = "(%s, (%s));" %(all_seqs[0], ','.join(all_seqs[1:]))
+
+        TreeTask.store_data(self, newick, {})
+
diff --git a/ete3/tools/phylobuild_lib/task/fasttree.py b/ete3/tools/phylobuild_lib/task/fasttree.py
new file mode 100644
index 0000000..12af186
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/fasttree.py
@@ -0,0 +1,113 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import os
+import sys
+import re
+import shutil
+
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import TreeTask
+from ..master_job import Job
+from ..utils import (basename, Tree, OrderedDict, GLOBALS, DATATYPES, pjoin)
+from .. import db
+__all__ = ["FastTree"]
+
+class FastTree(TreeTask):
+    def __init__(self, nodeid, alg_file, constrain_id, model, seqtype,
+                 conf, confname, parts_id=None):
+        GLOBALS["citator"].add('fasttree')
+
+        self.confname = confname
+        self.conf = conf
+        self.alg_phylip_file = alg_file
+        self.constrain_tree = None
+        if constrain_id:
+            self.constrain_tree = db.get_dataid(constrain_id, DATATYPES.constrain_alg)
+        self.alg_basename = basename(self.alg_phylip_file)
+        self.seqtype = seqtype
+        self.tree_file = ""
+        if model:
+            log.warning("FastTree does not support model selection")
+
+        self.model = None
+        self.lk = None
+
+        base_args = OrderedDict()
+        base_args["-nopr"] = ""
+        if self.seqtype == "nt":
+            base_args["-gtr -nt"] = ""
+        elif self.seqtype == "aa":
+            pass
+        else:
+            raise ValueError("Unknown seqtype %s" %self.seqtype)
+
+        TreeTask.__init__(self, nodeid, "tree", "FastTree", base_args,
+                          self.conf[confname])
+
+        self.init()
+
+    def load_jobs(self):
+        args = self.args.copy()
+
+        try:
+            del args["-wag"]
+        except KeyError:
+            pass
+
+        if self.constrain_tree:
+            args["-constraints"] = pjoin(GLOBALS["input_dir"], self.constrain_tree)
+
+        args[pjoin(GLOBALS["input_dir"], self.alg_phylip_file)] = ""
+        appname = self.conf[self.confname]["_app"]
+
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.cores = self.conf["threading"][appname]
+        if self.constrain_tree:
+            job.add_input_file(self.constrain_tree)
+        job.add_input_file(self.alg_phylip_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        job = self.jobs[-1]
+        t = Tree(job.stdout_file)
+        TreeTask.store_data(self, t.write(), {})
+
diff --git a/ete3/tools/phylobuild_lib/task/jmodeltest.py b/ete3/tools/phylobuild_lib/task/jmodeltest.py
new file mode 100644
index 0000000..091d574
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/jmodeltest.py
@@ -0,0 +1,113 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import ModelTesterTask
+from ..master_job import Job
+from ..utils import basename, PhyloTree
+
+__all__ = ["JModeltest"]
+
+class JModeltest(ModelTesterTask):
+    def __init__(self, nodeid, alg_fasta_file, alg_phylip_file, conf):
+        GLOBALS["citator"].add('jmodeltest')
+
+        self.conf = conf
+        base_args = {
+            '-d': alg_fasta_file,
+            }
+        args = self.conf["jmodeltest"]
+        if args.get("-t", "ML") == "ML":
+            task_type = "tree"
+        else:
+            task_type = "mchooser"
+
+        ModelTesterTask.__init__(self, nodeid, task_type, "Jmodeltest",
+                                 base_args, self.conf[confname])
+
+        # set app arguments and options
+        self.alg_fasta_file = alg_fasta_file
+        self.alg_phylip_file = alg_phylip_file
+        self.seqtype = "nt"
+        self.models = "see jmodeltest params"
+
+        self.init()
+        self.best_model_file = os.path.join(self.taskdir, "best_model.txt")
+        if task_type == "tree":
+            self.tree_file = os.path.join(self.taskdir, "final_tree.nw")
+        else:
+            self.tree_file = None
+
+
+    def load_jobs(self):
+        tree_job = Job(self.conf["app"]["jmodeltest"], self.args, parent_ids=[self.nodeid])
+        self.jobs.append(tree_job)
+
+    def finish(self):
+        # first job is the raxml tree
+        best_model = None
+        best_model_in_next_line = False
+        t = None
+        for line in open(self.jobs[-1].stdout_file, "rU"):
+            line = line.strip()
+            if best_model_in_next_line and line.startswith("Model"):
+                pass#best_model = line.split("=")[1].strip()
+            elif best_model_in_next_line and line.startswith("partition"):
+                best_model = line.split("=")[1].strip()
+                best_model_in_next_line = False
+            elif line.startswith("Model selected:"):
+                best_model_in_next_line = True
+            elif line.startswith("ML tree (NNI) for the best AIC model ="):
+                nw = line.replace("ML tree (NNI) for the best AIC model =", "")
+                t = PhyloTree(nw)
+
+        open(self.best_model_file, "w").write(best_model)
+        log.log(26, "Best model: %s" %best_model)
+        if self.ttype == "tree":
+            tree_job = self.jobs[-1]
+            tree_file =  os.path.join(tree_job.jobdir,
+                                      "jModelTest_tree."+self.nodeid)
+            t.write(outfile=self.tree_file)
+            self.model = best_model
+
+
+        ModelTesterTask.finish(self)
diff --git a/ete3/tools/phylobuild_lib/task/mafft.py b/ete3/tools/phylobuild_lib/task/mafft.py
new file mode 100644
index 0000000..96011c5
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/mafft.py
@@ -0,0 +1,83 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from ..utils import SeqGroup, OrderedDict, GLOBALS, pjoin
+from .. import db
+
+__all__ = ["Mafft"]
+
+class Mafft(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        GLOBALS["citator"].add('mafft')
+
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "Mafft",
+                      OrderedDict(), self.conf[confname])
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.init()
+
+    def load_jobs(self):
+        appname = self.conf[self.confname]["_app"]
+        args = OrderedDict(self.args)
+        # Mafft redirects resulting alg to std.output. The order of
+        # arguments is important, input file must be the last
+        # one.
+        args[""] = pjoin(GLOBALS["input_dir"], self.multiseq_file)
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.multiseq_file)
+        job.cores = self.conf["threading"][appname]
+        self.jobs.append(job)
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format.
+        alg = SeqGroup(self.jobs[0].stdout_file)
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
diff --git a/ete3/tools/phylobuild_lib/task/merger.py b/ete3/tools/phylobuild_lib/task/merger.py
new file mode 100644
index 0000000..a7b50a7
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/merger.py
@@ -0,0 +1,256 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import logging
+import os
+import six
+log = logging.getLogger("main")
+
+from ..master_task import TreeMergeTask
+from ..master_job import Job
+from ..utils import (load_node_size, PhyloTree, SeqGroup, generate_id,
+                          NPR_TREE_STYLE, NodeStyle, DEBUG,
+                          faces, pjoin, GLOBALS)
+from ..errors import ConfigError, TaskError
+from .. import db
+
+__all__ = ["TreeMerger"]
+
+class TreeMerger(TreeMergeTask):
+    def __init__(self, nodeid, seqtype, task_tree, conf, confname):
+        # Initialize task
+        self.confname = confname
+        self.conf = conf
+        self.task_tree_file = task_tree
+        TreeMergeTask.__init__(self, nodeid, "treemerger", "TreeMerger",
+                               None, self.conf[self.confname])
+
+        self.main_tree = None
+        self.task_tree = None
+        self.seqtype = seqtype
+        self.rf = None, None # Robinson foulds to orig partition
+        self.outgroup_match_dist = 0.0
+        self.outgroup_match = ""
+        self.pre_iter_support = None # support of the node pre-iteration
+        self.init()
+
+    def finish(self):
+        def euc_dist(x, y):
+            return len(x.symmetric_difference(y)) / float((len(x) + len(y)))
+        dataid = db.get_dataid(*self.task_tree_file.split("."))
+        ttree = PhyloTree(db.get_data(dataid))
+        mtree = self.main_tree
+        ttree.dist = 0
+        cladeid, target_seqs, out_seqs = db.get_node_info(self.threadid, self.nodeid)
+        self.out_seqs = out_seqs
+        self.target_seqs = target_seqs
+
+        ttree_content = ttree.get_cached_content()
+        if mtree and not out_seqs:
+            mtree_content = mtree.get_cached_content()
+            log.log(24, "Finding best scoring outgroup from previous iteration.")
+            for _n in mtree_content:
+                if _n.cladeid == cladeid:
+                    orig_target = _n
+            target_left = set([_n.name for _n in mtree_content[orig_target.children[0]]])
+            target_right = set([_n.name for _n in mtree_content[orig_target.children[1]]])
+
+            partition_pairs = []
+            everything = set([_n.name for _n in ttree_content[ttree]])
+            for n, content in six.iteritems(ttree_content):
+                if n is ttree:
+                    continue
+                left = set([_n.name for _n in content])
+                right =  everything - left
+                d1 = euc_dist(left, target_left)
+                d2 = euc_dist(left, target_right)
+                best_match = min(d1, d2)
+                partition_pairs.append([best_match, left, right, n])
+
+            partition_pairs.sort()
+
+            self.outgroup_match_dist = partition_pairs[0][0]
+            #self.outgroup_match = '#'.join( ['|'.join(partition_pairs[0][1]),
+            #                      '|'.join(partition_pairs[0][2])] )
+
+
+            outgroup = partition_pairs[0][3]
+            ttree.set_outgroup(outgroup)
+
+            ttree.dist = orig_target.dist
+            ttree.support = orig_target.support
+
+            # Merge task and main trees
+            parent = orig_target.up
+            orig_target.detach()
+            parent.add_child(ttree)
+
+        elif mtree and out_seqs:
+            log.log(26, "Rooting tree using %d custom seqs" %
+                   len(out_seqs))
+
+            self.outgroup_match = '|'.join(out_seqs)
+
+            #log.log(22, "Out seqs:    %s", len(out_seqs))
+            #log.log(22, "Target seqs: %s", target_seqs)
+            if len(out_seqs) > 1:
+                #first root to a single seqs outside the outgroup
+                #(should never fail and avoids random outgroup split
+                #problems in unrooted trees)
+                ttree.set_outgroup(ttree & list(target_seqs)[0])
+                # Now tries to get the outgroup node as a monophyletic clade
+                outgroup = ttree.get_common_ancestor(out_seqs)
+                if set(outgroup.get_leaf_names()) ^ out_seqs:
+                    msg = "Monophyly of the selected outgroup could not be granted! Probably constrain tree failed."
+                    #dump_tree_debug(msg, self.taskdir, mtree, ttree, target_seqs, out_seqs)
+                    raise TaskError(self, msg)
+            else:
+                outgroup = ttree & list(out_seqs)[0]
+
+            ttree.set_outgroup(outgroup)
+            orig_target = self.main_tree.get_common_ancestor(target_seqs)
+            found_target = outgroup.get_sisters()[0]
+
+            ttree = ttree.get_common_ancestor(target_seqs)
+            outgroup.detach()
+            self.pre_iter_support = orig_target.support
+            # Use previous dist and support
+            ttree.dist = orig_target.dist
+            ttree.support = orig_target.support
+            parent = orig_target.up
+            orig_target.detach()
+            parent.add_child(ttree)
+
+        else:
+            # ROOTS FIRST ITERATION
+            log.log(24, "Getting outgroup for first NPR split")
+
+            # if early split is provided in the command line, it
+            # overrides config file
+            mainout = GLOBALS.get("first_split_outgroup", "midpoint")
+
+            if mainout.lower() == "midpoint":
+                log.log(26, "Rooting to midpoint.")
+                best_outgroup = ttree.get_midpoint_outgroup()
+                if best_outgroup:
+                    ttree.set_outgroup(best_outgroup)
+                else:
+                    log.warning("Midpoint outgroup could not be set!")
+                    ttree.set_outgroup(next(ttree.iter_leaves()))
+            else:
+                if mainout.startswith("~"):
+                    # Lazy defined outgroup. Will trust in the common
+                    # ancestor of two or more OTUs
+                    strict_common_ancestor = False
+                    outs = set(mainout[1:].split())
+                    if len(outs) < 2:
+                        raise TaskError(self, "First split outgroup error: common "
+                                        "ancestor calculation requires at least two OTU names")
+                else:
+                    strict_common_ancestor = True
+                    outs = set(mainout.split())
+
+                if outs - target_seqs:
+                    raise TaskError(self, "Unknown seqs cannot be used to set first split rooting:%s" %(outs - target_seqs))
+
+                if len(outs) > 1:
+                    anchor = list(set(target_seqs) - outs)[0]
+                    ttree.set_outgroup(ttree & anchor)
+                    common = ttree.get_common_ancestor(outs)
+                    out_seqs = common.get_leaf_names()
+                    if common is ttree:
+                        msg = "First split outgroup could not be granted:%s" %out_seqs
+                        #dump_tree_debug(msg, self.taskdir, mtree, ttree, target_seqs, outs)
+                        raise TaskError(self, msg)
+                    if strict_common_ancestor and set(out_seqs) ^ outs:
+                        msg = "Monophyly of first split outgroup could not be granted:%s" %out_seqs
+                        #dump_tree_debug(msg, self.taskdir, mtree, ttree, target_seqs, outs)
+                        raise TaskError(self, msg)
+
+                    log.log(26, "@@8:First split rooting to %d seqs@@1:: %s" %(len(out_seqs),out_seqs))
+                    ttree.set_outgroup(common)
+                else:
+                    single_out = outs.pop()
+                    common = ttree.set_outgroup(single_out)
+                    log.log(26, "@@8:First split rooting to 1 seq@@1:: %s" %(single_out))
+
+            self.main_tree = ttree
+            orig_target = ttree
+
+        tn = orig_target.copy()
+        self.pre_iter_task_tree = tn
+        self.rf = orig_target.robinson_foulds(ttree)
+        self.pre_iter_support = orig_target.support
+
+        # Reloads node2content of the rooted tree and generate cladeids
+        ttree_content = self.main_tree.get_cached_content()
+        for n, content in six.iteritems(ttree_content):
+            cid = generate_id([_n.name for _n in content])
+            n.add_feature("cladeid", cid)
+
+        #ttree.write(outfile=self.pruned_tree)
+        self.task_tree = ttree
+
+
+def dump_tree_debug(msg, taskdir, mtree, ttree, target_seqs, out_seqs):
+    try:
+        if out_seqs is None: out_seqs = set()
+        if target_seqs is None: target_seqs = set()
+        if ttree:
+            for n in ttree.get_leaves():
+                if n.name in out_seqs:
+                    n.name = n.name + " *__OUTGROUP__*"
+        if mtree:
+            for n in mtree.get_leaves():
+                if n.name in out_seqs:
+                    n.name = n.name + " *__OUTGROUP__*"
+                if n.name in target_seqs:
+                    n.name = n.name + " [ TARGET ]"
+
+        OUT = open(pjoin(taskdir, "__debug__"), "w")
+        print(msg, file=OUT)
+        print("MainTree:", mtree, file=OUT)
+        print("TaskTree:", ttree, file=OUT)
+        print("Expected outgroups:", out_seqs, file=OUT)
+        OUT.close()
+    except Exception as e:
+        print(e)
+
+
diff --git a/ete3/tools/phylobuild_lib/task/meta_aligner.py b/ete3/tools/phylobuild_lib/task/meta_aligner.py
new file mode 100644
index 0000000..a8372d5
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/meta_aligner.py
@@ -0,0 +1,227 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import logging
+import shutil
+import importlib
+
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask, Task
+from ..master_job import Job
+from ..utils import (SeqGroup, OrderedDict, checksum, pjoin,
+                          GLOBALS, DATATYPES)
+from ..apps import APP2CLASS, CLASS2MODULE
+from .. import db
+
+#from . import __init__ as task
+
+__all__ = ["MetaAligner"]
+
+def seq_reverser_job(multiseq_file, outfile, parent_ids, trimal_bin):
+     """ Returns a job reversing all sequences in MSF or MSA. """
+     reversion_args = {"-in": multiseq_file, "-out": outfile,
+                       "-reverse": "", "-fasta": ""}
+     job = Job(trimal_bin, reversion_args, "TrimalAlgReverser",
+               parent_ids=parent_ids)
+     return job
+
+class MCoffee(AlgTask):
+    def __init__(self, nodeid, seqtype, all_alg_files, conf, confname, parent_ids):
+        GLOBALS["citator"].add('mcoffee')
+        base_args = OrderedDict({
+                "-output": "fasta",
+                })
+        # Initialize task
+        self.confname = confname
+        self.conf = conf
+        AlgTask.__init__(self, nodeid, "alg", "Mcoffee",
+                         base_args, self.conf[confname])
+        self.all_alg_files = all_alg_files
+        self.parent_ids = parent_ids
+        self.seqtype = seqtype
+        self.init()
+
+    def load_jobs(self):
+        args = self.args.copy()
+        args["-outfile"] = "mcoffee.fasta"
+
+        alg_paths = [pjoin(GLOBALS["input_dir"], algid)
+                     for algid in self.all_alg_files]
+        args["-aln"] = ' '.join(alg_paths)
+        job = Job(self.conf["app"]["tcoffee"], args, parent_ids=self.parent_ids)
+        for key in self.all_alg_files:
+            job.add_input_file(key)
+        self.jobs.append(job)
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format.
+        alg = SeqGroup(os.path.join(self.jobs[0].jobdir, "mcoffee.fasta"))
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+
+        alg_list_string = '\n'.join([pjoin(GLOBALS["input_dir"],
+                                           aname) for aname in self.all_alg_files])
+        db.add_task_data(self.taskid, DATATYPES.alg_list, alg_list_string)
+
+        AlgTask.store_data(self, fasta, phylip)
+
+    def init_output_info(self):
+        self.alg_list_file = "%s.%s" %(self.taskid, DATATYPES.alg_list)
+        AlgTask.init_output_info(self)
+
+
+class MetaAligner(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "Meta-Alg",
+                         OrderedDict(), self.conf[self.confname])
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.size = conf["_nodeinfo"][nodeid].get("size", 0)
+        self.all_alg_files = None
+        self.init()
+
+        #if self.conf[confname]["_alg_trimming"]:
+        #    self.alg_list_file = pjoin(self.taskdir, "alg_list.txt")
+        #    open(self.alg_list_file, "w").write("\n".join(self.all_alg_files))
+        #    trim_job = self.jobs[-1]
+        #    trim_job.args["-compareset"] = self.alg_list_file
+        #    trim_job.args["-out"] = pjoin(self.taskdir, "final_trimmed_alg.fasta")
+        #    trim_job.alg_fasta_file = trim_job.args["-out"]
+        #    trim_job.alg_phylip_file = None
+
+
+    def load_jobs(self):
+        readal_bin = self.conf["app"]["readal"]
+        trimal_bin = self.conf["app"]["trimal"]
+        input_dir = GLOBALS["input_dir"]
+        multiseq_file = pjoin(input_dir, self.multiseq_file)
+        multiseq_file_r = pjoin(input_dir, self.multiseq_file+"_reversed")
+
+        first = seq_reverser_job(multiseq_file, multiseq_file_r,
+                                 [self.nodeid], readal_bin)
+        #print self.multiseq_file
+        first.add_input_file(self.multiseq_file)
+        self.jobs.append(first)
+
+        all_alg_names = []
+        mcoffee_parents = []
+        for aligner_name in self.conf[self.confname]["_aligners"]:
+            aligner_name = aligner_name[1:]
+            _classname = APP2CLASS[self.conf[aligner_name]["_app"]]
+
+            _module = importlib.import_module("ete3.tools.phylobuild_lib.task", "ete3")
+            #_module = __import__(CLASS2MODULE[_classname], globals(), locals(), [], 0)
+            _aligner = getattr(_module, _classname)
+
+            # Normal alg
+            task1 = _aligner(self.nodeid, self.multiseq_file, self.seqtype,
+                             self.conf, aligner_name)
+            task1.size = self.size
+            self.jobs.append(task1)
+            all_alg_names.append(task1.alg_fasta_file)
+
+
+            # Alg of the reverse
+            task2 = _aligner(self.nodeid, self.multiseq_file+"_reversed",
+                             self.seqtype, self.conf, aligner_name)
+            task2.size = self.size
+            task2.dependencies.add(first)
+            self.jobs.append(task2)
+
+            # Restore reverse alg
+            reverse_out = pjoin(input_dir, task2.alg_fasta_file)
+            task3 = seq_reverser_job(reverse_out,
+                                     reverse_out+"_restored",
+                                     [task2.taskid], readal_bin)
+            task3.dependencies.add(task2)
+            task3.add_input_file(task2.alg_fasta_file)
+            all_alg_names.append(reverse_out+"_restored")
+            self.jobs.append(task3)
+            mcoffee_parents.extend([task1.taskid, task2.taskid])
+
+        # Combine signal from all algs using Mcoffee
+        mcoffee_task = MCoffee(self.nodeid, self.seqtype, all_alg_names,
+                               self.conf, self.confname, parent_ids=mcoffee_parents)
+        # reversed algs are not actually saved into db, but it should
+        # be present since the reverser job is always executed
+        mcoffee_task.dependencies.update(list(self.jobs))
+        self.jobs.append(mcoffee_task)
+
+        if self.conf[self.confname]["_alg_trimming"]:
+            trimming_cutoff = 1.0 / len(all_alg_names)
+            targs = {}
+            targs["-forceselect"] = pjoin(input_dir, mcoffee_task.alg_fasta_file)
+            targs["-compareset"] = pjoin(input_dir, mcoffee_task.alg_list_file)
+            targs["-out"] = "mcoffee.trimmed.fasta"
+            targs["-fasta"] = ""
+            targs["-ct"] = trimming_cutoff
+            trim_job = Job(trimal_bin, targs, parent_ids=[mcoffee_task.taskid])
+            trim_job.jobname = "McoffeeTrimming"
+            trim_job.dependencies.add(mcoffee_task)
+            trim_job.alg_fasta_file = targs["-out"]
+            for key in all_alg_names:
+                trim_job.add_input_file(key)
+            trim_job.add_input_file(mcoffee_task.alg_fasta_file)
+            trim_job.add_input_file(mcoffee_task.alg_list_file)
+            self.jobs.append(trim_job)
+
+    def finish(self):
+        if self.conf[self.confname]["_alg_trimming"]:
+            # If trimming happened after mcoffee, let's save the
+            # resulting output
+            trim_job = self.jobs[-1]
+            alg = SeqGroup(pjoin(trim_job.jobdir, trim_job.alg_fasta_file))
+            fasta = alg.write(format="fasta")
+            phylip = alg.write(format="iphylip_relaxed")
+            AlgTask.store_data(self, fasta, phylip)
+        else:
+            # If no post trimming, output is just what Mcoffee
+            # produced, so we can recycle its data ids.
+            mc_task = self.jobs[-1]
+            fasta_id = db.get_dataid(mc_task.taskid, DATATYPES.alg_fasta)
+            phylip_id = db.get_dataid(mc_task.taskid, DATATYPES.alg_phylip)
+            db.register_task_data(self.taskid, DATATYPES.alg_fasta, fasta_id)
+            db.register_task_data(self.taskid, DATATYPES.alg_phylip, phylip_id)
diff --git a/ete3/tools/phylobuild_lib/task/msf.py b/ete3/tools/phylobuild_lib/task/msf.py
new file mode 100644
index 0000000..0d301aa
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/msf.py
@@ -0,0 +1,87 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import MsfTask
+from ..master_job import Job
+from ..utils import (PhyloTree, SeqGroup, md5, generate_node_ids,
+                     hascontent, pjoin, DATATYPES)
+from ..errors import DataError
+
+from .. import db
+
+__all__ = ["Msf"]
+
+class Msf(MsfTask):
+    def __init__(self, target_seqs, out_seqs, seqtype):
+        # Nodeid represents the whole group of sequences (used to
+        # compute task unique ids). Cladeid represents target
+        # sequences. Same cladeid with different outgroups would mean
+        # an independent set of tasks.
+        node_id, clade_id = generate_node_ids(target_seqs, out_seqs)
+        # Initialize task
+        MsfTask.__init__(self, node_id, "msf", "MSF")
+
+        # taskid does not depend on jobs, so I set it manually
+        self.taskid = node_id
+        self.init()
+
+        self.nodeid = node_id
+        self.cladeid = clade_id
+        self.seqtype = seqtype
+        self.target_seqs = target_seqs
+        self.out_seqs = out_seqs
+        if out_seqs & target_seqs:
+            log.error(out_seqs)
+            log.error(target_seqs)
+            raise DataError("Outgroup seqs included in target seqs.")
+        all_seqs = self.target_seqs | self.out_seqs
+        self.size = len(all_seqs)
+
+    def finish(self):
+        # Dump sequences into MSF
+        all_seqs = self.target_seqs | self.out_seqs
+        fasta = '\n'.join([">%s\n%s" % (n, db.get_seq(n, self.seqtype))
+                               for n in all_seqs])
+        MsfTask.store_data(self, fasta)
+
+
diff --git a/ete3/tools/phylobuild_lib/task/muscle.py b/ete3/tools/phylobuild_lib/task/muscle.py
new file mode 100644
index 0000000..f35031e
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/muscle.py
@@ -0,0 +1,84 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from ..utils import (SeqGroup, OrderedDict, GLOBALS, hascontent, pjoin)
+
+__all__ = ["Muscle"]
+
+class Muscle(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        GLOBALS["citator"].add('muscle')
+
+        # fixed Muscle options
+        base_args = OrderedDict({
+                '-in': None,
+                '-out': None,
+                })
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "Muscle",
+                      base_args,  self.conf[confname])
+
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.init()
+
+    def load_jobs(self):
+        # Only one Muscle job is necessary to run this task
+        appname = self.conf[self.confname]["_app"]
+        args = OrderedDict(self.args)
+        args["-in"] = pjoin(GLOBALS["input_dir"], self.multiseq_file)
+        args["-out"] = "muscle_alg.fasta"
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.multiseq_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        alg = SeqGroup(os.path.join(self.jobs[0].jobdir, "muscle_alg.fasta"))
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
+
diff --git a/ete3/tools/phylobuild_lib/task/phyml.py b/ete3/tools/phylobuild_lib/task/phyml.py
new file mode 100644
index 0000000..b484a42
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/phyml.py
@@ -0,0 +1,176 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import shutil
+import sys
+import re
+
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import TreeTask
+from ..master_job import Job
+from ..utils import basename, PhyloTree, OrderedDict, GLOBALS,  DATATYPES
+from .. import db
+
+__all__ = ["Phyml"]
+
+
+modelcodes = {
+ 'JC'   :'000000',  
+ 'K80'   :'010010' ,
+ 'TrNef' :'010020' ,
+ 'TPM1'  :'012210' ,
+ 'TPM2'  :'010212' ,
+ 'TPM3'  :'012012' ,
+ 'TIM1ef':'012230' ,
+ 'TIM2ef':'010232' ,
+ 'TIM3ef':'012032' ,
+ 'TVMef' :'012314' ,
+ 'SYM'   :'012345' ,
+ 'F81'   :'000000' ,
+ 'HKY'   :'010010' ,
+ 'TrN'   :'010020' ,
+ 'TPM1uf':'012210' ,
+ 'TPM2uf':'010212' ,
+ 'TPM3uf':'012012' ,
+ 'TIM1'  :'012230' ,
+ 'TIM2'  :'010232' ,
+ 'TIM3'  :'012032' ,
+ 'TVM'   :'012314' ,
+ 'GTR'   :'012345',
+}
+
+
+class Phyml(TreeTask):
+    def __init__(self, nodeid, alg_phylip_file, constrain_id, model,
+                 seqtype, conf, confname, parts_id=None):
+
+        GLOBALS["citator"].add('phyml')
+            
+        base_args = OrderedDict({
+                "--model": "",
+                "--no_memory_check": "",
+                "--quiet": "",
+                "--constraint_tree": ""})
+
+
+        if model and model.startswith('pmodeltest-'):
+            model = model.replace('pmodeltest-', '')
+            self.fullmodel = model
+
+            # overwrites default options if model selection says so            
+            if "+I" in model:
+                conf[confname]["-v"]=" e"
+            elif "!I" in model:
+                conf[confname]["-v"]=" 0"
+                            
+            if "+G" in model:
+                #conf[confname]["-c"]=" 4"
+                conf[confname]["-a"]="e"
+            elif "!G" in model:
+                conf[confname]["-c"]=" 1"
+                conf[confname].pop("-a", None)
+                
+            if "+F" in model:
+                conf[confname]["-f"] = "m" if seqtype == "nt" else "e"
+            elif "!F" in model:
+                conf[confname]["-f"] = '0.25,0.25,0.25,0.25' if seqtype == "nt" else "m"
+                
+            model = model.split("+")[0].split("!")[0]
+            if seqtype == "nt":
+                model = modelcodes[model]
+
+        elif not model:
+            model = conf[confname]["_aa_model"] if seqtype == "aa" else conf[confname]["_nt_model"]
+            self.fullmodel = ""
+        else:
+            self.fullmodel = model+"-prottest"
+            model= model # use the model as provided by prottest (older, simpler approach)  
+
+        self.model = model
+        self.confname = confname
+        self.conf = conf
+        self.constrain_tree = None
+        if constrain_id:
+            self.constrain_tree = db.get_dataid(constrain_id, DATATYPES.constrain_tree)
+            
+        self.alg_phylip_file = alg_phylip_file
+        TreeTask.__init__(self, nodeid, "tree", "Phyml",
+                          base_args, conf[confname])
+            
+        self.seqtype = seqtype
+        self.lk = None
+
+        self.init()
+
+    def load_jobs(self):
+        appname = self.conf[self.confname]["_app"]
+        args = OrderedDict(self.args)
+        args["--datatype"] = self.seqtype
+        args["--model"] = self.model
+        args["--input"] = self.alg_phylip_file
+        if self.constrain_tree:
+            args["--constraint_tree"] = self.constrain_tree
+            args["-u"] = self.constrain_tree
+        else:
+            del args["--constraint_tree"]
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.alg_phylip_file, job.jobdir)
+        if self.constrain_tree:
+            job.add_input_file(self.constrain_tree, job.jobdir)
+        job.jobname += "-"+self.fullmodel
+        self.jobs.append(job)
+
+    def finish(self):
+        lks = []
+        j = self.jobs[0]
+        tree_file = os.path.join(j.jobdir,
+                                 self.alg_phylip_file+"_phyml_tree.txt")
+        stats_file = os.path.join(j.jobdir,
+                                  self.alg_phylip_file+"_phyml_stats.txt")
+
+        m = re.search('Log-likelihood:\s+(-?\d+\.\d+)',
+                      open(stats_file).read())
+        lk = float(m.groups()[0])
+        stats = {"lk": lk}
+        tree = PhyloTree(tree_file)
+        TreeTask.store_data(self, tree.write(), stats)
+
diff --git a/ete3/tools/phylobuild_lib/task/pmodeltest.py b/ete3/tools/phylobuild_lib/task/pmodeltest.py
new file mode 100755
index 0000000..a803f06
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/pmodeltest.py
@@ -0,0 +1,69 @@
+from __future__ import absolute_import
+import os
+import re
+import logging
+import shutil
+from six.moves import map
+log = logging.getLogger("main")
+
+from ..master_task import ModelTesterTask
+from ..master_job import Job
+from ..utils import basename, PhyloTree, GLOBALS, pjoin
+
+__all__ = ["PModelTest"]
+
+class PModelTest(ModelTesterTask):
+    def __init__(self, nodeid, alg_fasta_file, alg_phylip_file,
+                 constrain_tree, seqtype, conf, confname):
+        GLOBALS["citator"].add('phyml')
+
+        self.alg_phylip_file = alg_phylip_file
+        self.alg_fasta_file = alg_fasta_file
+        self.confname = confname
+        self.conf = conf
+        self.seqtype = seqtype
+        base_args = {}
+        if seqtype == "aa":
+            base_args["--protein"] = ""
+            base_args["-m"] = conf[confname]["_aa_models"]
+            self.models = conf[confname]["_aa_models"]
+        else:
+            base_args["-m"] = conf[confname]["_nt_models"]
+            self.models = conf[confname]["_nt_models"]
+        task_name = "PModelTest-[%s]" %self.models
+        
+        ModelTesterTask.__init__(self, nodeid, "mchooser", task_name,
+                                 base_args, conf[confname])
+
+        self.best_model = None
+        self.init()
+
+    def load_jobs(self):
+        args = self.args.copy()
+        args["-i"] = pjoin(GLOBALS["input_dir"], self.alg_phylip_file)
+        args["--outtable"] = "pmodeltest.txt"
+        appname = self.conf[self.confname]["_app"]
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.cores = self.conf["threading"][appname]
+        job.add_input_file(self.alg_phylip_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        main_job = self.jobs[0]
+        aic_table = pjoin(main_job.jobdir, "pmodeltest.txt")        
+        best = open(aic_table).readline().split('\t')        
+        best_model = "pmodeltest-%s" %(best[0].strip())
+        if "--nogam" not in self.args and "+G" not in best_model:
+            best_model += "!G"
+        if "--nofrq" not in self.args and "+F" not in best_model:
+            best_model += "!F"            
+        if "--noinv" not in self.args and "+I" not in best_model:
+            best_model += "!I"
+                
+        log.log(22, "%s model selection output:\n%s" %(best_model, open(aic_table).read()))
+        ModelTesterTask.store_data(self, best_model, aic_table)
+
+
+
+
+
diff --git a/ete3/tools/phylobuild_lib/task/prottest.py b/ete3/tools/phylobuild_lib/task/prottest.py
new file mode 100644
index 0000000..5e9c10a
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/prottest.py
@@ -0,0 +1,159 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import re
+import logging
+import shutil
+from six.moves import map
+log = logging.getLogger("main")
+
+from ..master_task import ModelTesterTask
+from ..master_job import Job
+from ..errors import TaskError
+from ..utils import basename, PhyloTree, GLOBALS, pjoin
+
+__all__ = ["Prottest"]
+
+class Prottest(ModelTesterTask):
+    def __init__(self, nodeid, alg_fasta_file, alg_phylip_file,
+                 constrain_tree, seqtype, conf, confname):
+        GLOBALS["citator"].add('phyml')
+       
+        self.alg_phylip_file = alg_phylip_file
+        self.alg_fasta_file = alg_fasta_file
+        self.confname = confname
+        self.conf = conf
+        self.lk_mode = conf[confname]["_lk_mode"]
+        if self.lk_mode == "raxml":
+            phyml_optimization = "n"
+        elif self.lk_mode == "phyml":
+            phyml_optimization = "lr"
+        else:
+            raise ValueError("Choose a valid lk_mode value (raxml or phyml)")
+
+        base_args = {
+            "--datatype": "aa",
+            "--input": self.alg_phylip_file,
+            "--bootstrap": "0",
+            "-o": phyml_optimization,
+            "--model": None, # I will iterate over this value when
+                             # creating jobs
+            "--quiet": ""
+            }
+        self.models = conf[confname]["_models"]
+        task_name = "Prottest-[%s]" %','.join(self.models)
+        ModelTesterTask.__init__(self, nodeid, "mchooser", task_name,
+                      base_args, conf[confname])
+
+        if seqtype == "nt":
+            log.error('Prottest can only be used with amino-acid alignments!')
+            raise TaskError(self, 'Prottest can only be used with amino-acid alignments!')
+ 
+        
+        self.best_model = None
+        self.seqtype = "aa"
+        self.init()
+
+        
+    def load_jobs(self):
+        conf = self.conf
+        for m in self.models:
+            args = self.args.copy()
+            args["--model"] = m
+            bionj_job = Job(conf["app"]["phyml"], args,
+                      parent_ids=[self.nodeid])
+            bionj_job.jobname += "-bionj-" + m
+            bionj_job.jobcat = "bionj"
+            bionj_job.add_input_file(self.alg_phylip_file, bionj_job.jobdir)
+            self.jobs.append(bionj_job)
+
+            if self.lk_mode == "raxml":
+                raxml_args = {
+                    "-f": "e",
+                    "-s": pjoin(bionj_job.jobdir, self.alg_phylip_file),
+                    "-m": "PROTGAMMA%s" % m,
+                    "-n": self.alg_phylip_file+"."+m,
+                    "-t": pjoin(bionj_job.jobdir,
+                                       self.alg_phylip_file+"_phyml_tree.txt")
+                    }
+                raxml_job = Job(conf["app"]["raxml"], raxml_args,
+                                parent_ids=[bionj_job.jobid])
+                raxml_job.jobname += "-lk-optimize"
+                raxml_job.dependencies.add(bionj_job)
+                raxml_job.model = m
+                raxml_job.jobcat = "raxml"
+                self.jobs.append(raxml_job)
+
+    def finish(self):
+        lks = []
+        if self.lk_mode == "phyml":
+            for job in self.jobs:
+                if job.jobcat != "bionj": continue
+                phyml_job = job
+                tree_file = pjoin(phyml_job.jobdir,
+                                  self.alg_phylip_file+"_phyml_tree.txt")
+                stats_file = pjoin(phyml_job.jobdir,
+                                   self.alg_phylip_file+"_phyml_stats.txt")
+                tree = PhyloTree(tree_file)
+                m = re.search('Log-likelihood:\s+(-?\d+\.\d+)',
+                              open(stats_file).read())
+                lk = float(m.groups()[0])
+                tree.add_feature("lk", lk)
+                tree.add_feature("model", phyml_job.args["--model"])
+                lks.append([float(tree.lk), tree.model, tree])
+        elif self.lk_mode == "raxml":
+            for job in self.jobs:
+                if job.jobcat != "raxml": continue
+                raxml_job = job
+                lk = open(pjoin(raxml_job.jobdir, "RAxML_log.%s"
+                                %raxml_job.args["-n"])).readline().split()[1]
+                tree = PhyloTree(raxml_job.args["-t"])
+                tree.add_feature("lk", lk)
+                tree.add_feature("model", raxml_job.model)
+                lks.append([float(tree.lk), tree.model, tree])
+
+        # sort lks in ASC order
+        lks.sort()
+        # choose the model with higher likelihood, the lastone in the list
+        best_model = lks[-1][1]
+        best_tree = lks[-1][2]
+        log.log(22, "%s model selected from the following lk values:\n%s" %(best_model, '\n'.join(map(str, lks))))
+        ModelTesterTask.store_data(self, best_model, lks)
+
diff --git a/ete3/tools/phylobuild_lib/task/prottest2.py b/ete3/tools/phylobuild_lib/task/prottest2.py
new file mode 100644
index 0000000..6236610
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/prottest2.py
@@ -0,0 +1,162 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import re
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import ModelTesterTask
+from ..master_job import Job
+from ..utils import basename, PhyloTree, GLOBALS
+
+__all__ = ["Prottest"]
+
+class Prottest(ModelTesterTask):
+    def __init__(self, nodeid, alg_fasta_file, alg_phylip_file,
+                 constrain_tree, conf):
+        self.alg_phylip_file = alg_phylip_file
+        self.alg_fasta_file = alg_fasta_file
+        self.alg_basename = basename(self.alg_phylip_file)
+        self.conf = conf
+        self.lk_mode = self.conf["prottest"]["_lk_mode"]
+        if self.lk_mode == "raxml":
+            phyml_optimization = "n"
+        elif self.lk_mode == "phyml":
+            phyml_optimization = "lr"
+        else:
+            raise ValueError("Choose a valid lk_mode value (raxml or phyml)")
+
+        base_args = {
+            "--datatype": "aa",
+            "--input": self.alg_basename,
+            "--bootstrap": "0",
+            "-o": phyml_optimization,
+            "--model": None, # I will iterate over this value when
+                             # creating jobs
+            "--quiet": ""
+            }
+
+        ModelTesterTask.__init__(self, nodeid, "mchooser", "Prottest",
+                      base_args, conf["prottest"])
+
+        self.best_model = None
+        self.seqtype = "aa"
+        self.models = self.conf["prottest"]["_models"]
+        self.init()
+        self.post_init()
+
+    def post_init(self):
+        self.best_model_file = os.path.join(self.taskdir, "best_model.txt")
+        self.tree_file = None #os.path.join(self.taskdir, "final_tree.nw")
+
+        # Phyml cannot write the output in a different directory that
+        # the original alg file. So I use relative path to alg file
+        # for processes and I create a symlink for each of the
+        # instances.
+        for job in self.jobs:
+            fake_alg_file = os.path.join(job.jobdir, self.alg_basename)
+            if os.path.exists(fake_alg_file):
+                os.remove(fake_alg_file)
+            try: # Does not work on windows
+                os.symlink(self.alg_phylip_file, fake_alg_file)
+            except OSError:
+                log.warning("Unable to create symbolic links. Duplicating files instead")
+                shutil.copy(self.alg_phylip_file, fake_alg_file)
+
+    def load_jobs(self):
+        for m in self.models:
+            args = self.args.copy()
+            args["--model"] = m
+            job = Job(self.conf["app"]["phyml"], args,
+                      parent_ids=[self.nodeid], jobname="phyml-bionj")
+            job.flag = "phyml"
+            self.jobs.append(job)
+
+            if self.lk_mode == "raxml":
+                raxml_args = {
+                    "-f": "e",
+                    "-s": self.alg_basename,
+                    "-m": "PROTGAMMA%s" % m,
+                    "-n": self.alg_basename+"."+m,
+                    "-t": os.path.join(GLOBALS["tasks_dir"], job.jobid,
+                                       self.alg_basename+"_phyml_tree.txt")
+                    }
+                raxml_job = Job(self.conf["app"]["raxml"], raxml_args,
+                                parent_ids=[job.jobid], jobname="raxml-tree-optimize")
+                raxml_job.dependencies.add(job)
+                raxml_job.flag = "raxml"
+                raxml_job.model = m
+                self.jobs.append(raxml_job)
+
+        log.log(26, "Models to test %s", self.models)
+
+    def finish(self):
+        lks = []
+        if self.lk_mode == "phyml":
+            for job in [j for j in self.jobs if j.flag == "phyml"]:
+                tree_file = os.path.join(job.jobdir,
+                                         self.alg_basename+"_phyml_tree.txt")
+                stats_file = os.path.join(j.jobdir,
+                                          self.alg_basename+"_phyml_stats.txt")
+                tree = PhyloTree(tree_file)
+                m = re.search('Log-likelihood:\s+(-?\d+\.\d+)',
+                              open(stats_file).read())
+                lk = float(m.groups()[0])
+                tree.add_feature("lk", lk)
+                tree.add_feature("model", job.args["--model"])
+                lks.append([float(tree.lk), tree.model, tree])
+        elif self.lk_mode == "raxml":
+            for job in [j for j in self.jobs if j.flag == "raxml"]:
+                lk = open(os.path.join(job.jobdir, "RAxML_log.%s"
+                                       %job.args["-n"])).readline().split()[1]
+                tree = PhyloTree(job.args["-t"])
+                tree.add_feature("lk", lk)
+                tree.add_feature("model", job.model)
+                lks.append([lk, tree.model, tree])
+        lks.sort()
+        lks.reverse()
+        # choose the model with higher likelihood
+        best_model = lks[-1][1]
+        best_tree = lks[-1][2]
+        open(self.best_model_file, "w").write(best_model)
+        if self.tree_file:
+            tree.write(self.tree_file)
+        ModelTesterTask.finish(self)
+
diff --git a/ete3/tools/phylobuild_lib/task/raxml.py b/ete3/tools/phylobuild_lib/task/raxml.py
new file mode 100644
index 0000000..8218caa
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/raxml.py
@@ -0,0 +1,300 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import os
+import sys
+import logging
+import re
+import shutil
+from glob import glob
+
+log = logging.getLogger("main")
+
+from ..master_task import TreeTask
+from ..master_job import Job
+from ..utils import (basename, Tree, OrderedDict, GLOBALS, pjoin, DATATYPES,
+                     md5)
+from .. import db
+
+__all__ = ["Raxml"]
+
+class Raxml(TreeTask):
+    def __init__(self, nodeid, alg_file, constrain_id, model,
+                 seqtype, conf, confname, parts_id=None):
+        GLOBALS["citator"].add('raxml')
+
+        model_string = "PROT" if seqtype == "aa" else "GTR" 
+        if model and model.startswith('pmodeltest-'):
+            fullmodel = model.replace('pmodeltest-', '')
+            basemodel = fullmodel.split("+")[0].split("!")[0]
+            if seqtype == "nt" and basemodel != "GTR":
+                log.warning("Raxml supports only the GTR model, but model selection returned %s. Consider using Phyml if this is important." %basemodel)
+                
+            # overwrites default options if model selection says so
+            
+            if "+G" in fullmodel:
+                model_string += "GAMMA"
+            elif "!G" in fullmodel:
+                model_string += "CAT"
+                #conf[confname]['-c'] = 1
+            else:
+                if seqtype == "aa":
+                    model_string += conf[confname]["_method"]
+                
+            if seqtype == "aa":
+                model_string += basemodel.upper()
+                
+            if "+I" in fullmodel and "GAMMA" in model_string:
+                model_string += "I"
+            elif "!I" in fullmodel:
+                pass
+            else:
+                if "I" in conf[confname]["_model_suffix"] and "GAMMA" in model_string:
+                    model_string += "I" 
+
+            if "+F" in fullmodel:
+                if seqtype == "aa":
+                    model_string += "F"
+            if "!F" in fullmodel:                
+                pass
+            else:
+                if "F" in conf[confname]["_model_suffix"] and seqtype == "aa":
+                    model_string += "F"
+        else:
+            # in case of using older, simpler prottest or no model selection step
+            model_string += conf[confname]["_method"]
+            if seqtype == "aa":
+                model_string += model if model else conf[confname]["_aa_model"]
+            model_string += conf[confname]["_model_suffix"]                        
+
+        self.model_string = model_string
+        self.model = model_string
+        
+        base_args = OrderedDict()
+        self.bootstrap = conf[confname].get("_bootstrap", None)
+
+        self.confname = confname
+        self.conf = conf
+        self.alg_phylip_file = alg_file
+
+        try:
+            self.constrain_tree = db.get_dataid(constrain_id, DATATYPES.constrain_tree)
+        except ValueError:
+            self.constrain_tree = None
+
+        self.partitions_file = parts_id
+
+        TreeTask.__init__(self, nodeid, "tree", "RaxML",
+                          base_args, conf[confname])
+
+        max_cores = GLOBALS["_max_cores"]
+        appname = conf[confname]["_app"]
+        if max_cores > 1:
+            threads = conf["threading"].get("raxml-pthreads")
+            if threads > 1:
+                appname = appname.replace("raxml", "raxml-pthreads")
+                raxml_bin = conf["app"][appname]
+        else:
+            appname = appname.replace("raxml-pthreads", "raxml")
+            threads = 1
+            raxml_bin = conf["app"][appname]
+
+        self.raxml_bin = raxml_bin
+        self.threads = threads
+        self.seqtype = seqtype
+
+        self.init()
+
+    def load_jobs(self):
+        args = OrderedDict(self.args)
+        args["-s"] = pjoin(GLOBALS["input_dir"], self.alg_phylip_file)
+        args["-m"] = self.model_string
+        args["-n"] = self.alg_phylip_file
+        if self.constrain_tree:
+            log.log(24, "Using constrain tree %s" %self.constrain_tree)
+            args["-g"] = pjoin(GLOBALS["input_dir"], self.constrain_tree)
+        if self.partitions_file:
+            log.log(24, "Using alg partitions %s" %self.partitions_file)
+            args['-q'] = pjoin(GLOBALS["input_dir"], self.partitions_file)
+
+        tree_job = Job(self.raxml_bin, args, parent_ids=[self.nodeid])
+        tree_job.jobname += "-"+self.model_string
+        tree_job.cores = self.threads
+        # Register input files necessary to run the job
+        tree_job.add_input_file(self.alg_phylip_file)
+        if self.constrain_tree:
+            tree_job.add_input_file(self.constrain_tree)
+        if self.partitions_file:
+            tree_job.add_input_file(self.partitions_file)
+
+        self.jobs.append(tree_job)
+        self.out_tree_file = os.path.join(tree_job.jobdir,
+                                     "RAxML_bestTree." + self.alg_phylip_file)
+
+        if self.bootstrap == "alrt":
+            alrt_args = tree_job.args.copy()
+            if self.constrain_tree:
+                del alrt_args["-g"]
+            if self.partitions_file:
+                alrt_args["-q"] = args['-q']
+
+            alrt_args["-f"] =  "J"
+            alrt_args["-t"] = self.out_tree_file
+            alrt_job = Job(self.raxml_bin, alrt_args,
+                           parent_ids=[tree_job.jobid])
+            alrt_job.jobname += "-alrt"
+            alrt_job.dependencies.add(tree_job)
+            alrt_job.cores = self.threads
+
+            # Register necessary input files
+            alrt_job.add_input_file(self.alg_phylip_file)
+            if self.partitions_file:
+                alrt_job.add_input_file(self.partitions_file)
+
+            self.jobs.append(alrt_job)
+            self.alrt_job = alrt_job
+
+        elif self.bootstrap == "alrt_phyml":
+            alrt_args = {
+                "-o": "n",
+                "-i": self.alg_phylip_file,
+                "--bootstrap": "-2",
+                "-d": self.seqtype,
+                "-u": self.out_tree_file,
+                "--model": self.model,
+                "--quiet": "",
+                "--no_memory_check": "",
+                }
+            #if self.constrain_tree:
+            #    alrt_args["--constraint_tree"] = self.constrain_tree
+
+            alrt_job = Job(self.conf["app"]["phyml"],
+                           alrt_args, parent_ids=[tree_job.jobid])
+            alrt_job.add_input_file(self.alg_phylip_file, alrt_job.jobdir)
+            alrt_job.jobname += "-alrt"
+            alrt_job.dependencies.add(tree_job)
+            alrt_job.add_input_file(self.alg_phylip_file)
+            self.jobs.append(alrt_job)
+            self.alrt_job = alrt_job
+
+        else:
+            # Bootstrap calculation
+            boot_args = tree_job.args.copy()
+            boot_args["-n"] = "bootstraps."+boot_args["-n"]
+            boot_args["-N"] = int(self.bootstrap)
+            boot_args["-b"] = 31416
+            boot_job = Job(self.raxml_bin, boot_args,
+                           parent_ids=[tree_job.jobid])
+            boot_job.jobname += "-%d-bootstraps" %(boot_args['-N'])
+            boot_job.dependencies.add(tree_job)
+            boot_job.cores = self.threads
+
+            # Register necessary input files
+            boot_job.add_input_file(self.alg_phylip_file)
+            if self.constrain_tree:
+                boot_job.add_input_file(self.constrain_tree)
+            if self.partitions_file:
+                boot_job.add_input_file(self.partitions_file)
+
+            self.jobs.append(boot_job)
+
+            # Bootstrap drawing on top of best tree
+            bootd_args = tree_job.args.copy()
+            if self.constrain_tree:
+                del bootd_args["-g"]
+            if self.partitions_file:
+                del bootd_args["-q"]
+
+            bootd_args["-n"] = "bootstrapped."+ tree_job.args["-n"]
+            bootd_args["-f"] = "b"
+            bootd_args["-t"] = self.out_tree_file
+            bootd_args["-z"] = pjoin(boot_job.jobdir, "RAxML_bootstrap." + boot_job.args["-n"])
+
+            bootd_job = Job(self.raxml_bin, bootd_args,
+                            parent_ids=[tree_job.jobid])
+            bootd_job.jobname += "-bootstrapped"
+            bootd_job.dependencies.add(boot_job)
+            bootd_job.cores = self.threads
+            self.jobs.append(bootd_job)
+
+            self.boot_job = boot_job
+            self.bootd_job = bootd_job
+
+    def finish(self):
+        #first job is the raxml tree
+        def parse_alrt(match):
+            dist = match.groups()[0]
+            support = float(match.groups()[1])/100.0
+            return "%g:%s" %(support, dist)
+
+        if self.bootstrap == "alrt":
+            alrt_tree_file = os.path.join(self.alrt_job.jobdir,
+                                               "RAxML_fastTreeSH_Support." + self.alrt_job.args["-n"])
+            raw_nw = open(alrt_tree_file).read()
+            try:
+                nw, nsubs = re.subn(":(\d+\.\d+)\[(\d+)\]", parse_alrt, raw_nw, flags=re.MULTILINE)
+            except TypeError:
+                raw_nw = raw_nw.replace("\n","")
+                nw, nsubs = re.subn(":(\d+\.\d+)\[(\d+)\]", parse_alrt, raw_nw)
+            if nsubs == 0:
+                log.warning("alrt values were not detected in raxml tree!")
+            tree = Tree(nw)
+
+        elif self.bootstrap == "alrt_phyml":
+            alrt_tree_file = os.path.join(self.alrt_job.jobdir,
+                                          self.alg_phylip_file +"_phyml_tree.txt")
+            tree = Tree(alrt_tree_file)
+
+        else:
+            alrt_tree_file = os.path.join(self.bootd_job.jobdir,
+                                               "RAxML_bipartitions." + self.bootd_job.args["-n"])
+            nw = open(alrt_tree_file).read()
+            tree = Tree(nw)
+            tree.support = 100
+            for n in tree.traverse():
+                if n.support >1:
+                    n.support /= 100.
+                else:
+                    n.support = 0
+
+        TreeTask.store_data(self, tree.write(), {})
+
+
+
+
diff --git a/ete3/tools/phylobuild_lib/task/tcoffee.py b/ete3/tools/phylobuild_lib/task/tcoffee.py
new file mode 100644
index 0000000..a03a2a7
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/tcoffee.py
@@ -0,0 +1,42 @@
+from __future__ import absolute_import
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from ..utils import (SeqGroup, OrderedDict, pjoin,
+                     GLOBALS, DATATYPES)
+from .. import db
+
+__all__ = ["TCoffee"]
+
+class TCoffee(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf, confname):
+        self.confname = confname
+        self.conf = conf
+        # Initialize task
+        task_name =   "TCoffee(-%s)" %conf["-mode"] if "-mode" in conf else "TCoffee"
+        AlgTask.__init__(self, nodeid, "alg", task_name,
+                         OrderedDict(), self.conf[self.confname])
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+        self.size = conf["_nodeinfo"][nodeid].get("size", 0)
+        self.init()
+
+    def load_jobs(self):
+        args = OrderedDict()
+        args[""] = pjoin(GLOBALS["input_dir"], self.multiseq_file)
+        for k, v in self.args.items():
+            args[k] = v
+        args["-outfile"] = "mcoffee.fasta"
+        job = Job(self.conf["app"]["tcoffee"], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.multiseq_file)
+        job.cores = self.conf["threading"]["tcoffee"]
+        self.jobs.append(job)
+        
+    def finish(self):
+        alg = SeqGroup(os.path.join(self.jobs[0].jobdir, "mcoffee.fasta"))
+        fasta = alg.write(format="fasta")
+        phylip = alg.write(format="iphylip_relaxed")
+        AlgTask.store_data(self, fasta, phylip)
diff --git a/ete3/tools/phylobuild_lib/task/trimal.py b/ete3/tools/phylobuild_lib/task/trimal.py
new file mode 100644
index 0000000..f20790e
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/trimal.py
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+
+import os
+import sys
+import logging
+from six.moves import map
+log = logging.getLogger("main")
+
+from ..master_task import AlgCleanerTask
+from ..master_job import Job
+from ..utils import SeqGroup, GLOBALS, hascontent, DATATYPES, pjoin
+from .. import db
+
+__all__ = ["Trimal"]
+
+class Trimal(AlgCleanerTask):
+    def __init__(self, nodeid, seqtype, alg_fasta_file, alg_phylip_file,
+                 conf, confname):
+        GLOBALS["citator"].add('trimal')
+
+        self.confname = confname
+        self.conf = conf
+        self.seqtype = seqtype
+        self.alg_fasta_file = alg_fasta_file
+        self.alg_phylip_file = alg_phylip_file
+        base_args = {
+            '-in': None,
+            '-out': None,
+            '-fasta': "",
+            '-colnumbering': "",
+            }
+        # Initialize task
+        AlgCleanerTask.__init__(self, nodeid, "acleaner", "Trimal",
+                                base_args,
+                                self.conf[confname])
+
+        self.init()
+
+
+    def load_jobs(self):
+        appname = self.conf[self.confname]["_app"]
+        args = self.args.copy()
+        args["-in"] = pjoin(GLOBALS["input_dir"], self.alg_fasta_file)
+        args["-out"] = "clean.alg.fasta"
+        job = Job(self.conf["app"][appname], args, parent_ids=[self.nodeid])
+        job.add_input_file(self.alg_fasta_file)
+        self.jobs.append(job)
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format. Both files, fasta and phylip,
+        # remain accessible.
+
+        # Set Task specific attributes
+        main_job = self.jobs[0]
+        fasta_path = pjoin(main_job.jobdir, "clean.alg.fasta")
+        alg = SeqGroup(fasta_path)
+        if len(alg) != self.size:
+            log.warning("Trimming was to aggressive and it tried"
+                        " to remove one or more sequences."
+                        " Alignment trimming will be disabled for this dataset."
+                        )
+            self.clean_alg_fasta_file = db.register_task_data(self.taskid, DATATYPES.clean_alg_fasta, self.alg_fasta_file)
+            self.clean_alg_phylip_file = db.register_task_data(self.taskid, DATATYPES.clean_alg_phylip, self.alg_phylip_file)
+        else:
+            for line in open(self.jobs[0].stdout_file):
+                line = line.strip()
+                if line.startswith("#ColumnsMap"):
+                    kept_columns = list(map(int, line.split("\t")[1].split(",")))
+            fasta = alg.write(format="fasta")
+            phylip = alg.write(format="iphylip_relaxed")
+            AlgCleanerTask.store_data(self, fasta, phylip, kept_columns)
diff --git a/ete3/tools/phylobuild_lib/task/uhire.py b/ete3/tools/phylobuild_lib/task/uhire.py
new file mode 100644
index 0000000..bbc2b51
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/task/uhire.py
@@ -0,0 +1,114 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import os
+import logging
+log = logging.getLogger("main")
+
+from ..master_task import AlgTask
+from ..master_job import Job
+from ..utils import SeqGroup, OrderedDict
+
+__all__ = ["Uhire"]
+
+class Uhire(AlgTask):
+    def __init__(self, nodeid, multiseq_file, seqtype, conf):
+        # Initialize task
+        AlgTask.__init__(self, nodeid, "alg", "Usearch-Uhire",
+                      OrderedDict(), conf["uhire"])
+
+        self.conf = conf
+        self.seqtype = seqtype
+        self.multiseq_file = multiseq_file
+
+        self.init()
+
+        self.alg_fasta_file = os.path.join(self.taskdir, "final_alg.fasta")
+        self.alg_phylip_file = os.path.join(self.taskdir, "final_alg.iphylip")
+
+    def load_jobs(self):
+        # split the original set of sequences in clusters.
+        uhire_args = {
+            "--clumpfasta": "./",
+            "--maxclump": "%s" %self.conf["uhire"]["_maxclump"],
+            "--usersort": "",
+            "--uhire": self.multiseq_file,
+            }
+        uhire_job = Job(self.conf["app"]["usearch"], uhire_args, "usearch-uhire",
+                        parent_ids=[self.nodeid])
+
+        # Builds a muscle alignment for each of those clusters. (This
+        # is a special job to align all clumps independently. The
+        # whole shell command is used as job binary, so it is very
+        # important that there is no trailing lines at the end of the
+        # command.)
+        cmd = """
+        (mkdir clumpalgs/;
+        for fname in %s/clump.* %s/master;
+           do %s -in $fname -out clumpalgs/`basename $fname` -maxiters %s;
+        done;) """ %(
+            os.path.join("../",uhire_job.jobid),
+            os.path.join("../",uhire_job.jobid),
+            self.conf["app"]["muscle"],
+            self.conf["uhire"]["_muscle_maxiters"])
+
+        alg_job = Job(cmd, {}, "uhire_muscle_algs", parent_ids=[uhire_job.jobid])
+        alg_job.dependencies.add(uhire_job)
+
+        # Merge the cluster alignemnts into a single one
+        umerge_args = {
+            "--maxlen": self.conf["uhire"]["_max_seq_length"],
+            "--mergeclumps": "../%s/clumpalgs/" %alg_job.jobid,
+            "--output": "alg.fasta",
+            }
+        umerge_job = Job(self.conf["app"]["usearch"], umerge_args, "usearch-umerge",
+                         parent_ids=[alg_job.jobid])
+        umerge_job.dependencies.add(alg_job)
+
+        # Add all jobs to the task queue queue
+        self.jobs.extend([uhire_job, alg_job, umerge_job])
+
+    def finish(self):
+        # Once executed, alignment is converted into relaxed
+        # interleaved phylip format.
+        final_job = self.jobs[2]
+        alg = SeqGroup(os.path.join(final_job.jobdir, "alg.fasta"))
+        alg.write(outfile=self.alg_fasta_file, format="fasta")
+        alg.write(outfile=self.alg_phylip_file, format="iphylip_relaxed")
+        AlgTask.finish(self)
diff --git a/ete3/tools/phylobuild_lib/utils.py b/ete3/tools/phylobuild_lib/utils.py
new file mode 100644
index 0000000..d892315
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/utils.py
@@ -0,0 +1,647 @@
+# -*- coding: utf-8 -*-
+
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import sys
+from os import kill
+from os.path import join as pjoin
+from os.path import split as psplit
+from os.path import exists as pexist
+import os
+import socket
+import string
+
+import random
+import hashlib
+import logging
+import time
+import datetime
+import re
+import shutil
+from glob import glob
+import six
+from six.moves import range
+from six.moves import input
+
+from .getch import Getch
+from .errors import DataError
+
+try:
+    import numpy
+except ImportError:
+    import math
+    def _mean(nums):
+        return float(sum(nums)) / len(nums)
+
+    def _std(nums):
+        avg = _mean(nums)
+        variance = [(x - avg)**2 for x in nums]
+        std = math.sqrt(_mean(variance))
+        return std
+
+    def _median(nums):
+        nums.sort()
+        size = len(nums)
+        midPos = size // 2
+        if size % 2 == 0:
+            median = (nums[midPos] + nums[midPos-1]) / 2.0
+        else:
+            median = nums[midPos]
+        return median
+    _max = max
+    _min = min
+else:
+    _std = numpy.std
+    _max = numpy.max
+    _min = numpy.min
+    _mean = numpy.mean
+    _median = numpy.median
+
+
+log = logging.getLogger("main")
+DEBUG = lambda: log.level <= 10
+hascontent = lambda f: pexist(f) and os.path.getsize(f) > 0
+GLOBALS = {
+    "running_jobs": set(), # Keeps a list of jobs consuming cpu
+    "cached_status": {}, # Saves job and task statuses by id to be
+                         # used them within the same get_status cycle
+}
+
+class _DataTypes(object):
+    def __init__(self):
+        self.msf = 100
+        self.alg_fasta = 200
+        self.alg_phylip = 201
+        self.alg_nt_fasta = 202
+        self.alg_nt_phylip = 203
+
+        self.clean_alg_fasta = 225
+        self.clean_alg_phylip = 226
+        self.kept_alg_columns = 230
+        self.concat_alg_fasta = 250
+        self.concat_alg_phylip = 251
+        self.alg_stats = 260
+        self.alg_list = 290
+        self.best_model = 300
+        self.model_ranking = 305
+        self.model_partitions = 325
+        self.tree = 400
+        self.tree_stats = 410
+        self.constrain_tree = 425
+        self.constrain_alg = 426
+        self.cogs = 500
+        self.cog_analysis = 550
+
+        self.job = 1
+        self.task = 2
+
+DATATYPES = _DataTypes()
+
+
+from collections import OrderedDict
+
+# ete3 should be added to the python path by the npr script
+from ...phylo import PhyloTree
+from ...coretype.tree import Tree
+from ...coretype.seqgroup import SeqGroup
+from ...parser.fasta import read_fasta
+from ...coretype import tree
+from ...ncbi_taxonomy import ncbiquery as ncbi
+
+# This default values in trees are Very important for outgroup
+# selection algorithm to work:
+tree.DEFAULT_SUPPORT = 1.0
+tree.DEFAULT_DIST = 1.0
+#from ete3.treeview import drawer
+#drawer.GUI_TIMEOUT = 1
+
+TIME_FORMAT = '%a %b %d %H:%M:%S %Y'
+
+AA = set('ACEDGFIHKMLNQPSRTWVY*-.UOBZJX') | set('acedgfihkmlnqpsrtwvyuobzjx')
+NT = set("ACGT*-.URYKMSWBDHVN") | set("acgturykmswbdhvn")
+GAP_CHARS = set(".-")
+
+GENCODE = {
+    'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',
+    'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T',
+    'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',
+    'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',
+    'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',
+    'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',
+    'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',
+    'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',
+    'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',
+    'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',
+    'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',
+    'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',
+    'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',
+    'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',
+    'TAC':'Y', 'TAT':'Y', 'TAA':'*', 'TAG':'*',
+    'TGC':'C', 'TGT':'C', 'TGA':'*', 'TGG':'W',
+    '---': '-',
+    }
+
+# Aux functions (general)
+md5 = lambda x: hashlib.md5(x.encode("utf-8")).hexdigest()
+encode_seqname = lambda x: md5(x)[:10]
+basename = lambda path: psplit(path)[-1]
+# Aux functions (task specific)
+get_raxml_mem = lambda taxa,sites: (taxa-2) * sites * (80 * 8) * 9.3132e-10
+del_gaps = lambda seq: seq.replace("-","").replace(".", "")
+random_string = lambda N: ''.join(random.choice(string.ascii_uppercase +
+                                  string.digits) for x in range(N))
+generate_id = lambda items: md5(','.join(sorted(items)))
+generate_runid = lambda: md5(str(time.time()*random.random()))
+
+HOSTNAME = socket.gethostname()
+
+def tobool(value):
+    return str(value).lower() in set(["1", "true", "yes"])
+
+def rpath(fullpath):
+    'Returns relative path of a task file (if possible)'
+    m = re.search("/(tasks/.+)", fullpath)
+    if m:
+        return m.groups()[0]
+    else:
+        return fullpath
+
+def ask(string, valid_values, default=-1, case_sensitive=False):
+    """ Asks for a keyborad answer """
+    v = None
+    if not case_sensitive:
+        valid_values = [value.lower() for value in valid_values]
+    while v not in valid_values:
+        v = input("%s [%s]" % (string,','.join(valid_values) ))
+        if v == '' and default>=0:
+            v = valid_values[default]
+        if not case_sensitive:
+            v = v.lower()
+    return v
+
+def generate_node_ids(target_seqs, out_seqs):
+    cladeid = generate_id(target_seqs)
+    nodeid = md5(','.join([cladeid, generate_id(out_seqs)]))
+    return nodeid, cladeid
+
+
+def merge_arg_dicts(source, target, parent=""):
+    for k,v in six.iteritems(source):
+        if not k.startswith("_"):
+            if k not in target:
+                target[k] = v
+            else:
+                log.warning("%s: [%s] argument cannot be manually set",
+                            parent,k)
+    return target
+
+def load_node_size(n):
+    if n.is_leaf():
+        size = 1
+    else:
+        size = 0
+        for ch in n.children:
+            size += load_node_size(ch)
+    n.add_feature("_size", size)
+    return size
+
+def render_tree(tree, fname):
+    # Generates tree snapshot
+    npr_nodestyle = NodeStyle()
+    npr_nodestyle["fgcolor"] = "red"
+    for n in tree.traverse():
+        if hasattr(n, "nodeid"):
+            n.set_style(npr_nodestyle)
+    ts = TreeStyle()
+    ts.show_leaf_name = True
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+    ts.mode = "r"
+    iterface = faces.TextFace("iter")
+    ts.legend.add_face(iterface, 0)
+
+    tree.dist = 0
+    tree.sort_descendants()
+    tree.render(fname, tree_style=ts, w=700)
+
+def sec2time(secs):
+    return str(datetime.timedelta(seconds=secs))
+
+def read_time_file(fname):
+    INFO_TIME = open(fname)
+
+    try:
+        l1 = INFO_TIME.readline().strip()
+        l1 = l1.replace("CEST", "") # TEMP FIX
+        l1 = l1.replace("EDT", "") # TEMP FIX
+        start = time.mktime(time.strptime(l1, TIME_FORMAT))
+    except Exception as e:
+        start = ""
+        log.warning("execution time: %s", e)
+
+    try:
+        l2 = INFO_TIME.readline().strip()
+        l2 = l2.replace("CEST", "") # TEMP FIX
+        l2 = l2.replace("EDT", "") # TEMP FIX
+        end = time.mktime(time.strptime(l2, TIME_FORMAT))
+    except Exception as e:
+        end = ""
+        log.warning("execution time: %s", e)
+
+    INFO_TIME.close()
+    return start, end
+
+
+def dict_string(dictionary, ident = '', braces=1):
+    """ Recursively prints nested dictionaries."""
+    text = []
+    for key in sorted(dictionary.keys()):
+        value = dictionary[key]
+        if isinstance(value, dict):
+            text.append('%s%s%s%s' %(ident,braces*'[',key,braces*']'))
+            text.append('\n')
+            text.append(dict_string(value, ident+'  ', braces+1))
+        else:
+            if isinstance(value, set) or isinstance(value, frozenset):
+                value = sorted(value)
+            text.append(ident+'%s = %s' %(key, value))
+            text.append('\n')
+    return ''.join(text)
+
+
+def checksum(*fnames):
+    block_size=2**20
+    hash = hashlib.md5()
+    for fname in fnames:
+        f = open(fname, "rb")
+        while True:
+            data = f.read(block_size)
+            if not data:
+                break
+            hash.update(data)
+        f.close()
+    return hash.hexdigest()
+
+def pid_up(pid):
+    """ Check For the existence of a unix pid. """
+    try:
+        kill(int(pid), 0)
+    except OSError:
+        return False
+    else:
+        return True
+
+def clear_tempdir():
+    base_dir = GLOBALS.get("basedir", None)
+    out_dir = GLOBALS["output_dir"]
+    scratch_dir = GLOBALS.get("scratch_dir", GLOBALS.get("dbdir", base_dir))
+    if base_dir and base_dir != out_dir:
+        try:
+            log.log(20, "Copying new db files to output directory %s..." %out_dir)
+            if not pexist(out_dir):
+                os.makedirs(out_dir)
+            if os.system("cp -a %s/* %s/" %(scratch_dir, out_dir)):
+                log.error("Could not copy data from scratch directory!")
+            log.log(20, "Deleting temp directory %s..." %scratch_dir)
+        except Exception as e:
+            print(e)
+            log.error("Could not copy data from scratch directory!")
+            pass
+        # By all means, try to remove temp data
+        try: shutil.rmtree(scratch_dir)
+        except OSError: pass
+
+
+def terminate_job_launcher():
+    back_launcher = GLOBALS.get("_background_scheduler", None)
+    if back_launcher:
+        #GLOBALS['_job_queue'].close()
+        GLOBALS['_job_queue'].cancel_join_thread()
+        back_launcher.join(120) # gives a couple of minutes to finish
+        back_launcher.terminate()
+
+def print_as_table(rows, header=None, fields=None, print_header=True, stdout=sys.stdout, wide=True):
+    """ Print >>Stdout, a list matrix as a formated table. row must be a list of
+    dicts or lists."""
+    if header is None:
+        header = []
+
+    def _str(i):
+        if isinstance(i, float):
+            return "%0.2f" %i
+        else:
+            return str(i)
+
+    def _safe_len(i):
+        return len(re.sub('\\033\[\d+m', '',  _str(i)))
+
+    def _safe_rjust(s, just):
+        return (" " * (just - _safe_len(s))) + s
+
+    vtype = None
+    for v in rows:
+        if vtype != None and type(v)!=vtype:
+            raise ValueError("Mixed row types in input")
+        else:
+            vtype = type(v)
+
+    lengths  = {}
+    if vtype == list or vtype == tuple:
+        v_len = len(fields) if fields else len(rows[0])
+
+        if header and len(header)!=v_len:
+            raise Exception("Bad header length")
+
+        # Get max size of each field
+        if not fields:
+            fields = list(range(v_len))
+
+        for i,iv in enumerate(fields):
+            header_length = 0
+            if header != []:
+                #header_length = len(_str(header[i]))
+                header_length = _safe_len(header[i])
+            max_field_length = max( [_safe_len(r[iv]) for r in rows] )
+            lengths[i] = max( [ header_length, max_field_length ] )
+
+        if header and print_header:
+            # Print >>Stdout, header names
+            for i in range(len(fields)):
+                print(_str(header[i]).rjust(lengths[i])+" | ", end=' ', file=stdout)
+            print("", file=stdout)
+            # Print >>Stdout, underlines
+            for i in range(len(fields)):
+                print("".rjust(lengths[i],"-")+" | ", end=' ', file=stdout)
+            print("", file=stdout)
+        # Print >>Stdout, table lines
+        for r in rows:
+            for i,iv in enumerate(fields):
+                #print >>stdout, _str(r[iv]).rjust(lengths[i])+" | ",
+                print(_safe_rjust(_str(r[iv]), lengths[i])+" | ", end=' ', file=stdout)
+            print("", file=stdout)                
+
+    elif vtype == dict:
+        if header == []:
+            header = list(rows[0].keys())
+        for ppt in header:
+            lengths[ppt] = max( [_safe_len(_str(ppt))]+[ _safe_len(_str(p.get(ppt,""))) for p in rows])
+        if header:
+            for ppt in header:
+                print(_safe_rjust(_str(ppt), lengths[ppt])+" | ", end=' ', file=stdout)
+            print("", file=stdout)
+            for ppt in header:
+                print("".rjust(lengths[ppt],"-")+" | ", end=' ', file=stdout)
+            print("", file=stdout)
+
+        for p in rows:
+            for ppt in header:
+                print(_safe_rjust(_str(p.get(ppt,""), lengths[ppt]))+" | ", end=' ', file=stdout)
+            print("", file=stdout)
+            page_counter +=1
+
+def get_node2content(node, store=None):
+    if not store: store = {}
+    for ch in node.children:
+        get_node2content(ch, store=store)
+
+    if node.children:
+        val = []
+        for ch in node.children:
+            val.extend(store[ch])
+        store[node] = val
+    else:
+        store[node] = [node.name]
+    return store
+
+def iter_prepostorder(tree, is_leaf_fn=None):
+        """
+        EXPERIMENTAL
+        """
+        to_visit = [tree]
+        if is_leaf_fn is not None:
+            _leaf = is_leaf_fn
+        else:
+            _leaf = tree.__class__.is_leaf
+
+        while to_visit:
+            node = to_visit.pop(-1)
+            try:
+                node = node[1]
+            except TypeError:
+                # PREORDER ACTIONS
+                yield (False, node)
+                if not _leaf(node):
+                    # ADD CHILDREN
+                    to_visit.extend(reversed(node.children + [[1, node]]))
+            else:
+                #POSTORDER ACTIONS
+                yield (True, node)
+
+def send_mail_smtp(toaddrs, subject, msg):
+    import smtplib
+
+    fromaddr = "no-reply at yournprprocess.local"
+    # The actual mail send
+    client = smtplib.SMTP('localhost', 1025)
+    client.sendmail(fromaddr, toaddrs, msg)
+    client.quit()
+    print("Mail sent to", toaddrs)
+
+def send_mail(toaddrs, subject, text):
+    try:
+        from email.mime.text import MIMEText
+        from subprocess import Popen, PIPE
+
+        msg = MIMEText(text)
+        msg["From"] = 'YourNPRprocess at hostname'
+        msg["To"] = toaddrs
+        msg["Subject"] = subject
+        p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
+        p.communicate(msg.as_string())
+    except Exception as e:
+        print(e)
+
+def symlink(target, link_name):
+    try:
+        os.remove(link_name)
+    except OSError:
+        pass
+    os.symlink(target, link_name)
+
+def silent_remove(target):
+    try:
+        os.remove(target)
+    except OSError:
+        pass
+
+def get_latest_nprdp(basedir):
+    avail_dbs = []
+    for fname in glob(os.path.join(basedir, "*.db")):
+        m = re.search("npr\.([\d\.]+)\.db", fname)
+        if m:
+            avail_dbs.append([float(m.groups()[0]), fname])
+
+    if avail_dbs:
+        avail_dbs.sort()
+        print(avail_dbs)
+        if avail_dbs:
+            last_db = avail_dbs[-1][1]
+            print("Using latest db file available:", os.path.basename(last_db))
+            return last_db
+    else:
+        #tries compressed data
+        compressed_path = pjoin(basedir, "nprdata.tar.gz")
+        if pexist(compressed_path):
+            import tarfile
+            tar = tarfile.open(compressed_path)
+            for member in tar:
+                print(member.name)
+                m = re.search("npr\.([\d\.]+)\.db", member.name)
+                if m:
+                    print(member)
+                    avail_dbs.append([float(m.groups()[0]), member])
+
+    return None
+
+def npr_layout(node):
+    if node.is_leaf():
+        name = faces.AttrFace("name", fsize=12)
+        faces.add_face_to_node(name, node, 0, position="branch-right")
+        if hasattr(node, "sequence"):
+            seq_face = faces.SeqFace(node.sequence, [])
+            faces.add_face_to_node(seq_face, node, 0, position="aligned")
+
+
+    if "treemerger_type" in node.features:
+        ttype=faces.AttrFace("tree_type", fsize=8, fgcolor="DarkBlue")
+        faces.add_face_to_node(ttype, node, 0, position="branch-top")
+        #ttype.background.color = "DarkOliveGreen"
+        node.img_style["size"] = 20
+        node.img_style["fgcolor"] = "red"
+
+    if "alg_type" in node.features:
+        faces.add_face_to_node(faces.AttrFace("alg_type", fsize=8), node, 0, position="branch-top")
+
+    if "treemerger_rf" in node.features:
+        faces.add_face_to_node(faces.AttrFace("treemerger_rf", fsize=8), node, 0, position="branch-bottom")
+
+    support_radius= (1.0 - node.support) * 30
+    if support_radius > 1:
+        support_face = faces.CircleFace(support_radius, "red")
+        faces.add_face_to_node(support_face, node, 0, position="float-behind")
+        support_face.opacity = 0.25
+        faces.add_face_to_node(faces.AttrFace("support", fsize=8), node, 0, position="branch-bottom")
+
+
+    if "clean_alg_mean_identn" in node.features:
+        identity = node.clean_alg_mean_identn
+    elif "alg_mean_identn" in node.features:
+        identity = node.alg_mean_identn
+
+    if "highlighted" in node.features:
+        node.img_style["bgcolor"] = "LightCyan"
+
+    if "improve" in node.features:
+        color = "orange" if float(node.improve) < 0 else "green"
+        if float(node.improve) == 0:
+            color = "blue"
+
+        support_face = faces.CircleFace(200, color)
+        faces.add_face_to_node(support_face, node, 0, position="float-behind")
+
+try:
+    from ... import TreeStyle, NodeStyle, faces
+    from ...treeview import random_color
+    NPR_TREE_STYLE = TreeStyle()
+    NPR_TREE_STYLE.layout_fn = npr_layout
+    NPR_TREE_STYLE.show_leaf_name = False
+except ImportError:
+
+    TreeStyle, NodeStyle, faces, random_color = [None]*4
+    NPR_TREE_STYLE = None
+
+
+
+# CONVERT shell colors to the same curses palette
+COLORS = {
+    "wr": '\033[1;37;41m', # white on red
+    "wo": '\033[1;37;43m', # white on orange
+    "wm": '\033[1;37;45m', # white on magenta
+    "wb": '\033[1;37;46m', # white on blue
+    "bw": '\033[1;37;40m', # black on white
+    "lblue": '\033[1;34m', # light blue
+    "lred": '\033[1;31m', # light red
+    "lgreen": '\033[1;32m', # light green
+    "yellow": '\033[1;33m', # yellow
+    "cyan": '\033[36m', # cyan
+    "blue": '\033[34m', # blue
+    "green": '\033[32m', # green
+    "orange": '\033[33m', # orange
+    "red": '\033[31m', # red
+    "magenta": "\033[35m", # magenta
+    "white": "\033[0m", # white
+    None: "\033[0m", # end
+}
+
+def colorify(string, color):
+    return "%s%s%s" %(COLORS[color], string, COLORS[None])
+
+def clear_color(string):
+    return re.sub("\\033\[[^m]+m", "", string)
+
+    
+def iter_cog_seqs(cogs_file, spname_delimiter):
+    cog_id = 0
+    for line in open(cogs_file):
+        line = line.strip()
+        if not line or line.startswith("#"):
+            continue
+        cog_id += 1
+        seq_cogs = []
+        for seqname in [_ln.strip() for _ln in line.split('\t')]:
+            try:
+                spcode, seqcode = [_f.strip() for _f in seqname.split(spname_delimiter, 1)]
+            except ValueError:
+                raise DataError("Invalid sequence name in COGs file: %s" %seqname)
+            else:
+                seq_cogs.append((seqname, spcode, seqcode))
+        yield cog_id, seq_cogs
diff --git a/ete3/tools/phylobuild_lib/validate.py b/ete3/tools/phylobuild_lib/validate.py
new file mode 100644
index 0000000..7245a15
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/validate.py
@@ -0,0 +1,1491 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# validate.py
+# A Validator object
+# Copyright (C) 2005-2010 Michael Foord, Mark Andrews, Nicola Larosa
+# E-mail: fuzzyman AT voidspace DOT org DOT uk
+#         mark AT la-la DOT com
+#         nico AT tekNico DOT net
+
+# This software is licensed under the terms of the BSD license.
+# http://www.voidspace.org.uk/python/license.shtml
+# Basically you're free to copy, modify, distribute and relicense it,
+# So long as you keep a copy of the license with it.
+
+# Scripts maintained at http://www.voidspace.org.uk/python/index.shtml
+# For information about bugfixes, updates and support, please join the
+# ConfigObj mailing list:
+# http://lists.sourceforge.net/lists/listinfo/configobj-develop
+# Comments, suggestions and bug reports welcome.
+
+"""
+    The Validator object is used to check that supplied values
+    conform to a specification.
+
+    The value can be supplied as a string - e.g. from a config file.
+    In this case the check will also *convert* the value to
+    the required type. This allows you to add validation
+    as a transparent layer to access data stored as strings.
+    The validation checks that the data is correct *and*
+    converts it to the expected type.
+
+    Some standard checks are provided for basic data types.
+    Additional checks are easy to write. They can be
+    provided when the ``Validator`` is instantiated or
+    added afterwards.
+
+    The standard functions work with the following basic data types :
+
+    * integers
+    * floats
+    * booleans
+    * strings
+    * ip_addr
+
+    plus lists of these datatypes
+
+    Adding additional checks is done through coding simple functions.
+
+    The full set of standard checks are :
+
+    * 'integer': matches integer values (including negative)
+                 Takes optional 'min' and 'max' arguments : ::
+
+                   integer()
+                   integer(3, 9)  # any value from 3 to 9
+                   integer(min=0) # any positive value
+                   integer(max=9)
+
+    * 'float': matches float values
+               Has the same parameters as the integer check.
+
+    * 'boolean': matches boolean values - ``True`` or ``False``
+                 Acceptable string values for True are :
+                   true, on, yes, 1
+                 Acceptable string values for False are :
+                   false, off, no, 0
+
+                 Any other value raises an error.
+
+    * 'ip_addr': matches an Internet Protocol address, v.4, represented
+                 by a dotted-quad string, i.e. '1.2.3.4'.
+
+    * 'string': matches any string.
+                Takes optional keyword args 'min' and 'max'
+                to specify min and max lengths of the string.
+
+    * 'list': matches any list.
+              Takes optional keyword args 'min', and 'max' to specify min and
+              max sizes of the list. (Always returns a list.)
+
+    * 'tuple': matches any tuple.
+              Takes optional keyword args 'min', and 'max' to specify min and
+              max sizes of the tuple. (Always returns a tuple.)
+
+    * 'int_list': Matches a list of integers.
+                  Takes the same arguments as list.
+
+    * 'float_list': Matches a list of floats.
+                    Takes the same arguments as list.
+
+    * 'bool_list': Matches a list of boolean values.
+                   Takes the same arguments as list.
+
+    * 'ip_addr_list': Matches a list of IP addresses.
+                     Takes the same arguments as list.
+
+    * 'string_list': Matches a list of strings.
+                     Takes the same arguments as list.
+
+    * 'mixed_list': Matches a list with different types in
+                    specific positions. List size must match
+                    the number of arguments.
+
+                    Each position can be one of :
+                    'integer', 'float', 'ip_addr', 'string', 'boolean'
+
+                    So to specify a list with two strings followed
+                    by two integers, you write the check as : ::
+
+                      mixed_list('string', 'string', 'integer', 'integer')
+
+    * 'pass': This check matches everything ! It never fails
+              and the value is unchanged.
+
+              It is also the default if no check is specified.
+
+    * 'option': This check matches any from a list of options.
+                You specify this check with : ::
+
+                  option('option 1', 'option 2', 'option 3')
+
+    You can supply a default value (returned if no value is supplied)
+    using the default keyword argument.
+
+    You specify a list argument for default using a list constructor syntax in
+    the check : ::
+
+        checkname(arg1, arg2, default=list('val 1', 'val 2', 'val 3'))
+
+    A badly formatted set of arguments will raise a ``VdtParamError``.
+"""
+from __future__ import absolute_import
+import six
+from six.moves import zip
+
+__version__ = '1.0.1'
+
+
+__all__ = (
+    '__version__',
+    'dottedQuadToNum',
+    'numToDottedQuad',
+    'ValidateError',
+    'VdtUnknownCheckError',
+    'VdtParamError',
+    'VdtTypeError',
+    'VdtValueError',
+    'VdtValueTooSmallError',
+    'VdtValueTooBigError',
+    'VdtValueTooShortError',
+    'VdtValueTooLongError',
+    'VdtMissingValue',
+    'Validator',
+    'is_integer',
+    'is_float',
+    'is_boolean',
+    'is_list',
+    'is_tuple',
+    'is_ip_addr',
+    'is_string',
+    'is_int_list',
+    'is_bool_list',
+    'is_float_list',
+    'is_string_list',
+    'is_ip_addr_list',
+    'is_mixed_list',
+    'is_option',
+    '__docformat__',
+)
+
+
+import re
+
+
+_list_arg = re.compile(r'''
+    (?:
+        ([a-zA-Z_][a-zA-Z0-9_]*)\s*=\s*list\(
+            (
+                (?:
+                    \s*
+                    (?:
+                        (?:".*?")|              # double quotes
+                        (?:'.*?')|              # single quotes
+                        (?:[^'",\s\)][^,\)]*?)  # unquoted
+                    )
+                    \s*,\s*
+                )*
+                (?:
+                    (?:".*?")|              # double quotes
+                    (?:'.*?')|              # single quotes
+                    (?:[^'",\s\)][^,\)]*?)  # unquoted
+                )?                          # last one
+            )
+        \)
+    )
+''', re.VERBOSE | re.DOTALL)    # two groups
+
+_list_members = re.compile(r'''
+    (
+        (?:".*?")|              # double quotes
+        (?:'.*?')|              # single quotes
+        (?:[^'",\s=][^,=]*?)       # unquoted
+    )
+    (?:
+    (?:\s*,\s*)|(?:\s*$)            # comma
+    )
+''', re.VERBOSE | re.DOTALL)    # one group
+
+_paramstring = r'''
+    (?:
+        (
+            (?:
+                [a-zA-Z_][a-zA-Z0-9_]*\s*=\s*list\(
+                    (?:
+                        \s*
+                        (?:
+                            (?:".*?")|              # double quotes
+                            (?:'.*?')|              # single quotes
+                            (?:[^'",\s\)][^,\)]*?)       # unquoted
+                        )
+                        \s*,\s*
+                    )*
+                    (?:
+                        (?:".*?")|              # double quotes
+                        (?:'.*?')|              # single quotes
+                        (?:[^'",\s\)][^,\)]*?)       # unquoted
+                    )?                              # last one
+                \)
+            )|
+            (?:
+                (?:".*?")|              # double quotes
+                (?:'.*?')|              # single quotes
+                (?:[^'",\s=][^,=]*?)|       # unquoted
+                (?:                         # keyword argument
+                    [a-zA-Z_][a-zA-Z0-9_]*\s*=\s*
+                    (?:
+                        (?:".*?")|              # double quotes
+                        (?:'.*?')|              # single quotes
+                        (?:[^'",\s=][^,=]*?)       # unquoted
+                    )
+                )
+            )
+        )
+        (?:
+            (?:\s*,\s*)|(?:\s*$)            # comma
+        )
+    )
+    '''
+
+_matchstring = '^%s*' % _paramstring
+
+# Python pre 2.2.1 doesn't have bool
+try:
+    bool
+except NameError:
+    def bool(val):
+        """Simple boolean equivalent function. """
+        if val:
+            return 1
+        else:
+            return 0
+
+
+def dottedQuadToNum(ip):
+    """
+    Convert decimal dotted quad string to long integer
+
+    >>> int(dottedQuadToNum('1 '))
+    1
+    >>> int(dottedQuadToNum(' 1.2'))
+    16777218
+    >>> int(dottedQuadToNum(' 1.2.3 '))
+    16908291
+    >>> int(dottedQuadToNum('1.2.3.4'))
+    16909060
+    >>> dottedQuadToNum('255.255.255.255')
+    4294967295L
+    >>> dottedQuadToNum('255.255.255.256')
+    Traceback (most recent call last):
+    ValueError: Not a good dotted-quad IP: 255.255.255.256
+    """
+
+    # import here to avoid it when ip_addr values are not used
+    import socket, struct
+
+    try:
+        return struct.unpack('!L',
+            socket.inet_aton(ip.strip()))[0]
+    except socket.error:
+        # bug in inet_aton, corrected in Python 2.4
+        if ip.strip() == '255.255.255.255':
+            return 0xFFFFFFFF
+        else:
+            raise ValueError('Not a good dotted-quad IP: %s' % ip)
+    return
+
+
+def numToDottedQuad(num):
+    """
+    Convert long int to dotted quad string
+
+    >>> numToDottedQuad(-1L)
+    Traceback (most recent call last):
+    ValueError: Not a good numeric IP: -1
+    >>> numToDottedQuad(1L)
+    '0.0.0.1'
+    >>> numToDottedQuad(16777218L)
+    '1.0.0.2'
+    >>> numToDottedQuad(16908291L)
+    '1.2.0.3'
+    >>> numToDottedQuad(16909060L)
+    '1.2.3.4'
+    >>> numToDottedQuad(4294967295L)
+    '255.255.255.255'
+    >>> numToDottedQuad(4294967296L)
+    Traceback (most recent call last):
+    ValueError: Not a good numeric IP: 4294967296
+    """
+
+    # import here to avoid it when ip_addr values are not used
+    import socket, struct
+
+    # no need to intercept here, 4294967295L is fine
+    if num > 4294967295 or num < 0:
+        raise ValueError('Not a good numeric IP: %s' % num)
+    try:
+        return socket.inet_ntoa(
+            struct.pack('!L', int(num)))
+    except (socket.error, struct.error, OverflowError):
+        raise ValueError('Not a good numeric IP: %s' % num)
+
+
+class ValidateError(Exception):
+    """
+    This error indicates that the check failed.
+    It can be the base class for more specific errors.
+
+    Any check function that fails ought to raise this error.
+    (or a subclass)
+
+    >>> raise ValidateError
+    Traceback (most recent call last):
+    ValidateError
+    """
+
+
+class VdtMissingValue(ValidateError):
+    """No value was supplied to a check that needed one."""
+
+
+class VdtUnknownCheckError(ValidateError):
+    """An unknown check function was requested"""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtUnknownCheckError('yoda')
+        Traceback (most recent call last):
+        VdtUnknownCheckError: the check "yoda" is unknown.
+        """
+        ValidateError.__init__(self, 'the check "%s" is unknown.' % (value,))
+
+
+class VdtParamError(SyntaxError):
+    """An incorrect parameter was passed"""
+
+    def __init__(self, name, value):
+        """
+        >>> raise VdtParamError('yoda', 'jedi')
+        Traceback (most recent call last):
+        VdtParamError: passed an incorrect value "jedi" for parameter "yoda".
+        """
+        SyntaxError.__init__(self, 'passed an incorrect value "%s" for parameter "%s".' % (value, name))
+
+
+class VdtTypeError(ValidateError):
+    """The value supplied was of the wrong type"""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtTypeError('jedi')
+        Traceback (most recent call last):
+        VdtTypeError: the value "jedi" is of the wrong type.
+        """
+        ValidateError.__init__(self, 'the value "%s" is of the wrong type.' % (value,))
+
+
+class VdtValueError(ValidateError):
+    """The value supplied was of the correct type, but was not an allowed value."""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtValueError('jedi')
+        Traceback (most recent call last):
+        VdtValueError: the value "jedi" is unacceptable.
+        """
+        ValidateError.__init__(self, 'the value "%s" is unacceptable.' % (value,))
+
+
+class VdtValueTooSmallError(VdtValueError):
+    """The value supplied was of the correct type, but was too small."""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtValueTooSmallError('0')
+        Traceback (most recent call last):
+        VdtValueTooSmallError: the value "0" is too small.
+        """
+        ValidateError.__init__(self, 'the value "%s" is too small.' % (value,))
+
+
+class VdtValueTooBigError(VdtValueError):
+    """The value supplied was of the correct type, but was too big."""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtValueTooBigError('1')
+        Traceback (most recent call last):
+        VdtValueTooBigError: the value "1" is too big.
+        """
+        ValidateError.__init__(self, 'the value "%s" is too big.' % (value,))
+
+
+class VdtValueTooShortError(VdtValueError):
+    """The value supplied was of the correct type, but was too short."""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtValueTooShortError('jed')
+        Traceback (most recent call last):
+        VdtValueTooShortError: the value "jed" is too short.
+        """
+        ValidateError.__init__(
+            self,
+            'the value "%s" is too short.' % (value,))
+
+
+class VdtValueTooLongError(VdtValueError):
+    """The value supplied was of the correct type, but was too long."""
+
+    def __init__(self, value):
+        """
+        >>> raise VdtValueTooLongError('jedie')
+        Traceback (most recent call last):
+        VdtValueTooLongError: the value "jedie" is too long.
+        """
+        ValidateError.__init__(self, 'the value "%s" is too long.' % (value,))
+
+
+class Validator(object):
+    """
+    Validator is an object that allows you to register a set of 'checks'.
+    These checks take input and test that it conforms to the check.
+
+    This can also involve converting the value from a string into
+    the correct datatype.
+
+    The ``check`` method takes an input string which configures which
+    check is to be used and applies that check to a supplied value.
+
+    An example input string would be:
+    'int_range(param1, param2)'
+
+    You would then provide something like:
+
+    >>> def int_range_check(value, min, max):
+    ...     # turn min and max from strings to integers
+    ...     min = int(min)
+    ...     max = int(max)
+    ...     # check that value is of the correct type.
+    ...     # possible valid inputs are integers or strings
+    ...     # that represent integers
+    ...     if not isinstance(value, (int, long, basestring)):
+    ...         raise VdtTypeError(value)
+    ...     elif isinstance(value, basestring):
+    ...         # if we are given a string
+    ...         # attempt to convert to an integer
+    ...         try:
+    ...             value = int(value)
+    ...         except ValueError:
+    ...             raise VdtValueError(value)
+    ...     # check the value is between our constraints
+    ...     if not min <= value:
+    ...          raise VdtValueTooSmallError(value)
+    ...     if not value <= max:
+    ...          raise VdtValueTooBigError(value)
+    ...     return value
+
+    >>> fdict = {'int_range': int_range_check}
+    >>> vtr1 = Validator(fdict)
+    >>> vtr1.check('int_range(20, 40)', '30')
+    30
+    >>> vtr1.check('int_range(20, 40)', '60')
+    Traceback (most recent call last):
+    VdtValueTooBigError: the value "60" is too big.
+
+    New functions can be added with : ::
+
+    >>> vtr2 = Validator()
+    >>> vtr2.functions['int_range'] = int_range_check
+
+    Or by passing in a dictionary of functions when Validator
+    is instantiated.
+
+    Your functions *can* use keyword arguments,
+    but the first argument should always be 'value'.
+
+    If the function doesn't take additional arguments,
+    the parentheses are optional in the check.
+    It can be written with either of : ::
+
+        keyword = function_name
+        keyword = function_name()
+
+    The first program to utilise Validator() was Michael Foord's
+    ConfigObj, an alternative to ConfigParser which supports lists and
+    can validate a config file using a config schema.
+    For more details on using Validator with ConfigObj see:
+    http://www.voidspace.org.uk/python/configobj.html
+    """
+
+    # this regex does the initial parsing of the checks
+    _func_re = re.compile(r'(.+?)\((.*)\)', re.DOTALL)
+
+    # this regex takes apart keyword arguments
+    _key_arg = re.compile(r'^([a-zA-Z_][a-zA-Z0-9_]*)\s*=\s*(.*)$',  re.DOTALL)
+
+
+    # this regex finds keyword=list(....) type values
+    _list_arg = _list_arg
+
+    # this regex takes individual values out of lists - in one pass
+    _list_members = _list_members
+
+    # These regexes check a set of arguments for validity
+    # and then pull the members out
+    _paramfinder = re.compile(_paramstring, re.VERBOSE | re.DOTALL)
+    _matchfinder = re.compile(_matchstring, re.VERBOSE | re.DOTALL)
+
+
+    def __init__(self, functions=None):
+        """
+        >>> vtri = Validator()
+        """
+        self.functions = {
+            '': self._pass,
+            'integer': is_integer,
+            'float': is_float,
+            'boolean': is_boolean,
+            'ip_addr': is_ip_addr,
+            'string': is_string,
+            'list': is_list,
+            'tuple': is_tuple,
+            'int_list': is_int_list,
+            'float_list': is_float_list,
+            'bool_list': is_bool_list,
+            'ip_addr_list': is_ip_addr_list,
+            'string_list': is_string_list,
+            'mixed_list': is_mixed_list,
+            'pass': self._pass,
+            'option': is_option,
+            'force_list': force_list,
+        }
+        if functions is not None:
+            self.functions.update(functions)
+        # tekNico: for use by ConfigObj
+        self.baseErrorClass = ValidateError
+        self._cache = {}
+
+
+    def check(self, check, value, missing=False):
+        """
+        Usage: check(check, value)
+
+        Arguments:
+            check: string representing check to apply (including arguments)
+            value: object to be checked
+        Returns value, converted to correct type if necessary
+
+        If the check fails, raises a ``ValidateError`` subclass.
+
+        >>> vtor.check('yoda', '')
+        Traceback (most recent call last):
+        VdtUnknownCheckError: the check "yoda" is unknown.
+        >>> vtor.check('yoda()', '')
+        Traceback (most recent call last):
+        VdtUnknownCheckError: the check "yoda" is unknown.
+
+        >>> vtor.check('string(default="")', '', missing=True)
+        ''
+        """
+        fun_name, fun_args, fun_kwargs, default = self._parse_with_caching(check)
+
+        if missing:
+            if default is None:
+                # no information needed here - to be handled by caller
+                raise VdtMissingValue()
+            value = self._handle_none(default)
+
+        if value is None:
+            return None
+
+        return self._check_value(value, fun_name, fun_args, fun_kwargs)
+
+
+    def _handle_none(self, value):
+        if value == 'None':
+            return None
+        elif value in ("'None'", '"None"'):
+            # Special case a quoted None
+            value = self._unquote(value)
+        return value
+
+
+    def _parse_with_caching(self, check):
+        if check in self._cache:
+            fun_name, fun_args, fun_kwargs, default = self._cache[check]
+            # We call list and dict below to work with *copies* of the data
+            # rather than the original (which are mutable of course)
+            fun_args = list(fun_args)
+            fun_kwargs = dict(fun_kwargs)
+        else:
+            fun_name, fun_args, fun_kwargs, default = self._parse_check(check)
+            fun_kwargs = dict([(str(key), value) for (key, value) in list(fun_kwargs.items())])
+            self._cache[check] = fun_name, list(fun_args), dict(fun_kwargs), default
+        return fun_name, fun_args, fun_kwargs, default
+
+
+    def _check_value(self, value, fun_name, fun_args, fun_kwargs):
+        try:
+            fun = self.functions[fun_name]
+        except KeyError:
+            raise VdtUnknownCheckError(fun_name)
+        else:
+            return fun(value, *fun_args, **fun_kwargs)
+
+
+    def _parse_check(self, check):
+        fun_match = self._func_re.match(check)
+        if fun_match:
+            fun_name = fun_match.group(1)
+            arg_string = fun_match.group(2)
+            arg_match = self._matchfinder.match(arg_string)
+            if arg_match is None:
+                # Bad syntax
+                raise VdtParamError('Bad syntax in check "%s".' % check)
+            fun_args = []
+            fun_kwargs = {}
+            # pull out args of group 2
+            for arg in self._paramfinder.findall(arg_string):
+                # args may need whitespace removing (before removing quotes)
+                arg = arg.strip()
+                listmatch = self._list_arg.match(arg)
+                if listmatch:
+                    key, val = self._list_handle(listmatch)
+                    fun_kwargs[key] = val
+                    continue
+                keymatch = self._key_arg.match(arg)
+                if keymatch:
+                    val = keymatch.group(2)
+                    if not val in ("'None'", '"None"'):
+                        # Special case a quoted None
+                        val = self._unquote(val)
+                    fun_kwargs[keymatch.group(1)] = val
+                    continue
+
+                fun_args.append(self._unquote(arg))
+        else:
+            # allows for function names without (args)
+            return check, (), {}, None
+
+        # Default must be deleted if the value is specified too,
+        # otherwise the check function will get a spurious "default" keyword arg
+        default = fun_kwargs.pop('default', None)
+        return fun_name, fun_args, fun_kwargs, default
+
+
+    def _unquote(self, val):
+        """Unquote a value if necessary."""
+        if (len(val) >= 2) and (val[0] in ("'", '"')) and (val[0] == val[-1]):
+            val = val[1:-1]
+        return val
+
+
+    def _list_handle(self, listmatch):
+        """Take apart a ``keyword=list('val, 'val')`` type string."""
+        out = []
+        name = listmatch.group(1)
+        args = listmatch.group(2)
+        for arg in self._list_members.findall(args):
+            out.append(self._unquote(arg))
+        return name, out
+
+
+    def _pass(self, value):
+        """
+        Dummy check that always passes
+
+        >>> vtor.check('', 0)
+        0
+        >>> vtor.check('', '0')
+        '0'
+        """
+        return value
+
+
+    def get_default_value(self, check):
+        """
+        Given a check, return the default value for the check
+        (converted to the right type).
+
+        If the check doesn't specify a default value then a
+        ``KeyError`` will be raised.
+        """
+        fun_name, fun_args, fun_kwargs, default = self._parse_with_caching(check)
+        if default is None:
+            raise KeyError('Check "%s" has no default value.' % check)
+        value = self._handle_none(default)
+        if value is None:
+            return value
+        return self._check_value(value, fun_name, fun_args, fun_kwargs)
+
+
+def _is_num_param(names, values, to_float=False):
+    """
+    Return numbers from inputs or raise VdtParamError.
+
+    Lets ``None`` pass through.
+    Pass in keyword argument ``to_float=True`` to
+    use float for the conversion rather than int.
+
+    >>> _is_num_param(('', ''), (0, 1.0))
+    [0, 1]
+    >>> _is_num_param(('', ''), (0, 1.0), to_float=True)
+    [0.0, 1.0]
+    >>> _is_num_param(('a'), ('a'))
+    Traceback (most recent call last):
+    VdtParamError: passed an incorrect value "a" for parameter "a".
+    """
+    fun = to_float and float or int
+    out_params = []
+    for (name, val) in zip(names, values):
+        if val is None:
+            out_params.append(val)
+        elif isinstance(val, (int, int, float, six.string_types)):
+            try:
+                out_params.append(fun(val))
+            except ValueError as e:
+                raise VdtParamError(name, val)
+        else:
+            raise VdtParamError(name, val)
+    return out_params
+
+
+# built in checks
+# you can override these by setting the appropriate name
+# in Validator.functions
+# note: if the params are specified wrongly in your input string,
+#       you will also raise errors.
+
+def is_integer(value, min=None, max=None):
+    """
+    A check that tests that a given value is an integer (int, or long)
+    and optionally, between bounds. A negative value is accepted, while
+    a float will fail.
+
+    If the value is a string, then the conversion is done - if possible.
+    Otherwise a VdtError is raised.
+
+    >>> vtor.check('integer', '-1')
+    -1
+    >>> vtor.check('integer', '0')
+    0
+    >>> vtor.check('integer', 9)
+    9
+    >>> vtor.check('integer', 'a')
+    Traceback (most recent call last):
+    VdtTypeError: the value "a" is of the wrong type.
+    >>> vtor.check('integer', '2.2')
+    Traceback (most recent call last):
+    VdtTypeError: the value "2.2" is of the wrong type.
+    >>> vtor.check('integer(10)', '20')
+    20
+    >>> vtor.check('integer(max=20)', '15')
+    15
+    >>> vtor.check('integer(10)', '9')
+    Traceback (most recent call last):
+    VdtValueTooSmallError: the value "9" is too small.
+    >>> vtor.check('integer(10)', 9)
+    Traceback (most recent call last):
+    VdtValueTooSmallError: the value "9" is too small.
+    >>> vtor.check('integer(max=20)', '35')
+    Traceback (most recent call last):
+    VdtValueTooBigError: the value "35" is too big.
+    >>> vtor.check('integer(max=20)', 35)
+    Traceback (most recent call last):
+    VdtValueTooBigError: the value "35" is too big.
+    >>> vtor.check('integer(0, 9)', False)
+    0
+    """
+    (min_val, max_val) = _is_num_param(('min', 'max'), (min, max))
+    if not isinstance(value, (int, int, six.string_types)):
+        raise VdtTypeError(value)
+    if isinstance(value, six.string_types):
+        # if it's a string - does it represent an integer ?
+        try:
+            value = int(value)
+        except ValueError:
+            raise VdtTypeError(value)
+    if (min_val is not None) and (value < min_val):
+        raise VdtValueTooSmallError(value)
+    if (max_val is not None) and (value > max_val):
+        raise VdtValueTooBigError(value)
+    return value
+
+
+def is_float(value, min=None, max=None):
+    """
+    A check that tests that a given value is a float
+    (an integer will be accepted), and optionally - that it is between bounds.
+
+    If the value is a string, then the conversion is done - if possible.
+    Otherwise a VdtError is raised.
+
+    This can accept negative values.
+
+    >>> vtor.check('float', '2')
+    2.0
+
+    From now on we multiply the value to avoid comparing decimals
+
+    >>> vtor.check('float', '-6.8') * 10
+    -68.0
+    >>> vtor.check('float', '12.2') * 10
+    122.0
+    >>> vtor.check('float', 8.4) * 10
+    84.0
+    >>> vtor.check('float', 'a')
+    Traceback (most recent call last):
+    VdtTypeError: the value "a" is of the wrong type.
+    >>> vtor.check('float(10.1)', '10.2') * 10
+    102.0
+    >>> vtor.check('float(max=20.2)', '15.1') * 10
+    151.0
+    >>> vtor.check('float(10.0)', '9.0')
+    Traceback (most recent call last):
+    VdtValueTooSmallError: the value "9.0" is too small.
+    >>> vtor.check('float(max=20.0)', '35.0')
+    Traceback (most recent call last):
+    VdtValueTooBigError: the value "35.0" is too big.
+    """
+    (min_val, max_val) = _is_num_param(
+        ('min', 'max'), (min, max), to_float=True)
+    if not isinstance(value, (int, int, float, six.string_types)):
+        raise VdtTypeError(value)
+    if not isinstance(value, float):
+        # if it's a string - does it represent a float ?
+        try:
+            value = float(value)
+        except ValueError:
+            raise VdtTypeError(value)
+    if (min_val is not None) and (value < min_val):
+        raise VdtValueTooSmallError(value)
+    if (max_val is not None) and (value > max_val):
+        raise VdtValueTooBigError(value)
+    return value
+
+
+bool_dict = {
+    True: True, 'on': True, '1': True, 'true': True, 'yes': True,
+    False: False, 'off': False, '0': False, 'false': False, 'no': False,
+}
+
+
+def is_boolean(value):
+    """
+    Check if the value represents a boolean.
+
+    >>> vtor.check('boolean', 0)
+    0
+    >>> vtor.check('boolean', False)
+    0
+    >>> vtor.check('boolean', '0')
+    0
+    >>> vtor.check('boolean', 'off')
+    0
+    >>> vtor.check('boolean', 'false')
+    0
+    >>> vtor.check('boolean', 'no')
+    0
+    >>> vtor.check('boolean', 'nO')
+    0
+    >>> vtor.check('boolean', 'NO')
+    0
+    >>> vtor.check('boolean', 1)
+    1
+    >>> vtor.check('boolean', True)
+    1
+    >>> vtor.check('boolean', '1')
+    1
+    >>> vtor.check('boolean', 'on')
+    1
+    >>> vtor.check('boolean', 'true')
+    1
+    >>> vtor.check('boolean', 'yes')
+    1
+    >>> vtor.check('boolean', 'Yes')
+    1
+    >>> vtor.check('boolean', 'YES')
+    1
+    >>> vtor.check('boolean', '')
+    Traceback (most recent call last):
+    VdtTypeError: the value "" is of the wrong type.
+    >>> vtor.check('boolean', 'up')
+    Traceback (most recent call last):
+    VdtTypeError: the value "up" is of the wrong type.
+
+    """
+    if isinstance(value, six.string_types):
+        try:
+            return bool_dict[value.lower()]
+        except KeyError:
+            raise VdtTypeError(value)
+    # we do an equality test rather than an identity test
+    # this ensures Python 2.2 compatibilty
+    # and allows 0 and 1 to represent True and False
+    if value == False:
+        return False
+    elif value == True:
+        return True
+    else:
+        raise VdtTypeError(value)
+
+
+def is_ip_addr(value):
+    """
+    Check that the supplied value is an Internet Protocol address, v.4,
+    represented by a dotted-quad string, i.e. '1.2.3.4'.
+
+    >>> vtor.check('ip_addr', '1 ')
+    '1'
+    >>> vtor.check('ip_addr', ' 1.2')
+    '1.2'
+    >>> vtor.check('ip_addr', ' 1.2.3 ')
+    '1.2.3'
+    >>> vtor.check('ip_addr', '1.2.3.4')
+    '1.2.3.4'
+    >>> vtor.check('ip_addr', '0.0.0.0')
+    '0.0.0.0'
+    >>> vtor.check('ip_addr', '255.255.255.255')
+    '255.255.255.255'
+    >>> vtor.check('ip_addr', '255.255.255.256')
+    Traceback (most recent call last):
+    VdtValueError: the value "255.255.255.256" is unacceptable.
+    >>> vtor.check('ip_addr', '1.2.3.4.5')
+    Traceback (most recent call last):
+    VdtValueError: the value "1.2.3.4.5" is unacceptable.
+    >>> vtor.check('ip_addr', 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+    """
+    if not isinstance(value, six.string_types):
+        raise VdtTypeError(value)
+    value = value.strip()
+    try:
+        dottedQuadToNum(value)
+    except ValueError:
+        raise VdtValueError(value)
+    return value
+
+
+def is_list(value, min=None, max=None):
+    """
+    Check that the value is a list of values.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    It does no check on list members.
+
+    >>> vtor.check('list', ())
+    []
+    >>> vtor.check('list', [])
+    []
+    >>> vtor.check('list', (1, 2))
+    [1, 2]
+    >>> vtor.check('list', [1, 2])
+    [1, 2]
+    >>> vtor.check('list(3)', (1, 2))
+    Traceback (most recent call last):
+    VdtValueTooShortError: the value "(1, 2)" is too short.
+    >>> vtor.check('list(max=5)', (1, 2, 3, 4, 5, 6))
+    Traceback (most recent call last):
+    VdtValueTooLongError: the value "(1, 2, 3, 4, 5, 6)" is too long.
+    >>> vtor.check('list(min=3, max=5)', (1, 2, 3, 4))
+    [1, 2, 3, 4]
+    >>> vtor.check('list', 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+    >>> vtor.check('list', '12')
+    Traceback (most recent call last):
+    VdtTypeError: the value "12" is of the wrong type.
+    """
+    (min_len, max_len) = _is_num_param(('min', 'max'), (min, max))
+    if isinstance(value, six.string_types):
+        raise VdtTypeError(value)
+    try:
+        num_members = len(value)
+    except TypeError:
+        raise VdtTypeError(value)
+    if min_len is not None and num_members < min_len:
+        raise VdtValueTooShortError(value)
+    if max_len is not None and num_members > max_len:
+        raise VdtValueTooLongError(value)
+    return list(value)
+
+
+def is_tuple(value, min=None, max=None):
+    """
+    Check that the value is a tuple of values.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    It does no check on members.
+
+    >>> vtor.check('tuple', ())
+    ()
+    >>> vtor.check('tuple', [])
+    ()
+    >>> vtor.check('tuple', (1, 2))
+    (1, 2)
+    >>> vtor.check('tuple', [1, 2])
+    (1, 2)
+    >>> vtor.check('tuple(3)', (1, 2))
+    Traceback (most recent call last):
+    VdtValueTooShortError: the value "(1, 2)" is too short.
+    >>> vtor.check('tuple(max=5)', (1, 2, 3, 4, 5, 6))
+    Traceback (most recent call last):
+    VdtValueTooLongError: the value "(1, 2, 3, 4, 5, 6)" is too long.
+    >>> vtor.check('tuple(min=3, max=5)', (1, 2, 3, 4))
+    (1, 2, 3, 4)
+    >>> vtor.check('tuple', 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+    >>> vtor.check('tuple', '12')
+    Traceback (most recent call last):
+    VdtTypeError: the value "12" is of the wrong type.
+    """
+    return tuple(is_list(value, min, max))
+
+
+def is_string(value, min=None, max=None):
+    """
+    Check that the supplied value is a string.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    >>> vtor.check('string', '0')
+    '0'
+    >>> vtor.check('string', 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+    >>> vtor.check('string(2)', '12')
+    '12'
+    >>> vtor.check('string(2)', '1')
+    Traceback (most recent call last):
+    VdtValueTooShortError: the value "1" is too short.
+    >>> vtor.check('string(min=2, max=3)', '123')
+    '123'
+    >>> vtor.check('string(min=2, max=3)', '1234')
+    Traceback (most recent call last):
+    VdtValueTooLongError: the value "1234" is too long.
+    """
+    if not isinstance(value, six.string_types):
+        raise VdtTypeError(value)
+    (min_len, max_len) = _is_num_param(('min', 'max'), (min, max))
+    try:
+        num_members = len(value)
+    except TypeError:
+        raise VdtTypeError(value)
+    if min_len is not None and num_members < min_len:
+        raise VdtValueTooShortError(value)
+    if max_len is not None and num_members > max_len:
+        raise VdtValueTooLongError(value)
+    return value
+
+
+def is_int_list(value, min=None, max=None):
+    """
+    Check that the value is a list of integers.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    Each list member is checked that it is an integer.
+
+    >>> vtor.check('int_list', ())
+    []
+    >>> vtor.check('int_list', [])
+    []
+    >>> vtor.check('int_list', (1, 2))
+    [1, 2]
+    >>> vtor.check('int_list', [1, 2])
+    [1, 2]
+    >>> vtor.check('int_list', [1, 'a'])
+    Traceback (most recent call last):
+    VdtTypeError: the value "a" is of the wrong type.
+    """
+    return [is_integer(mem) for mem in is_list(value, min, max)]
+
+
+def is_bool_list(value, min=None, max=None):
+    """
+    Check that the value is a list of booleans.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    Each list member is checked that it is a boolean.
+
+    >>> vtor.check('bool_list', ())
+    []
+    >>> vtor.check('bool_list', [])
+    []
+    >>> check_res = vtor.check('bool_list', (True, False))
+    >>> check_res == [True, False]
+    1
+    >>> check_res = vtor.check('bool_list', [True, False])
+    >>> check_res == [True, False]
+    1
+    >>> vtor.check('bool_list', [True, 'a'])
+    Traceback (most recent call last):
+    VdtTypeError: the value "a" is of the wrong type.
+    """
+    return [is_boolean(mem) for mem in is_list(value, min, max)]
+
+
+def is_float_list(value, min=None, max=None):
+    """
+    Check that the value is a list of floats.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    Each list member is checked that it is a float.
+
+    >>> vtor.check('float_list', ())
+    []
+    >>> vtor.check('float_list', [])
+    []
+    >>> vtor.check('float_list', (1, 2.0))
+    [1.0, 2.0]
+    >>> vtor.check('float_list', [1, 2.0])
+    [1.0, 2.0]
+    >>> vtor.check('float_list', [1, 'a'])
+    Traceback (most recent call last):
+    VdtTypeError: the value "a" is of the wrong type.
+    """
+    return [is_float(mem) for mem in is_list(value, min, max)]
+
+
+def is_string_list(value, min=None, max=None):
+    """
+    Check that the value is a list of strings.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    Each list member is checked that it is a string.
+
+    >>> vtor.check('string_list', ())
+    []
+    >>> vtor.check('string_list', [])
+    []
+    >>> vtor.check('string_list', ('a', 'b'))
+    ['a', 'b']
+    >>> vtor.check('string_list', ['a', 1])
+    Traceback (most recent call last):
+    VdtTypeError: the value "1" is of the wrong type.
+    >>> vtor.check('string_list', 'hello')
+    Traceback (most recent call last):
+    VdtTypeError: the value "hello" is of the wrong type.
+    """
+    if isinstance(value, six.string_types):
+        raise VdtTypeError(value)
+    return [is_string(mem) for mem in is_list(value, min, max)]
+
+
+def is_ip_addr_list(value, min=None, max=None):
+    """
+    Check that the value is a list of IP addresses.
+
+    You can optionally specify the minimum and maximum number of members.
+
+    Each list member is checked that it is an IP address.
+
+    >>> vtor.check('ip_addr_list', ())
+    []
+    >>> vtor.check('ip_addr_list', [])
+    []
+    >>> vtor.check('ip_addr_list', ('1.2.3.4', '5.6.7.8'))
+    ['1.2.3.4', '5.6.7.8']
+    >>> vtor.check('ip_addr_list', ['a'])
+    Traceback (most recent call last):
+    VdtValueError: the value "a" is unacceptable.
+    """
+    return [is_ip_addr(mem) for mem in is_list(value, min, max)]
+
+
+def force_list(value, min=None, max=None):
+    """
+    Check that a value is a list, coercing strings into
+    a list with one member. Useful where users forget the
+    trailing comma that turns a single value into a list.
+
+    You can optionally specify the minimum and maximum number of members.
+    A minumum of greater than one will fail if the user only supplies a
+    string.
+
+    >>> vtor.check('force_list', ())
+    []
+    >>> vtor.check('force_list', [])
+    []
+    >>> vtor.check('force_list', 'hello')
+    ['hello']
+    """
+    if not isinstance(value, (list, tuple)):
+        value = [value]
+    return is_list(value, min, max)
+
+
+
+fun_dict = {
+    'integer': is_integer,
+    'float': is_float,
+    'ip_addr': is_ip_addr,
+    'string': is_string,
+    'boolean': is_boolean,
+}
+
+
+def is_mixed_list(value, *args):
+    """
+    Check that the value is a list.
+    Allow specifying the type of each member.
+    Work on lists of specific lengths.
+
+    You specify each member as a positional argument specifying type
+
+    Each type should be one of the following strings :
+      'integer', 'float', 'ip_addr', 'string', 'boolean'
+
+    So you can specify a list of two strings, followed by
+    two integers as :
+
+      mixed_list('string', 'string', 'integer', 'integer')
+
+    The length of the list must match the number of positional
+    arguments you supply.
+
+    >>> mix_str = "mixed_list('integer', 'float', 'ip_addr', 'string', 'boolean')"
+    >>> check_res = vtor.check(mix_str, (1, 2.0, '1.2.3.4', 'a', True))
+    >>> check_res == [1, 2.0, '1.2.3.4', 'a', True]
+    1
+    >>> check_res = vtor.check(mix_str, ('1', '2.0', '1.2.3.4', 'a', 'True'))
+    >>> check_res == [1, 2.0, '1.2.3.4', 'a', True]
+    1
+    >>> vtor.check(mix_str, ('b', 2.0, '1.2.3.4', 'a', True))
+    Traceback (most recent call last):
+    VdtTypeError: the value "b" is of the wrong type.
+    >>> vtor.check(mix_str, (1, 2.0, '1.2.3.4', 'a'))
+    Traceback (most recent call last):
+    VdtValueTooShortError: the value "(1, 2.0, '1.2.3.4', 'a')" is too short.
+    >>> vtor.check(mix_str, (1, 2.0, '1.2.3.4', 'a', 1, 'b'))
+    Traceback (most recent call last):
+    VdtValueTooLongError: the value "(1, 2.0, '1.2.3.4', 'a', 1, 'b')" is too long.
+    >>> vtor.check(mix_str, 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+
+    This test requires an elaborate setup, because of a change in error string
+    output from the interpreter between Python 2.2 and 2.3 .
+
+    >>> res_seq = (
+    ...     'passed an incorrect value "',
+    ...     'yoda',
+    ...     '" for parameter "mixed_list".',
+    ... )
+    >>> res_str = "'".join(res_seq)
+    >>> try:
+    ...     vtor.check('mixed_list("yoda")', ('a'))
+    ... except VdtParamError, err:
+    ...     str(err) == res_str
+    1
+    """
+    try:
+        length = len(value)
+    except TypeError:
+        raise VdtTypeError(value)
+    if length < len(args):
+        raise VdtValueTooShortError(value)
+    elif length > len(args):
+        raise VdtValueTooLongError(value)
+    try:
+        return [fun_dict[arg](val) for arg, val in zip(args, value)]
+    except KeyError as e:
+        raise VdtParamError('mixed_list', e)
+
+
+def is_option(value, *options):
+    """
+    This check matches the value to any of a set of options.
+
+    >>> vtor.check('option("yoda", "jedi")', 'yoda')
+    'yoda'
+    >>> vtor.check('option("yoda", "jedi")', 'jed')
+    Traceback (most recent call last):
+    VdtValueError: the value "jed" is unacceptable.
+    >>> vtor.check('option("yoda", "jedi")', 0)
+    Traceback (most recent call last):
+    VdtTypeError: the value "0" is of the wrong type.
+    """
+    if not isinstance(value, six.string_types):
+        raise VdtTypeError(value)
+    if not value in options:
+        raise VdtValueError(value)
+    return value
+
+
+def _test(value, *args, **keywargs):
+    """
+    A function that exists for test purposes.
+
+    >>> checks = [
+    ...     '3, 6, min=1, max=3, test=list(a, b, c)',
+    ...     '3',
+    ...     '3, 6',
+    ...     '3,',
+    ...     'min=1, test="a b c"',
+    ...     'min=5, test="a, b, c"',
+    ...     'min=1, max=3, test="a, b, c"',
+    ...     'min=-100, test=-99',
+    ...     'min=1, max=3',
+    ...     '3, 6, test="36"',
+    ...     '3, 6, test="a, b, c"',
+    ...     '3, max=3, test=list("a", "b", "c")',
+    ...     '''3, max=3, test=list("'a'", 'b', "x=(c)")''',
+    ...     "test='x=fish(3)'",
+    ...    ]
+    >>> v = Validator({'test': _test})
+    >>> for entry in checks:
+    ...     print v.check(('test(%s)' % entry), 3)
+    (3, ('3', '6'), {'test': ['a', 'b', 'c'], 'max': '3', 'min': '1'})
+    (3, ('3',), {})
+    (3, ('3', '6'), {})
+    (3, ('3',), {})
+    (3, (), {'test': 'a b c', 'min': '1'})
+    (3, (), {'test': 'a, b, c', 'min': '5'})
+    (3, (), {'test': 'a, b, c', 'max': '3', 'min': '1'})
+    (3, (), {'test': '-99', 'min': '-100'})
+    (3, (), {'max': '3', 'min': '1'})
+    (3, ('3', '6'), {'test': '36'})
+    (3, ('3', '6'), {'test': 'a, b, c'})
+    (3, ('3',), {'test': ['a', 'b', 'c'], 'max': '3'})
+    (3, ('3',), {'test': ["'a'", 'b', 'x=(c)'], 'max': '3'})
+    (3, (), {'test': 'x=fish(3)'})
+
+    >>> v = Validator()
+    >>> v.check('integer(default=6)', '3')
+    3
+    >>> v.check('integer(default=6)', None, True)
+    6
+    >>> v.get_default_value('integer(default=6)')
+    6
+    >>> v.get_default_value('float(default=6)')
+    6.0
+    >>> v.get_default_value('pass(default=None)')
+    >>> v.get_default_value("string(default='None')")
+    'None'
+    >>> v.get_default_value('pass')
+    Traceback (most recent call last):
+    KeyError: 'Check "pass" has no default value.'
+    >>> v.get_default_value('pass(default=list(1, 2, 3, 4))')
+    ['1', '2', '3', '4']
+
+    >>> v = Validator()
+    >>> v.check("pass(default=None)", None, True)
+    >>> v.check("pass(default='None')", None, True)
+    'None'
+    >>> v.check('pass(default="None")', None, True)
+    'None'
+    >>> v.check('pass(default=list(1, 2, 3, 4))', None, True)
+    ['1', '2', '3', '4']
+
+    Bug test for unicode arguments
+    >>> v = Validator()
+    >>> v.check(u'string(min=4)', u'test')
+    u'test'
+
+    >>> v = Validator()
+    >>> v.get_default_value(u'string(min=4, default="1234")')
+    u'1234'
+    >>> v.check(u'string(min=4, default="1234")', u'test')
+    u'test'
+
+    >>> v = Validator()
+    >>> default = v.get_default_value('string(default=None)')
+    >>> default == None
+    1
+    """
+    return (value, args, keywargs)
+
+
+def _test2():
+    """
+    >>>
+    >>> v = Validator()
+    >>> v.get_default_value('string(default="#ff00dd")')
+    '#ff00dd'
+    >>> v.get_default_value('integer(default=3) # comment')
+    3
+    """
+
+def _test3():
+    r"""
+    >>> vtor.check('string(default="")', '', missing=True)
+    ''
+    >>> vtor.check('string(default="\n")', '', missing=True)
+    '\n'
+    >>> print vtor.check('string(default="\n")', '', missing=True),
+    <BLANKLINE>
+    >>> vtor.check('string()', '\n')
+    '\n'
+    >>> vtor.check('string(default="\n\n\n")', '', missing=True)
+    '\n\n\n'
+    >>> vtor.check('string()', 'random \n text goes here\n\n')
+    'random \n text goes here\n\n'
+    >>> vtor.check('string(default=" \nrandom text\ngoes \n here\n\n ")',
+    ... '', missing=True)
+    ' \nrandom text\ngoes \n here\n\n '
+    >>> vtor.check("string(default='\n\n\n')", '', missing=True)
+    '\n\n\n'
+    >>> vtor.check("option('\n','a','b',default='\n')", '', missing=True)
+    '\n'
+    >>> vtor.check("string_list()", ['foo', '\n', 'bar'])
+    ['foo', '\n', 'bar']
+    >>> vtor.check("string_list(default=list('\n'))", '', missing=True)
+    ['\n']
+    """
+
+
+if __name__ == '__main__':
+    # run the code tests in doctest format
+    import sys
+    import doctest
+    m = sys.modules.get('__main__')
+    globs = m.__dict__.copy()
+    globs.update({
+        'vtor': Validator(),
+    })
+    doctest.testmod(m, globs=globs)
diff --git a/ete3/tools/phylobuild_lib/visualize.py b/ete3/tools/phylobuild_lib/visualize.py
new file mode 100644
index 0000000..e4fdc70
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/visualize.py
@@ -0,0 +1,215 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import re
+from six.moves import range
+
+def draw_tree(tree, conf, outfile):
+    try:
+        from ... import (add_face_to_node, AttrFace, TextFace, TreeStyle, RectFace, CircleFace,
+                         random_color, SeqMotifFace)
+    except ImportError as e:
+        print(e)
+        return
+
+    def ly_basic(node):
+        if node.is_leaf():
+            node.img_style['size'] = 0
+        else:
+            node.img_style['size'] = 0
+            node.img_style['shape'] = 'square'
+            if len(MIXED_RES) > 1 and hasattr(node, "tree_seqtype"):
+                if node.tree_seqtype == "nt":
+                    node.img_style["bgcolor"] = "#CFE6CA"
+                    ntF = TextFace("nt", fsize=6, fgcolor='#444', ftype='Helvetica')
+                    add_face_to_node(ntF, node, 10, position="branch-bottom")
+            if len(NPR_TREES) > 1 and hasattr(node, "tree_type"):
+                node.img_style['size'] = 4
+                node.img_style['fgcolor'] = "steelblue"
+
+        node.img_style['hz_line_width'] = 1
+        node.img_style['vt_line_width'] = 1
+
+    def ly_leaf_names(node):
+        if node.is_leaf():
+            spF = TextFace(node.species, fsize=10, fgcolor='#444444', fstyle='italic', ftype='Helvetica')
+            add_face_to_node(spF, node, column=0, position='branch-right')
+            if hasattr(node, 'genename'):
+                geneF = TextFace(" (%s)" %node.genename, fsize=8, fgcolor='#777777', ftype='Helvetica')
+                add_face_to_node(geneF, node, column=1, position='branch-right')
+
+    def ly_supports(node):
+        if not node.is_leaf() and node.up:
+            supFace = TextFace("%0.2g" %(node.support), fsize=7, fgcolor='indianred')
+            add_face_to_node(supFace, node, column=0, position='branch-top')
+
+    def ly_tax_labels(node):
+        if node.is_leaf():
+            c = LABEL_START_COL
+            largest = 0
+            for tname in TRACKED_CLADES:
+                if hasattr(node, "named_lineage") and tname in node.named_lineage:
+                    linF = TextFace(tname, fsize=10, fgcolor='white')
+                    linF.margin_left = 3
+                    linF.margin_right = 2
+                    linF.background.color = lin2color[tname]
+                    add_face_to_node(linF, node, c, position='aligned')
+                    c += 1
+
+            for n in range(c, len(TRACKED_CLADES)):
+                add_face_to_node(TextFace('', fsize=10, fgcolor='slategrey'), node, c, position='aligned')
+                c+=1
+
+    def ly_full_alg(node):
+        pass
+
+    def ly_block_alg(node):
+        if node.is_leaf():
+            if 'sequence' in node.features:
+                seqFace = SeqMotifFace(node.sequence, [])
+                # [10, 100, "[]", None, 10, "black", "rgradient:blue", "arial|8|white|domain Name"],
+                motifs = []
+                last_lt = None
+                for c, lt in enumerate(node.sequence):
+                    if lt != '-':
+                        if last_lt is None:
+                            last_lt = c
+                        if c+1 == len(node.sequence):
+                            start, end = last_lt, c
+                            motifs.append([start, end, "()", 0, 12, "slategrey", "slategrey", None])
+                            last_lt = None
+                    elif lt == '-':
+                        if last_lt is not None:
+                            start, end = last_lt, c-1
+                            motifs.append([start, end, "()", 0, 12, "grey", "slategrey", None])
+                            last_lt = None
+
+                seqFace = SeqMotifFace(node.sequence, motifs,
+                                       gap_format="line",
+                                       scale_factor=ALG_SCALE)
+                add_face_to_node(seqFace, node, ALG_START_COL, aligned=True)
+
+
+    TRACKED_CLADES = ["Eukaryota", "Viridiplantae",  "Fungi",
+                      "Alveolata", "Metazoa", "Stramenopiles", "Rhodophyta",
+                      "Amoebozoa", "Crypthophyta", "Bacteria",
+                      "Alphaproteobacteria", "Betaproteobacteria", "Cyanobacteria",
+                      "Gammaproteobacteria",]
+
+    colors = random_color(num=len(TRACKED_CLADES), s=0.45)
+    lin2color = dict([(ln, colors[i]) for i, ln in enumerate(TRACKED_CLADES)])
+
+    NAME_FACE = AttrFace('name', fsize=10, fgcolor='#444444')
+
+    LABEL_START_COL = 10
+    ALG_START_COL = 40
+    ts = TreeStyle()
+    ts.draw_aligned_faces_as_table = False
+    ts.draw_guiding_lines = False
+    ts.show_leaf_name = False
+    ts.show_branch_support = False
+    ts.layout_fn = [ly_basic, ly_leaf_names, ly_supports, ly_tax_labels]
+
+    MIXED_RES = set()
+    MAX_SEQ_LEN = 0
+    NPR_TREES = []
+    for n in tree.traverse():
+        if hasattr(n, "tree_seqtype"):
+            MIXED_RES.add(n.tree_seqtype)
+        if hasattr(n, "tree_type"):
+            NPR_TREES.append(n.tree_type)
+        seq = getattr(n, "sequence", "")
+        MAX_SEQ_LEN = max(len(seq), MAX_SEQ_LEN)
+
+    if MAX_SEQ_LEN:
+        ALG_SCALE = min(1, 1000./MAX_SEQ_LEN)
+        ts.layout_fn.append(ly_block_alg)
+
+    if len(NPR_TREES) > 1:
+        rF = RectFace(4, 4, "steelblue", "steelblue")
+        rF.margin_right = 10
+        rF.margin_left = 10
+        ts.legend.add_face(rF, 0)
+        ts.legend.add_face(TextFace(" NPR node"), 1)
+        ts.legend_position = 3
+
+    if len(MIXED_RES) > 1:
+        rF = RectFace(20, 20, "#CFE6CA", "#CFE6CA")
+        rF.margin_right = 10
+        rF.margin_left = 10
+        ts.legend.add_face(rF, 0)
+        ts.legend.add_face(TextFace(" Nucleotide based alignment"), 1)
+        ts.legend_position = 3
+
+
+    try:
+        tree.set_species_naming_function(spname)
+        annotate_tree_with_ncbi(tree)
+        tree.set_outgroup(out)
+        tree.swap_children()
+    except Exception:
+        pass
+
+    tree.render(outfile, tree_style=ts, w=170, units='mm', dpi=300)
+    tree.render(outfile+'.svg', tree_style=ts, w=170, units='mm', dpi=300)
+    tree.render(outfile+'.pdf', tree_style=ts, w=170, units='mm', dpi=300)
+
+def annotate_tree_with_ncbi(tree):
+    from ...ncbi_taxonomy import ncbiquery as ncbi
+    ncbi.connect_database()
+    name2sp = ncbi.get_name_translator(tree.get_species())
+    for lf in tree.iter_leaves():
+        lf.add_features(taxid=name2sp.get(lf.species, [0])[0])
+        lf.add_features(genename=re.sub('\{[^}]+\}', '', lf.name).strip())
+    ncbi.annotate_tree(tree, attr_name='taxid')
+
+def spname(name):
+    m = re.search('\{([^}]+)\}', name)
+    if m:
+        return m.groups()[0]
+    else:
+        return name.split('|')[0].strip().replace('_', ' ')
+        taxid = name.split('.', 1)[0]
+
+        tax2name = ncbi.get_taxid_translator([taxid])
+        if int(taxid) not in tax2name:
+            print('name', name, taxid, tax2name)
+        return tax2name.get(int(taxid), taxid)
diff --git a/ete3/tools/phylobuild_lib/workflow/__init__.py b/ete3/tools/phylobuild_lib/workflow/__init__.py
new file mode 100644
index 0000000..daababf
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/workflow/__init__.py
@@ -0,0 +1,38 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
diff --git a/ete3/tools/phylobuild_lib/workflow/common.py b/ete3/tools/phylobuild_lib/workflow/common.py
new file mode 100644
index 0000000..7b93504
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/workflow/common.py
@@ -0,0 +1,638 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+from collections import defaultdict
+import logging
+
+from ..utils import (DEBUG, GLOBALS, SeqGroup, tobool, sec2time, read_time_file,
+                                  _max, _min, _mean, _std, _median)
+from ..apps import APP2CLASS
+from .. import task as all_tasks
+from .. import db
+from ..errors import ConfigError, DataError, TaskError
+from ..master_task import register_task_recursively, isjob
+import six
+from six.moves import range
+
+log = logging.getLogger("main")
+
+class IterConfig(dict):
+    def __init__(self, conf, wkname, size, seqtype):
+        """Special dict to extract the value of each parameter given
+         the properties of a task: size and seqtype.
+        """
+        dict.__init__(self, conf[wkname])
+
+        self.conf = conf
+        self.seqtype = seqtype
+        self.size = size
+        self['npr_wf_type'] = conf['_npr'].get('wf_type', None)
+        self['npr_workflows'] = conf['_npr'].get('workflows', [])
+        self['switch_aa_similarity'] = conf['_npr'].get('nt_switch_thr', 1.0)
+        if conf[wkname]["_app"] == self['npr_wf_type']:
+            self['max_iters'] = conf['_npr'].get('max_iters', 1)  # 1 = no npr by default!
+        else:
+            self['max_iters'] = 1
+
+        self['_tree_splitter'] = '@default_tree_splitter'
+
+        # if max_outgroup size is 0, means that no rooting is done in child NPR trees
+        self['use_outgroup'] = conf['default_tree_splitter']['_max_outgroup_size'] != 0
+
+    def __getattr__(self, v):
+        try:
+            return dict.__getattr__(self, v)
+        except AttributeError:
+            return self.__getitem__(v)
+
+    def __getitem__(self, v):
+        # Automatically switch among nt and aa bindings
+        if v in set(["tree_builder", "aligner", "model_tester",
+                     "alg_cleaner"]):
+            v = "%s_%s" %(self.seqtype, v)
+
+        try:
+            value = dict.__getitem__(self, "_%s" %v)
+        except KeyError as e:
+            return dict.__getitem__(self, v)
+        else:
+            # If list, let's take the correct element
+            if type(value) == list:
+                raise ValueError('This should not occur. Please report the error!')
+
+            if type(value) != str:
+                return value
+            elif value.lower() == "none":
+                return None, None
+            elif value.startswith("@"):
+                classname = APP2CLASS[self.conf[value[1:]]["_app"]]
+                return value[1:], getattr(all_tasks, classname)
+            else:
+                return value
+
+def process_new_tasks(task, new_tasks, conf):
+    # Basic registration and processing of newly generated tasks
+    parent_taskid = task.taskid if task else None
+    for ts in new_tasks:
+        log.log(22, "Registering new task: %s", ts)
+        register_task_recursively(ts, parentid=parent_taskid)
+        conf["_nodeinfo"][ts.nodeid].setdefault("tasks", []).append(ts)
+        # sort task by nodeid
+        #GLOBALS["nodeinfo"][ts.nodeid].setdefault("tasks", []).append(ts)
+        if task:
+            # Clone processor, in case tasks belong to a side workflow
+            ts.task_processor = task.task_processor
+            ts.configid = task.configid
+            ts.threadid = task.threadid
+            ts.main_tree = task.main_tree
+            # NPR allows switching the workflow associated to new tasks, if so,
+            # child task should have a target_wkname attribute already,
+            # otherwise we assume the same parent workflow
+            if not hasattr(ts, "target_wkname"):
+                ts.target_wkname = task.target_wkname
+
+        #db.add_runid2task(ts.threadid, ts.taskid)
+
+def inc_iternumber(threadid):
+    current_iter = get_iternumber(threadid)
+    GLOBALS["threadinfo"][threadid]["last_iter"] = current_iter + 1
+    return current_iter + 1
+
+def get_iternumber(threadid):
+    return GLOBALS["threadinfo"][threadid].setdefault("last_iter", 1)
+
+def get_identity(fname):
+    s = SeqGroup(fname)
+    seqlen = len(six.itervalues(s.id2seq))
+    ident = list()
+    for i in range(seqlen):
+        states = defaultdict(int)
+        for seq in six.itervalues(s.id2seq):
+            if seq[i] != "-":
+                states[seq[i]] += 1
+        values = list(states.values())
+        if values:
+            ident.append(float(max(values))/sum(values))
+    return (_max(ident), _min(ident),
+            _mean(ident), _std(ident))
+
+
+def get_seqs_identity(alg, seqs):
+    ''' Returns alg statistics regarding a set of sequences'''
+    seqlen = len(alg.get_seq(seqs[0]))
+    ident = list()
+    for i in range(seqlen):
+        states = defaultdict(int)
+        for seq_id in seqs:
+            seq = alg.get_seq(seq_id)
+            if seq[i] != "-":
+                states[seq[i]] += 1
+        values = list(states.values())
+        if values:
+            ident.append(float(max(values))/sum(values))
+    return (_max(ident), _min(ident),
+            _mean(ident), _std(ident))
+
+
+def split_tree(task_tree_node, task_outgroups, main_tree, alg_path, npr_conf, threadid, target_cladeids):
+    """Browses a task tree from root to leaves and yields next
+    suitable nodes for NPR iterations. Each yielded node comes with
+    the set of target and outgroup tips.
+    """
+
+
+    def processable_node(_n):
+        """This an internal function that returns true if a given node
+        is suitable for a NPR iteration. It can be used as
+        "is_leaf_fn" when traversing a tree.
+
+        Note that this function uses several variables which change within the
+        split_tree function, so must be kept within its namespace.
+
+        """
+        is_leaf = False
+        for wkname, wkfilter in npr_conf.npr_workflows:
+            # if node is not in the targets or does not meet size filters, skip
+            # workflow
+            if _n is master_node or \
+               (_TARGET_NODES and _n not in _TARGET_NODES) or \
+               (target_cladeids and _n.cladeid not in target_cladeids) or \
+               len(n2content[_n]) < max(wkfilter.get("min_size", 3), 3) or \
+               ("max_size" in wkfilter and len(n2content[_n]) > wkfilter["max_size"]):
+                continue
+
+            # If seq_sim filter used, calculate node stats
+            if ALG and ("min_seq_sim" in wkfilter or "max_seq_sim" in wkfilter):
+                if not hasattr(_n, "seqs_mean_ident"):
+                    log.log(20, "Calculating node sequence stats...")
+                    mx, mn, avg, std = get_seqs_identity(ALG,
+                                                         [__n.name for __n in n2content[_n]])
+                    _n.add_features(seqs_max_ident=mx, seqs_min_ident=mn,
+                                    seqs_mean_ident=avg, seqs_std_ident=std)
+                    log.log(20, "mx=%s, mn=%s, avg=%s, std=%s" %(mx, mn, avg, std))
+
+
+                if _n.seqs_mean_ident < wkfilter["min_seq_sim"]:
+                    continue
+
+                if _n.seqs_mean_ident > wkfilter["max_seq_sim"]:
+                    continue
+
+
+            else:
+                _n.add_features(seqs_max_ident=None, seqs_min_ident=None,
+                                seqs_mean_ident=None, seqs_std_ident=None)
+
+            if "min_support" in wkfilter:
+                # If we are optimizing only lowly supported nodes, and nodes are
+                # optimized without an outgroup, our target node is actually the
+                # parent of lowly supported nodes. Therefore, I check if support
+                # is low in children nodes, and return this node if so.
+                if not npr_conf.use_outgroup:
+                    if not [_ch for _ch in _n.children if _ch.support <= wkfilter["min_support"]]:
+                        continue
+                # Otherwise, just skip the node if it above the min support
+                elif _n.support > wkfilter["min_support"]:
+                    continue
+
+            # At this point, node passed all filters of this workflow were met,
+            # so it can be optimized
+            is_leaf = True
+            _n._target_wkname = wkname
+            break
+
+        return is_leaf
+
+    log.log(20, "Loading tree content...")
+    n2content = main_tree.get_cached_content()
+    if alg_path:
+        log.log(20, "Loading associated alignment to check seq. similarity")
+        raw_alg = db.get_task_data(*alg_path.split("."))
+        ALG = SeqGroup(raw_alg)
+    else:
+        ALG = None
+
+    log.log(20, "Finding next NPR nodes...")
+    # task_tree_node is actually a node in main_tree, since it has been
+    # already merged
+    trees_to_browse = [task_tree_node]
+    npr_nodes = 0
+    # loads current tree content, so we can check not reconstructing exactly the
+    # same tree
+    tasktree_content = set([leaf.name for leaf in n2content[task_tree_node]]) | set(task_outgroups)
+    while trees_to_browse:
+        master_node = trees_to_browse.pop()
+
+        # if custom taxa levels are defined as targets, find them in this
+        # subtree
+        _TARGET_NODES = defaultdict(list) # this container is used by
+                                          # processable_node function
+        opt_levels = GLOBALS[threadid].get('_optimized_levels', None)
+        if opt_levels is not None:
+            # any descendant of the already processed node is suitable for
+            # selection. If the ancestor of level-species is on top of the
+            # task_tree_node, it will be discarded
+            avail_nodes = set(master_node.get_descendants())
+            for lin in opt_levels:
+                sp2lin, lin2sp = GLOBALS["lineages"]
+                optimized, strict_monophyly = opt_levels[lin]
+                if not optimized:
+                    ancestor = main_tree.get_common_ancestor(*lin2sp[lin])
+                    if ancestor in avail_nodes:
+                        # check that the node satisfies level monophyly config
+                        ancestor_content = set([x.name for x in n2content[ancestor]])
+                        if not strict_monophyly or lin2sp[lin] == ancestor_content:
+                            _TARGET_NODES[ancestor].append(lin)
+                        elif strict_monophyly:
+                            log.log(26, "Discarding not monophyletic level @@11:%s@@1:" %lin)
+                    else:
+                        log.log(26, "Discarding upper clade @@11:%s@@1:" %lin)
+
+        for node in master_node.iter_leaves(is_leaf_fn=processable_node):
+            if opt_levels:
+                log.log(28, "Trying to optimizing custom tree level: @@11:%s@@1:" %_TARGET_NODES[node])
+                for lin in _TARGET_NODES[node]:
+                    # Marks the level as optimized, so is not computed again
+                    opt_levels[lin][0] = True
+
+            log.log(28, "Found possible target node of size %s branch support %f" %(len(n2content[node]), node.support))
+            log.log(28, "First suitable workflow: %s" %(node._target_wkname))
+
+            # Finds best outgroup for the target node
+            if npr_conf.use_outgroup:
+                splitterconfname, _ = npr_conf.tree_splitter
+                splitterconf = GLOBALS[threadid][splitterconfname]
+                #seqs, outs = select_outgroups(node, n2content, splitterconf)
+                #seqs, outs = select_closest_outgroup(node, n2content, splitterconf)
+                seqs, outs = select_sister_outgroup(node, n2content, splitterconf)
+            else:
+                seqs = set([_i.name for _i in n2content[node]])
+                outs = set()
+
+
+            if seqs | outs == tasktree_content:
+                log.log(26, "Discarding target node of size %s, due to identity with its parent node" %len(n2content[node]))
+                #print tasktree_content
+                #print seqs
+                #print outs
+                trees_to_browse.append(node)
+            else:
+                npr_nodes += 1
+                yield node, seqs, outs, node._target_wkname
+    log.log(28, "%s nodes will be optimized", npr_nodes)
+
+def get_next_npr_node(threadid, ttree, task_outgroups, mtree, alg_path, npr_conf, target_cladeids=None):
+    current_iter = get_iternumber(threadid)
+    if npr_conf.max_iters and current_iter >= npr_conf.max_iters:
+        log.warning("Maximum number of iterations reached!")
+        return
+
+    if not npr_conf.npr_workflows:
+        log.log(26, "NPR is disabled")
+        return
+
+    for node, seqs, outs, wkname in split_tree(ttree, task_outgroups, mtree, alg_path,
+                                               npr_conf, threadid, target_cladeids):
+        if npr_conf.max_iters and current_iter < npr_conf.max_iters:
+            log.log(28,
+                    "@@16:Target node of size %s with %s outgroups marked for a new NPR iteration!@@1:" %(
+                        len(seqs),
+                        len(outs)))
+            # Yield new iteration
+            inc_iternumber(threadid)
+            yield node, seqs, outs, wkname
+
+def select_closest_outgroup(target, n2content, splitterconf):
+    def sort_outgroups(x,y):
+        r = cmp(x[1], y[1]) # closer node
+        if r == 0:
+            r = -1 * cmp(len(n2content[x[0]]), len(n2content[y[0]])) # larger node
+            if r == 0:
+                r = -1 * cmp(x[0].support, y[0].support) # higher supported node
+                if r == 0:
+                    return cmp(x[0].cladeid, y[0].cladeid) # by content name
+                else:
+                    return r
+            else:
+                return r
+        else:
+            return r
+
+    if not target.up:
+        raise TaskError(None, "Cannot select outgroups for the root node!")
+
+    # Prepare cutoffs
+    out_topodist = tobool(splitterconf["_outgroup_topology_dist"])
+    max_outgroup_size = max(int(float(splitterconf["_max_outgroup_size"]) * len(n2content[target])), 1)
+    out_min_support = float(splitterconf["_min_outgroup_support"])
+
+    log.log(26, "Max outgroup size allowed %d" %max_outgroup_size)
+
+    # Gets a list of outside nodes an their distance to current target node
+    n2targetdist = distance_matrix_new(target, leaf_only=False,
+                                               topology_only=out_topodist)
+
+    valid_nodes = sorted([(node, ndist) for node, ndist in six.iteritems(n2targetdist)
+                          if not(n2content[node] & n2content[target])
+                          and node.support >= out_min_support
+                          and len(n2content[node])<=max_outgroup_size],
+                         sort_outgroups)
+    if valid_nodes:
+        best_outgroup = valid_nodes[0][0]
+    else:
+        print('\n'.join(sorted(["%s Size:%d Dist:%f Supp:%f" %(node.cladeid, len(n2content[node]), ndist, node.support)
+                                for node, ndist in six.iteritems(n2targetdist)],
+                               sort_outgroups)))
+        raise TaskError(None, "Could not find a suitable outgroup!")
+
+    log.log(20,
+            "Found possible outgroup Size:%d Distance:%f Support:%f",
+            len(n2content[best_outgroup]), n2targetdist[best_outgroup], best_outgroup.support)
+
+    log.log(20, "Supports: %0.2f (children=%s)", best_outgroup.support,
+            ','.join(["%0.2f" % ch.support for ch in
+                      best_outgroup.children]))
+
+    log.log(24, "best outgroup topology:\n%s", best_outgroup)
+    #print target
+    #print target.get_tree_root()
+
+    seqs = [n.name for n in n2content[target]]
+    outs = [n.name for n in n2content[best_outgroup]]
+
+    return set(seqs), set(outs)
+
+
+def select_sister_outgroup(target, n2content, splitterconf):
+    def sort_outgroups(x,y):
+        r = cmp(x[1], y[1]) # closer node
+        if r == 0:
+            r = -1 * cmp(len(n2content[x[0]]), len(n2content[y[0]])) # larger node
+            if r == 0:
+                r = -1 * cmp(x[0].support, y[0].support) # higher supported node
+                if r == 0:
+                    return cmp(x[0].cladeid, y[0].cladeid) # by content name
+                else:
+                    return r
+            else:
+                return r
+        else:
+            return r
+
+    if not target.up:
+        raise TaskError(None, "Cannot select outgroups for the root node!")
+
+    # Prepare cutoffs
+    out_topodist = tobool(splitterconf["_outgroup_topology_dist"])
+    out_min_support = float(splitterconf["_min_outgroup_support"])
+    if splitterconf["_max_outgroup_size"].strip().endswith("%"):
+        max_outgroup_size = max(1, round((float(splitterconf["_max_outgroup_size"].strip("%"))/100) * len(n2content[target])))
+        log.log(26, "Max outgroup size allowed %s = %d" %(splitterconf["_max_outgroup_size"], max_outgroup_size))
+    else:
+        max_outgroup_size = max(1, int(splitterconf["_max_outgroup_size"]))
+        log.log(26, "Max outgroup size allowed %d" %max_outgroup_size)
+
+    # Gets a list of outside nodes an their distance to current target node
+    n2targetdist = distance_matrix_new(target, leaf_only=False,
+                                               topology_only=out_topodist)
+
+    sister_content = n2content[target.get_sisters()[0]]
+
+    valid_nodes = sorted([(node, ndist) for node, ndist in six.iteritems(n2targetdist)
+                          if not(n2content[node] & n2content[target])
+                          and n2content[node].issubset(sister_content)
+                          and node.support >= out_min_support
+                          and len(n2content[node])<=max_outgroup_size],
+                         sort_outgroups)
+    if valid_nodes:
+        best_outgroup = valid_nodes[0][0]
+    else:
+        print('\n'.join(sorted(["%s Size:%d Distance:%f Support:%f" %(node.cladeid, len(n2content[node]), ndist, node.support)
+                                for node, ndist in six.iteritems(n2targetdist)],
+                               sort_outgroups)))
+        raise TaskError(None, "Could not find a suitable outgroup!")
+
+    log.log(20,
+            "Found possible outgroup Size:%d Dist:%f Supp:%f",
+            len(n2content[best_outgroup]), n2targetdist[best_outgroup], best_outgroup.support)
+
+    log.log(20, "Supports: %0.2f (children=%s)", best_outgroup.support,
+            ','.join(["%0.2f" % ch.support for ch in
+                      best_outgroup.children]))
+
+    log.log(24, "best outgroup topology:\n%s", best_outgroup)
+    #print target
+    #print target.get_tree_root()
+
+    seqs = [n.name for n in n2content[target]]
+    outs = [n.name for n in n2content[best_outgroup]]
+
+    return set(seqs), set(outs)
+
+
+
+
+
+
+def select_outgroups(target, n2content, splitterconf):
+    """Given a set of target sequences, find the best set of out
+    sequences to use. Several ways can be selected to find out
+    sequences:
+    """
+
+    name2dist = {"min": _min, "max": _max,
+                 "mean":_mean, "median":_median}
+
+
+    #policy = splitterconf["_outgroup_policy"]  # node or leaves
+    out_topodist = tobool(splitterconf["_outgroup_topology_dist"])
+    optimal_out_size = int(splitterconf["_max_outgroup_size"])
+    #out_distfn = splitterconf["_outgroup_dist"]
+    out_min_support = float(splitterconf["_outgroup_min_support"])
+
+    if not target.up:
+        raise TaskError(None, "Cannot select outgroups for the root node!")
+    if not optimal_out_size:
+        raise TaskError(None, "You are trying to set 0 outgroups!")
+
+    # Gets a list of outside nodes an their distance to current target node
+    n2targetdist = distance_matrix_new(target, leaf_only=False,
+                                               topology_only=out_topodist)
+
+    #kk, test = distance_matrix(target, leaf_only=False,
+    #                       topology_only=False)
+
+    #for x in test:
+    #    if test[x] != n2targetdist[x]:
+    #        print x
+    #        print test[x],  n2targetdist[x]
+    #        print x.get_distance(target)
+    #        raw_input("ERROR!")
+
+    score = lambda _n: (_n.support,
+                        #len(n2content[_n])/float(optimal_out_size),
+                        1 - (abs(optimal_out_size - len(n2content[_n])) / float(max(optimal_out_size, len(n2content[_n])))), # outgroup size
+                        1 - (n2targetdist[_n] / max_dist) #outgroup proximity to target
+                        )
+
+    def sort_outgroups(x,y):
+        score_x = set(score(x))
+        score_y = set(score(y))
+        while score_x:
+            min_score_x = min(score_x)
+
+            v = cmp(min_score_x, min(score_y))
+            if v == 0:
+                score_x.discard(min_score_x)
+                score_y.discard(min_score_x)
+            else:
+                break
+        # If still equal, sort by cladid to maintain reproducibility
+        if v == 0:
+            v = cmp(x.cladeid, y.cladeid)
+        return v
+
+    #del n2targetdist[target.get_tree_root()]
+    max_dist = max(n2targetdist.values())
+    valid_nodes = [n for n in n2targetdist if \
+                       not n2content[n] & n2content[target] and
+                       n.support >= out_min_support]
+    if not valid_nodes:
+        raise TaskError(None, "Could not find a suitable outgroup (min_support=%s)"\
+                      %out_min_support)
+    valid_nodes.sort(sort_outgroups, reverse=True)
+    best_outgroup = valid_nodes[0]
+    seqs = [n.name for n in n2content[target]]
+    outs = [n.name for n in n2content[best_outgroup]]
+
+    log.log(20,
+            "Found possible outgroup of size %s: score (support,size,dist)=%s",
+            len(outs), score(best_outgroup))
+
+    log.log(20, "Supports: %0.2f (children=%s)", best_outgroup.support,
+            ','.join(["%0.2f" % ch.support for ch in
+                      best_outgroup.children]))
+
+    if DEBUG():
+        root = target.get_tree_root()
+        for _seq in outs:
+            tar =  root & _seq
+            tar.img_style["fgcolor"]="green"
+            tar.img_style["size"] = 12
+            tar.img_style["shape"] = "circle"
+        target.img_style["bgcolor"] = "lightblue"
+        NPR_TREE_STYLE.title.clear()
+        NPR_TREE_STYLE.title.add_face( faces.TextFace("MainTree:"
+            " Outgroup selection is mark in green. Red=optimized nodes ",
+            fgcolor="blue"), 0)
+        root.show(tree_style=NPR_TREE_STYLE)
+        for _n in root.traverse():
+            _n.img_style = None
+
+    return set(seqs), set(outs)
+
+def distance_matrix_new(target, leaf_only=False, topology_only=False):
+    t = target.get_tree_root()
+    real_outgroup = t.children[0]
+    t.set_outgroup(target)
+
+    n2dist = {target:0}
+    for n in target.get_descendants("preorder"):
+        n2dist[n] = n2dist[n.up] + (topology_only or n.dist)
+
+    sister = target.get_sisters()[0]
+    n2dist[sister] = (topology_only or sister.dist)+ (topology_only or target.dist)
+    for n in sister.get_descendants("preorder"):
+        n2dist[n] = n2dist[n.up] + (topology_only or n.dist)
+
+    t.set_outgroup(real_outgroup)
+
+    ## Slow Test.
+    # for n in t.get_descendants():
+    #     if float(str(target.get_distance(n))) != float(str(n2dist[n])):
+    #         print n
+    #         print target.get_distance(n), n2dist[n]
+    #         raw_input("ERROR")
+    return n2dist
+
+
+def assembly_tree(runid):
+    task_nodes = db.get_runid_nodes(runid)
+    task_nodes.reverse()
+
+    main_tree = None
+    iternumber = 1
+    while task_nodes:
+        cladeid, packtree, size = task_nodes.pop(-1)
+        if not packtree:
+            continue
+        tree = db.decode(packtree)
+
+        # print tree.dist
+        # Restore original gene names
+        for leaf in tree.iter_leaves():
+            leaf.add_features(safename=leaf.name)
+            leaf.name = leaf.realname
+
+        if main_tree:
+            # substitute node in main tree by the optimized one
+            target_node = main_tree.search_nodes(cladeid=cladeid)[0]
+            target_node.up.add_child(tree)
+            target_node.detach()
+        else:
+            main_tree = tree
+
+        iter_name = "Iter_%04d_%dseqs" %(iternumber, size)
+        tree.add_features(iternumber=iternumber)
+        iternumber += 1
+    return main_tree, iternumber
+
+
+def get_cmd_log(task):
+    cmd_lines = []
+    if getattr(task, 'get_launch_cmd', None):
+        launch_cmd = task.get_launch_cmd()
+        tm_s, tm_e = read_time_file(task.time_file)
+        cmd_lines.append([task.jobid, sec2time(tm_e - tm_s), task.jobname, launch_cmd])
+    if getattr(task, 'jobs', None):
+        for subtask in task.jobs:
+            cmd_lines.extend(get_cmd_log(subtask))
+    return cmd_lines
diff --git a/ete3/tools/phylobuild_lib/workflow/genetree.py b/ete3/tools/phylobuild_lib/workflow/genetree.py
new file mode 100644
index 0000000..44e9fa7
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/workflow/genetree.py
@@ -0,0 +1,485 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import re
+from subprocess import check_output
+import logging
+
+from ..task import TreeMerger, Msf, DummyTree, ManualAlg
+from ..errors import DataError
+from ..utils import (GLOBALS, rpath, pjoin, pexist, generate_runid,
+                                  DATATYPES, GAP_CHARS, DEBUG, SeqGroup, _min, _max, _std, _mean, _median)
+from .. import db
+from ..master_task import register_task_recursively
+from ..workflow.common import (IterConfig, get_next_npr_node,
+                               process_new_tasks, get_iternumber)
+from ..logger import logindent
+import six
+from six.moves import map
+log = logging.getLogger("main")
+
+def annotate_node(t, final_task):
+    cladeid2node = {}
+    # Annotate cladeid in the whole tree
+    for n in t.traverse():
+        if n.is_leaf():
+            n.add_feature("realname", db.get_seq_name(n.name))
+            #n.name = n.realname
+        if hasattr(n, "cladeid"):
+            cladeid2node[n.cladeid] = n
+
+    alltasks = GLOBALS[final_task.configid]["_nodeinfo"][final_task.nodeid]["tasks"]
+    npr_iter = get_iternumber(final_task.threadid)
+    n = cladeid2node[t.cladeid]
+    n.add_features(size=final_task.size)
+    for task in alltasks:
+        params = ["%s %s" %(k,v) for k,v in  six.iteritems(task.args)
+                  if not k.startswith("_")]
+        params = " ".join(params)
+
+        if task.ttype == "msf":
+            n.add_features(msf_outseqs=task.out_seqs,
+                           msf_file=task.multiseq_file)
+
+        elif task.ttype == "acleaner":
+            n.add_features(clean_alg_mean_ident=task.mean_ident,
+                           clean_alg_std_ident=task.std_ident,
+                           clean_alg_max_ident=task.max_ident,
+                           clean_alg_min_ident=task.min_ident,
+                           clean_alg_type=task.tname,
+                           clean_alg_cmd=params,
+                           clean_alg_path=task.clean_alg_fasta_file)
+        elif task.ttype == "alg":
+            n.add_features(alg_mean_ident=task.mean_ident,
+                           alg_std_ident=task.std_ident,
+                           alg_max_ident=task.max_ident,
+                           alg_min_ident=task.min_ident,
+                           alg_type=task.tname,
+                           alg_cmd=params,
+                           alg_path=task.alg_fasta_file)
+
+        elif task.ttype == "tree":
+            n.add_features(tree_model=task.model,
+                           tree_seqtype=task.seqtype,
+                           tree_type=task.tname,
+                           tree_cmd=params,
+                           tree_path=task.tree_file,
+                           tree_constrain=task.constrain_tree,
+                           tree_phylip_alg=task.alg_phylip_file,
+                           npr_iter=npr_iter)
+        elif task.ttype == "mchooser":
+            n.add_features(modeltester_models=task.models,
+                           modeltester_type=task.tname,
+                           modeltester_params=params,
+                           modeltester_bestmodel=task.best_model,
+                           )
+        elif task.ttype == "treemerger":
+            n.add_features(treemerger_type=task.tname,
+                           treemerger_rf="RF=%s [%s]" %(task.rf[0], task.rf[1]),
+                           treemerger_out_match_dist = task.outgroup_match_dist,
+                           treemerger_out_match = task.outgroup_match,
+            )
+
+def get_trimal_conservation(alg_file, trimal_bin):
+    output = bytes.decode(check_output("%s -ssc -in %s" % (trimal_bin,
+                                                    alg_file), shell=True))
+    conservation = []
+    for line in output.split("\n")[3:]:
+        a, b = list(map(float, line.split()))
+        conservation.append(b)
+    mean = _mean(conservation)
+    std = _std(conservation)
+    return mean, std
+
+
+def get_statal_identity(alg_file, statal_bin):
+    output = bytes.decode(check_output("%s -scolidentt -in %s" % (statal_bin, alg_file), shell=True))
+
+    ## Columns Identity Descriptive Statistics
+    #maxColIdentity	1
+    #minColIdentity	0.428571
+    #avgColIdentity	0.781853
+    #stdColIdentity	0.2229
+    #print output
+
+    maxi, mini, avgi, stdi = [None] * 4
+    for line in output.splitlines():
+        if line.startswith("#maxColIdentity"):
+            maxi = float(line.split()[1])
+        elif line.startswith("#minColIdentity"):
+            mini = float(line.split()[1])
+        elif line.startswith("#avgColIdentity"):
+            avgi = float(line.split()[1])
+        elif line.startswith("#stdColIdentity"):
+            stdi = float(line.split()[1])
+            break
+    return maxi, mini, avgi, stdi
+
+
+def get_trimal_identity(alg_file, trimal_bin):
+    #print "%s -sident -in %s" %\
+    #    (trimal_bin, alg_file)
+    output = byets.decode(check_output("%s -sident -in %s" %\
+                                    (trimal_bin, alg_file), shell=True))
+    #print output
+    conservation = []
+    for line in output.split("\n"):
+        m = re.search("#MaxIdentity\s+(\d+\.\d+)", line)
+        if m:
+            max_identity = float(m.groups()[0])
+    return max_identity
+
+def switch_to_codon(alg_fasta_file,  kept_columns=None):
+    # Check conservation of columns. If too many identities,
+    # switch to codon alignment and make the tree with DNA.
+    # Mixed models is another possibility.
+    if kept_columns:
+        kept_columns = set(map(int, kept_columns))
+    else:
+        kept_columns = []
+
+    #all_nt_alg = SeqGroup(nt_seed_file)
+    aa_alg = SeqGroup(alg_fasta_file)
+    nt_alg = SeqGroup()
+
+    for seqname, aaseq, comments in aa_alg.iter_entries():
+        #ntseq = all_nt_alg.get_seq(seqname).upper()
+        ntseq = db.get_seq(seqname, "nt").upper()
+        ntalgseq = []
+        nt_pos = 0
+        for pos, ch in enumerate(aaseq):
+            if ch in GAP_CHARS:
+                codon = "---"
+            else:
+                codon = ntseq[nt_pos:nt_pos+3]
+                nt_pos += 3
+
+            if not kept_columns or pos in kept_columns:
+                # we trust the sequence in DB, consistency should have been
+                # checked during the start up
+                ntalgseq.append(codon)
+
+        ntalgseq = "".join(ntalgseq)
+        nt_alg.set_seq(seqname, ntalgseq)
+
+    return nt_alg
+
+def process_task(task, wkname, npr_conf, nodeid2info):
+    alignerconf, alignerclass = npr_conf.aligner
+    cleanerconf, cleanerclass = npr_conf.alg_cleaner
+    mtesterconf, mtesterclass = npr_conf.model_tester
+    treebuilderconf, treebuilderclass = npr_conf.tree_builder
+    if not treebuilderclass:
+        # Allows to dump algs in workflows with no tree tasks
+        treebuilderclass = DummyTree
+
+    splitterconf, splitterclass = npr_conf.tree_splitter
+
+    conf = GLOBALS[task.configid]
+    seqtype = task.seqtype
+    nodeid = task.nodeid
+    ttype = task.ttype
+    taskid = task.taskid
+    threadid = task.threadid
+    node_info = nodeid2info[nodeid]
+    size = task.size#node_info.get("size", 0)
+    target_seqs = node_info.get("target_seqs", [])
+    out_seqs = node_info.get("out_seqs", [])
+
+    if not treebuilderclass or size < 4:
+        # Allows to dump algs in workflows with no tree tasks or if tree
+        # inference does not make sense given the number of sequences. DummyTree
+        # will produce a fake fully collapsed newick tree.
+        treebuilderclass = DummyTree
+        mtesterclass = None
+
+
+    # If more than one outgroup are used, enable the use of constrain
+    if out_seqs and len(out_seqs) > 1:
+        constrain_id = nodeid
+    else:
+        constrain_id = None
+
+    new_tasks = []
+    if ttype == "msf":
+        # Register Tree constrains
+        constrain_tree = "(%s, (%s));" %(','.join(sorted(task.out_seqs)),
+                                         ','.join(sorted(task.target_seqs)))
+        _outs = "\n".join([">%s\n0" %name for name in sorted(task.out_seqs)])
+        _tars = "\n".join([">%s\n1" %name for name in sorted(task.target_seqs)])
+        constrain_alg = '\n'.join([_outs, _tars])
+        db.add_task_data(nodeid, DATATYPES.constrain_tree, constrain_tree)
+        db.add_task_data(nodeid, DATATYPES.constrain_alg, constrain_alg)
+        db.dataconn.commit() # since the creation of some Task
+                               # objects may require this info, I need
+                               # to commit right now.
+
+        # Register node
+        db.add_node(task.threadid,
+                    task.nodeid, task.cladeid,
+                    task.target_seqs,
+                    task.out_seqs)
+
+        nodeid2info[nodeid]["size"] = task.size
+        nodeid2info[nodeid]["target_seqs"] = task.target_seqs
+        nodeid2info[nodeid]["out_seqs"] = task.out_seqs
+        
+        if alignerclass:
+            alg_task = alignerclass(nodeid, task.multiseq_file,
+                                    seqtype, conf, alignerconf)
+        else:
+            log.warning("Skipping alignment phase, using original sequences")
+            alg_task = ManualAlg(nodeid, task.multiseq_file,
+                                 seqtype, conf, alignerconf)
+            
+        alg_task.size = task.size
+        new_tasks.append(alg_task)
+
+
+    elif ttype == "alg" or ttype == "acleaner":
+        if ttype == "alg":
+            nodeid2info[nodeid]["alg_path"] = task.alg_fasta_file
+        elif ttype == "acleaner":
+            nodeid2info[nodeid]["alg_clean_path"] = task.clean_alg_fasta_file
+
+        alg_fasta_file = getattr(task, "clean_alg_fasta_file",
+                                 task.alg_fasta_file)
+        alg_phylip_file = getattr(task, "clean_alg_phylip_file",
+                                  task.alg_phylip_file)
+
+        # Calculate alignment stats
+        # cons_mean, cons_std = get_trimal_conservation(task.alg_fasta_file,
+        #                                        conf["app"]["trimal"])
+        #
+        # max_identity = get_trimal_identity(task.alg_fasta_file,
+        #                                 conf["app"]["trimal"])
+        # log.info("Conservation: %0.2f +-%0.2f", cons_mean, cons_std)
+        # log.info("Max. Identity: %0.2f", max_identity)
+        #import time
+        #t1 = time.time()
+        #mx, mn, mean, std = get_identity(task.alg_fasta_file)
+        #print time.time()-t1
+        #log.log(26, "Identity: max=%0.2f min=%0.2f mean=%0.2f +- %0.2f",
+        #        mx, mn, mean, std)
+        #t1 = time.time()
+
+        if seqtype == "aa" and npr_conf.switch_aa_similarity < 1:
+            try:
+                alg_stats = db.get_task_data(taskid, DATATYPES.alg_stats)
+            except Exception as e:
+                alg_stats = {}
+
+            if ttype == "alg":
+                algfile = pjoin(GLOBALS["input_dir"], task.alg_phylip_file)
+                dataid = DATATYPES.alg_phylip
+            elif ttype == "acleaner":
+                algfile = pjoin(GLOBALS["input_dir"], task.clean_alg_phylip_file)
+                dataid = DATATYPES.clean_alg_phylip
+
+            if "i_mean" not in alg_stats:
+                log.log(24, "Calculating alignment stats...")
+                # dump data if necesary
+                algfile = pjoin(GLOBALS["input_dir"], task.alg_phylip_file)
+                if not pexist(algfile):
+                    # dump phylip alg
+                    open(algfile, "w").write(db.get_data(db.get_dataid(taskid, dataid)))
+
+                mx, mn, mean, std = get_statal_identity(algfile,
+                                                        conf["app"]["statal"])
+                alg_stats = {"i_max":mx, "i_mean":mean, "i_min":mn, "i_std":std}
+                db.add_task_data(taskid, DATATYPES.alg_stats, alg_stats)
+
+            log.log(22, "Alignment stats (sequence similarity):")
+            log.log(22, "   max: %(i_max)0.2f, min:%(i_min)0.2f, avg:%(i_mean)0.2f+-%(i_std)0.2f" %
+                    (alg_stats))
+
+        else:
+            alg_stats = {"i_max":-1, "i_mean":-1, "i_min":-1, "i_std":-1}
+
+        #print time.time()-t1
+        #log.log(24, "Identity: max=%0.2f min=%0.2f mean=%0.2f +- %0.2f",
+        #        mx, mn, mean, std)
+        task.max_ident = alg_stats["i_max"]
+        task.min_ident = alg_stats["i_min"]
+        task.mean_ident = alg_stats["i_mean"]
+        task.std_ident = alg_stats["i_std"]
+        next_task = None
+
+        if ttype == "alg" and cleanerclass:
+            next_task = cleanerclass(nodeid, seqtype, alg_fasta_file,
+                                     alg_phylip_file,
+                                     conf, cleanerconf)
+        else:
+            # Converts aa alignment into nt if necessary
+            if  seqtype == "aa" and \
+                    "nt" in GLOBALS["seqtypes"] and \
+                    task.mean_ident >= npr_conf.switch_aa_similarity:
+                log.log(28, "@@2:Switching to codon alignment!@@1: amino-acid sequence similarity: %0.2f >= %0.2f" %\
+                        (task.mean_ident, npr_conf.switch_aa_similarity))
+                alg_fasta_file = "%s.%s" %(taskid, DATATYPES.alg_nt_fasta)
+                alg_phylip_file = "%s.%s" %(taskid, DATATYPES.alg_nt_phylip)
+                try:
+                    alg_fasta_file = db.get_dataid(taskid, DATATYPES.alg_nt_fasta)
+                    alg_phylip_file = db.get_dataid(taskid, DATATYPES.alg_nt_phylip)
+                except ValueError:
+                    log.log(22, "Calculating codon alignment...")
+
+                    source_alg = pjoin(GLOBALS["input_dir"], task.alg_fasta_file)
+                    if ttype == "alg":
+                        kept_columns = []
+                    elif ttype == "acleaner":
+                        # if original alignment was trimmed, use it as reference
+                        # but make the nt alignment only on the kept columns
+                        kept_columns = db.get_task_data(taskid, DATATYPES.kept_alg_columns)
+
+                    if not pexist(source_alg):
+                        open(source_alg, "w").write(db.get_task_data(taskid, DATATYPES.alg_fasta))
+
+                    nt_alg = switch_to_codon(source_alg, kept_columns=kept_columns)
+                    
+                    db.add_task_data(taskid, DATATYPES.alg_nt_fasta, nt_alg.write())
+                    db.add_task_data(taskid, DATATYPES.alg_nt_phylip, nt_alg.write(format='iphylip_relaxed'))
+
+                npr_conf = IterConfig(conf, wkname, task.size, "nt")
+                seqtype = "nt"
+                
+                # This is necessary for connecting to supermatrix workflows
+                task.alg_nt_fasta_file = alg_fasta_file
+                task.alg_nt_phylip_file = alg_phylip_file
+                    
+
+            if mtesterclass:
+                next_task = mtesterclass(nodeid, alg_fasta_file,
+                                         alg_phylip_file,
+                                         constrain_id, seqtype,
+                                         conf, mtesterconf)
+            elif treebuilderclass:
+                next_task = treebuilderclass(nodeid, alg_phylip_file,
+                                             constrain_id,
+                                             None, seqtype,
+                                             conf, treebuilderconf)
+        if next_task:
+            next_task.size = task.size
+            new_tasks.append(next_task)
+
+    elif ttype == "mchooser":
+        if treebuilderclass:
+            alg_fasta_file = task.alg_fasta_file
+            alg_phylip_file = task.alg_phylip_file
+            model = task.best_model
+            tree_task = treebuilderclass(nodeid, alg_phylip_file,
+                                         constrain_id,
+                                         model, seqtype,
+                                         conf, treebuilderconf)
+            tree_task.size = task.size
+            if task.seqtype != seqtype:
+                tree_task.alg_phylip_file = task.alg_phylip_file
+            new_tasks.append(tree_task)
+
+    elif ttype == "tree":
+        treemerge_task = splitterclass(nodeid, seqtype,
+                                       task.tree_file, conf, splitterconf)
+            #if conf["tree_splitter"]["_outgroup_size"]:
+            #    treemerge_task = TreeSplitterWithOutgroups(nodeid, seqtype, task.tree_file, main_tree, conf)
+            #else:
+            #    treemerge_task = TreeSplitter(nodeid, seqtype, task.tree_file, main_tree, conf)
+
+        treemerge_task.size = task.size
+        new_tasks.append(treemerge_task)
+
+    elif ttype == "treemerger":
+        if not task.task_tree:
+            task.finish()
+
+        log.log(24, "Saving task tree...")
+        annotate_node(task.task_tree, task)
+        db.update_node(nid=task.nodeid,
+                       runid=task.threadid,
+                       newick=db.encode(task.task_tree))
+        db.commit()
+
+        if not isinstance(treebuilderclass, DummyTree) and npr_conf.max_iters > 1:
+            current_iter = get_iternumber(threadid)
+            if npr_conf.max_iters and current_iter >= npr_conf.max_iters:
+                log.warning("Maximum number of iterations reached!")
+            else:
+                # Add new nodes
+                source_seqtype = "aa" if "aa" in GLOBALS["seqtypes"] else "nt"
+                ttree, mtree = task.task_tree, task.main_tree
+                log.log(26, "Processing tree: %s seqs, %s outgroups",
+                        len(target_seqs), len(out_seqs))
+                alg_path = node_info.get("clean_alg_path", node_info["alg_path"])
+                for node, seqs, outs, wkname in get_next_npr_node(threadid, ttree,
+                                                          task.out_seqs, mtree,
+                                                          alg_path, npr_conf):
+                    log.log(24, "Registering new node: %s seqs, %s outgroups",
+                            len(seqs), len(outs))
+                    new_task_node = Msf(seqs, outs, seqtype=source_seqtype)
+                    new_task_node.target_wkname = wkname
+                    new_tasks.append(new_task_node)
+    return new_tasks
+
+def pipeline(task, wkname, conf=None):
+    logindent(2)
+
+    if not task: # in this case, conf is expected
+        source_seqtype = "aa" if "aa" in GLOBALS["seqtypes"] else "nt"
+        all_seqs = GLOBALS["target_sequences"]
+        initial_task = Msf(set(all_seqs), set(),
+                           seqtype=source_seqtype)
+
+        initial_task.main_tree = None
+        initial_task.threadid = generate_runid()
+        initial_task.configid = initial_task.threadid
+        initial_task.target_wkname = wkname
+        # Register node
+        db.add_node(initial_task.threadid, initial_task.nodeid,
+                    initial_task.cladeid, initial_task.target_seqs,
+                    initial_task.out_seqs)
+
+        new_tasks = [initial_task]
+    else:
+        conf = GLOBALS[task.configid]
+        npr_conf = IterConfig(conf, wkname, task.size, task.seqtype)
+        new_tasks  = process_task(task, wkname, npr_conf, conf["_nodeinfo"])
+
+    process_new_tasks(task, new_tasks, conf)
+    logindent(-2)
+
+    return new_tasks
diff --git a/ete3/tools/phylobuild_lib/workflow/supermatrix.py b/ete3/tools/phylobuild_lib/workflow/supermatrix.py
new file mode 100644
index 0000000..b7b890f
--- /dev/null
+++ b/ete3/tools/phylobuild_lib/workflow/supermatrix.py
@@ -0,0 +1,287 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import logging
+from collections import defaultdict
+
+from ..task import TreeMerger, DummyTree
+from ..utils import (GLOBALS, tobool, generate_runid, pjoin, rpath, DATATYPES, md5,
+                          dict_string, ncbi, colorify)
+
+from ..errors import DataError, TaskError
+from .. import db
+from ..workflow.common import (process_new_tasks, IterConfig,
+                               get_next_npr_node, get_iternumber)
+from ..logger import logindent
+import six
+
+log = logging.getLogger("main")
+
+def annotate_node(t, final_task):
+    cladeid2node = {}
+    # Annotate cladeid in the whole tree
+    for n in t.traverse():
+        if n.is_leaf():
+            n.add_feature("realname", db.get_seq_name(n.name))
+            #n.name = n.realname
+        if hasattr(n, "cladeid"):
+            cladeid2node[n.cladeid] = n
+
+    alltasks = GLOBALS[final_task.configid]["_nodeinfo"][final_task.nodeid]["tasks"]
+    npr_iter = get_iternumber(final_task.threadid)
+    n = cladeid2node[t.cladeid]
+    n.add_features(size=final_task.size)
+    for task in alltasks:
+        params = ["%s %s" %(k,v) for k,v in  six.iteritems(task.args)
+                  if not k.startswith("_")]
+        params = " ".join(params)
+
+        if task.ttype == "tree":
+            n.add_features(tree_model=task.model,
+                           tree_seqtype=task.seqtype,
+                           tree_type=task.tname,
+                           tree_cmd=params,
+                           tree_file=rpath(task.tree_file),
+                           tree_constrain=task.constrain_tree,
+                           npr_iter=npr_iter)
+
+        elif task.ttype == "treemerger":
+            n.add_features(treemerger_type=task.tname,
+                           treemerger_rf="RF=%s [%s]" %(task.rf[0], task.rf[1]),
+                           treemerger_out_match_dist = task.outgroup_match_dist,
+                           treemerger_out_match = task.outgroup_match)
+
+        elif task.ttype == "concat_alg":
+            n.add_features(concatalg_cogs="%d"%task.used_cogs,
+                           alg_path=task.alg_fasta_file)
+
+def process_task(task, wkname, npr_conf, nodeid2info):
+    cogconf, cogclass = npr_conf.cog_selector
+    concatconf, concatclass = npr_conf.alg_concatenator
+    treebuilderconf, treebuilderclass = npr_conf.tree_builder
+    splitterconf, splitterclass = npr_conf.tree_splitter
+
+    threadid, nodeid, seqtype, ttype = (task.threadid, task.nodeid,
+                                        task.seqtype, task.ttype)
+    cladeid, targets, outgroups = db.get_node_info(threadid, nodeid)
+
+    if not treebuilderclass or task.size < 4:
+        # Allows to dump algs in workflows with no tree tasks or if tree
+        # inference does not make sense given the number of sequences. DummyTree
+        # will produce a fake fully collapsed newick tree.
+        treebuilderclass = DummyTree
+
+    if outgroups and len(outgroups) > 1:
+        constrain_id = nodeid
+    else:
+        constrain_id = None
+
+    node_info = nodeid2info[nodeid]
+    conf = GLOBALS[task.configid]
+    new_tasks = []
+    if ttype == "cog_selector":
+
+        # Generates a md5 id based on the genetree configuration workflow used
+        # for the concat alg task. If something changes, concat alg will change
+        # and the associated tree will be rebuilt
+        config_blocks = set([wkname])
+        for key, value in six.iteritems(conf[wkname]):
+            if isinstance(value, list) or  isinstance(value, tuple) \
+                    or isinstance(value, set):
+                for elem in value:
+                    config_blocks.add(elem[1:]) if isinstance(elem, str) and elem.startswith("@") else None
+            elif isinstance(value, str):
+                config_blocks.add(value[1:]) if value.startswith("@") else None
+        config_checksum =  md5(''.join(["[%s]\n%s" %(x, dict_string(conf[x]))
+                                        for x in sorted(config_blocks)]))
+
+        # THIS PART HAS BEEN MOVED TO COG_SELECTOR TASK
+        # Check that current selection of cogs will cover all target and
+        # outgroup species
+        #cog_hard_limit = int(conf[concatconf]["_max_cogs"])
+        #sp_repr = defaultdict(int)
+        #for co in task.raw_cogs[:cog_hard_limit]:
+        #    for sp, seq in co:
+        #        sp_repr[sp] += 1
+        #missing_sp = (targets | outgroups) - set(sp_repr.keys())
+        #if missing_sp:
+        #    raise TaskError("missing species under current cog selection: %s" %missing_sp)
+        #else:
+        #    log.log(28, "Analysis of current COG selection:")
+        #    for sp, ncogs in sorted(sp_repr.items(), key=lambda x:x[1]):
+        #        log.log(28, "   % 30s species present in % 6d COGs" %(sp, ncogs))
+
+        # register concat alignment task. NodeId associated to concat_alg tasks
+        # and all its children jobs should take into account cog information and
+        # not only species and outgroups included.
+
+        concat_job = concatclass(task.cogs, seqtype, conf, concatconf,
+                                 config_checksum)
+        db.add_node(threadid,
+                    concat_job.nodeid, cladeid,
+                    targets, outgroups)
+
+        # Register Tree constrains
+        constrain_tree = "(%s, (%s));" %(','.join(sorted(outgroups)),
+                                         ','.join(sorted(targets)))
+        _outs = "\n".join([">%s\n0" %name for name in sorted(outgroups)])
+        _tars = "\n".join([">%s\n1" %name for name in sorted(targets)])
+        constrain_alg = '\n'.join([_outs, _tars])
+        db.add_task_data(concat_job.nodeid, DATATYPES.constrain_tree, constrain_tree)
+        db.add_task_data(concat_job.nodeid, DATATYPES.constrain_alg, constrain_alg)
+        db.dataconn.commit() # since the creation of some Task objects
+                             # may require this info, I need to commit
+                             # right now.
+        concat_job.size = task.size
+        new_tasks.append(concat_job)
+
+    elif ttype == "concat_alg":
+        # register tree for concat alignment, using constraint tree if
+        # necessary
+        alg_id = db.get_dataid(task.taskid, DATATYPES.concat_alg_phylip)
+        try:
+            parts_id = db.get_dataid(task.taskid, DATATYPES.model_partitions)
+        except ValueError:
+            parts_id = None
+
+        nodeid2info[nodeid]["size"] = task.size
+        nodeid2info[nodeid]["target_seqs"] = targets
+        nodeid2info[nodeid]["out_seqs"] = outgroups
+
+        tree_task = treebuilderclass(nodeid, alg_id,
+                                     constrain_id, None,
+                                     seqtype, conf, treebuilderconf,
+                                     parts_id=parts_id)
+        tree_task.size = task.size
+        new_tasks.append(tree_task)
+
+    elif ttype == "tree":
+        merger_task = splitterclass(nodeid, seqtype, task.tree_file, conf, splitterconf)
+        merger_task.size = task.size
+        new_tasks.append(merger_task)
+
+    elif ttype == "treemerger":
+        # Lets merge with main tree
+        if not task.task_tree:
+            task.finish()
+
+        log.log(24, "Saving task tree...")
+        annotate_node(task.task_tree, task)
+        db.update_node(nid=task.nodeid, runid=task.threadid,
+                       newick=db.encode(task.task_tree))
+        db.commit()
+
+        if not isinstance(treebuilderclass, DummyTree) and npr_conf.max_iters > 1:
+            current_iter = get_iternumber(threadid)
+            if npr_conf.max_iters and current_iter >= npr_conf.max_iters:
+                log.warning("Maximum number of iterations reached!")
+            else:
+                # Add new nodes
+                source_seqtype = "aa" if "aa" in GLOBALS["seqtypes"] else "nt"
+                ttree, mtree = task.task_tree, task.main_tree
+
+                log.log(26, "Processing tree: %s seqs, %s outgroups",
+                        len(targets), len(outgroups))
+
+                target_cladeids = None
+                if tobool(conf[splitterconf].get("_find_ncbi_targets", False)):
+                    tcopy = mtree.copy()
+                    ncbi.connect_database()
+                    tax2name, tax2track = ncbi.annotate_tree_with_taxa(tcopy, None)
+                    #tax2name, tax2track = ncbi.annotate_tree_with_taxa(tcopy, "fake") # for testing sptree example
+                    n2content = tcopy.get_cached_content()
+                    broken_branches, broken_clades, broken_clade_sizes, tax2name = ncbi.get_broken_branches(tcopy, n2content)
+                    log.log(28, 'restricting NPR to broken clades: '+
+                            colorify(', '.join(["%s"%tax2name[x] for x in broken_clades]), "wr"))
+                    target_cladeids = set()
+                    for branch in broken_branches:
+                        print(branch.get_ascii(attributes=['spname', 'taxid'], compact=True))
+                        print(["%s"%tax2name[x] for x in broken_branches[branch]])
+                        target_cladeids.add(branch.cladeid)
+
+                for node, seqs, outs, wkname in get_next_npr_node(task.configid, ttree,
+                                                          task.out_seqs, mtree, None,
+                                                          npr_conf, target_cladeids): # None is to avoid alg checks
+                    log.log(24, "Adding new node: %s seqs, %s outgroups",
+                            len(seqs), len(outs))
+                    new_task_node = cogclass(seqs, outs,
+                                             source_seqtype, conf, cogconf)
+                    new_task_node.target_wkname = wkname
+                    new_tasks.append(new_task_node)
+                    db.add_node(threadid,
+                                new_task_node.nodeid, new_task_node.cladeid,
+                                new_task_node.targets,
+                                new_task_node.outgroups)
+    return new_tasks
+
+def pipeline(task, wkname, conf=None):
+    logindent(2)
+    # Points to npr parameters according to task properties
+
+    if not task:
+        source_seqtype = "aa" if "aa" in GLOBALS["seqtypes"] else "nt"
+        npr_conf = IterConfig(conf, wkname,
+                              len(GLOBALS["target_species"]),
+                              source_seqtype)
+        cogconf, cogclass = npr_conf.cog_selector
+        initial_task = cogclass(GLOBALS["target_species"], set(),
+                                source_seqtype, conf, cogconf)
+
+        initial_task.main_tree = main_tree = None
+        initial_task.threadid = generate_runid()
+        initial_task.configid = initial_task.threadid
+        initial_task.target_wkname = wkname
+        # Register node
+        db.add_node(initial_task.threadid, initial_task.nodeid,
+                    initial_task.cladeid, initial_task.targets,
+                    initial_task.outgroups)
+
+        new_tasks = [initial_task]
+    else:
+        conf = GLOBALS[task.configid]
+        npr_conf = IterConfig(conf, wkname, task.size, task.seqtype)
+        new_tasks  = process_task(task, wkname, npr_conf, conf['_nodeinfo'])
+
+    process_new_tasks(task, new_tasks, conf)
+    logindent(-2)
+
+    return new_tasks
+
diff --git a/ete3/tools/utils.py b/ete3/tools/utils.py
new file mode 100644
index 0000000..5947726
--- /dev/null
+++ b/ete3/tools/utils.py
@@ -0,0 +1,44 @@
+import os
+
+# CONVERT shell colors to the same curses palette
+COLORS = {
+    "wr": '\033[1;37;41m', # white on red
+    "wo": '\033[1;37;43m', # white on orange
+    "wm": '\033[1;37;45m', # white on magenta
+    "wb": '\033[1;37;46m', # white on blue
+    "bw": '\033[1;37;40m', # black on white
+    "lblue": '\033[1;34m', # light blue
+    "lred": '\033[1;31m', # light red
+    "lgreen": '\033[1;32m', # light green
+    "yellow": '\033[1;33m', # yellow
+    "cyan": '\033[36m', # cyan
+    "blue": '\033[34m', # blue
+    "green": '\033[32m', # green
+    "orange": '\033[33m', # orange
+    "red": '\033[31m', # red
+    "magenta": "\033[35m", # magenta
+    "white": "\033[0m", # white
+    None: "\033[0m", # end
+}
+
+def colorify(string, color):
+    return "%s%s%s" %(COLORS[color], string, COLORS[None])
+
+def clear_color(string):
+    return re.sub("\\033\[[^m]+m", "", string)
+
+def which(program):
+    def is_exe(fpath):
+        return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
+
+    fpath, fname = os.path.split(program)
+    if fpath:
+        if is_exe(program):
+            return program
+    else:
+        for path in os.environ["PATH"].split(os.pathsep):
+            path = path.strip('"')
+            exe_file = os.path.join(path, program)
+            if is_exe(exe_file):
+                return exe_file
+    return ""
diff --git a/ete3/treeview/__init__.py b/ete3/treeview/__init__.py
new file mode 100644
index 0000000..66146db
--- /dev/null
+++ b/ete3/treeview/__init__.py
@@ -0,0 +1,44 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+from .main import *
+from .faces import *
+from .svg_colors import *
diff --git a/ete3/treeview/_about.py b/ete3/treeview/_about.py
new file mode 100644
index 0000000..2052631
--- /dev/null
+++ b/ete3/treeview/_about.py
@@ -0,0 +1,82 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'about.ui'
+#
+# Created: Tue Jan 10 15:56:58 2012
+#      by: PyQt4 UI code generator 4.7.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_About(object):
+    def setupUi(self, About):
+        About.setObjectName("About")
+        About.resize(462, 249)
+        self.verticalLayoutWidget = QtGui.QWidget(About)
+        self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 0, 441, 208))
+        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
+        self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label = QtGui.QLabel(self.verticalLayoutWidget)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.version = QtGui.QLabel(self.verticalLayoutWidget)
+        self.version.setObjectName("version")
+        self.verticalLayout.addWidget(self.version)
+
+        self.retranslateUi(About)
+        QtCore.QMetaObject.connectSlotsByName(About)
+
+    def retranslateUi(self, About):
+        About.setWindowTitle(QtGui.QApplication.translate("About", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+        self.label.setText(QtGui.QApplication.translate("About", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'DejaVu Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/ete icons/ete_logo.png\" /></p>\n"
+"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;\"><span style=\" font-size:11pt;\">ETE: a python Environment for Tree Exploration</span></p>\n"
+"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-weight:600;\"><a href=\"http://etetoolkit.org\"><span style=\" text-decoration: underline; color:#0057ae;\">http://etetoolkit.org</span></a></p>\n"
+"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.version.setText(QtGui.QApplication.translate("About", "VERSION", None, QtGui.QApplication.UnicodeUTF8))
+
+from . import ete_resources_rc
diff --git a/ete3/treeview/_mainwindow.py b/ete3/treeview/_mainwindow.py
new file mode 100644
index 0000000..c4e1d93
--- /dev/null
+++ b/ete3/treeview/_mainwindow.py
@@ -0,0 +1,263 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'ete_qt4app.ui'
+#
+# Created: Tue Jan 10 15:56:57 2012
+#      by: PyQt4 UI code generator 4.7.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_MainWindow(object):
+    def setupUi(self, MainWindow):
+        MainWindow.setObjectName("MainWindow")
+        MainWindow.resize(673, 493)
+        self.centralwidget = QtGui.QWidget(MainWindow)
+        self.centralwidget.setObjectName("centralwidget")
+        MainWindow.setCentralWidget(self.centralwidget)
+        self.menubar = QtGui.QMenuBar(MainWindow)
+        self.menubar.setGeometry(QtCore.QRect(0, 0, 673, 27))
+        self.menubar.setObjectName("menubar")
+        self.menuFile = QtGui.QMenu(self.menubar)
+        self.menuFile.setObjectName("menuFile")
+        self.menuAbout = QtGui.QMenu(self.menubar)
+        self.menuAbout.setObjectName("menuAbout")
+        MainWindow.setMenuBar(self.menubar)
+        self.statusbar = QtGui.QStatusBar(MainWindow)
+        self.statusbar.setObjectName("statusbar")
+        MainWindow.setStatusBar(self.statusbar)
+        self.toolBar = QtGui.QToolBar(MainWindow)
+        self.toolBar.setEnabled(True)
+        self.toolBar.setObjectName("toolBar")
+        MainWindow.addToolBar(QtCore.Qt.ToolBarArea(QtCore.Qt.TopToolBarArea), self.toolBar)
+        self.actionOpen = QtGui.QAction(MainWindow)
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(":/ete icons/fileopen.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionOpen.setIcon(icon)
+        font = QtGui.QFont()
+        self.actionOpen.setFont(font)
+        self.actionOpen.setObjectName("actionOpen")
+        self.actionPaste_newick = QtGui.QAction(MainWindow)
+        self.actionPaste_newick.setObjectName("actionPaste_newick")
+        self.actionSave_image = QtGui.QAction(MainWindow)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(":/ete icons/filesave.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionSave_image.setIcon(icon1)
+        self.actionSave_image.setObjectName("actionSave_image")
+        self.actionSave_region = QtGui.QAction(MainWindow)
+        self.actionSave_region.setObjectName("actionSave_region")
+        self.actionBranchLength = QtGui.QAction(MainWindow)
+        self.actionBranchLength.setCheckable(True)
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(":/ete icons/show_dist.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionBranchLength.setIcon(icon2)
+        self.actionBranchLength.setObjectName("actionBranchLength")
+        self.actionZoomIn = QtGui.QAction(MainWindow)
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(":/ete icons/zoom_in.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomIn.setIcon(icon3)
+        self.actionZoomIn.setObjectName("actionZoomIn")
+        self.actionZoomOut = QtGui.QAction(MainWindow)
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(":/ete icons/zoom_out.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomOut.setIcon(icon4)
+        self.actionZoomOut.setObjectName("actionZoomOut")
+        self.actionETE = QtGui.QAction(MainWindow)
+        self.actionETE.setObjectName("actionETE")
+        self.actionForceTopology = QtGui.QAction(MainWindow)
+        self.actionForceTopology.setCheckable(True)
+        icon5 = QtGui.QIcon()
+        icon5.addPixmap(QtGui.QPixmap(":/ete icons/force_topo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionForceTopology.setIcon(icon5)
+        self.actionForceTopology.setProperty("HOLA", False)
+        self.actionForceTopology.setObjectName("actionForceTopology")
+        self.actionSave_newick = QtGui.QAction(MainWindow)
+        self.actionSave_newick.setIcon(icon1)
+        self.actionSave_newick.setObjectName("actionSave_newick")
+        self.actionZoomInX = QtGui.QAction(MainWindow)
+        icon6 = QtGui.QIcon()
+        icon6.addPixmap(QtGui.QPixmap(":/ete icons/x_expand.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomInX.setIcon(icon6)
+        self.actionZoomInX.setObjectName("actionZoomInX")
+        self.actionZoomOutX = QtGui.QAction(MainWindow)
+        icon7 = QtGui.QIcon()
+        icon7.addPixmap(QtGui.QPixmap(":/ete icons/x_reduce.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomOutX.setIcon(icon7)
+        self.actionZoomOutX.setObjectName("actionZoomOutX")
+        self.actionZoomInY = QtGui.QAction(MainWindow)
+        icon8 = QtGui.QIcon()
+        icon8.addPixmap(QtGui.QPixmap(":/ete icons/y_expand.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomInY.setIcon(icon8)
+        self.actionZoomInY.setObjectName("actionZoomInY")
+        self.actionZoomOutY = QtGui.QAction(MainWindow)
+        icon9 = QtGui.QIcon()
+        icon9.addPixmap(QtGui.QPixmap(":/ete icons/y_reduce.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionZoomOutY.setIcon(icon9)
+        self.actionZoomOutY.setProperty("actionBranchSupport", False)
+        self.actionZoomOutY.setObjectName("actionZoomOutY")
+        self.actionFit2tree = QtGui.QAction(MainWindow)
+        icon10 = QtGui.QIcon()
+        icon10.addPixmap(QtGui.QPixmap(":/ete icons/fit_tree.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionFit2tree.setIcon(icon10)
+        self.actionFit2tree.setObjectName("actionFit2tree")
+        self.actionFit2region = QtGui.QAction(MainWindow)
+        icon11 = QtGui.QIcon()
+        icon11.addPixmap(QtGui.QPixmap(":/ete icons/fit_region.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionFit2region.setIcon(icon11)
+        self.actionFit2region.setObjectName("actionFit2region")
+        self.actionRenderPDF = QtGui.QAction(MainWindow)
+        icon12 = QtGui.QIcon()
+        icon12.addPixmap(QtGui.QPixmap(":/ete icons/export_pdf.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionRenderPDF.setIcon(icon12)
+        self.actionRenderPDF.setObjectName("actionRenderPDF")
+        self.actionSearchNode = QtGui.QAction(MainWindow)
+        icon13 = QtGui.QIcon()
+        icon13.addPixmap(QtGui.QPixmap(":/ete icons/search.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionSearchNode.setIcon(icon13)
+        self.actionSearchNode.setObjectName("actionSearchNode")
+        self.actionClear_search = QtGui.QAction(MainWindow)
+        icon14 = QtGui.QIcon()
+        icon14.addPixmap(QtGui.QPixmap(":/ete icons/clean_search.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionClear_search.setIcon(icon14)
+        self.actionClear_search.setObjectName("actionClear_search")
+        self.actionShow_newick = QtGui.QAction(MainWindow)
+        icon15 = QtGui.QIcon()
+        icon15.addPixmap(QtGui.QPixmap(":/ete icons/show_newick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionShow_newick.setIcon(icon15)
+        self.actionShow_newick.setObjectName("actionShow_newick")
+        self.actionShow_node_attributes_box = QtGui.QAction(MainWindow)
+        self.actionShow_node_attributes_box.setCheckable(True)
+        self.actionShow_node_attributes_box.setChecked(True)
+        self.actionShow_node_attributes_box.setObjectName("actionShow_node_attributes_box")
+        self.actionRender_selected_region = QtGui.QAction(MainWindow)
+        self.actionRender_selected_region.setIcon(icon12)
+        self.actionRender_selected_region.setShortcutContext(QtCore.Qt.WidgetShortcut)
+        self.actionRender_selected_region.setObjectName("actionRender_selected_region")
+        self.actionBranchSupport = QtGui.QAction(MainWindow)
+        self.actionBranchSupport.setCheckable(True)
+        icon16 = QtGui.QIcon()
+        icon16.addPixmap(QtGui.QPixmap(":/ete icons/show_support.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionBranchSupport.setIcon(icon16)
+        self.actionBranchSupport.setObjectName("actionBranchSupport")
+        self.actionLeafName = QtGui.QAction(MainWindow)
+        self.actionLeafName.setCheckable(True)
+        icon17 = QtGui.QIcon()
+        icon17.addPixmap(QtGui.QPixmap(":/ete icons/show_names.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionLeafName.setIcon(icon17)
+        self.actionLeafName.setObjectName("actionLeafName")
+        self.menuFile.addAction(self.actionOpen)
+        self.menuFile.addAction(self.actionPaste_newick)
+        self.menuFile.addAction(self.actionSave_newick)
+        self.menuFile.addAction(self.actionRenderPDF)
+        self.menuFile.addAction(self.actionRender_selected_region)
+        self.menuAbout.addAction(self.actionETE)
+        self.menubar.addAction(self.menuFile.menuAction())
+        self.menubar.addAction(self.menuAbout.menuAction())
+        self.toolBar.addAction(self.actionZoomIn)
+        self.toolBar.addAction(self.actionZoomOut)
+        self.toolBar.addAction(self.actionFit2tree)
+        self.toolBar.addAction(self.actionFit2region)
+        self.toolBar.addAction(self.actionZoomInX)
+        self.toolBar.addAction(self.actionZoomOutX)
+        self.toolBar.addAction(self.actionZoomInY)
+        self.toolBar.addAction(self.actionZoomOutY)
+        self.toolBar.addAction(self.actionSearchNode)
+        self.toolBar.addAction(self.actionClear_search)
+        self.toolBar.addAction(self.actionForceTopology)
+        self.toolBar.addAction(self.actionBranchLength)
+        self.toolBar.addAction(self.actionBranchSupport)
+        self.toolBar.addAction(self.actionLeafName)
+        self.toolBar.addAction(self.actionRenderPDF)
+        self.toolBar.addAction(self.actionShow_newick)
+
+        self.retranslateUi(MainWindow)
+        QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+    def retranslateUi(self, MainWindow):
+        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
+        self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
+        self.menuAbout.setTitle(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
+        self.toolBar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionOpen.setText(QtGui.QApplication.translate("MainWindow", "Open newick tree", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionOpen.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionPaste_newick.setText(QtGui.QApplication.translate("MainWindow", "Paste newick", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionPaste_newick.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+P", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSave_image.setText(QtGui.QApplication.translate("MainWindow", "Save Image", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSave_region.setText(QtGui.QApplication.translate("MainWindow", "Save region", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSave_region.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+A", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionBranchLength.setText(QtGui.QApplication.translate("MainWindow", "Show branch info", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionBranchLength.setShortcut(QtGui.QApplication.translate("MainWindow", "L", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomIn.setText(QtGui.QApplication.translate("MainWindow", "Zoom in", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomIn.setShortcut(QtGui.QApplication.translate("MainWindow", "Z", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomOut.setText(QtGui.QApplication.translate("MainWindow", "Zoom out", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomOut.setShortcut(QtGui.QApplication.translate("MainWindow", "X", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionETE.setText(QtGui.QApplication.translate("MainWindow", "ETE", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionForceTopology.setText(QtGui.QApplication.translate("MainWindow", "Force topology", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionForceTopology.setToolTip(QtGui.QApplication.translate("MainWindow", "Allows to see topology by setting assuming all branch lenghts are 1.0", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionForceTopology.setShortcut(QtGui.QApplication.translate("MainWindow", "T", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSave_newick.setText(QtGui.QApplication.translate("MainWindow", "Save as newick", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomInX.setText(QtGui.QApplication.translate("MainWindow", "Increase X scale", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomOutX.setText(QtGui.QApplication.translate("MainWindow", "Decrease X scale", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomInY.setText(QtGui.QApplication.translate("MainWindow", "Increase Y scale", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionZoomOutY.setText(QtGui.QApplication.translate("MainWindow", "Decrease Y scale", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionFit2tree.setText(QtGui.QApplication.translate("MainWindow", "Fit to tree", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionFit2tree.setShortcut(QtGui.QApplication.translate("MainWindow", "W", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionFit2region.setText(QtGui.QApplication.translate("MainWindow", "Fit to selection", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionFit2region.setShortcut(QtGui.QApplication.translate("MainWindow", "R", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionRenderPDF.setText(QtGui.QApplication.translate("MainWindow", "Render PDF image", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSearchNode.setText(QtGui.QApplication.translate("MainWindow", "Search", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionSearchNode.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+S", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionClear_search.setText(QtGui.QApplication.translate("MainWindow", "Clear search", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionClear_search.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionShow_newick.setText(QtGui.QApplication.translate("MainWindow", "Show newick", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionShow_newick.setShortcut(QtGui.QApplication.translate("MainWindow", "N", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionShow_node_attributes_box.setText(QtGui.QApplication.translate("MainWindow", "Show node attributes box", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionRender_selected_region.setText(QtGui.QApplication.translate("MainWindow", "Render selected region", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionBranchSupport.setText(QtGui.QApplication.translate("MainWindow", "Show branch support", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionBranchSupport.setToolTip(QtGui.QApplication.translate("MainWindow", "Show branch support", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionBranchSupport.setShortcut(QtGui.QApplication.translate("MainWindow", "S", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionLeafName.setText(QtGui.QApplication.translate("MainWindow", "Show leaf names", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionLeafName.setToolTip(QtGui.QApplication.translate("MainWindow", "show leaf names", None, QtGui.QApplication.UnicodeUTF8))
+        self.actionLeafName.setShortcut(QtGui.QApplication.translate("MainWindow", "N", None, QtGui.QApplication.UnicodeUTF8))
+
+from . import ete_resources_rc
diff --git a/ete3/treeview/_open_newick.py b/ete3/treeview/_open_newick.py
new file mode 100644
index 0000000..85ca312
--- /dev/null
+++ b/ete3/treeview/_open_newick.py
@@ -0,0 +1,67 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'open_newick.ui'
+#
+# Created: Tue Jan 10 15:56:56 2012
+#      by: PyQt4 UI code generator 4.7.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_OpenNewick(object):
+    def setupUi(self, OpenNewick):
+        OpenNewick.setObjectName("OpenNewick")
+        OpenNewick.resize(569, 353)
+        self.comboBox = QtGui.QComboBox(OpenNewick)
+        self.comboBox.setGeometry(QtCore.QRect(460, 300, 81, 23))
+        self.comboBox.setObjectName("comboBox")
+        self.widget = QtGui.QWidget(OpenNewick)
+        self.widget.setGeometry(QtCore.QRect(30, 10, 371, 321))
+        self.widget.setObjectName("widget")
+
+        self.retranslateUi(OpenNewick)
+        QtCore.QMetaObject.connectSlotsByName(OpenNewick)
+
+    def retranslateUi(self, OpenNewick):
+        OpenNewick.setWindowTitle(QtGui.QApplication.translate("OpenNewick", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+
diff --git a/ete3/treeview/_search_dialog.py b/ete3/treeview/_search_dialog.py
new file mode 100644
index 0000000..fab555c
--- /dev/null
+++ b/ete3/treeview/_search_dialog.py
@@ -0,0 +1,114 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'search_dialog.ui'
+#
+# Created: Tue Jan 10 15:56:57 2012
+#      by: PyQt4 UI code generator 4.7.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_Dialog(object):
+    def setupUi(self, Dialog):
+        Dialog.setObjectName("Dialog")
+        Dialog.setWindowModality(QtCore.Qt.ApplicationModal)
+        Dialog.resize(613, 103)
+        self.buttonBox = QtGui.QDialogButtonBox(Dialog)
+        self.buttonBox.setGeometry(QtCore.QRect(430, 60, 171, 32))
+        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
+        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
+        self.buttonBox.setCenterButtons(True)
+        self.buttonBox.setObjectName("buttonBox")
+        self.leaves_only = QtGui.QCheckBox(Dialog)
+        self.leaves_only.setGeometry(QtCore.QRect(10, 40, 211, 24))
+        self.leaves_only.setChecked(True)
+        self.leaves_only.setObjectName("leaves_only")
+        self.attrType = QtGui.QComboBox(Dialog)
+        self.attrType.setGeometry(QtCore.QRect(330, 10, 101, 23))
+        self.attrType.setObjectName("attrType")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.attrType.addItem("")
+        self.label = QtGui.QLabel(Dialog)
+        self.label.setGeometry(QtCore.QRect(10, 10, 141, 20))
+        self.label.setObjectName("label")
+        self.attrName = QtGui.QLineEdit(Dialog)
+        self.attrName.setGeometry(QtCore.QRect(150, 8, 113, 25))
+        self.attrName.setObjectName("attrName")
+        self.attrValue = QtGui.QLineEdit(Dialog)
+        self.attrValue.setGeometry(QtCore.QRect(440, 10, 113, 25))
+        self.attrValue.setText("")
+        self.attrValue.setObjectName("attrValue")
+        self.label_2 = QtGui.QLabel(Dialog)
+        self.label_2.setGeometry(QtCore.QRect(270, 10, 61, 20))
+        self.label_2.setObjectName("label_2")
+
+        self.retranslateUi(Dialog)
+        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), Dialog.accept)
+        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), Dialog.reject)
+        QtCore.QMetaObject.connectSlotsByName(Dialog)
+        Dialog.setTabOrder(self.attrName, self.attrType)
+        Dialog.setTabOrder(self.attrType, self.attrValue)
+        Dialog.setTabOrder(self.attrValue, self.leaves_only)
+        Dialog.setTabOrder(self.leaves_only, self.buttonBox)
+
+    def retranslateUi(self, Dialog):
+        Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+        self.leaves_only.setText(QtGui.QApplication.translate("Dialog", "Search only for leaf nodes", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(0, QtGui.QApplication.translate("Dialog", "contains", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(1, QtGui.QApplication.translate("Dialog", "is", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(2, QtGui.QApplication.translate("Dialog", "== ", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(3, QtGui.QApplication.translate("Dialog", ">=", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(4, QtGui.QApplication.translate("Dialog", ">", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(5, QtGui.QApplication.translate("Dialog", "<=", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(6, QtGui.QApplication.translate("Dialog", "<", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrType.setItemText(7, QtGui.QApplication.translate("Dialog", "matches this regular expression", None, QtGui.QApplication.UnicodeUTF8))
+        self.label.setText(QtGui.QApplication.translate("Dialog", "Search nodes whose                                ", None, QtGui.QApplication.UnicodeUTF8))
+        self.attrName.setText(QtGui.QApplication.translate("Dialog", "name", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_2.setText(QtGui.QApplication.translate("Dialog", "attribute", None, QtGui.QApplication.UnicodeUTF8))
+
diff --git a/ete3/treeview/_show_codeml.py b/ete3/treeview/_show_codeml.py
new file mode 100644
index 0000000..dc5be0e
--- /dev/null
+++ b/ete3/treeview/_show_codeml.py
@@ -0,0 +1,132 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'show_newick.ui'
+#
+# Created: Mon Sep 14 11:11:49 2009
+#      by: PyQt4 UI code generator 4.5.4
+#
+# WARNING! All changes made in this file will be lost!
+
+try:
+    from PyQt4 import QtCore, QtGui
+except ImportError:
+    import QtCore, QtGui
+
+
+class Ui_Codeml(object):
+    def setupUi(self, Codeml):
+        Codeml.setObjectName("Codeml")
+        Codeml.resize(594, 397)
+        self.model = QtGui.QComboBox(Codeml)
+        self.model.setGeometry(QtCore.QRect(120,110, 110, 23))
+        self.model.setObjectName("model")
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.model.addItem(QtCore.QString())
+        self.label = QtGui.QLabel(Codeml)
+        self.label.setGeometry(QtCore.QRect(30, 110, 91, 20))
+        self.label.setObjectName("label")
+        self.verticalLayoutWidget = QtGui.QWidget(Codeml)
+        self.verticalLayoutWidget.setGeometry(QtCore.QRect(300, 10, 258, 361))
+        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
+        self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.ctrlBox = QtGui.QTextEdit(self.verticalLayoutWidget)
+        self.ctrlBox.setObjectName("ctrlBox")
+        self.verticalLayout.addWidget(self.ctrlBox)
+        self.pushButton = QtGui.QPushButton(Codeml)
+        self.label_2 = QtGui.QLabel(Codeml)
+        self.label_2.setGeometry(QtCore.QRect(10, 20, 160, 20))
+        self.label_2.setObjectName("label_2")
+        self.workdir = QtGui.QLineEdit(Codeml)
+        self.workdir.setGeometry(QtCore.QRect(10, 40, 250, 25))
+        self.workdir.setObjectName("workdir")
+        self.label_3 = QtGui.QLabel(Codeml)
+        self.label_3.setGeometry(QtCore.QRect(10, 60, 160, 20))
+        self.label_3.setObjectName("label_3")
+        self.label_4 = QtGui.QLabel(Codeml)
+        self.label_4.setGeometry(QtCore.QRect(35, 273, 260, 20))
+        self.label_4.setObjectName("label_4")
+        self.useprerun = QtGui.QCheckBox(Codeml)
+        self.useprerun.setGeometry(QtCore.QRect(10, 270, 221, 24))
+        self.useprerun.setObjectName("useprerun")
+        self.label_5 = QtGui.QLabel(Codeml)
+        self.label_5.setGeometry(QtCore.QRect(35, 293, 260, 20))
+        self.label_5.setObjectName("label_5")
+        self.display = QtGui.QCheckBox(Codeml)
+        self.display.setGeometry(QtCore.QRect(10, 290, 221, 24))
+        self.display.setObjectName("display")
+        self.codemlpath = QtGui.QLineEdit(Codeml)
+        self.codemlpath.setGeometry(QtCore.QRect(10, 80, 250, 25))
+        self.codemlpath.setObjectName("codemlpath")
+        self.pushButton.setGeometry(QtCore.QRect(240, 350, 51, 29))
+        self.pushButton.setObjectName("pushButton")
+        self.retranslateUi(Codeml)
+        QtCore.QMetaObject.connectSlotsByName(Codeml)
+        QtCore.QObject.connect(self.model, QtCore.SIGNAL("activated(QString)"), Codeml.update_model)
+        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("released()"), Codeml.run)
+
+    def retranslateUi(self, Codeml):
+        Codeml.setWindowTitle(QtGui.QApplication.translate("Codeml", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(0, QtGui.QApplication.translate("Model", "M0"            , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(1, QtGui.QApplication.translate("Model", "M1"            , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(2, QtGui.QApplication.translate("Model", "M2"            , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(3, QtGui.QApplication.translate("Model", "M7"            , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(4, QtGui.QApplication.translate("Model", "M8"            , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(5, QtGui.QApplication.translate("Model", "free-branch"   , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(6, QtGui.QApplication.translate("Model", "branch-site.A" , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(7, QtGui.QApplication.translate("Model", "branch-site.A1", None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(8, QtGui.QApplication.translate("Model", "branch-free"   , None, QtGui.QApplication.UnicodeUTF8))
+        self.model.setItemText(9, QtGui.QApplication.translate("Model", "branch-neut"   , None, QtGui.QApplication.UnicodeUTF8))
+        self.label.setText(QtGui.QApplication.translate("Model", "Model to test: ", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_2.setText(QtGui.QApplication.translate("Codeml", "Codeml working directory:", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_3.setText(QtGui.QApplication.translate("Codeml", "Path to Codeml executable: ", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_4.setText(QtGui.QApplication.translate("Codeml", "Search for already runned data.", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_5.setText(QtGui.QApplication.translate("Codeml", "Display resulting info, as histogram (only for sites models.)", None, QtGui.QApplication.UnicodeUTF8))
+        self.pushButton.setText(QtGui.QApplication.translate("Model", "Run", None, QtGui.QApplication.UnicodeUTF8))
diff --git a/ete3/treeview/_show_newick.py b/ete3/treeview/_show_newick.py
new file mode 100644
index 0000000..8c974e9
--- /dev/null
+++ b/ete3/treeview/_show_newick.py
@@ -0,0 +1,124 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'show_newick.ui'
+#
+# Created: Tue Jan 10 15:56:56 2012
+#      by: PyQt4 UI code generator 4.7.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_Newick(object):
+    def setupUi(self, Newick):
+        Newick.setObjectName("Newick")
+        Newick.resize(594, 397)
+        self.nwFormat = QtGui.QComboBox(Newick)
+        self.nwFormat.setGeometry(QtCore.QRect(200, 20, 51, 23))
+        self.nwFormat.setObjectName("nwFormat")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.nwFormat.addItem("")
+        self.label = QtGui.QLabel(Newick)
+        self.label.setGeometry(QtCore.QRect(100, 20, 91, 20))
+        self.label.setObjectName("label")
+        self.verticalLayoutWidget = QtGui.QWidget(Newick)
+        self.verticalLayoutWidget.setGeometry(QtCore.QRect(300, 10, 258, 361))
+        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
+        self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.newickBox = QtGui.QTextEdit(self.verticalLayoutWidget)
+        self.newickBox.setObjectName("newickBox")
+        self.verticalLayout.addWidget(self.newickBox)
+        self.attrName = QtGui.QLineEdit(Newick)
+        self.attrName.setGeometry(QtCore.QRect(20, 80, 113, 25))
+        self.attrName.setObjectName("attrName")
+        self.pushButton = QtGui.QPushButton(Newick)
+        self.pushButton.setGeometry(QtCore.QRect(140, 80, 51, 29))
+        self.pushButton.setObjectName("pushButton")
+        self.pushButton_2 = QtGui.QPushButton(Newick)
+        self.pushButton_2.setGeometry(QtCore.QRect(200, 80, 51, 29))
+        self.pushButton_2.setObjectName("pushButton_2")
+        self.features_list = QtGui.QListWidget(Newick)
+        self.features_list.setGeometry(QtCore.QRect(20, 120, 231, 251))
+        self.features_list.setObjectName("features_list")
+        self.label_3 = QtGui.QLabel(Newick)
+        self.label_3.setGeometry(QtCore.QRect(60, 60, 191, 20))
+        self.label_3.setObjectName("label_3")
+        self.useAllFeatures = QtGui.QCheckBox(Newick)
+        self.useAllFeatures.setGeometry(QtCore.QRect(20, 370, 221, 24))
+        self.useAllFeatures.setObjectName("useAllFeatures")
+
+        self.retranslateUi(Newick)
+        QtCore.QObject.connect(self.nwFormat, QtCore.SIGNAL("activated(QString)"), Newick.update_newick)
+        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("released()"), Newick.add_feature)
+        QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL("released()"), Newick.del_feature)
+        QtCore.QObject.connect(self.useAllFeatures, QtCore.SIGNAL("released()"), Newick.set_custom_features)
+        QtCore.QMetaObject.connectSlotsByName(Newick)
+
+    def retranslateUi(self, Newick):
+        Newick.setWindowTitle(QtGui.QApplication.translate("Newick", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(0, QtGui.QApplication.translate("Newick", "0", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(1, QtGui.QApplication.translate("Newick", "1", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(2, QtGui.QApplication.translate("Newick", "2", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(3, QtGui.QApplication.translate("Newick", "3", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(4, QtGui.QApplication.translate("Newick", "4", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(5, QtGui.QApplication.translate("Newick", "5", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(6, QtGui.QApplication.translate("Newick", "6", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(7, QtGui.QApplication.translate("Newick", "7", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(8, QtGui.QApplication.translate("Newick", "8", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(9, QtGui.QApplication.translate("Newick", "9", None, QtGui.QApplication.UnicodeUTF8))
+        self.nwFormat.setItemText(10, QtGui.QApplication.translate("Newick", "100", None, QtGui.QApplication.UnicodeUTF8))
+        self.label.setText(QtGui.QApplication.translate("Newick", "Newick format", None, QtGui.QApplication.UnicodeUTF8))
+        self.pushButton.setText(QtGui.QApplication.translate("Newick", "Add", None, QtGui.QApplication.UnicodeUTF8))
+        self.pushButton_2.setText(QtGui.QApplication.translate("Newick", "Del", None, QtGui.QApplication.UnicodeUTF8))
+        self.label_3.setText(QtGui.QApplication.translate("Newick", "Node\'s attribute (NHX format)", None, QtGui.QApplication.UnicodeUTF8))
+        self.useAllFeatures.setText(QtGui.QApplication.translate("Newick", "Include all attributes in nodes", None, QtGui.QApplication.UnicodeUTF8))
+
diff --git a/ete3/treeview/about.ui b/ete3/treeview/about.ui
new file mode 100644
index 0000000..5b8f754
--- /dev/null
+++ b/ete3/treeview/about.ui
@@ -0,0 +1,53 @@
+<ui version="4.0" >
+ <class>About</class>
+ <widget class="QDialog" name="About" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>462</width>
+    <height>249</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <widget class="QWidget" name="verticalLayoutWidget" >
+   <property name="geometry" >
+    <rect>
+     <x>10</x>
+     <y>0</y>
+     <width>441</width>
+     <height>208</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" name="verticalLayout" >
+    <item>
+     <widget class="QLabel" name="label" >
+      <property name="text" >
+       <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;">
+<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/ete icons/ete_logo.png" /></p>
+<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-size:11pt;">ETE: a python Environment for Tree Exploration</span></p>
+<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-weight:600;"><a href="http://ete.cgenomics.org"><span style=" text-decoration: underline; color:#0057ae;">http://ete.cgenomics.org</span></a></p>
+<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QLabel" name="version" >
+      <property name="text" >
+       <string>VERSION</string>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <resources>
+  <include location="ete_resources.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/ete3/treeview/clean_search.png b/ete3/treeview/clean_search.png
new file mode 100644
index 0000000..a9f65b7
Binary files /dev/null and b/ete3/treeview/clean_search.png differ
diff --git a/ete3/treeview/drawer.py b/ete3/treeview/drawer.py
new file mode 100644
index 0000000..1ec129f
--- /dev/null
+++ b/ete3/treeview/drawer.py
@@ -0,0 +1,136 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import types
+import signal
+
+from PyQt4  import QtGui
+from PyQt4  import QtCore
+from .qt4_gui import _GUI, _PropertiesDialog, _BasicNodeActions
+
+from . import layouts
+from .main import save
+from .qt4_render import _TreeScene, render, get_tree_img_map, init_tree_style
+
+__all__ = ["show_tree", "render_tree"]
+
+_QApp = None
+GUI_TIMEOUT = None
+
+def exit_gui(a,b):
+    _QApp.exit(0)
+
+def init_scene(t, layout, ts):
+    global _QApp
+
+    ts = init_tree_style(t, ts)
+    if layout:
+        ts.layout_fn  = layout
+
+    if not _QApp:
+        _QApp = QtGui.QApplication(["ETE"])
+
+    scene  = _TreeScene()
+	#ts._scale = None
+    return scene, ts
+
+def show_tree(t, layout=None, tree_style=None, win_name=None):
+    """ Interactively shows a tree."""
+    scene, img = init_scene(t, layout, tree_style)
+    tree_item, n2i, n2f = render(t, img)
+    scene.init_values(t, img, n2i, n2f)
+
+    tree_item.setParentItem(scene.master_item)
+    scene.addItem(scene.master_item)
+
+    mainapp = _GUI(scene)
+    if win_name:
+        mainapp.setObjectName(win_name)
+
+    mainapp.show()
+    mainapp.on_actionFit2tree_triggered()
+    # Restore Ctrl-C behavior
+    signal.signal(signal.SIGINT, signal.SIG_DFL)
+    if GUI_TIMEOUT is not None:
+        signal.signal(signal.SIGALRM, exit_gui)
+        signal.alarm(GUI_TIMEOUT)
+
+    _QApp.exec_()
+
+def render_tree(t, imgName, w=None, h=None, layout=None,
+                tree_style = None, header=None, units="px",
+                dpi=90):
+    """ Render tree image into a file."""
+    global _QApp
+    for nid, n in enumerate(t.traverse("preorder")):
+        n.add_feature("_nid", nid)
+    scene, img = init_scene(t, layout, tree_style)
+    tree_item, n2i, n2f = render(t, img)
+
+    scene.init_values(t, img, n2i, n2f)
+    tree_item.setParentItem(scene.master_item)
+    scene.master_item.setPos(0,0)
+    scene.addItem(scene.master_item)
+    if imgName.startswith("%%inline"):
+        imgmap = save(scene, imgName, w=w, h=h, units=units, dpi=dpi)
+    else:
+        x_scale, y_scale = save(scene, imgName, w=w, h=h, units=units, dpi=dpi)
+        imgmap = get_tree_img_map(n2i, x_scale, y_scale)
+    return imgmap
+
+
+def get_img(t, w=None, h=None, layout=None, tree_style = None,
+            header=None, units="px", dpi=90):
+    global _QApp
+    scene, img = init_scene(t, layout, tree_style)
+    tree_item, n2i, n2f = render(t, img)
+    scene.init_values(t, img, n2i, n2f)
+
+    tree_item.setParentItem(scene.master_item)
+    scene.master_item.setPos(0,0)
+    scene.addItem(scene.master_item)
+    x_scale, y_scale, imgdata = save(scene, "%%return", w=w, h=h, units=units, dpi=dpi)
+    _QApp.quit()
+    _QApp = None
+    return imgdata, {}
+
+
+
+
+
diff --git a/ete3/treeview/ete_icon.png b/ete3/treeview/ete_icon.png
new file mode 100644
index 0000000..a2f97f8
Binary files /dev/null and b/ete3/treeview/ete_icon.png differ
diff --git a/ete3/treeview/ete_logo.png b/ete3/treeview/ete_logo.png
new file mode 100644
index 0000000..7ed2521
Binary files /dev/null and b/ete3/treeview/ete_logo.png differ
diff --git a/ete3/treeview/ete_qt4app.ui b/ete3/treeview/ete_qt4app.ui
new file mode 100644
index 0000000..b645ae2
--- /dev/null
+++ b/ete3/treeview/ete_qt4app.ui
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>673</width>
+    <height>493</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget"/>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>673</width>
+     <height>27</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionOpen"/>
+    <addaction name="actionPaste_newick"/>
+    <addaction name="actionSave_newick"/>
+    <addaction name="actionRenderPDF"/>
+    <addaction name="actionRender_selected_region"/>
+   </widget>
+   <widget class="QMenu" name="menuAbout">
+    <property name="title">
+     <string>About</string>
+    </property>
+    <addaction name="actionETE"/>
+   </widget>
+   <addaction name="menuFile"/>
+   <addaction name="menuAbout"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+  <widget class="QToolBar" name="toolBar">
+   <property name="enabled">
+    <bool>true</bool>
+   </property>
+   <property name="windowTitle">
+    <string>toolBar</string>
+   </property>
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>false</bool>
+   </attribute>
+   <addaction name="actionZoomIn"/>
+   <addaction name="actionZoomOut"/>
+   <addaction name="actionFit2tree"/>
+   <addaction name="actionFit2region"/>
+   <addaction name="actionZoomInX"/>
+   <addaction name="actionZoomOutX"/>
+   <addaction name="actionZoomInY"/>
+   <addaction name="actionZoomOutY"/>
+   <addaction name="actionSearchNode"/>
+   <addaction name="actionClear_search"/>
+   <addaction name="actionForceTopology"/>
+   <addaction name="actionBranchLength"/>
+   <addaction name="actionBranchSupport"/>
+   <addaction name="actionLeafName"/>
+   <addaction name="actionRenderPDF"/>
+   <addaction name="actionShow_newick"/>
+  </widget>
+  <action name="actionOpen">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/fileopen.png</normaloff>:/ete icons/fileopen.png</iconset>
+   </property>
+   <property name="text">
+    <string>Open newick tree</string>
+   </property>
+   <property name="font">
+    <font/>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+O</string>
+   </property>
+  </action>
+  <action name="actionPaste_newick">
+   <property name="text">
+    <string>Paste newick</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+P</string>
+   </property>
+  </action>
+  <action name="actionSave_image">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/filesave.png</normaloff>:/ete icons/filesave.png</iconset>
+   </property>
+   <property name="text">
+    <string>Save Image</string>
+   </property>
+  </action>
+  <action name="actionSave_region">
+   <property name="text">
+    <string>Save region</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+A</string>
+   </property>
+  </action>
+  <action name="actionBranchLength">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/show_dist.png</normaloff>:/ete icons/show_dist.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show branch info</string>
+   </property>
+   <property name="shortcut">
+    <string>L</string>
+   </property>
+  </action>
+  <action name="actionZoomIn">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/zoom_in.png</normaloff>:/ete icons/zoom_in.png</iconset>
+   </property>
+   <property name="text">
+    <string>Zoom in</string>
+   </property>
+   <property name="shortcut">
+    <string>Z</string>
+   </property>
+  </action>
+  <action name="actionZoomOut">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/zoom_out.png</normaloff>:/ete icons/zoom_out.png</iconset>
+   </property>
+   <property name="text">
+    <string>Zoom out</string>
+   </property>
+   <property name="shortcut">
+    <string>X</string>
+   </property>
+  </action>
+  <action name="actionETE">
+   <property name="text">
+    <string>ETE</string>
+   </property>
+  </action>
+  <action name="actionForceTopology">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/force_topo.png</normaloff>:/ete icons/force_topo.png</iconset>
+   </property>
+   <property name="text">
+    <string>Force topology</string>
+   </property>
+   <property name="toolTip">
+    <string>Allows to see topology by setting assuming all branch lenghts are 1.0</string>
+   </property>
+   <property name="shortcut">
+    <string>T</string>
+   </property>
+   <property name="HOLA" stdset="0">
+    <bool>false</bool>
+   </property>
+  </action>
+  <action name="actionSave_newick">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/filesave.png</normaloff>:/ete icons/filesave.png</iconset>
+   </property>
+   <property name="text">
+    <string>Save as newick</string>
+   </property>
+  </action>
+  <action name="actionZoomInX">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/x_expand.png</normaloff>:/ete icons/x_expand.png</iconset>
+   </property>
+   <property name="text">
+    <string>Increase X scale</string>
+   </property>
+  </action>
+  <action name="actionZoomOutX">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/x_reduce.png</normaloff>:/ete icons/x_reduce.png</iconset>
+   </property>
+   <property name="text">
+    <string>Decrease X scale</string>
+   </property>
+  </action>
+  <action name="actionZoomInY">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/y_expand.png</normaloff>:/ete icons/y_expand.png</iconset>
+   </property>
+   <property name="text">
+    <string>Increase Y scale</string>
+   </property>
+  </action>
+  <action name="actionZoomOutY">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/y_reduce.png</normaloff>:/ete icons/y_reduce.png</iconset>
+   </property>
+   <property name="text">
+    <string>Decrease Y scale</string>
+   </property>
+   <property name="actionBranchSupport" stdset="0">
+    <bool>false</bool>
+   </property>
+  </action>
+  <action name="actionFit2tree">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/fit_tree.png</normaloff>:/ete icons/fit_tree.png</iconset>
+   </property>
+   <property name="text">
+    <string>Fit to tree</string>
+   </property>
+   <property name="shortcut">
+    <string>W</string>
+   </property>
+  </action>
+  <action name="actionFit2region">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/fit_region.png</normaloff>:/ete icons/fit_region.png</iconset>
+   </property>
+   <property name="text">
+    <string>Fit to selection</string>
+   </property>
+   <property name="shortcut">
+    <string>R</string>
+   </property>
+  </action>
+  <action name="actionRenderPDF">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/export_pdf.png</normaloff>:/ete icons/export_pdf.png</iconset>
+   </property>
+   <property name="text">
+    <string>Render PDF image</string>
+   </property>
+  </action>
+  <action name="actionSearchNode">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/search.png</normaloff>:/ete icons/search.png</iconset>
+   </property>
+   <property name="text">
+    <string>Search</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+S</string>
+   </property>
+  </action>
+  <action name="actionClear_search">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/clean_search.png</normaloff>:/ete icons/clean_search.png</iconset>
+   </property>
+   <property name="text">
+    <string>Clear search</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+C</string>
+   </property>
+  </action>
+  <action name="actionShow_newick">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/show_newick.png</normaloff>:/ete icons/show_newick.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show newick</string>
+   </property>
+   <property name="shortcut">
+    <string>N</string>
+   </property>
+  </action>
+  <action name="actionShow_node_attributes_box">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Show node attributes box</string>
+   </property>
+  </action>
+  <action name="actionRender_selected_region">
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/export_pdf.png</normaloff>:/ete icons/export_pdf.png</iconset>
+   </property>
+   <property name="text">
+    <string>Render selected region</string>
+   </property>
+   <property name="shortcutContext">
+    <enum>Qt::WidgetShortcut</enum>
+   </property>
+  </action>
+  <action name="actionBranchSupport">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/show_support.png</normaloff>:/ete icons/show_support.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show branch support</string>
+   </property>
+   <property name="toolTip">
+    <string>Show branch support</string>
+   </property>
+   <property name="shortcut">
+    <string>S</string>
+   </property>
+  </action>
+  <action name="actionLeafName">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="ete_resources.qrc">
+     <normaloff>:/ete icons/show_names.png</normaloff>:/ete icons/show_names.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show leaf names</string>
+   </property>
+   <property name="toolTip">
+    <string>show leaf names</string>
+   </property>
+   <property name="shortcut">
+    <string>N</string>
+   </property>
+  </action>
+ </widget>
+ <resources>
+  <include location="ete_resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/ete3/treeview/ete_resources.qrc b/ete3/treeview/ete_resources.qrc
new file mode 100644
index 0000000..0b69e16
--- /dev/null
+++ b/ete3/treeview/ete_resources.qrc
@@ -0,0 +1,26 @@
+<RCC>
+  <qresource prefix="ete icons" >
+    <file>show_names.png</file>
+    <file>show_support.png</file>
+    <file>fit_tree.png</file>
+    <file>clean_search.png</file>
+    <file>fileopen.png</file>
+    <file>export_pdf.png</file>
+    <file>fit_region.png</file>
+    <file>fit_tree.png</file>
+    <file>ete_icon.png</file>
+    <file>ete_logo.png</file>
+    <file>filesave.png</file>
+    <file>force_topo.png</file>
+    <file>y_reduce.png</file>
+    <file>y_expand.png</file>
+    <file>x_reduce.png</file>
+    <file>x_expand.png</file>
+    <file>show_newick.png</file>
+    <file>search.png</file>
+    <file>show_dist.png</file>
+    <file>zoom_in.png</file>
+    <file>zoom_out.png</file>
+  </qresource>
+  <qresource prefix=":/ete icons/show_dist.png" />
+</RCC>
diff --git a/ete3/treeview/ete_resources_rc.py b/ete3/treeview/ete_resources_rc.py
new file mode 100644
index 0000000..a66c215
--- /dev/null
+++ b/ete3/treeview/ete_resources_rc.py
@@ -0,0 +1,1863 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+# -*- coding: utf-8 -*-
+
+# Resource object code
+#
+# Created: Tue Jan 10 15:56:56 2012
+#      by: The Resource Compiler for PyQt (Qt v4.6.2)
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\x46\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\xc3\x49\x44\
+\x41\x54\x58\x85\xcd\xd7\x4f\x68\x1d\x55\x14\x06\xf0\xdf\x19\x13\
+\x5e\xfe\x68\x84\xe2\x9f\x5a\x6b\x8d\x6d\xa8\xba\x30\x84\x62\x5e\
+\x79\xc5\x45\x03\x6e\x5c\x74\x23\x08\x45\x44\x8a\x3b\x77\x6e\x4b\
+\x17\xae\x5c\x58\x41\x70\xe3\x26\xa0\x45\x29\x62\xd1\x95\x2e\xda\
+\x8d\xed\xaa\x69\x53\x15\x94\xa2\x22\xa8\xa5\x48\x45\x08\x06\x82\
+\x49\x5e\x6b\xde\x5c\x17\x33\x69\x1f\x2f\xff\xde\x8b\x79\xb1\x07\
+\x3e\x06\xe6\xce\xbd\xdf\x37\xe7\x9e\x99\xfb\x9d\xc0\x23\x98\xd7\
+\x79\xf4\xe3\x28\x7a\x70\x1a\x0b\x9b\x58\x63\x10\x86\x52\x4a\xda\
+\x45\x29\xf8\x2d\xcc\x95\xa4\x0b\xf8\x1b\xef\x60\x77\x87\x6b\x0d\
+\xb5\x2d\x00\x63\xf8\x04\x4b\x58\x44\x6a\xc1\x62\x39\xf6\x19\xc6\
+\xb7\x44\x00\x02\x47\x30\x55\x2e\x7e\x6b\x15\xe2\x56\xfc\x53\xe2\
+\x1b\xbc\x88\xac\x63\x01\x18\xc0\xeb\xb8\x8e\x3a\xf2\x36\x88\x5b\
+\x91\x97\x59\xf9\x03\x6f\xe0\xbe\x0d\x05\x60\x17\xde\x2e\xf7\xb4\
+\x79\xa1\xe5\x7d\x6e\x27\x03\xb7\xca\x67\xe7\x5b\x84\x2f\xe2\x3d\
+\x3c\xde\x2c\x20\x4a\x01\x73\x11\x51\xc1\xac\xa2\xba\x97\xf0\x27\
+\x7e\xc1\x4f\xe5\xf5\xb7\x12\x83\xb8\x60\xf5\x38\x82\x1b\x78\xa2\
+\xc4\x3e\x3c\x55\x5e\x77\xa2\x17\x0d\x3c\x98\x52\x9a\x8d\x88\x15\
+\x19\x38\x80\xdd\x1b\xec\xdb\xd8\x3a\x6f\x7f\x78\x83\x7a\xda\xa5\
+\xa9\x40\x31\xd4\xd3\x2c\x3f\xa5\xf4\xed\x1a\x6f\xf6\x9f\x23\x15\
+\x8c\x37\x4a\xdc\x8e\xac\x5b\x84\xed\xc6\xdd\x27\xe0\xeb\x6a\x75\
+\xef\x95\x6a\x75\xac\xf9\xde\xa5\x5a\xed\xe9\xe9\x83\x07\xf7\x6f\
+\x8b\x80\x3c\xe2\xe1\x3c\xcb\xce\x5e\x98\x98\xb8\x5d\x1f\x91\xd2\
+\xa7\x29\x62\x64\x5b\x04\x54\x2f\x5f\x9e\xc2\x4c\x5f\xbd\xfe\x02\
+\x5c\xaa\xd5\x0e\x60\xc7\xf5\x3d\x7b\xce\x6d\x8b\x80\x32\x26\x23\
+\xa5\xd7\x20\xcb\xf3\x63\x91\xd2\xa9\x97\xce\x9c\x69\x6c\x9b\x80\
+\x3c\xcb\x3e\xc6\xf3\x53\x87\x0e\x3d\x8a\xa3\x59\x4a\x1f\x74\x83\
+\x7c\x4d\x01\xb5\x8b\x17\xff\xc2\x17\xf7\x34\x1a\xa7\x53\xc4\xd5\
+\x67\xa7\xa7\x7f\xed\x96\x80\x9e\x75\xc6\x26\x53\xc4\x57\x29\xe2\
+\x95\x6e\x91\xb3\xce\x7f\x20\xcf\xb2\x19\xcc\xd6\xfb\xfa\x3e\xef\
+\xa6\x80\x95\x19\x88\xc8\xae\x8c\x8f\x8f\x66\x59\x76\x32\x52\xfa\
+\xf0\xf0\xf9\xf3\xf5\x6e\x0a\x58\x91\x81\xef\x47\x47\xfb\xf3\x2c\
+\x7b\x17\xdf\x2d\x0c\x0c\x9c\xe8\x26\xf9\x72\x74\xea\x09\x37\x75\
+\x1a\xae\xe5\x88\xee\xbe\xb3\xe0\x7f\x15\x10\x11\x7b\x23\x62\xb0\
+\x5b\x64\x11\xd1\x1f\x2d\x67\x4a\x4f\xd3\x60\x05\x3f\xa0\x12\x11\
+\x73\xf8\x5d\x61\xc5\x7e\xc4\x35\x85\x1d\xbb\x86\xca\x3a\x1c\xbd\
+\x11\xb1\x1f\xc3\x0a\x4b\x36\xac\xb0\x64\x23\x78\x0c\xf7\x23\x8f\
+\x88\x07\x52\x4a\xb3\xcb\x93\x9a\x2d\xd9\x93\x98\xc4\x4d\x77\x0a\
+\x6b\x49\x61\x30\xe7\x15\x7e\x6e\x23\x53\xda\x50\x98\xd8\xf9\x72\
+\x6e\xb3\x5d\xff\x08\xcf\xb4\x63\xcb\x77\xe0\x38\x66\xac\xde\x84\
+\xb4\x8b\x45\x85\xd1\x7d\x13\x0f\x6d\xa6\x31\xe9\xc5\xcb\xb8\xaa\
+\xb0\xdb\x4b\x6d\x90\x36\xca\x67\x7f\xc6\x31\x54\xb6\xaa\x35\x7b\
+\x0e\x5f\x96\x04\xf5\x55\x88\x6f\x96\x02\xcf\x61\x62\x4b\x5a\xb3\
+\x35\x26\x0d\x2b\x1a\x8c\x85\x26\xd4\xf1\x3e\x46\x3a\xfd\x11\x85\
+\xcd\xb7\xe7\xf7\xe2\x55\xc5\x97\x74\x4a\xd1\x2d\x77\x1a\x83\xff\
+\x02\x5c\xf1\x03\xe8\xa1\x59\x46\x9f\x00\x00\x00\x00\x49\x45\x4e\
+\x44\xae\x42\x60\x82\
+\x00\x00\x02\xef\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x02\xb6\x49\x44\x41\x54\x78\x9c\x62\x64\x60\x60\x70\x66\
+\x60\x60\xd0\x65\x40\x02\xb9\xb9\x85\xfd\x93\x27\xf7\x17\x32\x60\
+\x01\x68\x72\x5b\x00\x00\x00\x00\xff\xff\x62\x61\x60\x60\xd0\xfd\
+\xfe\xfd\x7f\xff\xeb\x57\xaf\x19\x58\x58\x58\x18\x58\x59\x59\x19\
+\x96\x2d\x5f\xc2\xf0\xf4\xc9\xfb\x7e\x6c\x06\xac\x5b\xbf\x86\xe1\
+\xd2\xe5\x5b\xfd\xdc\x5c\xbc\x7f\x95\x95\x25\x19\x00\x00\x00\x00\
+\xff\xff\x04\xc1\x31\x0e\x40\x40\x10\x86\xd1\x2f\x64\x1a\x7b\xff\
+\x6b\x28\x68\x48\xdc\x41\x42\xbd\xb1\xab\x63\x54\x3f\xf5\xc4\x7b\
+\x0d\x80\xf4\xe1\x7e\x21\x09\xbd\x22\x22\x98\xe6\x85\x9c\x0f\x00\
+\x86\xb1\x67\xdb\x57\xea\x59\x30\x33\x1e\xbf\xe9\x52\x6a\x01\x7e\
+\x00\x00\x00\xff\xff\x34\xcc\xb9\x0d\x80\x30\x10\x00\x30\xdf\x35\
+\xc0\x02\x11\x1d\x8a\xb2\xff\x4e\xc0\x1c\x79\xa8\xf0\x00\xce\x7f\
+\x8e\x48\x73\x4e\xbd\x0f\x99\xa9\xd6\x4b\x6b\xd5\xf3\xde\xa0\x94\
+\x13\x1c\xfb\x66\x2d\x32\x02\x7c\x00\x00\x00\xff\xff\x3c\xcc\xb1\
+\x09\x00\x30\x0c\xc4\x40\x75\xf9\x2d\x02\xc9\xfe\x73\x04\x3c\x93\
+\xdf\x4e\xe7\x56\x70\x9a\x41\xd3\x54\x17\xce\x44\x12\xf7\xec\xc1\
+\x00\x11\x0f\x80\x25\x61\x7b\xfa\x07\x00\x00\xff\xff\x62\x81\xb3\
+\xfe\xff\x67\x60\x64\x60\x64\x60\x60\x64\x60\xf8\xfb\xf7\x37\xc3\
+\xd3\x67\xcf\x18\x7e\xfe\xf8\xc9\xa0\xad\xa3\xc3\xa0\xa2\xa2\x0a\
+\x57\x76\xed\xda\x65\x06\x01\x41\x41\x38\x1f\x00\x00\x00\xff\xff\
+\x42\x18\xc0\xc8\xc8\xc0\xc8\x04\x71\x16\x2b\x2b\x3b\xc3\x99\x33\
+\x27\x19\x18\x19\x19\x19\xae\x5e\xbb\xc4\xc0\xc4\x04\x71\xe8\xbf\
+\x7f\xff\x18\x18\x19\x19\x19\xb8\x38\xb8\xe1\xda\x00\x00\x00\x00\
+\xff\xff\x82\x1b\xc0\xca\xca\xc1\xf0\xe4\xc9\x13\x06\x06\x06\x06\
+\x06\x79\x79\x45\x6c\x11\x00\x07\x1c\x5c\x9c\x70\x36\x00\x00\x00\
+\xff\xff\x42\xb8\x80\xe1\x3f\x83\xad\xad\x39\x5e\x8d\x30\x70\xe5\
+\xca\x6d\x38\x1b\x00\x00\x00\xff\xff\x82\x1b\xf0\xef\xdf\x3f\x06\
+\x06\x06\x06\x86\x37\xaf\xdf\xe3\xd5\x2c\x22\x2a\xc8\xf0\xef\xff\
+\x7f\x38\x1f\x00\x00\x00\xff\xff\xc2\x30\x40\x44\x54\x10\x53\x17\
+\x1a\xf8\xff\x0f\x61\x00\x00\x00\x00\xff\xff\x62\x41\x17\x24\xca\
+\x05\x50\xcb\x18\x18\x18\x18\x00\x00\x00\x00\xff\xff\x4c\xcc\xb1\
+\x0d\x00\x20\x0c\x03\xc1\x77\x26\x48\xc1\xfe\x7b\x12\x29\x98\x06\
+\x10\xd5\x75\xf7\x82\x59\x65\x13\xca\x91\xc8\x80\x4e\x0c\xc8\x57\
+\xd3\x2b\xf0\x17\x6e\x00\x00\x00\xff\xff\x62\x61\x60\x60\x60\xd8\
+\xb7\x7f\xf7\xfb\x3f\xdf\xfe\xb0\xde\x5a\x7d\x8e\xe7\xff\xdf\xff\
+\x0c\xcc\x4c\x4c\x0c\xff\xff\xff\x67\xf8\xfd\xef\x2f\xc3\xcf\xdf\
+\xbf\x19\x7e\xfd\xfa\xc5\xf0\xe3\xd7\x2f\x86\x1f\x3f\x7e\x32\xfc\
+\xf9\xff\x8f\xc1\x25\xd3\x13\x6e\x00\x00\x00\x00\xff\xff\x34\xcc\
+\x3b\x11\x80\x30\x10\x40\xc1\x97\x0b\x3d\x83\x10\x44\x90\x19\xec\
+\xa4\xa0\x43\x40\xb4\xa0\x8f\xf6\x3e\x5c\x2a\x56\xc0\x2e\x00\xed\
+\x38\x37\x80\xf1\xdc\xaf\x50\x90\x2a\x64\x42\x7c\x81\x79\x60\x6e\
+\xa8\x1b\xaa\x4e\x92\xf4\xfd\x5a\xff\x60\x02\x00\x00\xff\xff\x62\
+\x64\x80\x64\x67\x1b\x06\x06\x06\x51\x82\xa1\x87\x0a\x5e\x33\x30\
+\x30\x1c\x01\x00\x00\x00\xff\xff\x03\x00\x84\xe9\xd3\x92\xa9\xe2\
+\xf6\x22\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x06\x67\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x05\xe4\x49\x44\
+\x41\x54\x58\x85\xc5\x97\x7b\x4c\x53\x57\x1c\xc7\xbf\xe7\xb6\x52\
+\xfa\xb0\x40\x29\x6d\x51\x4b\xa7\x05\x1c\x65\x38\x37\x04\x63\x86\
+\xaf\x3d\x7c\x3b\xdd\x94\xa9\x89\xaf\x99\xac\x30\xb6\x64\xc4\x3d\
+\xe2\x63\x0e\x5d\x7c\xcc\x64\x71\xfc\xb1\x99\x79\x99\x9a\x6c\x71\
+\x4e\x97\x45\x37\x9d\xce\xf7\x64\x83\xb0\x30\xc4\x28\xe2\x13\xf0\
+\x41\x69\x2b\x45\xdb\x22\x7d\xdd\xc7\xd9\x1f\x80\x13\x10\x5b\x74\
+\xba\x5f\x72\x72\xd3\x73\x7e\xfd\x7d\x3f\xe7\xf7\x3b\xe7\x9e\x73\
+\x09\x80\x44\x00\x6d\xf8\x7f\x4c\x29\x05\xd0\x46\x29\xf5\x46\xe2\
+\x4d\x08\xe9\x97\x3d\xb9\x60\x7e\xe6\x88\x8c\xc9\xaa\x28\xa2\x6b\
+\x6d\xf3\xb7\xf2\x5c\xe0\xc6\xb5\xba\x2b\x7b\x0f\xef\xf9\xe6\x70\
+\x5f\xd5\x09\x21\x20\x00\xd4\x91\x00\x4c\x59\xb8\xea\xbd\x14\x53\
+\xfc\x72\x99\x3a\x51\x6a\xf3\x46\x3b\x9d\x3e\x45\x93\x52\xc6\xf8\
+\x64\xd4\x4b\x89\xef\xba\xa2\xb5\xa9\x86\xf7\x78\xef\xac\x2c\x3b\
+\xb4\xb3\xba\x0f\x00\xea\x88\x00\x72\xf3\xd7\x6d\x7f\xca\xa8\x9b\
+\x53\xc7\xe4\x34\x4a\x35\x69\x0e\x10\xb8\x29\xe0\x01\xe0\x21\x80\
+\x9b\x10\xb8\xfd\x2d\xf5\x9c\xbf\x72\xe3\x4b\xcd\xf6\x6b\x25\xa7\
+\xcb\x7f\xdb\x17\x29\x00\x13\xce\xe9\xd5\x37\x57\xae\xd7\x26\x24\
+\xcc\xbb\x1a\xb7\xc0\x21\x8d\x4f\x6b\x05\xc0\x81\x82\x27\x14\x3c\
+\x03\x70\x14\xe0\x44\x0a\x3e\x3a\x7e\x88\x27\x6e\xd2\x96\xed\x02\
+\xa3\x9c\x38\xf4\x99\x11\x99\x11\xa5\x00\x80\xf4\x41\x83\x2a\x95\
+\x21\x61\x5e\xfe\x87\xef\x36\x27\xcc\x71\x33\xd2\xe8\x10\x00\x0e\
+\x04\x3c\xa5\xe0\x80\xf6\x46\x00\x9e\x00\x1c\x44\xf0\x8d\x87\x3f\
+\x9a\x16\xf2\xda\x5e\x89\x8d\x8d\x19\xc9\xb2\xec\x4f\x9d\x71\x44\
+\x51\xdc\x96\x9f\x9f\x7f\xb3\xcf\x00\x33\x97\x2c\x2d\xe2\xd4\x4f\
+\x47\x31\xd1\x31\x9e\x4e\x71\x50\x70\x84\x80\x27\xb4\x3d\x13\x22\
+\xf9\x17\x26\x4a\x1e\x73\x2b\x31\x79\xc4\x01\x4f\x1b\x57\xbe\x61\
+\xe3\xa6\x96\x86\xba\x0b\xbf\x3e\x52\x06\x82\xc1\x60\x4e\x40\xfb\
+\xb2\x8f\x69\x17\xe0\x3b\x85\x28\xc0\xd5\x1f\x5c\x3e\x5e\xf4\xb9\
+\xe4\x04\x42\x88\x88\x9c\x00\x91\xe3\x42\xbe\x5b\x72\x4d\xa2\xf9\
+\x68\xca\x1b\x5b\xca\x2b\xd6\xa6\xe6\x02\x78\x34\x00\x51\x22\x57\
+\x49\xa4\xb2\xbb\x33\xec\xcc\x02\x43\xc1\xf1\x7e\xb7\xcc\x3c\x65\
+\xe3\x0e\x46\xae\x71\x12\x06\x6e\x00\x9e\xe6\xe3\x45\xd9\xd4\xe7\
+\x88\x15\x00\x4e\xab\xd5\x2a\xc3\x89\x87\x07\x10\x78\x41\x72\xef\
+\xec\x29\x78\x4a\xc0\x51\x02\x5e\xc7\x07\x98\x91\x57\x4b\xb5\x55\
+\x69\x33\x1b\xc5\x0e\x38\xde\xef\x8a\x6f\xae\xaf\x9a\xe2\xd9\x92\
+\xf3\x6c\x9c\x5a\x19\xc3\xb2\xec\x1d\xe0\x11\xd6\x40\xcb\xed\xd6\
+\x46\x03\x60\xae\xfe\x6e\xf1\x60\x65\x6c\x62\x10\x94\xe7\x88\xc8\
+\x09\x84\xf2\xdc\xdc\x96\x4b\xda\xd7\xab\xbf\x1d\x55\x93\x3c\xe1\
+\x54\xa0\x9f\x82\x07\xc0\x47\xa9\x07\xd5\x46\x2b\x6a\x33\x24\x0c\
+\xbd\xad\x54\x2a\x40\x29\x75\x03\x80\x20\x08\xc2\x43\x65\xc0\xdb\
+\xdc\x70\xc9\x00\x24\xc9\x54\x5a\x3e\x75\xfa\x86\x2a\xa0\x7d\xff\
+\x13\x02\xb7\x76\xeb\xc4\x45\x72\xde\x2f\xe3\xa4\xb2\x10\x6d\xcf\
+\x0e\x27\xfa\x5b\xe2\x34\xba\x81\xb5\x12\x89\x7c\x8f\x4a\xe9\x9b\
+\x2d\x08\xc2\x5e\x00\x70\xb9\x5c\x9e\x87\x02\x68\x3c\x7b\x62\x73\
+\xbc\x65\xc7\x48\x50\x31\x01\x1d\xa5\x60\x3a\x4a\xb1\x3b\x5a\xe3\
+\x3d\x6a\xca\xaa\xbe\x79\x6a\xdb\x30\xf0\x3e\x1f\xb8\xb6\xb6\xc0\
+\xed\x1b\x66\x59\x14\xe3\xcc\x48\x89\x9b\x74\xba\xea\xd2\xfe\x82\
+\x82\x02\xc7\x83\xe2\x87\x05\x70\xb9\xec\x67\xd3\x46\xcd\xfc\x5b\
+\xaa\x36\x0d\xb9\x5b\xff\x8e\x7d\x4f\xb2\x16\x1d\xb3\x35\x96\x9b\
+\xe0\x77\xaa\x88\x10\x0c\x42\x08\x04\x45\xee\x8e\x3e\x10\x0c\xf1\
+\xc1\x40\xbc\xa2\xb4\xb4\xf4\x97\x70\xe2\x00\xc2\x9f\x05\x84\x10\
+\xe5\xf0\x9c\x19\x17\xcc\x73\x77\x55\x31\x52\xd9\x6d\x42\xe0\x16\
+\xd1\xbe\xea\x09\xe9\x78\x52\xb8\x09\xe0\x09\xfd\xb9\x74\x46\x82\
+\x32\x30\xaf\xa9\xf1\xc6\xc2\x7d\xfb\xf6\x55\x84\x15\x8f\xf4\x2c\
+\xf8\x74\xed\xda\xf5\x15\x67\x1a\xc7\xc5\xa4\x4e\xf5\x0b\x49\xd3\
+\xab\xd0\x71\x06\x80\xc2\x23\x32\x70\xfb\x3d\x36\xdf\x80\x6b\xc5\
+\x1f\x18\x34\x8a\xb1\x01\x7f\xe0\x68\x72\xb2\xb9\xcb\x81\xc4\xf3\
+\xfc\xd7\xf7\x2b\x07\x21\x44\xdd\xa5\x04\x6b\xd6\xac\x61\xf4\x7a\
+\x7d\x52\x77\x47\x83\x4e\xe7\x3f\xf8\xe3\xaa\x71\x93\x66\x09\x9f\
+\x28\x6f\x1c\x9b\x60\x1c\x92\xca\x08\xe8\xd7\x12\x0c\x86\xdc\x3a\
+\x95\xa8\x6f\x71\x36\x18\xb4\x71\xfd\x53\x0d\x7a\x83\xc0\x30\x64\
+\x00\x80\x2e\x00\xcd\xcd\xcd\xae\xde\x26\xd7\x05\xc0\x62\xb1\x48\
+\xdd\x6e\xf7\xb8\xfb\xf8\x29\x29\xa5\x21\x00\x1f\x13\x42\x56\x27\
+\x5b\x32\x73\x92\xcc\x69\x66\x5d\x7c\x4c\x6c\xcd\xb5\xfa\xeb\xe5\
+\x27\x0e\x1e\x9a\x3f\x7f\xe1\xee\x94\x94\xd4\x89\x7a\xbd\x2e\xf9\
+\xe4\xc9\xdf\x4b\xd6\xad\x5b\x67\xeb\x4d\xb4\x4b\x16\x10\x41\x09\
+\x58\x96\x5d\x66\xb5\x5a\x3f\xeb\xd6\xf7\x3e\x80\xfe\x9d\xbf\x2f\
+\x5f\xbe\x32\x50\xa3\x89\x5f\x92\x99\xf9\x3c\xe3\xf5\x7a\xd9\xd9\
+\xb3\x67\xe5\x85\x15\xef\x5e\x82\x3e\x5a\x3f\xab\xd5\xba\xfa\xde\
+\x0e\xab\x35\x2f\xcd\x68\x34\xbe\x60\x34\x0e\x5a\x58\x5c\x5c\xfc\
+\x55\x61\x61\xe1\x99\x70\x41\x1e\x05\xa0\x87\x29\x14\xf2\x32\x9b\
+\xcd\x36\x4a\xaf\xd7\x47\x9b\x4c\xa6\x5d\x2c\xcb\xee\x02\x00\xbb\
+\xdd\xbe\xb6\xa8\xa8\x88\x7f\x68\x00\x4a\xe9\x60\x96\x65\x57\x77\
+\xeb\xee\xb1\x58\xd3\xd3\xd3\x0f\x54\x57\x9f\x9e\x66\x34\x1a\x2d\
+\x66\xf3\x90\xa1\x0e\x87\xc3\x24\x91\x48\x2e\x5a\x2c\x16\xda\x5b\
+\xec\x88\x00\xf2\xf2\xf2\x7a\xd4\x93\x65\xd9\x65\xf7\x71\xd5\x78\
+\x3c\x9e\x8d\x36\x9b\x6d\xab\x5e\xaf\x93\x26\x25\x25\xa5\x57\x56\
+\x56\xbe\x63\xb5\x5a\x1f\xee\x2c\x08\x63\xb2\x92\x92\x92\xe1\xf7\
+\x76\x50\x4a\x0d\x63\xc7\x8e\x39\x51\x5e\x5e\xf1\xb3\xd1\x38\x68\
+\x56\x7a\x7a\x7a\x56\x43\x43\xc3\x62\x00\x9b\x7b\x0b\x12\xf6\x4e\
+\xf8\x00\xdb\x25\x8a\xa2\xe1\xde\x86\x8e\x5d\x71\xfe\xfc\xf9\xcf\
+\x6d\xb6\x26\xde\xe5\x72\x21\x2b\x2b\xab\x30\x3b\x3b\x5b\xdd\x5b\
+\x90\x88\xaf\xe5\x91\x58\x49\x49\xc9\x6b\xa2\x28\xd6\xcb\x64\xb2\
+\x8b\x15\x15\x7f\xed\x1e\x3f\xfe\xc5\xe9\x19\x19\xe9\x38\x77\xee\
+\xdc\xea\xdc\xdc\xdc\x35\x3d\xc4\x23\xb9\x15\xf7\xc5\x44\x51\xbc\
+\x43\x08\x99\x15\x0a\x85\x0a\x55\x2a\x55\x53\x93\xdd\x2e\x3a\x9d\
+\x37\x31\x6c\xd8\xb0\x82\x05\x0b\x16\x98\x7a\xfb\x9f\x9a\x52\x8a\
+\xc7\xd1\xde\xb2\xbe\xbd\xff\xfb\x9d\x3f\xd0\xda\xda\xf3\xf4\xc8\
+\x91\x23\x5f\x76\x1f\x07\xf0\xdf\x66\xa0\xbb\x9d\xab\x39\xbb\xc9\
+\x6e\x77\x08\x0e\x87\x03\x29\x29\xa9\x4b\x56\xac\x58\xf1\x5c\x77\
+\x9f\xc7\x0a\x50\x56\xf6\xc7\xf1\xda\xda\xda\xa3\x76\x87\x13\x7e\
+\xbf\x4f\x3e\x75\xea\xd4\x95\x4f\x14\x00\x00\x6a\xce\x9e\xf9\xc2\
+\xe1\x70\x08\x57\xea\xea\x5b\xeb\xea\xea\x7a\xbc\x9a\x09\x9e\xc0\
+\xe7\xf9\xe8\xd1\x63\x66\x13\x82\x33\xa5\xa5\xa5\x97\xba\x0d\x29\
+\xff\x01\xd2\xca\x14\x12\x68\xa2\xe9\xf4\x00\x00\x00\x00\x49\x45\
+\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\xeb\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\
+\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x03\x10\
+\x0f\x18\x26\xf8\xde\x31\x9a\x00\x00\x01\x6b\x49\x44\x41\x54\x58\
+\xc3\xed\xd7\x3d\x4b\x1c\x61\x10\x07\xf0\x9f\x22\x18\x39\x10\x84\
+\xa4\x91\xf8\x52\x88\x85\xb5\xbd\x81\xc4\xcf\x60\x9a\x80\x85\x58\
+\xf8\x86\xe0\x87\x50\xdb\x20\x58\x99\xf4\x21\x89\x06\x2c\xfd\x00\
+\xda\x58\x44\xc4\xc2\xca\x4a\xd1\xc2\x46\xf1\x05\x83\x36\x73\xb0\
+\x59\x96\xf3\x8e\xbd\xdd\x6b\x6e\x60\xd8\xd9\xd9\xd9\x9d\xff\xbc\
+\x3c\xb3\xcf\x43\x31\xb4\x84\xe7\xe0\xc5\x5a\x86\x1d\xe8\xcd\xe9\
+\xac\x82\xf3\xd4\x37\x4f\x30\x12\xf7\xa7\x18\x0b\x30\x85\x50\x3a\
+\x80\xc9\x70\xf6\x13\xbf\x42\xfe\xd4\x0c\x47\x5f\xb0\x9f\xe2\xed\
+\x0c\x00\x7f\xc2\xe9\x04\x3e\x84\xbc\xd3\x0c\x00\x5b\x78\xc4\x61\
+\x0d\x00\x43\xf8\x87\xbf\x09\xdd\x11\x9e\x30\x98\x17\xc0\x72\x44\
+\x33\x5c\xa3\x04\x6b\x61\x33\x9b\xd0\xcd\x86\x6e\xb5\x68\x00\xdd\
+\xb8\x4a\x74\x7f\x9a\x2f\xc3\xe6\x3f\xea\x6c\x62\x33\x7e\xc6\x5b\
+\xec\xc5\x4a\x48\xf2\x1e\xde\x61\xaa\x48\x00\xf3\x71\xfd\x96\xf1\
+\xac\xaa\x5b\x28\xba\x07\x1a\xa6\x4e\x2d\xa6\x36\x80\x36\x80\x2e\
+\xbc\x69\xc0\xb6\x10\x00\x77\xad\xce\xc0\x7a\x9d\xb6\xe3\xf8\xd8\
+\x4a\xb0\xed\x41\xd4\x06\x50\x0f\xa5\xf7\x00\x8f\x38\xc3\x77\xf4\
+\x97\x99\x81\xea\x3e\xa0\x0f\x9b\x98\xc6\x8f\x56\x94\xe0\x16\x1b\
+\x89\x65\x5c\x3a\x80\x0a\xe6\x42\x3e\x28\x6d\xbc\x66\x1c\x42\x1e\
+\xb0\x92\x37\x03\xd5\x7f\xc6\xfb\x18\x46\xc3\x18\x78\xa5\x07\x7a\
+\x62\x80\x75\xe3\x6b\xde\xa8\xb6\x33\xba\xfc\x22\x35\x09\x9f\x33\
+\xa2\xaf\x84\xee\x21\x6f\x09\x7e\x47\x44\xfb\xb8\x0f\xdd\x4d\x1d\
+\x59\x9b\x09\xf9\xb8\x8c\xb3\x61\xd6\x79\xe0\x1a\xbb\x18\x2d\xa3\
+\x09\x3b\x1a\x7d\xe1\x05\xf6\xfd\x58\x98\xa3\x51\x4d\x65\x00\x00\
+\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x77\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\xf4\x49\x44\
+\x41\x54\x58\x85\xed\xd6\x4f\x68\x5c\x55\x14\x06\xf0\xdf\x99\x49\
+\x6a\xff\xa6\x75\xe1\xa2\x55\x5a\x63\x2d\x14\x8a\x20\xc4\x66\x22\
+\x8a\x64\x25\xe2\xa2\x60\x29\x74\xa7\x14\x17\x52\x10\xba\xb2\x8b\
+\xae\x0a\xe2\x46\x11\xb3\xb1\x2e\x04\x11\x51\x24\x54\x5c\x58\xa9\
+\xee\x52\x10\xd3\xa4\x0d\xc5\xba\x71\xa1\x26\xf5\x7f\x45\x14\x0c\
+\x1a\x52\xc7\x99\xe3\xe2\xbd\x69\x27\x63\x26\x61\xb4\xd0\x4d\x3e\
+\x38\x3c\xde\x7d\xf7\xde\xf3\x9d\xfb\xce\xf9\xce\x0d\x6c\xc7\x9f\
+\x7a\xc3\x3d\xd8\xb1\xcc\xf8\x35\x5c\xec\x61\x9f\x4d\x30\x90\x99\
+\x7a\x31\x8c\x21\x97\xb1\x2b\x3d\xee\x33\x50\xe9\x31\xf2\x9b\x8e\
+\x35\x02\x6b\x04\x6e\x39\x81\xbe\xf6\x97\x88\xd8\x8d\x03\xb8\x82\
+\x39\xcc\x65\xe6\xef\xff\xd7\x49\x44\xdc\x86\x5d\xb8\x1b\x83\xf8\
+\x2e\x33\xcf\xfe\x8b\x00\xf6\xe2\x79\xa5\x40\x94\x8b\x17\xf0\x03\
+\xbe\xc6\x17\x25\xb1\xc1\x2e\xbe\xd6\x47\xc4\xd3\xa5\xa3\xbd\xd8\
+\x83\x9d\xd8\x86\x28\xe7\x24\x5e\xc5\xd9\xd6\xa2\x81\x0e\x71\xd8\
+\x82\x63\xf8\x11\x0d\x4b\x85\xa6\x81\x05\xd4\x2d\x2f\x44\x4d\x85\
+\xaa\x76\x7e\xaf\x63\x11\xa7\x70\x6f\xbb\x10\xc1\xc0\xc4\xe8\x68\
+\xdf\xcc\xd0\x50\x7f\x3b\x91\x93\xfb\xf6\xad\xdb\x50\xad\x1e\xc2\
+\x05\xfc\xb5\x82\xd3\x95\x6c\x01\x3f\xe3\x39\x6c\xed\xaa\x84\xeb\
+\x17\x17\x0f\xd4\xfb\xfb\x2f\xb5\x9f\xe5\x63\x9b\x37\x7f\x78\x6e\
+\x68\x68\x6b\x66\x0e\x63\x04\xef\xe3\xef\x32\x92\x95\xd0\x28\xc9\
+\x5e\xc6\x53\xd8\x91\x99\x2f\x75\xcb\xa5\x0a\xf4\xd7\xeb\x67\x22\
+\xf3\x8e\x8b\xc3\xc3\xfb\x61\x7a\x64\xe4\x2e\xd4\x16\x36\x6e\x1c\
+\x87\xcc\xbc\x94\x99\x87\x15\xff\xf3\x15\x45\xd3\xc9\x8e\xbd\x5a\
+\x51\x7f\x80\x87\x33\xf3\xfe\xcc\x3c\x9d\x99\x8d\x95\xd8\x56\x60\
+\x68\x66\xa6\x1e\x99\x6f\x66\xc4\x11\x88\xcc\x27\xf1\xde\xe8\xc4\
+\xc4\x1f\x4b\x3c\x64\xfe\x94\x99\x27\x70\x3b\x9e\x51\x54\x4b\x43\
+\xf1\xdf\x5f\xc6\xce\xcc\x3c\x98\x99\x17\x56\x39\xa5\xeb\x08\x45\
+\x12\xce\x4f\x8f\x8c\xec\xc1\x74\xb3\x52\xb9\xb3\xd2\x6c\x7e\xd6\
+\xac\x54\x8e\x3c\x38\x39\x39\xb9\xea\x06\x11\x8f\xe2\xd3\xcc\xec\
+\xb5\xa5\x8b\x88\x1b\xdd\xb0\x36\x35\xf5\x25\x2e\x47\xe6\x8b\x68\
+\xac\xe6\x3c\x22\x1e\x88\x88\xd3\xf8\x08\xe7\x23\xe2\x70\x44\x74\
+\x96\xf5\xaa\x58\xa2\x84\x91\xf9\x7a\x64\x3e\x8b\x37\xba\x38\xad\
+\x44\xc4\x13\x11\x31\xab\xa8\x8e\x83\xe5\x1e\xf7\xe1\x1d\xcc\x47\
+\xc4\xf1\x88\xd8\xf6\x5f\x09\x7c\x82\x7a\xa3\x5a\x7d\xab\xc3\xf1\
+\x96\x88\x38\x86\xef\xf1\xae\x42\x88\xa2\x63\x7d\x15\x1b\x70\x12\
+\x57\x23\xe2\x54\xa9\xac\xab\xa2\x10\x22\x62\xaa\x56\x1b\x9b\x1e\
+\x1e\x1e\x6f\xab\xd3\x5d\x8a\xac\x5f\x28\xad\x17\x0d\xb8\xa6\x28\
+\xdb\x8f\xf1\x48\xb7\x1b\x51\x60\x60\xaa\x56\xa3\x90\xd8\xd9\x46\
+\xb5\x7a\xe8\xa1\xc9\xc9\xed\x38\x81\xc7\x15\x59\xbe\xae\x83\x74\
+\xa3\x8c\xb8\x13\xad\xd2\x8c\xb6\xb1\x66\x49\x64\x16\x2f\x60\x3c\
+\x33\xeb\x14\x49\x78\xe3\x04\x0a\x46\xfb\xf1\x79\x5b\x14\xcd\xb6\
+\xe7\x2f\x8a\x0b\xe7\xdb\x38\xdf\x25\xea\xdf\xf0\x1a\xce\xe1\x5b\
+\x85\x82\xb6\x24\xbc\x35\xe7\x57\x1c\x6d\x9d\x40\x67\xd6\xf6\xe1\
+\x2b\x45\xa3\x98\x2d\x4f\x65\x0e\xdf\xb4\x58\x97\xcc\xc7\x14\xea\
+\xd8\x89\xf9\xcc\x3c\xda\x36\x2f\x14\xb7\xee\xc1\x36\xdb\xad\xe8\
+\x37\xd7\xb1\x76\x2b\x5e\x23\xb0\x46\xe0\x96\xa2\xe7\xee\x55\xe2\
+\x0c\xae\x2e\x33\xde\xf3\x0d\xba\x25\x14\x3d\xf7\xf2\x9b\x84\x4d\
+\xff\x00\x91\x41\xf9\xf6\x95\xca\x13\xf1\x00\x00\x00\x00\x49\x45\
+\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x16\x7c\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x38\x00\x00\x00\x3f\x08\x06\x00\x00\x00\xb5\x83\x0b\xa6\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x15\xf9\x49\x44\
+\x41\x54\x68\x81\xcd\x9a\x7b\x94\x9d\x65\x7d\xef\x3f\xdf\xe7\xd9\
+\x7b\xae\x99\x64\x92\x99\xcc\xec\xb9\x24\x21\x21\x04\x48\x22\x18\
+\x0c\x37\xe5\x22\x58\x44\xd0\xda\x5a\x8b\xb7\xb3\xe0\x48\x75\x95\
+\x7a\xf4\xe8\x29\xb6\x26\x3b\x9e\xae\x34\xa7\x8b\x4c\x20\x8a\xf5\
+\x52\x2a\xa2\xad\x96\x65\xd5\x63\x8b\x4a\x75\x29\xe0\x05\x01\xeb\
+\x51\xe4\x20\x20\xe1\x9a\x0b\xb9\xcd\x3b\x93\xfb\x24\x33\x99\x3d\
+\x7b\xbf\xcf\xf7\xfc\x31\x13\x1a\x20\x93\x84\xcb\xd1\x7e\xd7\xda\
+\xff\xed\xf7\xf7\xfc\xbe\xef\xef\x7d\x7e\x77\xd9\xe6\x3f\x13\xb2\
+\x72\xa9\x00\x9c\x03\xcc\x02\xa6\x02\x3b\x01\x03\xa3\xc0\xe3\xa5\
+\xbe\x6c\xc3\x8b\x91\x17\x5e\x71\x0d\x5f\x06\xb2\x72\xe9\x74\xe0\
+\x5d\x51\xa9\x96\x92\xa6\x63\xba\x6c\x9d\x8d\x3c\x27\x3a\xd5\xd9\
+\xa1\x37\x2b\x97\xce\x7b\x31\x32\xf5\x9f\xc1\x82\x59\xb9\xd4\x05\
+\xbc\x09\xb1\x49\xb0\x10\xfb\xad\x48\x05\x27\x07\x14\x6a\xb2\x2b\
+\x06\x63\x36\x5b\xe1\x6b\x52\x1a\x28\xf5\x65\x4f\x1d\x8f\xec\xdf\
+\x39\xc1\xac\x5c\xba\x30\xe1\x8e\x42\x62\x2c\x0f\xf1\xaa\xe0\xd4\
+\x99\xe4\x7a\x11\xda\x30\x35\x64\x23\x81\x53\x05\x69\x83\x93\xef\
+\x90\xf4\x0c\x70\x5f\xa9\x2f\x1b\x3a\x96\xfc\xdf\x19\xc1\xac\x5c\
+\x8a\xc0\xbb\x05\x5b\x8d\x2e\x15\xe9\xc2\x44\x28\x06\xbb\x55\xc1\
+\xca\xcd\xaf\x92\xf5\x95\x18\x52\x51\x84\x33\x80\x77\x26\x7b\x17\
+\x0e\x83\xa0\x5b\xa4\x54\x04\x7e\x50\xea\xcb\xc6\x8e\x76\x4e\xe1\
+\xff\x83\xe2\x2d\xc0\x12\x60\x11\xd0\x06\x6c\x03\x7e\x5c\xea\xcb\
+\x9e\x79\xde\x5f\xdf\x26\x79\x53\xb2\x3f\x04\x9a\x2f\xd3\x28\xb9\
+\xd9\x81\x8d\x86\x9b\x87\x87\xa7\x7e\x6b\xfe\x67\x9e\xaa\x00\xac\
+\x5b\xa5\x1f\xb4\x55\x3a\x66\x23\x9d\x87\xd3\x01\xa1\x3f\x51\x8d\
+\x4f\xba\xc0\x42\xe0\xd7\x47\xd3\xe7\x15\xb3\x60\x56\x2e\xbd\x0a\
+\x58\x06\x74\x27\x14\xa5\xe4\x60\x39\xa1\x83\xc2\x39\xf0\x91\x43\
+\x1e\x30\x2b\x97\xce\xb6\xd4\x16\x92\xdf\x66\x38\x13\x31\x05\xa8\
+\x46\xd2\x57\x2b\x95\xfa\x9b\x7a\x6f\xdc\xb2\xfb\xf9\xf2\x37\x7e\
+\xbc\xb3\xb3\xd1\xe1\x0b\xb2\x17\x00\x0f\x58\xba\x0f\xfb\xc9\x52\
+\x5f\xf6\xe3\xa3\xe9\xf5\x8a\x58\x30\x2b\x97\xa6\x01\x9f\x00\xf5\
+\x82\x1b\xa3\x1c\xec\x90\x12\x04\x61\x03\x8f\x01\x57\x01\x7f\x3d\
+\xf1\xc8\xd9\xe0\x7a\x02\x67\x82\x9b\x65\x1d\x10\xfe\xab\x99\x6b\
+\x76\x7c\x97\x49\xde\x78\xbd\x75\x09\xc9\xed\x46\xc9\x38\x45\xa5\
+\xe6\x84\xd2\xb1\x74\x7b\xa5\xc2\xc4\xc5\x46\xad\xc0\x0c\x4b\x7b\
+\x30\x5b\x4d\x7a\x5a\xf2\x93\x40\xc1\xd0\x02\x9c\x00\x90\x95\x4b\
+\x6d\x82\x3d\x4a\x3e\xc7\xa6\x41\x96\x72\xeb\xfa\x8e\xbe\x81\x7f\
+\x9b\x8c\xdc\xe6\x65\xed\x67\x04\xf3\x41\x4b\x2d\x4e\x7e\x10\xd4\
+\x30\x56\x0b\x77\x03\x23\xbf\x2d\x82\xa7\x0a\x9a\x80\x1c\xeb\xae\
+\x1a\x2a\x57\xd1\x9f\x81\x36\x00\x12\xd4\x03\x33\xb2\x72\xa9\x0e\
+\x38\x33\x27\x0c\x2a\x68\x16\x56\x9d\xd1\xc6\x27\x1b\xb3\x6f\x1e\
+\x4d\x78\x31\xd4\x2d\x96\x68\x00\x3f\xa8\x48\x43\x24\xbf\xbf\x10\
+\x3d\x0f\x18\xce\xca\xa5\x19\xbf\x0d\x82\xe9\xd0\x65\x16\x79\x7f\
+\x4f\x5f\xff\xbd\xb3\xfb\xb2\x0d\x24\xc7\x09\x93\x34\xd9\x1e\x05\
+\xae\x06\x66\x4b\xa9\xc1\x56\x93\x82\x25\xfc\xf8\xeb\x57\xba\x76\
+\x34\xe1\xb5\x5a\x7e\x9f\x61\x34\xc8\xf3\x83\xbd\xaf\xe6\x70\x0a\
+\xf6\x55\xa0\xa5\x63\xb5\x34\xe5\x68\x24\x5f\xd6\x1d\xcc\xca\xa5\
+\x66\x60\x29\x70\x86\x45\x1d\x90\x20\x3c\x1b\x9b\x1c\x78\x5a\x56\
+\x15\xd3\x24\x69\x2a\x78\x1e\xb0\x49\xb9\x22\x81\x30\x11\xe0\x8e\
+\x1a\xcb\xb6\xae\x9a\x35\xa3\x18\x58\x83\x99\x89\xd9\x9f\x8b\x42\
+\x0c\x7a\x03\xf6\x94\x44\x3a\xb3\x3e\x86\x5b\x47\x6b\xbe\x29\x2b\
+\x97\x0e\x1c\x29\x64\xbc\x24\x82\x59\xb9\x34\x13\xf8\x1f\xc0\x39\
+\xc9\x14\x04\xd3\x11\x6d\xc2\x4f\x8f\xa5\xfc\x8e\x43\xff\x13\xca\
+\xc1\x35\x07\x0a\x4a\xec\x47\x6c\x02\x22\xd1\x60\x81\x0d\xd2\xa4\
+\xd6\xcb\x56\x74\xcd\x2c\x24\x6e\x48\xe2\xd5\x01\x3f\x6c\xf1\x2a\
+\x49\xaf\xb7\xdd\x1e\x90\x41\x42\xe9\xa4\xd1\x3c\xd5\xea\x0b\xb1\
+\x03\xd8\xfa\xb2\x09\x66\xe5\x52\x00\x56\x27\x73\x9a\x44\x77\x90\
+\x9a\x80\x1a\x78\x63\x52\xbe\x76\xf6\xf5\x3b\xb6\x1f\x52\xce\x29\
+\x5d\x20\xa9\x11\xb3\x0f\x91\x03\x0f\x02\x0b\x53\x32\x21\x28\xc7\
+\x84\xe0\xd4\x36\xd9\x59\xa3\xb5\x3c\x36\x14\xc2\x62\x39\xec\x05\
+\x6f\x36\x4a\xe0\x66\x50\x2d\xc9\x53\xb1\x9b\x12\x61\xf6\xb4\x42\
+\x38\x19\xfc\xf4\x91\x64\xbc\x94\x3b\xf8\x0e\xcc\xc9\x31\x30\x17\
+\xbc\x07\x7c\x47\x12\x9f\xa4\xa2\xf7\x76\xaf\xde\x71\xdb\xe1\xca\
+\x45\x11\x01\x0b\x0d\x4d\x9c\xf5\x30\xb0\x05\x29\x62\x57\x04\xc1\
+\xd2\xac\xc9\x0e\x3a\xe1\x86\xc1\x4c\xe6\xb6\x20\xaf\xc7\x2e\x08\
+\xee\xeb\xea\x1b\xb8\xbc\xa0\xfc\xa3\x24\x06\x64\x0e\x26\xd8\x45\
+\xa4\x9d\xf1\x8a\xe3\x05\x78\x29\x9f\xe8\xa5\x88\x36\x5b\x07\x48\
+\x5e\x51\xba\x3e\xfb\xee\x11\x95\x5b\xbb\x63\x60\x60\x59\xe7\x23\
+\x0a\x9c\x96\x92\xa7\x20\x72\xc1\x9f\x00\x77\x46\x98\x95\x08\x07\
+\xc0\xc8\x6e\xdf\xb4\x6a\x6e\xc3\x09\x2b\x37\x8e\x1e\x49\x4e\x67\
+\xc3\xc0\xda\xed\xa3\x9d\x57\x44\xab\xa9\x3a\x56\xf8\xe7\xfe\x65\
+\x9d\x1f\x0e\x66\x1e\x4e\x4f\x10\x34\x4d\x10\x64\xaa\x16\x47\x7c\
+\xfe\x45\x59\x30\x2b\x97\x16\x00\x73\xc7\xef\x9c\x7f\xde\x75\xc3\
+\xe0\xf7\x26\xfd\xb3\xed\x8a\xfd\x1d\x27\xfa\x63\xf0\x34\xc1\x4c\
+\x9b\x73\x80\x5a\x6e\xa6\x8a\xb4\x57\x38\x25\xab\x85\xe1\xe1\xd6\
+\x49\xe5\xac\x74\xad\xbb\x2f\xfb\xda\xe7\x9b\x06\xfe\xb1\x58\xac\
+\x5e\x23\xfc\x01\xa3\x57\x3b\xc4\xd3\x40\xf5\x11\x8a\x44\x76\x31\
+\x89\x05\x5f\xec\x27\x7a\x8d\xad\x46\x23\xa7\x3c\x7e\x72\xb2\xc0\
+\x7c\x08\x1b\x9a\x06\xef\xb7\xb4\x3e\x47\x31\xa1\xd6\x80\x2b\xc0\
+\x95\x41\x74\x23\xf6\x03\x49\xc1\xd3\xeb\x03\x97\x1f\xeb\xe0\xf7\
+\xed\xeb\xad\x4f\x81\xb3\x90\x5a\xc0\xb3\x84\xbb\x81\xc6\x84\xd6\
+\x1b\xed\x00\xe2\xcb\x22\x98\x95\x4b\x7f\x68\xb3\x54\x72\x77\xb2\
+\x7f\x71\x4b\xd3\xf6\xa3\x26\xb9\x00\xaf\x5f\xe9\x5a\x8e\xff\x21\
+\x98\x91\x20\x66\x80\x6c\x5c\x45\xcc\x96\x69\xb7\x74\xd0\xa6\x31\
+\x84\xf0\x86\x63\xc9\xea\xbd\x71\xcb\x41\x39\xfd\x0c\xb3\x07\x98\
+\x09\x04\xec\xf5\x4e\x3c\x12\xaa\xf9\x08\xb0\xf7\x25\x13\xcc\xca\
+\xa5\xd3\x31\x1f\x40\x9c\x88\x69\x20\xe9\xde\x95\xc7\xf9\x6c\x6d\
+\xb4\x72\x7f\x4a\x6c\x09\x4e\xd3\x92\xf8\x7d\x59\xef\xb3\x39\xcb\
+\xe8\x34\x12\xb9\xcd\x01\xe1\x79\x4f\x7f\xf8\xa4\xfa\x63\xc9\x1a\
+\x6d\x6c\xfe\x92\x0a\xfc\x8d\xf1\x46\x49\x9b\x2c\xdd\xa1\xa0\x9d\
+\x29\x86\x1c\x8e\x7c\x07\x8f\xea\x64\xb2\x72\xe9\xd5\xc0\xfb\x84\
+\x5e\x33\x11\xa4\x67\x58\x0c\x15\x22\x57\xf6\x8f\x76\x1c\xec\x82\
+\xcf\x1f\x4b\xa9\xfa\x91\xa6\x31\xea\xab\xfb\x12\x6a\x14\x14\xc7\
+\xe3\xa5\x12\xb6\x08\x74\x04\x33\xe4\xa4\x3b\xe6\xb7\x3d\x9d\x1f\
+\x4b\xd6\x84\x23\xfa\x46\x7f\xb9\x7b\xc4\x4e\x1f\x42\x2c\x8e\xce\
+\xf7\xe6\x79\x6c\xeb\xba\x61\xfb\xe6\xe3\x22\x38\x91\x2f\x5e\x02\
+\xbc\x19\x38\x55\xa6\x29\xc1\x3c\x44\xcd\xf6\xd6\x20\x0d\x27\xd1\
+\x66\xb4\x54\x92\x7c\x8c\x7b\x98\xda\xf3\x73\x63\x8a\xa7\xd8\x69\
+\xbd\xa4\x56\x3b\x35\x07\x11\x2d\x8a\x58\xb9\x48\xb5\x14\xf9\x29\
+\xc7\x48\xd7\x0e\x47\xf7\x9a\xfe\xef\x66\xcb\x3b\x4f\xc1\xbc\xce\
+\xd2\xc9\x8e\x1e\x65\x3c\xc6\x4e\x4e\x70\x22\x9f\xbb\x06\x78\x1d\
+\xd0\x22\x68\x06\x9a\x2d\xf6\x4a\xe9\x01\xe7\xba\x2b\x28\x9c\x23\
+\x79\xba\xed\xa8\x18\xbe\x7f\x2c\x72\x00\x31\xa5\x53\x21\x24\xa1\
+\x75\x92\xb7\x43\xa8\x98\x34\x1f\x34\xdd\xa4\x3d\x42\xa5\x40\x3a\
+\x6b\xb0\x5c\x1a\xec\xe8\xcb\x7e\x78\x3c\x04\x6d\x7b\xeb\xb5\xb3\
+\x3e\x57\x68\xa8\x5e\x48\x62\x7a\x08\x84\xbb\x57\xa9\x70\xa4\x9c\
+\x36\x4c\x90\x3b\x1d\xb8\xc5\xf0\x66\x89\x59\xc0\x74\x60\x4b\x6e\
+\xfa\x1a\x1a\x2a\x97\xd9\xf1\x96\x42\x48\x5b\x6b\x07\x0b\x2b\x9c\
+\xd2\xb7\x9c\xfb\xaf\xba\xae\xeb\xbf\xed\xf9\xc2\x26\xa1\xf8\x1b\
+\xc4\x01\x05\xea\x92\x19\x96\xdd\x8f\xc3\xed\xd5\x94\x5f\x99\x57\
+\xea\xae\x4c\x0a\x37\xcb\xba\x87\xe0\xc8\x35\x2a\x1e\x9f\xcc\x43\
+\x4e\xc7\x43\x09\xf2\x64\x71\xc2\xf0\xcc\xf6\x23\xfd\x2f\x64\xe5\
+\xd2\x6b\x80\xb5\x40\x8f\xa4\xba\x04\xdf\x70\x4d\x57\x94\xd6\x0c\
+\xfc\x51\xf7\x9a\xec\x9f\x5a\x57\xee\xd9\xdb\xb5\xbb\xff\x76\x4b\
+\x5b\xeb\x9a\xc7\xda\x77\x37\x76\xdc\xd2\x75\xc3\xc0\xbf\x1e\x2b\
+\x44\x1c\x42\xd7\x9a\xec\xa7\x4e\x3c\x94\x8c\xa2\xb4\x77\x4c\xfa\
+\xf7\x54\x0d\x3f\x59\xdf\xb4\x73\xb0\xf7\xc6\x2d\x07\x09\xdc\xd3\
+\x51\x3f\x78\xfb\x48\x5d\xd3\x4f\xfb\xa7\x77\xbc\xbb\x7f\x45\xcf\
+\x29\xc7\x4b\xd2\x21\x1c\x44\x4e\xd8\x6e\xa9\x4b\x47\x0c\x13\xea\
+\x5f\xde\x79\x13\xb0\x04\x34\x10\x53\xed\xa3\x33\xaf\xdf\xb1\xfe\
+\x78\x0f\x38\x5e\x64\xcb\xbb\xae\x92\x7c\x3e\x22\x4b\xb9\x1f\x0c\
+\x31\x8d\xe5\xb5\xd8\x10\x63\xe8\x52\xca\xb7\x57\xe5\x42\x50\x78\
+\x73\xc4\x83\x39\x6a\xa9\x39\x7d\x75\xd6\x9a\xc1\x7b\x26\x93\xb7\
+\x65\xd9\x9c\xee\x62\x1c\xfd\x08\xd6\x3c\x9b\x64\xf1\x8b\xb1\x86\
+\xc6\x9b\x8e\x94\x0d\x15\x18\x2f\x54\x6b\x52\xfa\x71\x1e\xe2\xc6\
+\x57\x9a\x1c\x40\x88\xe9\x8e\xdc\xe1\x4d\xb2\x3b\xa5\x70\x11\xa8\
+\x1a\xa2\xba\xa4\x34\x94\x42\x38\x2d\x26\xef\x4b\xd2\x2f\x6b\xb8\
+\x3d\x8a\x83\x05\xc2\xdb\x81\x17\x10\x7c\xe0\x1a\x15\xbb\xdb\x3a\
+\xff\x6b\x5d\xe4\x32\x5b\x07\x40\x39\x4a\xff\xc7\xd2\xe3\x93\xa5\
+\x7a\x01\xd8\x0c\x54\x9c\xf4\x7b\xc0\xa7\x76\xae\x68\x9f\xf2\x4a\
+\x92\xdb\xb9\x6c\x66\x77\x5e\x8b\x33\x20\xfd\x33\x68\x0f\x81\x21\
+\xc1\xf6\xe4\x74\x5f\x4d\xdc\x13\xe5\x6f\x2b\xf0\xb8\x53\x9e\x15\
+\xc4\x08\xe3\xad\x8f\x99\xeb\x3e\xd8\xf1\x1c\x3d\xb6\x5e\xdb\xde\
+\xdd\x3b\xa3\xf3\xfd\xb2\x97\x18\x0e\x26\x78\x06\x73\x9f\x08\x9b\
+\x7a\xea\x07\xee\x9c\xec\x7c\xf5\x2f\xef\xac\x03\x2e\x07\xde\x85\
+\x69\x57\xe0\x07\x9d\xab\xb3\x4f\xbc\x12\xe4\x06\xfe\xb2\xd4\xb1\
+\x6b\x24\x8d\x2c\xfc\xbb\xc1\x03\xab\x56\x29\xbc\x77\xac\xbd\xb3\
+\xd9\xb4\xd4\x28\x14\x48\x68\xdb\x9e\xec\xc9\x9e\xb6\x52\x6b\xca\
+\xc3\x0c\x85\xda\xd2\x80\x3a\x9c\xbc\x84\xa0\x86\xbc\x50\xfb\x5c\
+\xb1\x16\xa7\x1a\x77\x26\xc2\x6b\x10\x07\xb0\xa7\x42\xd8\x80\xd3\
+\xa8\xcd\x50\x88\xe1\x7b\xa5\xd5\xfd\x3b\x8e\xa6\xc3\xb3\x6d\xc3\
+\xac\x5c\xea\x00\xbe\x60\xbc\x57\xe8\x66\xe0\xfe\x52\x5f\x76\xdc\
+\xb1\xe9\x48\xe8\xbf\xa6\xa7\x29\xb5\x8e\xce\x28\xa4\xe2\x9e\x54\
+\x48\xe7\x07\x85\xf3\x95\xfc\x58\x47\xe3\xe0\xd7\x0f\x8f\x7b\xfd\
+\x7f\xd1\xd3\x4e\x5d\xed\x2a\x59\x8b\x24\xe6\x18\x37\xcb\x3c\x90\
+\x5b\x03\x85\xe0\x42\xb2\x2e\xc1\xde\x43\xf0\xf7\x6b\x49\x8f\x37\
+\x38\xad\x6b\x9f\xa8\x3b\x8f\x85\x67\xd3\xad\x52\x5f\x36\x08\xfc\
+\x83\x50\x3b\xe3\xd5\xfa\x87\xb3\x72\xa9\xe9\xe5\x10\xec\xba\x79\
+\xdb\x48\x08\xf5\x67\xab\xe8\x8f\xca\xf1\x5c\xcc\xab\x92\xc2\xfb\
+\x07\x46\x3b\xbf\xbc\xf3\x86\x99\x2d\xcf\x51\x24\x15\xea\x92\x18\
+\x4e\x89\xe9\x58\x4d\x98\x01\x50\x7f\x6e\x6d\x46\x8c\x22\xcd\x0f\
+\xe8\x97\xbd\x6b\x06\x7e\x78\xbc\xe4\x9e\x43\x70\x82\xe4\xed\xc0\
+\xb5\xc0\x43\xc0\x42\xe0\x8a\x89\x0a\xfe\x25\xe3\xbe\xf5\xfd\xdf\
+\xce\x53\xe1\xcb\x21\xa6\x9b\x48\x7c\x47\xa4\xd6\x64\xe6\xa6\xbd\
+\xe1\x12\x80\xcd\xe5\x39\xd3\x55\x4c\xef\x48\x4a\x4d\xd1\x9c\x9c\
+\xf0\x4e\x89\x99\x56\x58\x58\xef\xea\x43\x92\x76\x3b\xe7\xd7\x86\
+\xb1\xe1\xb1\x34\xff\xc5\x9e\xff\x82\x54\xad\xd4\x97\x3d\x99\x95\
+\x4b\x6b\x81\xff\x02\xcc\x05\xce\xe3\x08\x1e\xed\x78\x71\xc5\xff\
+\x76\xce\xb8\x23\x63\xdd\xaa\xc5\xb7\xb6\x8f\xee\x7a\x2f\xf2\x8c\
+\xe4\x70\x49\xb6\xac\x6b\x4f\x48\x38\x2f\xf8\x94\x20\x5e\x47\xe2\
+\xc4\x28\x9c\x4c\x0d\x52\x88\x63\xf9\x53\xb5\xfa\xc2\x28\x51\x11\
+\xa7\x45\x8d\x05\xcd\x7d\xb1\xe7\x1f\xd1\x3a\xa5\xbe\xac\x0a\xdc\
+\x06\xe4\xc0\x19\x59\xb9\xa4\x97\x4a\xf0\x70\x7c\x93\x47\x6b\x49\
+\x1e\x0a\xb8\x15\x98\x1f\x50\x73\x21\xfa\xb3\x11\xae\x96\x79\x95\
+\x03\x2d\x92\x0a\xd1\x3c\x15\xcc\x48\xa5\xa1\xfe\xf2\x7b\x36\x0c\
+\xac\x4b\x79\x78\xc8\xd6\x16\x42\xb8\x68\x4b\xb9\xeb\xdc\xac\x5c\
+\x5a\x90\x95\x4b\x9d\x13\x03\x9c\xa3\x62\xd2\x6a\xa2\xd4\x97\x0d\
+\x65\xe5\xd2\x6f\x80\xd3\x81\x79\xc0\xf1\x25\x00\xab\x14\xb2\xb1\
+\xd2\xa5\x88\x13\xa9\xd5\x36\x2a\x8f\x77\x77\xae\xcd\x86\x01\xde\
+\xb2\x9d\xe8\x19\xd4\x29\x50\x55\xf2\xfc\x14\x7d\xab\xd2\x78\x8f\
+\xcd\x46\x18\x13\x5c\x25\x50\x67\x13\xaa\xb9\x8b\x8b\x20\x46\xf2\
+\xee\x04\xb3\x04\x0d\x05\xa7\x3f\x46\xfa\x36\x70\x12\x30\x3d\x2b\
+\x97\x76\x00\x4f\x96\xfa\xb2\x23\xc6\xf0\xa3\x0e\x5f\xb2\x72\xa9\
+\xc4\x78\x02\x9e\x03\xf7\x02\x3f\x3b\x9a\x67\xdd\xb4\x6a\x6e\x43\
+\xfd\xe8\xc1\xcf\x0a\x9f\x85\xd5\xe2\xe0\x21\xac\xbb\xbb\x76\x0f\
+\xfc\x25\x37\xbb\x0a\xd0\xbf\xa2\xfb\x9d\x72\x7e\x1d\xd2\x0c\xcc\
+\x01\xc3\x1e\xf0\x6e\x89\x26\x5b\xf3\x03\x4c\x45\xec\x37\xba\xdf\
+\xf6\xbd\x4a\x69\x63\x90\x76\x27\xf1\x76\x9b\x29\x79\x08\x85\x50\
+\xad\x7e\x46\xa1\xae\x26\x6c\x93\x3a\x08\xb4\x0a\xed\x07\xee\x2a\
+\xf5\x65\xfb\x8f\x9b\xe0\x04\xc9\xb9\xc0\x1f\x02\xd3\x26\x88\x66\
+\xc0\x26\xe0\xc1\x52\x5f\xb6\x13\xe0\x9b\xef\x50\x7c\xed\xfc\x9e\
+\xd6\x90\xd2\x3b\xa4\xfc\xed\x58\x84\xa0\x19\xc9\x6e\x33\x7e\x66\
+\x9f\x0e\xbe\xed\x94\xd5\x43\xbb\x00\xb2\x15\x5d\x97\x27\x6a\xcd\
+\x58\x67\x43\x78\x24\xc9\x23\xf5\x56\x4b\x2d\xf1\x16\x45\x5e\x87\
+\x69\x35\x3c\x10\xe5\xc7\x73\x34\xc5\x79\x7a\x98\xa8\x07\x81\x73\
+\x22\x3a\xb1\x96\x73\x77\x2c\xb8\xc5\xb9\x6a\x88\x42\x4a\xc4\x10\
+\x43\xbf\x49\xd5\x60\xa6\x01\xdf\x2e\xf5\x65\x03\x87\xf4\x3f\xa6\
+\x87\x9c\x30\xfd\xa7\x81\xaf\x4d\x58\x71\x27\x70\x2a\xf0\xa1\xac\
+\x5c\xba\x18\x49\x17\xcc\xe9\x6c\xe8\x59\xbd\x75\x57\x54\xca\x41\
+\x4f\x48\x3c\x52\x23\xdd\x82\xfd\x68\x90\xc6\x4e\x99\x39\xed\xd9\
+\x21\x89\x82\x23\x91\x87\x2b\x41\x6b\xbb\xfb\xb2\xaf\x14\xad\x37\
+\xe6\x70\xa6\xc4\x6b\x31\x75\xe0\xed\x63\x79\xfe\xdf\xf2\xdc\x77\
+\x84\x44\x3f\x0a\x9d\xc1\x7a\xab\xf0\xa9\x09\x4e\x8f\x81\xf7\x3a\
+\xd7\xf9\x36\xe7\x02\x4b\x62\x74\x83\xc9\x67\x04\xeb\xa4\x04\xbb\
+\x81\x77\x1d\xde\xca\x7f\xc9\xf3\xc1\xac\x5c\xea\x32\xfa\x3c\x62\
+\x4a\x44\x29\xe6\x63\x1f\x1e\x75\xb1\x37\x04\xbf\x49\xd6\x43\x39\
+\xae\x2f\x16\xfc\x8b\x94\xc2\x05\xa5\xbe\xfe\xcf\x1d\x7a\x6e\x47\
+\x79\xd6\xfc\x51\x57\xba\xa3\x55\x8f\xd4\x10\xd0\xc7\x08\x9e\x83\
+\x3d\x05\x34\x94\xf0\xdf\xe4\x39\x77\xd7\x45\xbd\xaf\x92\xb8\xbb\
+\x10\xf8\x5f\x41\x2a\x62\xf7\x22\xc6\x82\x7d\x67\x22\x8c\x49\x3e\
+\x91\xe4\x61\xd0\x8e\x14\xc0\xf0\x48\xb0\x3a\x80\x27\xc0\xd3\x81\
+\x9b\x4a\x7d\x59\xfe\x92\x63\x5c\xa9\x2f\xeb\x17\x64\x4a\x5e\x5a\
+\x4b\xa9\x75\x2c\xd4\xbd\x29\x44\x5f\x16\xa3\xbf\x12\xa2\x1a\x63\
+\x54\x1c\x2a\x0d\x3e\xb1\x6d\x77\x76\xf3\xe1\xcf\x0d\x37\x14\xb6\
+\xd6\x85\x70\x09\x31\x9c\x17\xc5\xd5\x92\x17\x60\x9a\x80\x7e\x9b\
+\xcf\xc6\x9a\xbe\x5e\x2c\x84\xb7\x13\x78\xb8\xbe\x48\xa3\xcc\x53\
+\x38\x09\xa9\x1e\x53\xcc\x09\x67\x01\x73\x30\xdd\x49\x92\xc5\x6e\
+\x41\x21\xd8\x8b\x4c\xbe\x3f\x25\x16\x30\xee\x3c\x2f\x82\x97\x39\
+\x5d\x32\xf9\xb7\x08\xaa\x05\xa9\x19\xd2\x42\xc4\x63\x1d\xd7\x0d\
+\x3c\xfc\xd3\xa7\xfb\xff\xb1\xe8\xea\xfd\xf3\xff\xbb\x2b\xaf\x99\
+\x70\x2e\x87\xd0\x52\xdd\xdf\x46\x4e\x29\xe2\x05\x86\x53\x13\x0e\
+\x36\x1b\x51\xf8\x42\x57\xe3\xc0\xa7\x54\xe0\x5c\x4c\x53\x35\xe7\
+\xd1\x50\xf4\x8f\x10\xd1\x8a\x7b\x6c\x57\x10\x23\xc2\x6d\xc8\xe7\
+\x1b\x92\xc4\x62\xe0\x02\x27\x7a\x85\xa3\xd0\x6c\x05\x55\xac\x60\
+\xe0\x82\xac\x5c\x2a\x1c\xb3\xb3\x2d\x49\x5b\x3f\xd6\xd3\x13\x8a\
+\x29\x0e\x17\x2b\x7b\xe6\x3f\xba\x7b\x98\xf1\xe0\x0d\xd5\xe2\xaf\
+\x54\xcc\x6f\xcd\x61\x6e\x84\x5f\x74\xae\xce\xbe\xb8\x6a\x95\xc2\
+\xfb\xe7\x76\x9e\xd1\xb6\x7e\xe0\xfe\x23\xc9\x6b\x2b\xee\xea\x1f\
+\x48\x9d\xcd\xc9\x2c\xc6\x6e\x0f\x31\xfc\x7a\x84\xb4\x7a\xee\x75\
+\xd9\x4f\x90\x54\x5b\xae\xf3\x65\x7a\x6a\x95\xca\x96\xde\x35\x7b\
+\x0e\x64\xcb\xbb\x1e\x93\x52\x4a\x49\x53\x89\xde\x86\xb5\x74\x7c\
+\x6a\xc3\xc9\x58\x96\xdd\x86\xd8\x9f\xac\x7d\x22\x3c\x92\xec\xa9\
+\x41\x6e\x43\xec\x03\x4e\x3b\xea\x1d\xdc\xb9\x6c\x66\x77\x85\xc2\
+\xbc\x10\xd2\xc5\xa0\x0b\x64\x92\xa1\x1a\xe4\xfd\x79\x5e\xb8\x3d\
+\x3a\xff\x4e\xe7\xda\x6c\x78\xcf\xf2\x19\xd3\x86\xf3\xe2\x9c\xda\
+\x94\xa6\x27\x1b\x2b\x07\x7f\x6f\xff\x81\xea\x3d\xf3\x3f\xb3\x6b\
+\xd2\xb1\xd8\x86\xe5\x33\xa6\x35\x52\x77\xb9\xd0\xdc\x24\x6f\x6c\
+\xd1\xc8\x9d\x2d\xab\x87\x76\x6d\xf9\x58\xe7\xbc\xba\xa8\xcf\x21\
+\xef\x2b\xf5\x0d\xbe\xe7\xd1\xbf\x5e\x54\x6c\x1b\xdb\x79\xbe\x93\
+\xcf\x93\xa8\x92\x58\xe4\xa0\x67\x9c\xfc\x47\xd2\x44\x56\x63\x2a\
+\x12\x03\xc4\xfc\x5a\xe7\xe1\x4d\x0a\x54\x53\xa2\xaa\xf1\x66\x70\
+\x65\x52\x82\x83\x1f\xef\x5c\x9c\xac\xab\x95\xf4\x96\x84\xa7\x49\
+\xd4\xd9\x4a\x92\x13\x22\x61\x2a\x82\x4d\x39\xe9\xcb\x8c\x71\x9f\
+\x1a\x8a\x2d\xd5\x34\xbc\x71\xc7\xee\x7d\x07\x9e\xff\x59\x4e\x86\
+\xac\xdc\xf5\x3e\xe3\x86\x90\xf2\xf5\x11\x7e\x56\x71\x7c\x43\x8c\
+\x2a\x1b\xaf\xef\xea\xcb\xde\xd3\xbf\xa2\xe7\x94\x3d\xfb\xaa\x5b\
+\x5b\x5b\xc2\x1b\x82\xb4\x44\xd1\x0f\x8c\x56\xf8\x4d\x43\xc1\x5f\
+\xc5\x3a\x15\xdc\x6c\x8d\x0f\x19\x8d\x7e\x8d\xfd\x2b\xa3\x2c\xc4\
+\x34\x1d\x87\x3d\x36\x2d\x2f\xbc\x83\xab\x14\xb6\xaf\xe8\x7a\x63\
+\x35\xf9\x7a\x27\xde\x6b\xa5\x2e\x89\x00\x0c\x23\xf7\x83\x06\x30\
+\x15\xa3\x16\xc3\xb9\x81\x78\x65\xa8\x8b\xd7\x85\x3c\x5d\x56\x6c\
+\x68\x7e\xc1\x9d\x3b\x1a\x62\x43\xfe\x0d\x9b\x83\x63\x2e\x0c\x54\
+\x89\xaf\x8d\x41\xf3\xc1\x8d\x1a\x1f\xc9\x41\x6d\xac\x69\xe1\xdf\
+\x0d\x1e\x18\x6b\x6c\xbc\x43\x78\x5f\x9e\xbc\xb4\xbe\xa0\x3f\x06\
+\x1d\x44\x1e\x35\x8c\x81\xf2\x24\x6d\x03\x7a\x09\x74\x46\x3c\x52\
+\x4b\x51\x46\xd3\x81\x69\x2f\xb0\x60\xb6\xa2\xeb\x8d\xd8\x1f\xc5\
+\x9c\xa5\x40\x1c\x77\x00\x3c\x9e\x8c\x35\x3e\xaa\xde\x8d\xc2\x0c\
+\xe0\x02\x2b\x95\x90\x12\x89\xcd\xd8\x3f\x1c\xab\xa4\x55\x51\x0d\
+\x7b\x7b\x6f\xdc\x72\xf0\x39\x42\xaf\x51\x71\xc7\x8c\x99\x73\x6c\
+\x35\x1f\xa0\xba\x29\xc6\xd8\x14\xc6\x42\x63\x21\xea\x62\xc1\x69\
+\x0a\xb4\x62\x3f\x91\x1c\xa6\x49\x7e\x2b\xd0\x1f\x43\x7a\x77\x2d\
+\x15\x7a\x92\xc2\xa6\x9e\xd5\x5b\x77\x0d\xfc\x65\x69\x6e\x2a\xf0\
+\x91\x00\x1d\x8c\x0f\x72\x16\x11\x68\xb3\xb1\xe4\x6d\x29\xd7\x9f\
+\x87\xe8\x05\xe3\xab\x1d\xb1\x5b\x4e\x4d\x16\x8d\xcf\xb1\xe0\xd6\
+\x6b\x67\x35\x42\xba\x0c\x38\x1b\x51\x48\xf6\x86\x64\xdd\x6a\x33\
+\xe4\x9a\x3f\xdd\xd5\x97\xbd\xa7\xb4\x66\xe0\x43\x12\x55\x4c\x9b\
+\x1c\x64\xfb\x4e\xa1\x51\x49\x17\x35\x4e\x09\x8b\xeb\xea\xc6\xde\
+\xfe\xc4\xb2\xf6\x16\x80\xbb\x57\xa9\x90\x2d\xeb\x3a\x2b\x6b\xed\
+\xb8\xa6\x4a\x78\x67\x1e\x74\x69\x93\xea\xca\x85\xbc\xbe\x3d\xd4\
+\xa9\x57\x84\x0d\x29\xf7\xf7\xc6\x12\xdf\x4d\xa6\x92\xa4\x0d\xc8\
+\x8d\xa0\x98\x5b\x6f\xce\x6b\x79\xb5\x98\xe8\x05\xe8\x5c\x9b\x6d\
+\x8c\xc1\xdf\xc7\x34\xda\x6a\x00\x8a\x98\xaa\xcc\x5e\x27\x4d\x0d\
+\x45\x65\x42\x05\x49\xb9\x02\xd1\x92\xe1\x79\x61\xa2\xae\x69\xec\
+\xf5\xa4\x70\xb1\x51\x00\x8d\x58\xe1\xd3\x21\x78\x76\x95\xd1\x8f\
+\xf5\xac\x1d\xf8\x39\x40\xff\xf2\x9e\xd9\xd8\x17\x21\x0a\xe0\xbd\
+\xaa\xf9\x73\xd8\x4f\x63\x3d\x43\x1e\x96\xe4\x78\xf3\xd4\x50\xf8\
+\x83\x6d\x2b\x66\x2e\x98\x5f\xeb\x3d\x41\x05\x5f\x40\x08\x53\xb1\
+\x23\xe4\x07\x30\xc3\x15\xd2\xde\x9e\xeb\xb2\x7b\x4a\x6b\xb6\xff\
+\xb8\x7b\xed\xc0\x1d\x75\x39\xdf\xc3\xf1\x7b\xf5\xaa\xfe\xc8\x49\
+\x35\x43\xab\x92\x2e\x54\xa8\xed\xce\x43\x75\xee\xf8\x8b\x87\xbf\
+\xaf\x1b\xbc\x4b\xf2\xdf\x23\xea\x11\xdb\x11\x07\x08\x8c\x22\xf6\
+\xa4\x8a\xa7\x26\xab\x29\x4a\x2d\x76\x5e\xb1\x5d\x07\x1c\x7c\x96\
+\xe0\xba\x55\xaa\x73\xf2\x6b\x91\x4f\x08\xb6\x30\x9b\xa8\x79\x54\
+\x55\x3e\x35\xbb\x6f\xef\x1e\x80\x6d\x2b\xa6\xb6\xc5\x50\x5b\x6e\
+\x68\x04\x57\x4d\xba\x35\x84\x30\x2b\x37\xb7\xa1\xf4\x60\x4a\xf9\
+\x8e\x91\x3c\x3c\x1e\x60\x28\xa6\xf0\x36\x57\xf2\x8e\x90\xd2\xb7\
+\x8c\x47\x42\x08\xeb\x55\xd3\x16\xa7\xf0\xc0\xbc\x35\xdb\xb7\x1c\
+\xfe\x62\x3b\xd7\x66\xc3\x5d\xd7\x6f\x7f\xec\xb6\x5d\x3b\x37\x49\
+\xde\x21\xe8\xcc\xd1\xec\x10\xea\x2f\x91\xd3\xde\x62\xb1\x7a\x3a\
+\xc0\xca\x95\x4e\x9d\x6b\x06\xef\x92\x7d\x3b\x68\xb7\x93\xf7\x56\
+\x53\xb8\x2a\xd4\x58\xe2\xa2\xbb\x48\xf9\x60\x35\xb9\x35\x25\xea\
+\x25\x9a\x80\xf5\xcf\x12\x9c\xbe\xbf\x7b\x6a\xb2\xe6\x8e\x8f\x95\
+\xc9\x8d\x1f\x51\x81\x29\x9d\x9f\x18\xd8\x04\xb0\x79\x45\xd7\xc2\
+\x90\x9a\xbf\x90\xac\xd3\x25\x57\x80\x27\x9d\x42\xb3\x9d\xba\x8a\
+\xb0\x3b\x21\xa3\xd8\xdc\x10\x99\x5f\xe7\xb1\x9f\x26\xf8\x49\x5d\
+\x48\x57\xe7\x79\x3c\xc3\x35\x1e\x53\xf2\xe2\x10\x35\xed\x0b\xcd\
+\xfd\x3f\x98\xcc\xe9\xfc\xe9\xcd\xae\x26\xfb\x5e\xec\x5a\x90\xbb\
+\x64\xbf\xbb\x96\x0a\x43\x0a\xa1\x67\xdb\x8a\x99\x0b\x60\xbc\x6d\
+\xbf\xab\xb1\xfd\x06\xe1\x87\x14\xf8\xf1\xac\xeb\xfb\xef\x4d\x75\
+\xf9\xc9\x21\xb1\x80\x58\xa8\x33\x0e\xa0\xb9\x8c\x2f\x1f\xdd\xf3\
+\x6c\xa0\xb7\x69\x0c\xd0\x69\x90\xe4\x31\x59\x8f\x60\x7c\xa8\x83\
+\x5d\x2f\xbf\xc7\xa2\xce\xe6\x51\xa1\x01\x9b\x47\x63\x64\x63\x72\
+\x78\x4f\xc2\x43\x32\x77\x2a\x31\x12\x0b\xbc\x79\xfa\xea\xdd\xff\
+\xbe\x7f\x79\x67\x94\xd8\x9a\xab\xb6\xbd\xe8\xf8\x54\x8d\x9a\xc9\
+\xb5\x61\xe5\x4a\x1f\x75\xfd\x4a\xf8\xeb\x48\x17\x80\x4b\xc6\x14\
+\x03\xab\x2b\xc9\x9f\x8a\x21\xbe\x26\xfb\x78\x57\x4f\xed\x60\xe1\
+\xa1\x85\x37\x6e\xd9\xbd\x4a\xba\xf6\xcf\xfe\xa2\xb3\x7d\xe0\xe3\
+\x9d\x6f\x51\xee\xb3\xab\xf6\x8e\x42\xca\x4f\x29\x10\x50\x48\x0d\
+\xb6\x06\x81\xfb\x0b\x30\xbe\xda\xe8\xfa\xbc\x91\x54\x68\x42\x96\
+\xad\x31\x89\x41\x2b\x3d\xeb\xf2\x83\xd3\x53\xc9\xc1\x0a\x7c\x37\
+\x4f\x5c\x68\xf9\x31\x1c\xce\x34\xfc\x8b\x82\xfe\xb5\x6b\x75\xb6\
+\x73\x70\x79\xc7\xe5\x36\xbd\x5b\x3f\xde\xd6\x3d\x7b\xcd\xae\x9f\
+\x3f\xf6\xe7\x33\x37\x9e\xfa\xb7\x3b\x07\x26\x5e\xd2\xa4\xbd\xcb\
+\xe7\x10\x54\x5c\x87\xfd\x6b\xc4\xa5\x12\xf3\x2c\x3d\x5a\x27\x7f\
+\xc4\xe8\x71\xf2\x7c\x5d\xb1\xc1\xf3\xfa\xcb\x25\x7d\x60\x79\x67\
+\x48\xa4\x36\xf2\x38\x5d\x49\xbb\x8b\x31\x9d\x38\xbe\x54\xe5\x45\
+\xb6\x6a\xc0\x17\x4b\x7d\x59\x3a\xf4\x89\xb6\x16\x52\xac\xb7\x52\
+\x2e\x10\xe3\x86\x3b\x49\x29\x54\x0e\x1d\x5c\x43\xfb\x2d\x8f\x8d\
+\xc8\x9b\xba\xd7\x64\x37\xf4\xf4\x0d\xfc\x9b\xaa\x63\x5f\x6f\x0d\
+\xb5\xef\x1c\xd8\x3f\x65\x68\xe7\xc7\xda\xa7\xd4\x92\xba\x92\x99\
+\x59\xc8\x8b\x8b\x00\x4e\xfd\xd4\x8e\xec\x78\x67\x18\x87\x50\xea\
+\xcb\x0e\x3a\xe8\x4b\x46\xeb\x8c\x1a\x6d\x16\x58\x54\x82\xd3\x81\
+\x44\x58\x62\x73\x5e\x40\xaf\xce\x43\x58\x68\x34\x35\xcf\xf3\xdd\
+\xb9\x78\x15\x68\x8a\xf0\x62\x4c\x11\xf8\x51\xa9\x2f\xbb\x1b\xfe\
+\xc3\x8b\xe6\x91\xda\xa0\x50\x05\xb0\x08\x4d\x09\x16\x4a\x1c\x64\
+\x95\x02\x8c\x0f\xc0\xab\x29\x7d\x69\xee\x75\x03\xcf\x16\x93\xa5\
+\x4f\xec\x5a\xd7\x74\xdd\x8e\xfe\xf9\x9f\x79\xaa\x52\x2d\x16\x67\
+\x84\xa8\xd6\x20\x4d\x57\xf0\xec\x17\x43\xea\xf9\xe8\x5a\xdd\xff\
+\x4b\xc9\x37\x0a\x3f\x14\x70\x8b\x60\x49\x42\x97\x45\xe8\xb4\xb5\
+\xcf\x30\xa4\x64\xe4\x30\x3f\xc4\x70\xb1\xa0\x11\xb3\xd4\x56\x13\
+\xe3\x35\xeb\x0d\x87\x64\x85\x89\xb7\xb6\xb7\xa6\x42\x30\x6c\x36\
+\xae\x80\xeb\xa3\xd4\x3b\x9c\xf2\x2d\x9b\x47\x3b\x4f\x00\xe8\x58\
+\x3d\x70\xdb\xac\x49\xfa\x91\xdb\x56\xf4\xb6\x15\x5d\x6d\x53\xf2\
+\x49\xe0\x36\x5b\x2f\xbb\x49\x55\x5a\x9d\xfd\xb0\x86\x97\x19\xff\
+\xc2\x22\x47\xf4\x58\x2c\x15\xbe\x4c\xf8\xf7\x81\x0b\x24\xcf\x15\
+\xea\x95\xbc\x18\x18\x06\xfe\x09\x28\x1f\xbe\xd2\x75\x78\x1c\x14\
+\xf8\x4e\xa3\x21\x43\x34\x6e\x6b\x08\xf1\xfd\x4d\x21\x3f\xb8\x77\
+\xd5\xf4\xc9\xd7\x3c\x00\xe5\x95\xf6\x5a\x0a\xa7\x26\x71\x51\x72\
+\x18\x61\xbc\xea\x7f\xd9\xe8\xed\x1b\x78\x04\x74\xa5\xad\x65\xc0\
+\xfd\xc0\x01\x44\xd1\xd0\x0c\x6e\x35\x4c\x05\xef\x00\xbe\x01\x5c\
+\x5d\xea\xcb\xfe\xf6\xf9\x3d\xa3\xc3\xcb\xa5\x98\x57\x79\xb0\x58\
+\x60\xbb\xa1\x0d\x71\x82\xe0\xbc\xd1\x3c\x6c\x8f\xfb\x9b\x6e\xbd\
+\xeb\x1d\x8a\x57\x1c\x2a\x93\x0e\xc3\xf6\x72\xc7\x92\x10\xd5\x65\
+\xeb\x2d\x41\x4c\x37\xee\x07\x1e\x7d\x25\x08\x02\x94\xfa\xb2\x11\
+\xe0\x5f\xb2\x72\xe9\xdb\x40\xef\xc4\x6f\x06\x50\x05\xb6\x03\x1b\
+\x8f\xb6\x9c\x7e\xf8\x6c\xa2\x0e\xf8\x03\xac\x56\x05\xff\x4f\x9b\
+\x76\x83\x80\x87\x84\xbe\x55\xb3\xbf\xdf\xdb\x38\xf0\xd8\xa1\x99\
+\xc2\xba\x0f\x76\x4c\x69\x9d\xa6\xd3\xab\x39\x27\xd4\x45\x5d\x4a\
+\xf2\x65\x01\xed\xb5\xf8\x49\xa9\x2f\xfb\xd3\x57\x8a\xe0\xcb\xc5\
+\x73\x92\xed\xac\x5c\xea\x49\xf6\x85\x41\x9c\x25\xe9\x5d\xc9\x9a\
+\x12\x70\xb4\x3c\xe0\xe4\x5f\xa1\xc2\x6f\x52\xca\x37\xc5\xe0\x69\
+\x4a\xb1\xd5\x4a\x6d\x04\xde\x80\x35\x1b\x74\x00\xbc\x0e\x58\x59\
+\xea\xcb\xee\xfb\xdd\x51\x7a\x2e\x5e\x58\x4d\x94\x4b\xe7\x58\xe9\
+\x04\x55\xc3\x49\x14\xf4\x01\xf0\xb4\xf1\xeb\x99\xb0\x34\x2a\x31\
+\x24\x13\x2d\x17\x65\x6c\xc2\x54\xdb\x23\x82\xc7\x10\x5f\x2c\xf5\
+\x65\xb7\xfe\x8e\xb8\x1c\x11\x47\x2c\x78\xb3\x72\xe9\x4c\x60\x91\
+\xa3\xf7\x85\x1a\xef\xb7\xb4\x14\xd4\x0c\x0e\x40\x62\x7c\x53\xd3\
+\x36\xb5\x10\xd8\x95\xcc\x33\xc0\x37\x4b\x7d\xd9\x31\xf7\x66\x7e\
+\xdb\x98\xb4\xa2\xcf\xca\xa5\x6e\xe0\x0a\xd9\x63\x39\xda\x29\x31\
+\x2b\xe0\xb3\x20\xcc\x71\xca\xe5\x10\x76\x19\x17\x02\xda\x07\xac\
+\x29\xf5\x65\xff\xf7\xb7\xaa\xf9\x71\xe2\x78\x3a\xdb\x73\x80\x4b\
+\x19\x9f\x34\x75\x32\x1e\x5a\xcc\xf8\x76\xed\x5d\x8c\xb7\xf3\x8f\
+\xb9\xa5\xf4\xbb\xc2\xff\x03\xbe\xbc\xa7\xb1\x5d\x72\x52\xfb\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x05\xdc\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x05\x59\x49\x44\
+\x41\x54\x58\x85\xc5\x96\x7d\x88\x14\x65\x1c\xc7\x7f\xcf\x33\xb3\
+\xb3\x33\x3b\xbb\xb3\xef\xde\xe9\xbe\x1c\xa6\x69\x92\x52\x84\x89\
+\x60\xa9\x89\x65\x05\x52\x84\x82\x68\x6f\x9a\x78\x7f\x6c\xfd\x51\
+\x41\x7f\x04\x45\x04\x41\x14\xd2\x5f\x9b\x70\xa4\x24\x04\xda\x0b\
+\x8a\x51\x94\x85\x51\x60\xfd\xe3\x65\x45\xa7\x5e\x7a\x68\x77\xb7\
+\x73\xb7\xeb\xdd\xde\xcc\xce\xee\xde\xbc\xec\x3c\xcf\xd3\x1f\xdd\
+\x9d\x73\xdd\xde\x8b\xde\x49\x3f\x18\x66\x78\x7e\x2f\xdf\xcf\xfc\
+\x7e\xc3\x33\x0f\x02\x80\xc5\x00\x50\x87\xff\xc7\x64\x1e\x00\xea\
+\x8c\x31\x23\x97\xcb\x05\x09\x21\xf7\x21\x84\xf0\xed\x54\x64\x8c\
+\x51\x8e\xe3\xce\xe7\xf3\xf9\x1a\x42\x08\xf8\x71\x47\x80\xd2\xaf\
+\xdb\x77\xef\x8e\x0b\x92\xc4\xcf\x54\x60\xbe\x66\x56\xab\x76\xc7\
+\xf1\xe3\x43\x00\xb0\x15\x00\x6e\x00\xac\x59\xb9\x52\x59\x4e\x69\
+\x0f\x1c\x3c\x78\xf6\x76\x08\x7f\x3b\x38\x98\x7c\xe7\xe2\xc5\x8d\
+\x1d\xf9\x7c\x63\x79\x36\xab\x8c\xaf\x4f\x00\x20\x84\x00\x0c\xa3\
+\x06\x5d\x5d\xc6\x42\x89\x6a\x84\xf0\x7b\x55\x75\xeb\x99\x7a\x7d\
+\x73\x83\x31\xff\x26\x59\xfe\x71\x55\x22\x61\xff\xd4\xd3\x93\x9e\
+\x02\xb0\x90\x56\x26\xc4\xf7\xe0\xb5\x6b\xfb\xae\x39\xce\x0a\x8b\
+\xb1\x20\x00\x40\x92\xe7\x0b\xa7\xdb\xda\x4e\x01\xc0\xa3\xde\xd8\
+\xdb\xf2\xc1\x29\x18\xbb\x2d\x3c\x3f\x6c\x33\x26\x03\x00\x0b\x62\
+\xac\xff\xbc\x74\xe9\xc1\x66\xb1\x0b\xde\x81\x0b\xb6\x2d\x3f\xd9\
+\xd7\xb7\xaf\xc7\x71\x56\x87\x39\x6e\xc8\x61\x4c\x7c\x6b\xd1\xa2\
+\xc3\x77\x0a\xc2\x68\xb3\xf8\x05\xed\xc0\xa1\x91\x91\x3b\xd6\x5f\
+\xbd\xfa\x46\x8f\xe3\xac\x5e\xe5\xf7\x9f\x3f\xd3\xd6\xf6\xde\xc3\
+\xb2\x7c\xe6\xd5\x78\xfc\xf2\x74\x39\x0b\xd6\x81\x9d\xfd\xfd\x5b\
+\x4f\x18\xc6\x53\x00\xc0\x76\x85\xc3\x9f\x1e\x4b\xa7\x7f\x18\xa5\
+\x14\x9f\xca\x66\xbf\x99\x29\x6f\xde\x00\x57\x1c\x27\xb0\xbd\xaf\
+\xef\xb9\xbf\x6c\xfb\x5e\x05\xe3\xf2\xfb\xad\xad\x1d\x07\xa2\xd1\
+\xbf\x01\x00\x02\x18\xd3\xd9\xf2\xe7\x05\x70\x44\xd3\xda\x5e\x2e\
+\x16\x0f\x18\x94\x26\x56\x08\xc2\x1f\x5f\x66\xb3\x1f\xaf\xf4\xfb\
+\x9b\xce\x7a\xc1\x01\x9e\x2e\x14\x36\x1f\xab\x54\x76\x02\x00\xde\
+\xa1\x28\x5f\x7c\x9e\xc9\x7c\x7f\x2b\x75\x6e\x1a\xa0\xaf\xd1\x10\
+\x1f\xef\xed\x7d\xe6\x82\x6d\xaf\x0d\x62\xac\xbd\xdb\xd2\xd2\x91\
+\x8b\xc5\xae\xde\x8a\xf8\x4d\x03\x7c\xa2\xeb\xe9\x97\x8a\xc5\x76\
+\x9d\x90\x45\xcb\x04\xa1\xeb\x54\x36\x7b\xe4\x6e\xbf\x7f\x5e\x7f\
+\xd2\x59\x01\x6a\x94\x72\x41\x8c\xc9\x0b\xaa\xfa\xc0\xd1\x4a\x65\
+\x17\x65\x8c\x7b\x22\x14\x3a\x79\x22\x9b\x3d\x8d\x01\xd8\x7c\xc4\
+\x67\x05\xd8\x53\x28\x3c\xf4\x7c\x24\xf2\xe7\x6b\xa5\xd2\xf6\xdf\
+\x2d\x6b\xbd\x8c\xb1\xfe\x76\x4b\xcb\x47\xaf\xc4\xe3\x57\xe6\x2b\
+\x3c\x2b\xc0\x51\x5d\xcf\x9c\x30\x8c\xed\xa7\x6b\xb5\x4d\x65\x42\
+\x16\x2f\x15\x84\x4b\x27\x33\x99\xc3\xf7\x88\x62\x75\xa1\xc4\x27\
+\x01\x58\xb6\x8d\x2f\xab\xaa\xa4\x9b\x66\xb8\x42\x88\xef\xc5\xc1\
+\xc1\x9c\xcd\x58\xc0\x26\x24\xb0\x56\x92\xce\x7e\xd0\xda\xfa\x95\
+\xcb\x18\xfa\xcd\xb2\x42\x00\x37\xb6\x50\xef\x18\x30\x42\x6c\x06\
+\x1f\x00\x00\x44\x74\xdd\x47\x29\x45\x53\x00\x6c\xdb\xc6\x3d\xf5\
+\x7a\x60\xc0\xb2\x22\xaf\x5f\xbf\xfe\x6c\x8d\xd2\x28\x00\x80\x80\
+\x90\x59\x74\xdd\x96\x73\xa6\x99\x88\x71\x9c\x05\x00\x30\x91\xed\
+\x11\x41\x63\x02\x93\x44\xff\xe3\x03\x00\xc8\x0c\x0c\x88\x0d\xd7\
+\x9d\x0a\x60\x39\x0e\xee\x1d\x1e\x96\x0e\x6b\xda\x26\x9d\x90\xa4\
+\x88\x50\x6d\xb9\x20\x74\x6f\x0b\x85\x7e\x15\x11\x72\xcb\x84\x48\
+\x23\x84\x48\x63\x00\xcc\x7b\xf7\x42\x8d\x77\xc1\x0b\xe9\x8d\x77\
+\x07\x07\x25\xd7\x43\xe4\xed\x00\x1a\x18\x19\x69\x19\xe1\x79\xf1\
+\xb1\x4c\xe6\x97\xc5\x81\x80\x81\x00\xa0\x0e\xd0\x3a\x3a\x56\xd4\
+\x5b\x18\x35\x5b\xbb\xf1\xc6\xd3\xc6\x4b\xa6\x19\x69\xf8\x7c\xce\
+\x14\x00\xb5\x54\x2a\xd9\x00\x77\x6d\xdc\xb6\x8d\x07\x80\x35\x96\
+\xa7\x75\xe3\xc9\x08\x21\x60\x00\x80\x18\x43\x13\x2f\xe1\xf1\x4d\
+\x88\x8e\xe7\x35\x19\x41\xbf\xae\xdb\x0c\xe3\x4b\x53\x00\x88\x28\
+\x3e\x62\x13\x72\x7f\xb1\x58\x8c\xc1\x34\x86\x10\x62\xc9\x64\x72\
+\x8f\x24\x49\x1b\x01\x21\xe2\xf5\x31\x00\xb0\x2c\xab\xab\x54\x2a\
+\x7d\x38\x53\x7e\x3a\x9d\x2e\xfb\x38\xee\xbc\xb7\x43\x0a\x63\x6c\
+\x4e\xe7\xc0\xfd\xfb\xf7\xc7\x42\xa1\xd0\xd9\x64\x32\x19\x6c\xe6\
+\x1f\x1a\x1a\xd2\x1c\xc7\xd9\x90\xcf\xe7\x6b\x73\xa9\x87\x10\x52\
+\xe6\x7c\x20\xc9\xe5\x72\x3b\x02\x81\xc0\x77\xb1\x58\x2c\x3c\x5d\
+\x4c\x24\x12\x49\x00\xc0\x67\xed\xed\xed\xcb\xe6\x5a\x77\xc6\x0e\
+\xec\xdd\xbb\x37\x22\x8a\xe2\x21\x00\xd8\x80\x10\x0a\x8b\xa2\x38\
+\x30\x5b\x41\x42\x88\xdf\xb2\xac\x2c\x42\x48\x03\x80\x4e\x4a\xe9\
+\x9b\x1d\x1d\x1d\xe7\x9a\x8a\x23\xa4\x4c\x0b\x50\x2a\x95\xb8\xce\
+\xce\x4e\xbe\xbb\xbb\x5b\x11\x45\xd1\x45\x08\x11\x4d\xd3\xb8\x4a\
+\xa5\x82\x6b\xb5\x1a\x36\x4d\x13\xb9\xae\x0b\x00\x80\x38\x8e\x63\
+\xa2\x28\x32\x59\x96\xa9\xa2\x28\x34\x1a\x8d\x52\x49\x92\x50\xb9\
+\x5c\xf6\x2d\x59\xb2\xc4\xdc\xb2\x65\x8b\x99\x4e\xa7\x49\x33\x80\
+\x89\x8f\xd0\x34\x4d\x54\x28\x14\x78\x55\x55\x39\x55\x55\xf9\xb1\
+\x67\xbe\x50\x28\x70\xaa\xaa\xfa\x55\x55\xe5\x55\x55\xe5\xe1\xdf\
+\x8d\x8e\xf3\xdc\x01\x00\x28\x00\x90\xf1\x7b\x22\x91\x20\xe9\x74\
+\xda\x4d\xa5\x52\x6e\x2a\x95\x92\x7a\x7b\x7b\x7d\xa9\x54\xca\xf5\
+\xac\x91\x48\x24\x42\x01\x3c\x87\x52\x4d\xd3\x90\x61\x18\xa8\x5a\
+\xad\xe2\x7a\xbd\x8e\x6d\xdb\x46\xae\xeb\x22\x84\x10\x08\x82\xc0\
+\x82\xc1\x20\x8d\xc7\xe3\x04\x63\x4c\x00\xc0\x05\x80\x06\x00\x58\
+\x63\x97\x33\xb6\x46\xc2\xe1\x30\x51\x14\x85\x0a\x82\xc0\x10\x42\
+\x40\x29\x05\xdb\xb6\x91\x69\x9a\xb8\x5a\xad\x82\x61\x18\xa0\xeb\
+\xfa\xa4\x7d\x62\xd2\x08\xfa\xfb\xfb\x61\x78\x78\x18\x97\xcb\x65\
+\xa4\x69\x1a\xd6\x75\x1d\x57\x2a\x15\xce\x30\x0c\x5c\xaf\xd7\xf1\
+\xe8\xe8\x28\x67\x59\x16\xd7\x68\x34\x38\x4a\x29\x30\xc6\x00\x63\
+\x4c\x7d\x3e\x1f\xf5\xfb\xfd\x44\x92\x24\x2a\xcb\x32\x09\x85\x42\
+\x34\x1c\x0e\xd3\x48\x24\x42\xa3\xd1\x28\x8d\xc5\x62\x74\xdd\xba\
+\x75\x93\x7e\xdf\xe3\x23\x90\xbd\x1b\xc5\x1c\x8c\x8c\x5d\x33\x19\
+\xe7\x19\xcf\x4c\x26\xff\x03\x5f\x76\x6c\xdf\xcf\xf6\x76\x77\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x05\xdc\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x05\x59\x49\x44\
+\x41\x54\x58\x85\xc5\x96\x7d\x88\x14\x65\x1c\xc7\x7f\xcf\x33\xb3\
+\xb3\x33\x3b\xbb\xb3\xef\xde\xe9\xbe\x1c\xa6\x69\x92\x52\x84\x89\
+\x60\xa9\x89\x65\x05\x52\x84\x82\x68\x6f\x9a\x78\x7f\x6c\xfd\x51\
+\x41\x7f\x04\x45\x04\x41\x14\xd2\x5f\x9b\x70\xa4\x24\x04\xda\x0b\
+\x8a\x51\x94\x85\x51\x60\xfd\xe3\x65\x45\xa7\x5e\x7a\x68\x77\xb7\
+\x73\xb7\xeb\xdd\xde\xcc\xce\xee\xde\xbc\xec\x3c\xcf\xd3\x1f\xdd\
+\x9d\x73\xdd\xde\x8b\xde\x49\x3f\x18\x66\x78\x7e\x2f\xdf\xcf\xfc\
+\x7e\xc3\x33\x0f\x02\x80\xc5\x00\x50\x87\xff\xc7\x64\x1e\x00\xea\
+\x8c\x31\x23\x97\xcb\x05\x09\x21\xf7\x21\x84\xf0\xed\x54\x64\x8c\
+\x51\x8e\xe3\xce\xe7\xf3\xf9\x1a\x42\x08\xf8\x71\x47\x80\xd2\xaf\
+\xdb\x77\xef\x8e\x0b\x92\xc4\xcf\x54\x60\xbe\x66\x56\xab\x76\xc7\
+\xf1\xe3\x43\x00\xb0\x15\x00\x6e\x00\xac\x59\xb9\x52\x59\x4e\x69\
+\x0f\x1c\x3c\x78\xf6\x76\x08\x7f\x3b\x38\x98\x7c\xe7\xe2\xc5\x8d\
+\x1d\xf9\x7c\x63\x79\x36\xab\x8c\xaf\x4f\x00\x20\x84\x00\x0c\xa3\
+\x06\x5d\x5d\xc6\x42\x89\x6a\x84\xf0\x7b\x55\x75\xeb\x99\x7a\x7d\
+\x73\x83\x31\xff\x26\x59\xfe\x71\x55\x22\x61\xff\xd4\xd3\x93\x9e\
+\x02\xb0\x90\x56\x26\xc4\xf7\xe0\xb5\x6b\xfb\xae\x39\xce\x0a\x8b\
+\xb1\x20\x00\x40\x92\xe7\x0b\xa7\xdb\xda\x4e\x01\xc0\xa3\xde\xd8\
+\xdb\xf2\xc1\x29\x18\xbb\x2d\x3c\x3f\x6c\x33\x26\x03\x00\x0b\x62\
+\xac\xff\xbc\x74\xe9\xc1\x66\xb1\x0b\xde\x81\x0b\xb6\x2d\x3f\xd9\
+\xd7\xb7\xaf\xc7\x71\x56\x87\x39\x6e\xc8\x61\x4c\x7c\x6b\xd1\xa2\
+\xc3\x77\x0a\xc2\x68\xb3\xf8\x05\xed\xc0\xa1\x91\x91\x3b\xd6\x5f\
+\xbd\xfa\x46\x8f\xe3\xac\x5e\xe5\xf7\x9f\x3f\xd3\xd6\xf6\xde\xc3\
+\xb2\x7c\xe6\xd5\x78\xfc\xf2\x74\x39\x0b\xd6\x81\x9d\xfd\xfd\x5b\
+\x4f\x18\xc6\x53\x00\xc0\x76\x85\xc3\x9f\x1e\x4b\xa7\x7f\x18\xa5\
+\x14\x9f\xca\x66\xbf\x99\x29\x6f\xde\x00\x57\x1c\x27\xb0\xbd\xaf\
+\xef\xb9\xbf\x6c\xfb\x5e\x05\xe3\xf2\xfb\xad\xad\x1d\x07\xa2\xd1\
+\xbf\x01\x00\x02\x18\xd3\xd9\xf2\xe7\x05\x70\x44\xd3\xda\x5e\x2e\
+\x16\x0f\x18\x94\x26\x56\x08\xc2\x1f\x5f\x66\xb3\x1f\xaf\xf4\xfb\
+\x9b\xce\x7a\xc1\x01\x9e\x2e\x14\x36\x1f\xab\x54\x76\x02\x00\xde\
+\xa1\x28\x5f\x7c\x9e\xc9\x7c\x7f\x2b\x75\x6e\x1a\xa0\xaf\xd1\x10\
+\x1f\xef\xed\x7d\xe6\x82\x6d\xaf\x0d\x62\xac\xbd\xdb\xd2\xd2\x91\
+\x8b\xc5\xae\xde\x8a\xf8\x4d\x03\x7c\xa2\xeb\xe9\x97\x8a\xc5\x76\
+\x9d\x90\x45\xcb\x04\xa1\xeb\x54\x36\x7b\xe4\x6e\xbf\x7f\x5e\x7f\
+\xd2\x59\x01\x6a\x94\x72\x41\x8c\xc9\x0b\xaa\xfa\xc0\xd1\x4a\x65\
+\x17\x65\x8c\x7b\x22\x14\x3a\x79\x22\x9b\x3d\x8d\x01\xd8\x7c\xc4\
+\x67\x05\xd8\x53\x28\x3c\xf4\x7c\x24\xf2\xe7\x6b\xa5\xd2\xf6\xdf\
+\x2d\x6b\xbd\x8c\xb1\xfe\x76\x4b\xcb\x47\xaf\xc4\xe3\x57\xe6\x2b\
+\x3c\x2b\xc0\x51\x5d\xcf\x9c\x30\x8c\xed\xa7\x6b\xb5\x4d\x65\x42\
+\x16\x2f\x15\x84\x4b\x27\x33\x99\xc3\xf7\x88\x62\x75\xa1\xc4\x27\
+\x01\x58\xb6\x8d\x2f\xab\xaa\xa4\x9b\x66\xb8\x42\x88\xef\xc5\xc1\
+\xc1\x9c\xcd\x58\xc0\x26\x24\xb0\x56\x92\xce\x7e\xd0\xda\xfa\x95\
+\xcb\x18\xfa\xcd\xb2\x42\x00\x37\xb6\x50\xef\x18\x30\x42\x6c\x06\
+\x1f\x00\x00\x44\x74\xdd\x47\x29\x45\x53\x00\x6c\xdb\xc6\x3d\xf5\
+\x7a\x60\xc0\xb2\x22\xaf\x5f\xbf\xfe\x6c\x8d\xd2\x28\x00\x80\x80\
+\x90\x59\x74\xdd\x96\x73\xa6\x99\x88\x71\x9c\x05\x00\x30\x91\xed\
+\x11\x41\x63\x02\x93\x44\xff\xe3\x03\x00\xc8\x0c\x0c\x88\x0d\xd7\
+\x9d\x0a\x60\x39\x0e\xee\x1d\x1e\x96\x0e\x6b\xda\x26\x9d\x90\xa4\
+\x88\x50\x6d\xb9\x20\x74\x6f\x0b\x85\x7e\x15\x11\x72\xcb\x84\x48\
+\x23\x84\x48\x63\x00\xcc\x7b\xf7\x42\x8d\x77\xc1\x0b\xe9\x8d\x77\
+\x07\x07\x25\xd7\x43\xe4\xed\x00\x1a\x18\x19\x69\x19\xe1\x79\xf1\
+\xb1\x4c\xe6\x97\xc5\x81\x80\x81\x00\xa0\x0e\xd0\x3a\x3a\x56\xd4\
+\x5b\x18\x35\x5b\xbb\xf1\xc6\xd3\xc6\x4b\xa6\x19\x69\xf8\x7c\xce\
+\x14\x00\xb5\x54\x2a\xd9\x00\x77\x6d\xdc\xb6\x8d\x07\x80\x35\x96\
+\xa7\x75\xe3\xc9\x08\x21\x60\x00\x80\x18\x43\x13\x2f\xe1\xf1\x4d\
+\x88\x8e\xe7\x35\x19\x41\xbf\xae\xdb\x0c\xe3\x4b\x53\x00\x88\x28\
+\x3e\x62\x13\x72\x7f\xb1\x58\x8c\xc1\x34\x86\x10\x62\xc9\x64\x72\
+\x8f\x24\x49\x1b\x01\x21\xe2\xf5\x31\x00\xb0\x2c\xab\xab\x54\x2a\
+\x7d\x38\x53\x7e\x3a\x9d\x2e\xfb\x38\xee\xbc\xb7\x43\x0a\x63\x6c\
+\x4e\xe7\xc0\xfd\xfb\xf7\xc7\x42\xa1\xd0\xd9\x64\x32\x19\x6c\xe6\
+\x1f\x1a\x1a\xd2\x1c\xc7\xd9\x90\xcf\xe7\x6b\x73\xa9\x87\x10\x52\
+\xe6\x7c\x20\xc9\xe5\x72\x3b\x02\x81\xc0\x77\xb1\x58\x2c\x3c\x5d\
+\x4c\x24\x12\x49\x00\xc0\x67\xed\xed\xed\xcb\xe6\x5a\x77\xc6\x0e\
+\xec\xdd\xbb\x37\x22\x8a\xe2\x21\x00\xd8\x80\x10\x0a\x8b\xa2\x38\
+\x30\x5b\x41\x42\x88\xdf\xb2\xac\x2c\x42\x48\x03\x80\x4e\x4a\xe9\
+\x9b\x1d\x1d\x1d\xe7\x9a\x8a\x23\xa4\x4c\x0b\x50\x2a\x95\xb8\xce\
+\xce\x4e\xbe\xbb\xbb\x5b\x11\x45\xd1\x45\x08\x11\x4d\xd3\xb8\x4a\
+\xa5\x82\x6b\xb5\x1a\x36\x4d\x13\xb9\xae\x0b\x00\x80\x38\x8e\x63\
+\xa2\x28\x32\x59\x96\xa9\xa2\x28\x34\x1a\x8d\x52\x49\x92\x50\xb9\
+\x5c\xf6\x2d\x59\xb2\xc4\xdc\xb2\x65\x8b\x99\x4e\xa7\x49\x33\x80\
+\x89\x8f\xd0\x34\x4d\x54\x28\x14\x78\x55\x55\x39\x55\x55\xf9\xb1\
+\x67\xbe\x50\x28\x70\xaa\xaa\xfa\x55\x55\xe5\x55\x55\xe5\xe1\xdf\
+\x8d\x8e\xf3\xdc\x01\x00\x28\x00\x90\xf1\x7b\x22\x91\x20\xe9\x74\
+\xda\x4d\xa5\x52\x6e\x2a\x95\x92\x7a\x7b\x7b\x7d\xa9\x54\xca\xf5\
+\xac\x91\x48\x24\x42\x01\x3c\x87\x52\x4d\xd3\x90\x61\x18\xa8\x5a\
+\xad\xe2\x7a\xbd\x8e\x6d\xdb\x46\xae\xeb\x22\x84\x10\x08\x82\xc0\
+\x82\xc1\x20\x8d\xc7\xe3\x04\x63\x4c\x00\xc0\x05\x80\x06\x00\x58\
+\x63\x97\x33\xb6\x46\xc2\xe1\x30\x51\x14\x85\x0a\x82\xc0\x10\x42\
+\x40\x29\x05\xdb\xb6\x91\x69\x9a\xb8\x5a\xad\x82\x61\x18\xa0\xeb\
+\xfa\xa4\x7d\x62\xd2\x08\xfa\xfb\xfb\x61\x78\x78\x18\x97\xcb\x65\
+\xa4\x69\x1a\xd6\x75\x1d\x57\x2a\x15\xce\x30\x0c\x5c\xaf\xd7\xf1\
+\xe8\xe8\x28\x67\x59\x16\xd7\x68\x34\x38\x4a\x29\x30\xc6\x00\x63\
+\x4c\x7d\x3e\x1f\xf5\xfb\xfd\x44\x92\x24\x2a\xcb\x32\x09\x85\x42\
+\x34\x1c\x0e\xd3\x48\x24\x42\xa3\xd1\x28\x8d\xc5\x62\x74\xdd\xba\
+\x75\x93\x7e\xdf\xe3\x23\x90\xbd\x1b\xc5\x1c\x8c\x8c\x5d\x33\x19\
+\xe7\x19\xcf\x4c\x26\xff\x03\x5f\x76\x6c\xdf\xcf\xf6\x76\x77\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x88\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x05\x49\x44\
+\x41\x54\x58\x85\xc5\x97\xcb\x6b\x14\x41\x10\xc6\x7f\xb5\xbb\x9a\
+\x68\x74\x34\x04\x11\xf1\x99\x68\x04\x0f\x1a\xc4\xb8\x33\x89\xaf\
+\x83\x08\x8a\x06\xf1\xa0\x87\x78\x51\x44\xc5\x08\xb9\x28\x78\x57\
+\x14\xd4\x83\xde\x44\x14\xbd\xf8\x0f\x48\xc0\x83\x37\xf1\xb0\x0f\
+\xf1\xa6\xf8\x00\x25\x44\x22\x0a\x1a\x34\xb8\x1a\xd7\xec\x94\x87\
+\xee\x89\x93\x71\x36\x0f\x98\x6c\x0a\x8a\xde\xe9\xaa\xad\xfa\xba\
+\xea\xeb\x9e\x1e\x01\x96\x01\x25\x66\x47\x1a\x32\x40\x49\x55\x87\
+\x67\x23\xbb\x88\x90\x9a\x8d\xc4\x61\xa9\x0a\x40\x44\x8e\x8b\x48\
+\x63\x74\xbe\xe0\x79\x2b\xf2\x1d\x1d\xdb\xc2\x73\xcf\xb2\xd9\xdd\
+\x45\xd7\x6d\xaa\x12\x67\xa1\x88\x9c\x10\x91\xd8\x5c\xb1\x93\x22\
+\xb2\x0b\xb8\x07\xac\x8e\x31\x0f\x8b\xea\xfd\xa2\xeb\xee\xb7\x80\
+\x7a\x54\xe4\xe2\xcf\xf9\xf3\xbf\x57\x59\x4b\x13\x70\x17\xe8\x8a\
+\xcd\x05\x38\x51\x0e\x88\xc8\x63\x60\x0f\xd0\xa8\xaa\xdf\xa2\x7f\
+\xca\x75\x76\x6e\x4e\xf9\x7e\x9f\x8a\x9c\x14\xd5\x3b\x29\xdf\xef\
+\xd8\x5a\x2c\x7e\xa8\xb2\x98\x0c\xf0\x1b\x78\xae\xaa\xd9\x88\xcd\
+\xc1\x02\x20\x50\xa0\x15\xf0\x81\x1f\xe1\xf9\xa8\xe6\x3c\xaf\x37\
+\xef\xba\x9a\x77\xdd\x83\x13\xf9\xd9\x98\x9f\x01\x05\xb6\x44\xe6\
+\x9d\xb8\x16\x9c\xb7\xe3\x60\xdc\x8a\x42\xe2\x02\x1f\xed\x38\x99\
+\x0c\xd8\xf1\x42\xd4\x30\x0e\x80\x25\xdd\x31\x4c\x6b\xde\x55\x8b\
+\x56\xf0\xbc\x53\xa2\xba\x56\x54\x37\x89\xea\x91\x5c\x67\xe7\xde\
+\x49\x00\xbc\xb1\xe3\x21\x11\x59\x5e\x15\x00\x70\x1a\xa8\x00\xa3\
+\xc0\xeb\xb8\x48\x45\xd7\x6d\x03\x2e\xa5\x7d\xbf\x3b\x5b\x28\x7c\
+\xf5\x53\xa9\xa3\x29\xdf\xbf\x57\xf0\xbc\x15\x13\x00\x78\x0b\xfc\
+\xb1\xda\x1b\x0b\x40\x44\xe6\x60\xca\x3f\x0f\x43\x9a\xfe\xb8\x48\
+\x29\xdf\x1f\x49\x57\x2a\x3b\xdb\x8b\xc5\xf7\x00\x5e\x2e\x57\x10\
+\xd5\x7d\x6a\xc8\x56\x4d\xfa\x6d\xf2\x79\xc0\x59\x11\x69\x08\x1b\
+\x1d\x4b\x88\x6e\xe0\x27\x86\x2c\x25\xa0\x6b\x32\x72\x4d\x55\x81\
+\x1d\x40\x39\x14\xbb\x27\x20\x61\x18\xc0\x4b\xeb\xa0\x98\x36\x6c\
+\x4c\x10\xc0\xca\x50\x6c\xc5\x90\x52\x00\x27\x63\xcb\xbf\x03\xb3\
+\xfd\xc2\xad\x39\x23\x22\xe5\x09\xca\x3a\x1d\x11\x9b\x58\xec\xf3\
+\x12\xe0\x00\xf0\x24\x28\xc3\x23\x4c\x8f\xb4\x46\x5a\x01\x72\x36\
+\x37\x6d\x18\xd6\xd7\x2a\x79\xa0\xa3\xc0\xf6\x34\x70\x0e\x68\x07\
+\x26\x62\xf1\x4c\x48\x05\xd0\x14\xa6\x0f\xb5\x4e\x0e\xe6\xb8\x1f\
+\xe3\xc0\x6b\x6a\xdf\x82\x41\x60\x71\xb0\xf2\x2b\xc0\x6d\xa0\x3e\
+\x84\x70\xc0\x3a\x26\x25\xab\xf8\xb7\x0b\x7e\x01\x57\x31\x55\xc0\
+\x01\xe6\x02\x43\x11\x84\xad\x09\x9e\x03\x4b\x22\xb1\x4b\xc0\x02\
+\x82\xb7\xa1\xaa\x96\x81\x1b\xc0\x88\x45\x38\x02\xac\x49\x70\xf5\
+\x6b\x30\xa4\x0b\x62\xdf\x56\xd5\x1f\x30\xfe\x65\x74\x0b\x48\xdb\
+\xdf\x95\x19\x00\x10\x1c\x6a\x73\x80\x9b\x81\x61\x0c\x80\xaa\x7e\
+\x01\x1e\x58\xc7\x0c\xd0\x9c\x20\x80\x66\x4c\xff\x47\x81\x3e\x55\
+\x0d\xee\x07\xff\xbd\x8e\xaf\x63\xaa\x50\x07\xac\x4b\x10\x40\x0b\
+\x86\xe0\x8a\x21\xdf\x98\x8c\x03\xa0\xaa\xaf\x80\xa7\xf6\x71\x7d\
+\x82\x00\x36\xd8\xf1\x85\xaa\xe6\xa3\xc6\xe8\x9d\x70\x8f\x45\x3a\
+\x94\xe0\x2e\x08\xb6\xf4\xe1\xe8\x9d\xf0\x3f\x00\xd6\xf0\x0e\xb3\
+\x47\xeb\x13\x02\x50\x06\x3e\x01\xe9\xa9\x5c\x4a\x01\x2e\x63\x48\
+\x13\xf7\x5d\x30\x2d\x11\x91\xa5\x18\xe6\x5f\x53\xd5\x4a\x9c\x4f\
+\x5c\x05\xea\x80\x87\x40\x4b\x02\xab\x5f\x06\xf4\x01\x8b\x62\x6c\
+\x4e\xec\x87\x49\xad\x44\x44\x9c\x0c\xd0\x20\x22\x93\x3a\xcf\x90\
+\x34\xfc\x05\xec\x55\xee\xee\x8b\xa5\x1a\x87\x00\x00\x00\x00\x49\
+\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\xc2\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x03\x89\x49\x44\x41\x54\x78\x9c\x62\x64\x40\x03\xa2\xa2\
+\xa2\x16\xc9\xc9\xc9\x89\x6c\x6c\x6c\xcc\x0c\x0c\x0c\x0c\xff\xff\
+\xff\x67\x60\x62\x62\x62\x7c\xf3\xe6\x0d\xf3\xd2\xa5\x4b\x57\x7c\
+\xf8\xf0\x61\x07\xb2\x7a\x00\x00\x00\x00\xff\xff\xc2\x40\xb6\xb6\
+\xb6\xc5\xff\xb1\x80\x2f\x5f\xbe\xfc\xdf\xb6\x6d\xdb\x4b\x39\x39\
+\x39\x1f\x64\xf5\x00\x00\x00\x00\xff\xff\x62\x42\x37\xe0\xff\xff\
+\xff\xcc\x0c\x0c\x0c\x0c\x7f\xff\xfe\x65\xf8\xfb\xf7\x2f\xc3\xef\
+\xdf\xbf\x19\x7e\xfd\xfa\xc5\xf0\xf6\xed\x1b\x06\x15\x15\x55\xb1\
+\x5d\xbb\x76\xcd\x47\x36\x04\x00\x00\x00\xff\xff\x64\xcc\x31\x01\
+\x80\x30\x0c\x00\xb0\x80\x06\xce\x9e\xf3\x83\x44\x1c\x0c\x29\xdd\
+\xf8\x87\x95\x22\x80\x08\xc8\x2f\x40\x41\xe6\x90\x39\xcc\xf9\xa8\
+\x2a\x6c\xde\xb5\x44\xc4\xd1\xef\x7e\xb5\xd6\x4e\xec\x1f\x00\x00\
+\x00\xff\xff\x00\x41\x00\xbe\xff\x01\x32\x32\x31\x11\x18\x18\x18\
+\x6f\x0b\x0d\x0e\x17\xff\xfe\xfe\xfe\xf2\xf1\xf2\x31\xb9\xb9\xb8\
+\x39\xf7\xf7\xf7\x00\x00\x01\x00\x00\xff\xfe\xff\x00\x00\x00\x00\
+\x00\xf5\xf6\xf6\x00\xc9\xc8\xc7\x00\xce\xce\xcf\x00\x18\x19\x18\
+\x00\xfe\xfd\xfe\xf5\x7b\x7b\x7b\x5b\x00\x00\x00\xff\xff\x62\x71\
+\xf7\xf4\x9c\xdd\x5a\x57\x19\x0c\xb3\x7e\xf9\xca\x35\x0c\x0c\x0c\
+\x0c\x0c\x57\xaf\x5e\xc3\x70\x9a\x9c\x9c\x1c\xc3\xc7\x8f\x9f\x18\
+\x3e\x7f\xfe\xc4\xa0\xa0\xa0\xc8\x2d\x2b\x2b\x6b\x00\x00\x00\x00\
+\xff\xff\x24\xc5\xb1\x11\x80\x20\x0c\x40\xd1\xcf\x9d\x0d\x16\x0c\
+\x90\x56\xfa\xac\xe4\x40\x0e\xc5\x24\xdc\x31\x44\x80\xc6\xc4\xc2\
+\xd7\xbc\x63\xce\x05\x40\x6a\xcf\x7f\x1f\xc0\x4d\xad\x17\x09\x08\
+\x82\xf0\xe0\x75\x67\xef\x85\xaa\x62\x66\x88\x08\xe5\xcc\xf9\x03\
+\x00\x00\xff\xff\x62\xf9\xf7\x1f\xe2\xc4\x3f\x2e\x95\x0c\x0c\x0c\
+\x0c\x0c\x7f\x5f\xaf\x62\x60\x60\x60\x60\xb8\x73\xe7\x2e\x24\x5a\
+\x45\x04\x18\xae\x9f\x39\xc1\xf0\xee\xe5\x73\x14\xd7\xf0\x6b\xc8\
+\xfc\x54\xe7\xf9\xa5\x04\x00\x00\x00\xff\xff\x62\x81\xea\x67\x78\
+\x78\xe1\x38\xc3\xde\xed\x3b\x19\x3e\x7f\xfb\xce\xb0\x69\xe1\x57\
+\x86\xdf\xbf\x7f\x33\x30\x30\x30\x30\x7c\x16\x97\x60\xb0\x37\xd6\
+\x60\x60\x60\xd0\x40\x31\x80\xf3\xf4\x8c\xdf\xdf\x7e\xfd\xfb\x06\
+\x00\x00\x00\xff\xff\x62\xf9\xff\xff\x1f\xc4\xe6\xe7\x37\x18\x62\
+\xa3\x42\x30\xfc\xcd\xfa\xe4\x30\xc3\xbf\x27\x4f\x19\x18\xfe\xfc\
+\x64\xf8\xff\xfb\x3b\xc3\xbf\x5f\xdf\x18\xd8\xbe\xbe\xfa\xf2\x49\
+\x40\xeb\xdf\xcb\x1f\xe7\x9e\x02\x00\x00\x00\xff\xff\x04\xc1\x41\
+\x0a\x80\x20\x10\x40\xd1\x6f\x4a\x41\x1d\xa1\x13\xb4\xeb\xfe\x57\
+\x68\xdb\x3e\xf1\x00\x41\x58\x90\x93\xce\xf4\x5e\x30\x1c\x29\x45\
+\xfa\xeb\x20\x6c\x3b\xe9\xf1\xcc\xcb\x4a\x79\x6f\x68\x1f\xa2\x05\
+\x6b\x82\x35\xc1\x69\xc5\x54\xa9\x7e\x0a\x99\xf1\x94\x6e\xc8\x3f\
+\x00\x00\x00\xff\xff\x2c\xd0\x51\x0a\x80\x20\x10\x45\xd1\x3b\xcf\
+\xc1\x4d\xb8\xff\x75\x05\x41\xff\x9a\x10\x52\x63\xf6\xd3\x59\xc2\
+\xf1\x85\x68\xc7\x46\xe9\x3b\x11\x0d\xaf\x95\x99\x4f\xee\xab\x83\
+\x19\xc8\x40\xe2\x1f\x85\x05\xf1\x0c\x4f\xb9\xa4\x57\x9a\x1f\x00\
+\x00\x00\xff\xff\x62\xf9\xf7\xf7\x0f\xcb\x9f\x47\x67\x19\xf8\x5e\
+\x5f\x60\xf8\xc7\xf0\x9f\x81\xe7\x1f\x33\x03\xcb\xa7\x67\x0c\x3c\
+\x7f\x7e\x42\x34\x33\x30\x42\x0c\x62\xe3\x60\x60\x60\xf8\xcf\xc0\
+\xf8\x9f\x81\xe1\x17\x23\x1b\xc3\x2f\xb3\x84\xaf\xff\xff\x6f\x65\
+\x06\x00\x00\x00\xff\xff\x62\x79\x71\xf3\xc2\xc7\x07\x2c\xcc\x1f\
+\x64\x39\x7e\x0a\xfc\x65\x65\x67\xf8\xf1\x8f\x81\xe1\xdd\xab\x77\
+\x0c\x8c\xcc\x2c\x50\xdb\x99\x19\x18\x98\x18\x18\x18\x18\x7e\x33\
+\x30\xfc\xff\xcf\xc0\xcc\xc8\xc0\x70\xeb\xf5\x9f\x1f\xcb\xca\x2b\
+\x5e\x5c\xbd\x7a\xf5\x01\x00\x00\x00\xff\xff\x62\xe4\x62\x61\xb4\
+\xe6\x67\x67\x92\x65\x67\x61\x92\xfe\xf7\x9f\xe1\xef\xdf\xff\x0c\
+\x6c\x7f\xff\x33\x70\xfe\x87\x38\x1a\x01\xa0\x5e\x60\x64\x64\x60\
+\xfa\xf5\xe7\xff\xa7\x77\xdf\xff\x9c\x62\x60\x60\xb8\x02\x00\x00\
+\x00\xff\xff\x62\x60\x60\x60\x60\xc1\x08\x7a\xc2\x80\x89\x81\x81\
+\x81\x8d\x81\x81\x81\x11\x00\x00\x00\xff\xff\x03\x00\xed\x15\x52\
+\x60\x15\x7d\xfb\x19\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
+\x82\
+\x00\x00\x05\x1c\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x04\x99\x49\x44\
+\x41\x54\x58\x85\xbd\x57\x3d\x6f\x13\x59\x14\x3d\xf7\xcd\x78\xec\
+\xf5\x38\xb1\x63\xc2\x8e\xbc\x1b\xc0\xb0\x2c\x34\x0b\x4b\x44\xc3\
+\x92\x1f\x00\x15\xa4\xa6\x45\x42\x48\xfc\x05\x1a\x2a\x1a\x52\x21\
+\x21\x9a\x28\x4a\x43\xc1\x56\xac\x44\x81\xf8\x09\x54\x91\x00\x29\
+\x7c\x44\x41\x68\x09\xb6\x13\x7b\x27\x09\x19\xcf\xbc\x8f\xbb\x85\
+\xc7\x66\xc6\x4e\xd8\xd1\x4a\xe6\x4a\x23\xf9\xd9\x6f\xee\x39\xef\
+\xdc\xf3\xee\x7b\x26\x00\x35\x00\x5f\x6e\xdf\xbe\xfd\xcb\x89\x13\
+\x27\x66\xf0\x1d\xe2\xd5\xab\x57\x1f\x16\x16\x16\xd6\x01\xb8\x00\
+\x30\x79\xff\xfe\xfd\xbf\xa2\x28\xd2\x4a\x29\x33\xee\x47\x6b\x6d\
+\xc2\x30\xd4\x77\xef\xde\x7d\x02\x60\x52\x9c\x3d\x7b\xd6\x3d\x79\
+\xf2\xe4\x5c\x2e\x97\x83\x94\x72\xec\xab\x97\x52\x1a\xc7\x71\x50\
+\xaf\xd7\xff\x38\x77\xee\x5c\xc9\xce\xe7\xf3\x76\xb1\x58\x34\xc6\
+\x98\x50\x6b\x9d\x2b\x14\x0a\x62\x9c\x04\x82\x20\x90\x8e\xe3\x50\
+\xb1\x58\x54\xb9\x5c\xce\xb2\x01\xc0\x18\xc3\xcc\xac\xa4\x94\x16\
+\x00\x1a\x27\x01\xa5\x94\x62\x66\xc1\xcc\x00\x00\x1b\x00\xe2\x81\
+\xee\xfd\xc6\xe3\xc4\x87\x94\x52\x33\x33\x1b\x63\x78\x40\xc0\x18\
+\x03\x66\x56\x4a\x29\x03\x60\xac\x0c\xa4\x94\x1a\x00\x1b\x63\x90\
+\x24\xc0\xcc\x6c\xa4\x94\xfc\x3d\x08\x30\x33\x46\x4a\xc0\xcc\x3a\
+\x56\x60\xac\x11\x2b\x80\xe1\x12\x30\x00\xf5\x3d\x14\x88\xa2\x68\
+\x54\x81\xd8\x03\x5a\x4a\x99\xf2\x40\xbb\xdd\x16\x3b\x3b\x3b\xff\
+\x1b\xac\x50\x28\xc0\xf3\xbc\x94\xaa\x71\x09\x68\x44\x81\x78\x1b\
+\xa6\x56\x5f\xad\x56\x4d\xb5\x5a\xcd\x8e\xd8\x68\xd8\xe4\x38\x16\
+\x88\x00\xad\xc1\x42\xa8\xe1\x29\x51\x14\x69\x00\x64\x8c\xa1\x01\
+\x81\x21\x0f\x0c\x48\xb4\x5a\x2d\xea\x74\x3a\x99\xfb\xc2\xaf\x95\
+\x8a\x45\xf9\xfc\x60\x4c\x80\xcd\x8d\x06\xe0\x79\x03\x22\x71\x09\
+\xc8\x18\x63\x0d\x08\x24\x15\x48\x36\x82\xe9\xe9\x69\x9e\x9e\x9e\
+\xce\x04\x4e\x1f\x3f\xe6\xc8\xb2\x80\x20\x00\x98\x01\x21\xfa\x88\
+\x16\x33\x0f\x7a\x7c\x9f\x00\x33\xa7\x08\xec\xeb\x81\x46\xa3\x21\
+\x5a\xad\x56\x26\x05\x8e\xfa\x3e\x55\x8e\x1d\x03\x00\xb4\xd7\xd6\
+\x74\xc5\xf3\x2c\x51\x2a\x81\x94\x22\x4e\xe4\x4c\x94\xe0\xab\x07\
+\xb8\x17\x7a\xd8\x03\x9e\xe7\x19\xcf\xf3\x32\x29\x80\x95\x15\x8b\
+\x77\x77\x01\x00\x95\x6a\x95\x29\x0c\x7b\xa8\xdd\x6e\x6a\x5a\xac\
+\x80\x18\x6e\x44\x88\x4b\x90\x52\x60\x63\x63\x83\x36\x36\x36\x32\
+\x1d\x4e\x3f\x35\x1a\xa8\xc5\xe5\xda\xdb\xde\x16\x6e\xb9\x0c\x44\
+\x11\xd0\xed\xa6\xb6\x76\x18\x86\x3a\x3e\x0b\x46\x76\x81\x1e\xee\
+\x03\xb5\x5a\x8d\x6b\xb5\x5a\xb6\xe6\xb4\xbe\x0e\xac\xad\xd9\x00\
+\xe0\x12\x09\xc4\xdb\x97\x85\xd0\x43\x04\xd4\x7f\x29\x90\xc8\xb9\
+\x2e\xb2\x2a\x00\x66\x5c\x68\x36\x21\x1c\x07\xa0\x9e\x6d\x58\x29\
+\xe0\xf2\xe5\x54\x0d\xc2\x30\xd4\x3d\xc8\x21\x0f\x18\x63\x74\x14\
+\x45\xa9\x12\xd4\xeb\x75\x5d\xaf\xd7\x75\x26\x02\x00\xb0\xba\x9a\
+\xc3\xde\x9e\xd5\x1f\xd2\xc4\x84\xe2\x89\x89\x94\xaf\xba\xdd\xae\
+\x66\x66\x7d\x90\x02\xa9\x6d\xd8\x6c\x36\x69\x73\x73\x33\xf3\x05\
+\x65\x46\x6b\x2e\x77\x3a\x00\x11\x0c\xc0\x1f\x67\x67\xa3\xa3\x43\
+\xe7\x7b\xec\x01\x3d\xdc\x8a\x99\x99\xfb\x0a\x0c\xc2\x75\x5d\x06\
+\x90\x49\x81\xfc\xfb\xf7\xf6\xe4\xfa\xba\x05\xdd\x9b\x4e\x42\x50\
+\xb9\x54\x1a\xf1\x4f\x42\x81\xd1\xfb\xc0\xb0\x09\x5d\xd7\x85\xeb\
+\xba\xe9\x0c\xcd\xa6\x85\x95\x15\x1b\x9b\x9b\x44\x9d\x8e\x60\xdf\
+\x27\xda\xdd\x15\xdc\x6e\x0b\x28\xf5\xf5\x65\x22\x94\x97\x96\x8a\
+\x54\xaf\x6b\x9e\x9a\x32\x7c\xfe\xbc\xa4\xe3\xc7\xf5\x41\x25\x60\
+\x63\xcc\x48\x23\x4a\x45\x10\x10\x96\x97\x0b\x78\xfe\xdc\x41\x14\
+\x11\x00\x70\xdf\x6c\x94\xe8\x55\xfd\xcf\x44\x40\xab\x25\xf8\xf5\
+\x6b\x01\x22\xd0\xe3\xc7\x79\x9a\x9b\x8b\xf2\xdb\xdb\x76\xcf\x72\
+\x09\x05\xe2\x18\xdc\x52\xf6\x8d\x5b\xb7\x4a\x78\xf3\x66\x60\xb0\
+\x14\x50\xff\xab\x72\xd9\xb0\x6d\x33\x7c\x5f\x20\x3e\x6c\x92\xf3\
+\xf8\xc9\x13\x67\xee\xd0\xa1\x9f\x01\xfc\xdd\x7f\x27\x49\xe0\xe0\
+\xf8\xf0\x41\xe0\xc5\x0b\x6b\x90\xf0\xc8\x11\x8d\xad\x2d\x81\x20\
+\xf8\x8a\x3e\x33\xa3\x79\x79\x79\x17\xd5\x2a\x83\x19\x7c\xed\x5a\
+\x89\x56\x57\xed\x61\x92\x3f\x38\x4e\x2e\x99\x3a\x9b\xc3\x3d\x8f\
+\x39\x08\x98\x7d\x1f\xec\xfb\xe0\x97\x2f\x2d\xfe\xfc\x99\x06\xe3\
+\xd9\x59\x89\x47\x8f\x7a\xe0\x31\x20\x2d\x2d\x7d\xc1\x85\x0b\x11\
+\xb6\xb7\x01\xdf\xef\x3d\xae\x6b\x9e\x9e\x3a\xf5\x3e\x99\x3a\x9b\
+\x02\x85\x02\xd3\xd5\xab\x11\x2f\x2e\xe6\x53\x2b\x2a\x14\x18\x77\
+\xee\x04\x74\xe3\x46\xb4\xdf\x3b\x78\xf0\x60\x8f\x17\x17\x15\x5a\
+\x2d\x41\xa7\x4f\x6b\x5c\xbc\xa8\x76\x17\x16\x14\x80\x41\x29\xb3\
+\x11\x00\x80\x7b\xf7\x02\xd4\x6a\x06\x4f\x9f\xe6\x50\xa9\x30\xcd\
+\xcf\x4b\x5c\xb9\x22\x31\x35\xf5\xcd\x2b\x1c\x5d\xbf\x3e\x4a\x2e\
+\x11\xb6\x94\x52\xb7\xdb\x6d\x2e\x97\xcb\xbf\x07\x41\x50\x7a\xf7\
+\xee\x5d\xfe\xc0\xd9\xf3\xf3\xc0\xfc\x7c\xff\x6c\x27\x6c\x6d\x39\
+\xd8\xda\xca\xbc\x06\x00\x38\x7c\xf8\xf0\x4c\xb1\x58\x2c\xfb\xbe\
+\xdf\xd5\x5a\x1b\x02\x30\x79\xf3\xe6\xcd\x3f\xcf\x9c\x39\xf3\xa3\
+\x6d\xdb\x53\x4a\xa9\xb1\xfe\x33\xaa\x56\xab\xf2\xd3\xa7\x4f\xff\
+\xbc\x7d\xfb\x76\xe7\xe1\xc3\x87\x57\x09\x40\x2d\x9f\xcf\xef\x5d\
+\xba\x74\xe9\x37\xcb\xb2\x0a\xe3\x04\xef\x87\xd6\xba\xfb\xec\xd9\
+\xb3\x97\x61\x18\x16\xff\x05\xd5\xbd\xad\x4b\xfb\xbb\x2b\x61\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x8b\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\
+\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x03\x10\
+\x0f\x0d\x22\xc8\x06\x13\x97\x00\x00\x02\x0b\x49\x44\x41\x54\x58\
+\xc3\xed\xd7\xcf\x8b\x4e\x61\x14\x07\xf0\xcf\x9d\x5f\xd4\xd4\x2c\
+\xfc\x28\xbf\x53\x0a\x3b\x91\x8d\x8d\x51\x42\x11\x0b\x9a\x48\x64\
+\x61\x61\x81\x22\x59\xb1\x23\x1b\x45\x42\xca\x42\x29\x4d\xcc\x44\
+\xf9\x03\x14\x2b\xa3\x64\x89\x42\x46\xf9\x11\x0b\x66\x26\xc2\x88\
+\x63\xe1\x8c\x6e\xef\xbc\xef\x98\x85\x79\xdf\xcd\x3c\xf5\xdc\x73\
+\x9f\xf3\x7d\xce\x73\xbe\xf7\xdc\xd3\x39\xf7\x16\x98\x8d\x2f\x1a\
+\x33\xda\x5b\xd2\xf9\x50\x83\x08\x68\xa9\x93\x9f\xdd\xd8\x5f\xa1\
+\x7b\x87\x3d\x4d\x75\x22\xb0\x06\x2b\xd0\x56\x0d\xec\xa8\x03\x81\
+\x43\x08\x2c\xac\xf4\xdd\xa4\xc1\x63\x92\xc0\x24\x81\x49\x02\x93\
+\x04\xea\x45\x60\xcc\x9e\x33\x52\x8a\xaf\x67\xb9\x9c\xc8\x39\xaa\
+\x14\x97\x99\xdd\x46\xff\x04\x45\x60\x25\xd6\xfe\x2b\x02\x8d\x6f\
+\x46\xc1\x82\xe0\x7a\xf0\x20\x38\x19\xb4\x56\x3b\x2d\x58\x19\x9c\
+\x0f\xee\x06\x47\x82\x19\x25\xec\x60\xea\x2f\x07\xcb\xc7\xc3\xae\
+\xa3\x64\xfc\x28\xf8\x10\x5c\x0b\x22\x38\x5e\xc5\x79\x5b\xf0\x3a\
+\x78\x16\x5c\x0d\xbe\x06\x57\x12\xdb\x97\x76\xbd\x79\xd6\x70\x30\
+\x6b\xac\x08\xfc\xbd\x04\x2b\xd2\xf8\x68\xae\x1f\x46\x95\x9c\x08\
+\x56\x05\xf7\x83\xd5\xb9\xee\x49\x12\xcd\xc1\xd6\xe0\x74\xea\xb7\
+\xe5\x79\xdb\xc7\x4b\xa0\x2b\x0d\x76\xe6\xfa\x66\xf0\xab\xd6\x6b\
+\xc8\x3d\x53\x82\xe7\xc1\xcb\x0a\xfd\x96\xe0\x71\xf0\x24\x98\x36\
+\xde\x1c\x98\x99\x72\x30\xe5\x00\x0a\x4c\xaf\xe1\xbc\x0d\xb7\xb0\
+\x08\xc7\x2a\xe0\xf5\x98\x8b\x17\x98\x3a\xde\x42\x34\x50\x91\x13\
+\x1d\xc9\xfa\x63\x15\xe7\x4d\xb8\x86\x8d\x38\x52\xd0\x5d\xc6\x0b\
+\x0e\x60\x09\x36\x54\x21\x57\x93\xc0\xab\x94\xf3\x53\xce\xc1\xdb\
+\x82\xe1\x2a\x76\x67\xd1\x85\xc3\x05\x67\x4a\xc4\x0e\x05\x97\x4a\
+\x91\xfc\x5e\x2b\x82\xa3\x12\x21\x28\x82\xa7\xc1\x9b\xe0\x42\xe6\
+\xc3\x89\xc4\xf6\x06\xfd\xc1\xb2\xa0\x33\xb1\xe1\xa0\xaf\x34\xdb\
+\x83\x1d\x89\x75\x07\x77\xf2\xbe\x73\xac\x1c\x68\x29\x85\x2d\x82\
+\x4d\x38\x87\x75\xb8\x88\x53\x09\x0f\x65\x95\xfc\x8e\xa5\xb8\x57\
+\xe3\x61\x6e\xa0\x1d\xbb\xf0\x09\x1b\x8b\x3f\x7b\x57\x25\x3e\xaf\
+\xb4\xf7\x27\x06\x8b\x8c\xc0\xc8\x9f\x51\x2b\x9a\x27\xa0\x12\xf6\
+\x60\x73\x85\xee\x3d\x16\x57\x76\xa9\x1f\x39\xff\xf7\xe8\xcd\x9f\
+\x92\x3e\x7c\x4b\xdd\xe7\x7a\xf6\x82\x9a\xf9\xd7\xf0\x0f\x92\x96\
+\x4c\x9a\x46\x8d\xf6\xdf\x9b\x7c\xd8\x9a\x14\x52\xb6\xaa\x00\x00\
+\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x04\xd9\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x04\x56\x49\x44\
+\x41\x54\x58\x85\xbd\x97\x5f\x4c\x53\x57\x1c\xc7\xbf\xe7\xde\xdb\
+\x52\xdb\x52\x23\x0b\x42\x33\x5b\xca\x0b\x84\x0c\x27\x1a\x97\x2d\
+\xc0\x4c\x9c\x9a\x91\x91\xcc\xe0\x74\x0f\x23\xcb\x34\x10\x33\x84\
+\x45\x36\x4d\x60\x7f\x79\xd9\xb2\x3f\xc9\xc2\x03\x8e\xa0\x59\x32\
+\x43\xf6\xb0\x2d\x53\x16\xe0\xc5\x81\x92\x90\x95\x6d\x8a\x30\xc1\
+\x52\x84\x02\x02\x49\x2d\x2d\x90\x4a\x68\xf9\x73\x6f\xef\x6f\x0f\
+\xb5\x8a\xa5\x2d\xbd\x2b\xe3\x97\xfc\x72\x72\x72\xce\xf9\x7d\x3f\
+\xe7\x9e\xf3\x3b\xe7\x5c\x06\xc0\x08\xc0\x87\xf8\x8d\x07\x20\x03\
+\x20\x05\x63\xa2\x99\x4e\x00\xe0\x23\xa2\x85\x58\xbd\xde\x3e\x74\
+\xa8\xf8\xc5\xbc\xbc\xca\xd9\xd5\xd5\xdd\xb4\xb2\x02\x49\x92\x44\
+\xbf\x24\xf9\x75\x1a\xcd\xf0\xd4\xf0\xf0\x37\xcd\xdd\xdd\x37\xff\
+\x8b\x3a\x63\x0c\x0c\x80\x21\x1a\x00\x63\x4c\xf3\xf5\xe9\xd3\x3f\
+\x19\x76\xee\x7c\xc5\xec\xf7\xcf\xbe\xa0\x52\x4d\xa4\x6e\xdb\xe6\
+\x01\xf0\x10\x80\xf7\xfa\xe4\x64\x92\x55\x96\xb3\x27\x16\x16\x66\
+\x7c\x2d\x2d\x65\xbf\x10\x05\x14\x02\x18\xa2\x02\x30\xc6\x84\x6f\
+\xcf\x9e\xbd\x99\xae\xd5\x66\x1d\x57\xa9\x26\xd4\x1c\xe7\x05\xe0\
+\x0d\x89\x03\x78\x08\xc6\xbc\x00\xbc\x57\x26\x26\x76\x5c\x1a\x1c\
+\x34\x5d\xeb\xed\x7d\x4f\x29\x00\x17\xad\xf1\x8b\x53\xa7\xbe\x4b\
+\x17\x84\x9c\xb7\x92\x92\x66\xd4\x1c\x27\x02\x58\xeb\x12\x00\x11\
+\x44\x22\x00\xe9\x0d\x8b\xc5\x51\xb9\x67\xcf\x5f\xf9\xb9\xb9\x1f\
+\x2a\x01\x00\x80\x88\x00\x5a\xad\xd6\x28\xe8\xf5\xa5\xc7\x74\xba\
+\x85\xc7\x62\x6b\x85\x01\x11\x8c\x05\xeb\x44\x22\x18\x13\x5f\xb7\
+\x58\xa6\x52\x78\x5e\x7e\x69\xef\xde\xcc\x84\x01\x3e\x29\x2d\xfd\
+\xe0\x79\x8d\x46\xd0\x70\xdc\x6a\x04\xf1\x27\xe5\x5a\x08\x40\x6a\
+\x3f\x71\xa2\x75\xd1\xe7\x7b\x33\x61\x80\xc5\xa5\xa5\xfc\x03\x2a\
+\x95\x3f\xa2\x68\xa8\x24\x12\x43\xb3\x07\x20\x41\x96\x45\x04\x02\
+\x22\x2f\xcb\xea\x84\x01\x64\x51\xd4\x69\xd5\xea\x70\xd1\x27\xce\
+\xd8\xd3\x4b\xc0\x71\x41\x07\xa4\x67\x2d\x96\xf4\xc4\x01\x02\x81\
+\xe5\x75\xa2\xe1\xb3\x5f\xbb\x04\xb2\x1c\x2c\x05\x41\x64\x2a\x15\
+\xcf\x18\xe3\x13\x02\x70\xba\x5c\xc3\xeb\x44\xe3\x81\x90\x24\x51\
+\x26\x92\x49\xc1\x79\x10\x11\xa0\x7f\x7a\xfa\xea\xdf\xf3\xf3\x81\
+\x88\xe2\x8c\x49\x8f\x97\x20\xb4\x0f\x38\x4e\x04\xcf\x8b\xd5\xb7\
+\x6e\x65\x98\xcc\x66\x7d\xbc\xe2\x51\x01\x6c\x93\x93\xad\xcd\xfd\
+\xfd\x83\x88\x94\x7e\x21\xd1\xf0\xd9\x33\x26\x21\x33\xb3\x62\x68\
+\x68\xe8\xc7\x84\x01\x00\xe0\x4f\xa7\xf3\xfb\x2b\xf7\xef\x13\xc2\
+\xf7\x41\x58\xea\x85\x36\xdf\x99\xbe\xbe\x03\x4b\x4b\x4b\x6a\xab\
+\xd5\xda\xb1\x29\x00\x7d\x0e\x47\xfb\x0f\x03\x03\x6d\x3f\x4f\x4d\
+\xa5\x20\x56\xfe\xcb\xb2\xf8\xbe\xc3\x51\xfa\x4c\x76\x76\xf9\x5d\
+\xbb\xbd\x8e\x88\x14\xdd\x92\x42\xac\xc6\xf6\xdb\xb7\xbf\x3c\x79\
+\xf4\x28\x7f\x47\x14\x8f\xbf\x6c\x30\x8c\xbe\x9a\x9a\x3a\xcb\x05\
+\x67\x2e\xfa\x25\x29\xd0\x30\x3d\x5d\xe0\xdf\xb5\xeb\xdd\x94\xac\
+\x2c\xa3\xd3\xe9\xfc\xd8\x6a\xb5\x8e\x29\x11\x07\x10\xfb\x36\x0c\
+\x99\x9e\xb1\xd4\x8a\xf2\xf2\x4f\x03\x44\x05\x04\x70\x3c\xc7\x49\
+\x01\x9e\xd7\xe8\xb4\x5a\xfb\x82\x28\x16\xef\xdb\xb7\x5f\xb3\x7d\
+\x7b\x72\x7f\x49\x49\xc9\x7e\x45\xe2\x8c\x19\xf0\x08\x00\xf1\x3a\
+\x82\x0f\x12\x4d\xa8\x9e\x9f\x5f\x58\x76\xe1\x42\x23\xdd\xb8\xd1\
+\x45\x4d\x4d\x4d\x95\x0a\x63\x45\xbf\x0d\xa3\x19\x11\x05\x88\x68\
+\x39\x54\xef\xe9\xf9\xe3\xb2\xcd\x66\xeb\x9f\x9b\x9b\x83\xd9\x9c\
+\x71\xbe\xae\xae\x4e\xab\x24\x9e\x62\x80\x48\x40\x36\xdb\x50\xa3\
+\xdb\xed\x81\x5e\xaf\xb7\xe4\xe4\xe4\x7c\xb4\xa5\x00\x00\xd0\xdd\
+\xdd\x75\x79\x70\x70\x60\xc0\xed\xf6\xc0\x68\x34\x9e\xa9\xad\xad\
+\x35\x6f\x29\x00\x11\x49\xf7\xee\x8d\x34\x7a\x3c\x1e\xf0\xbc\xb0\
+\xa3\xb0\xb0\xf0\xb3\x78\xc7\x3e\x95\x05\x8c\xb1\x77\x00\x6c\xf4\
+\xa0\x90\x88\xe8\xf3\x75\x81\x18\xe3\x2b\x2a\x2a\xff\x39\x72\xe4\
+\x70\x6e\x46\x46\xc6\x4a\x47\xc7\xef\x85\x35\x35\x35\xbd\x31\xc5\
+\xc3\xb3\x00\x40\x17\x82\xcf\xed\x58\xbe\x1c\x6d\x57\x1f\x3c\x78\
+\xb8\xf2\xe2\xc5\x4b\x64\xb5\xf6\x50\x67\xe7\xf5\xf6\xff\x25\x0b\
+\x62\x59\x57\x57\x67\x93\xdd\x6e\xb7\x7b\x3c\x1e\x98\x4c\xa6\xd7\
+\xea\xeb\xeb\x8f\x6d\x34\x26\xfc\x24\xfc\x15\xc0\x9d\x0d\xc6\x88\
+\xd1\x1a\x88\x28\x50\x5c\x5c\xdc\xf8\x5c\xee\xee\x86\xb4\xf9\x79\
+\x56\x50\x50\x50\xcb\x18\x6b\x25\x22\x29\x56\x40\x45\x07\x51\x1c\
+\x9f\x55\xa8\xae\x3e\x37\x7a\xb5\xe5\x37\x1a\x1f\x1f\xa7\xe6\xe6\
+\xe6\xa8\x87\x13\x36\x7b\x09\x1e\x7d\x05\x69\x6c\x6c\xb4\xd1\xed\
+\xf6\x60\x66\xc6\x8d\xbc\xbc\xbc\x73\x45\x45\x45\x86\x68\xfd\x37\
+\x1d\x00\x00\xda\xda\x5a\x1b\x46\x46\x46\xc7\x1e\xb8\x5c\x48\x4e\
+\x36\x64\x56\x55\x55\x9d\xdf\x52\x00\x22\x92\x1c\x63\x8e\x26\x8f\
+\x67\x16\x0f\x5c\x2e\xa4\xa5\xa5\x95\x31\xc6\x22\x6a\xc5\xbc\x8e\
+\x13\xb1\xa1\xbb\x03\x0d\x66\x93\xe9\xa4\xdf\xb7\xe8\x5d\x5d\x5d\
+\xf9\x8a\x88\xe4\x48\xfd\x18\x94\xff\x9e\x2b\x31\x01\xc1\x87\x4c\
+\x34\xd3\xfd\x0b\xc3\x01\x11\x2b\xdf\xcb\xac\xe8\x00\x00\x00\x00\
+\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x98\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x15\x49\x44\
+\x41\x54\x58\x85\xc5\x97\x4d\x48\x54\x51\x14\xc7\x7f\xe7\xbd\xa7\
+\x46\x9a\x84\x09\xd1\x2a\x23\x02\xdb\x84\x90\x3a\x93\x05\x7d\x2c\
+\xfb\xda\xf4\xb5\x2b\x8a\xc2\x55\x05\x15\x61\xcb\x20\x42\x10\x0c\
+\xa1\x5d\x5f\x9b\xa2\xc0\x28\x8a\x76\x05\x05\x61\xa8\x19\x06\x81\
+\x2e\x2a\x35\xa2\x0f\x6b\x51\x59\x4e\x33\xe9\x7b\xa7\xc5\x7d\xa3\
+\x8f\xc1\xde\x5c\xc7\x91\x0e\x5c\xe6\x7e\x9c\xfb\xbf\xff\x7b\xcf\
+\xff\x9e\x77\x47\x80\x65\xc0\x38\xff\xc7\xca\x3d\x60\x5c\x55\xc7\
+\x66\x33\xab\x27\x99\x5c\x15\x38\x4e\xc5\xba\x67\xcf\xfa\x01\x5e\
+\xd4\xd7\x97\xf8\xae\xbb\xc5\xf5\xfd\xa7\x6b\xfb\xfa\x52\xb6\x38\
+\x22\x82\x33\x4b\xc6\x00\x38\x41\x90\x76\x82\xe0\xc1\xf3\xc6\xc6\
+\x3a\x80\x49\xcf\x3b\xaf\x22\x07\x67\xb3\xf8\x14\x96\x05\x4b\x57\
+\x44\x6e\x88\x48\x6d\xb6\xaf\xa1\xb7\xf7\xbd\xa8\x36\x07\x8e\x73\
+\xab\x27\x99\xdc\x0d\xec\x9c\xf4\xbc\x23\x91\x39\x55\x22\xd2\x29\
+\x22\x4b\x6c\x48\x54\xaa\x2a\x71\x05\x18\x03\x2e\xe5\xf6\x77\x27\
+\x12\x17\xba\x13\x89\x89\xde\x86\x86\xba\x1c\xff\x16\x40\x81\x45\
+\x79\x70\x2b\x6d\x43\xf0\x09\xd8\x2f\x22\x55\xd9\x8e\x27\x9b\x37\
+\x7b\x40\x3d\xf0\xc5\x77\xdd\x86\xc8\xee\x3d\xe0\x24\x46\x5b\x3f\
+\xf3\x01\xdb\x12\x18\x02\x4a\x81\xe6\x6c\xc7\xc2\x54\xea\x1c\x30\
+\xea\xbb\x6e\x93\xa8\x9e\xed\x49\x26\xd7\x84\x43\x7b\x80\x6a\xe0\
+\x83\x0d\xb0\x2d\x81\xc1\xf0\xf7\x84\x88\x94\xf4\x24\x93\x5b\x55\
+\x64\x5f\x59\x26\x73\xb8\xa9\xab\xeb\x1d\x70\x0c\xe8\xec\xda\xb0\
+\x61\x11\x70\x26\x42\xba\x68\x04\x86\x81\xdf\x40\x05\xb0\xc7\x09\
+\x82\x8f\xbe\xeb\x6e\xaa\xeb\xef\xff\x0e\x90\xe8\xee\xbe\x0d\x1c\
+\x38\x33\x30\xb0\x11\x58\x0d\x04\x11\xd2\x79\xcd\x46\x84\x3b\x80\
+\x5f\x21\xf0\xab\x18\xbf\x7b\xc0\x24\x90\x02\x8e\x5a\xe0\x5a\x8b\
+\x70\x18\x28\x03\x04\xa8\x15\x91\xf5\xb9\x0e\x22\xb2\x1c\xd8\x06\
+\xb8\x98\x1b\x30\x6c\x03\x6c\x4b\x60\x04\xf0\x22\xed\xd3\x33\xf8\
+\x1c\xc7\xec\x9e\x90\xec\x88\x25\x76\xfe\x10\x84\xc7\xf5\x13\xb3\
+\x33\x0d\x17\x5a\x1e\x19\xab\xc0\x1c\xbb\x46\x4a\x85\x4d\x08\x3c\
+\x00\x11\xb9\x8b\x11\x4f\x9c\x95\x46\xea\x0e\xd0\x06\xec\x0d\xdb\
+\x2d\xc0\x82\xc8\x78\x00\xf4\x89\x48\x1c\xde\x57\x4c\xc8\xa8\x04\
+\x5e\xe6\xb0\xb7\x29\xe9\x70\xe7\x0e\x30\x5a\xc0\xfc\xcf\x53\x27\
+\x50\xa0\x09\x70\x08\x13\xeb\xc5\x85\x82\xcc\x85\x40\x29\xb0\x1d\
+\x93\x70\xdc\x42\x41\x0a\xfa\x1c\x87\x36\x01\x5c\x02\xae\xcc\x01\
+\x63\x4e\x27\x30\x0e\xdc\x51\x55\x5f\x44\x5e\x03\xb5\xf9\x26\xc4\
+\x11\xb8\x8f\x11\x62\x9c\xed\xc2\x88\x0e\xc0\x07\xae\xaa\xaa\x1f\
+\xb6\x3b\x80\x8b\x4c\x87\xc2\x07\xae\xe7\xc1\xfb\x91\xad\xd8\xe6\
+\x81\x34\xd3\x0a\xfe\x0d\x2c\x8e\x8c\xb9\x18\x55\x47\x55\x5e\x5d\
+\xb4\x54\x2c\x22\xd5\x98\xec\x06\x90\x01\xae\xa9\xea\xf7\xec\x78\
+\x78\x12\x6d\x21\x31\x30\xfa\xa8\xb1\xc1\xb6\x15\x61\x0d\xf0\x27\
+\xac\x97\x00\xed\x33\xf8\x5c\x8e\xe0\xcd\x0b\x81\x09\x4c\x6c\x1f\
+\xa9\xea\x9b\x5c\x07\x55\xfd\x81\xb9\x11\x99\x10\xb7\xe8\x04\x3c\
+\x4c\x8a\x6d\x8d\xf1\x6b\xc7\x9c\xd0\x02\x60\x65\x31\x09\xac\xc4\
+\x68\x60\x48\x55\x1f\xff\xcb\x49\x55\xdf\x02\x0f\xc3\xa6\xd5\xb5\
+\xb4\x25\x90\x05\x8b\xdb\x7d\xd6\xb2\x3e\x2b\x2c\xb1\xad\x5e\x44\
+\x23\xc0\x37\xa0\xcc\xf2\xca\x0e\x02\xe9\x62\xbe\x88\x96\x02\x1d\
+\xaa\x9a\xb1\xf4\x6f\x05\xca\xc2\xeb\x1b\x6b\x79\x53\xb1\x88\x38\
+\xc0\x29\xa0\xd3\x72\x71\x80\x9b\x40\x15\xd3\x79\xe1\xdf\xf8\x98\
+\x10\xcc\xea\xcf\x69\xb1\x4c\x44\x2a\x3d\xa0\x3c\xcf\xcb\x65\x3e\
+\xad\xfc\x2f\xeb\xa8\x35\x42\x7e\xaf\x56\x1c\x00\x00\x00\x00\x49\
+\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x05\x04\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x04\x81\x49\x44\
+\x41\x54\x58\x85\xbd\x97\x5d\x4c\x93\x57\x18\xc7\xff\xcf\xfb\xb6\
+\x50\xdb\x5a\xa3\x0b\x56\x50\x6a\xd9\x05\x84\x4c\x67\x35\x98\x2d\
+\xc0\x5c\xa2\x59\x34\x61\x9b\xd1\xe9\x2e\xc6\x96\x68\x20\xcc\x0f\
+\x16\x61\x7a\xc1\x3e\xd9\xcd\xa2\x2c\x99\x17\xc3\x11\xb2\x98\xcc\
+\xb0\x5d\x6c\x4b\x44\x04\x6f\x96\x45\x59\xc8\xea\xa6\x28\x64\xe5\
+\x1b\x0a\x08\x24\x50\x5a\x20\x95\x40\x11\xde\x8f\x67\x17\xa5\xda\
+\xd5\x16\xfa\x8a\xe1\x49\x4e\x4e\x4e\xcf\x79\xdf\xff\xef\x79\xcf\
+\x79\x9e\xe7\x94\x00\x24\x03\x98\x45\xfc\x26\x02\x50\x01\xb0\x86\
+\x67\x62\x99\x49\x07\x60\x96\x99\xa7\x97\x5a\xf5\xc1\xbe\x7d\x79\
+\xaf\x38\x1c\xa7\x27\x16\x16\xb6\xf3\xfc\x3c\x64\x59\x96\x02\xb2\
+\x1c\x30\x19\x0c\xdd\xc3\xdd\xdd\xdf\xd4\x34\x35\xdd\x7d\x16\x75\
+\x22\x02\x01\xb0\xc4\x02\x20\x22\x43\x45\x51\xd1\x2f\x96\x8d\x1b\
+\xf7\xda\x02\x81\x89\xdd\x7a\xfd\x60\xd2\x9a\x35\x3e\x00\x0f\x01\
+\xf8\x6f\x0e\x0d\x25\x3a\x55\x35\x63\x70\x7a\x7a\x7c\xf6\xda\xb5\
+\x82\xdf\x98\x15\x8d\x00\x96\x98\x00\x44\xa4\xfb\xf6\xcc\x99\xbb\
+\x9b\x8c\xc6\xf4\x23\x7a\xfd\x60\x82\x20\xf8\x01\xf8\x43\xe2\x00\
+\x1e\x82\xc8\x0f\xc0\x7f\x75\x70\x70\xfd\x0f\x6d\x6d\xa9\xbf\xdf\
+\xbb\xf7\x91\x56\x00\x21\xd6\xe4\xd7\xc7\x8f\x7f\xbf\x49\xa7\xcb\
+\x7c\x2f\x31\x71\x3c\x41\x10\x24\x00\xe1\x4d\x06\x20\x81\x59\x02\
+\x20\xbf\x63\xb7\xbb\x4f\xef\xd8\xf1\x4f\xf6\xb6\x6d\x9f\x68\x01\
+\x00\x80\xa8\x00\x46\xa3\x31\x59\x67\x36\xe7\x1f\x36\x99\xa6\x1f\
+\x8b\x85\x0b\x03\x12\x88\x82\x63\x66\x09\x44\xd2\xdb\x76\xfb\xf0\
+\x06\x51\x54\x5f\xdd\xb9\x33\x6d\xc5\x00\x9f\xe7\xe7\x7f\xfc\xb2\
+\xc1\xa0\x33\x08\xc2\x42\x14\xf1\x27\x7d\x38\x04\x20\xdf\x38\x7a\
+\xb4\x7e\x66\x76\xf6\xdd\x15\x03\xcc\xcc\xcd\x65\xef\xd1\xeb\x03\
+\x51\x45\x43\x3d\xb3\x14\xf2\x1e\x80\x0c\x55\x95\xa0\x28\x92\xa8\
+\xaa\x09\x2b\x06\x50\x25\xc9\x64\x4c\x48\x88\x14\x7d\xd2\x88\xfe\
+\xbf\x05\x82\x10\x6c\x80\xbc\xd9\x6e\xdf\xb4\x72\x00\x45\x79\xf4\
+\x94\x68\xa4\xf7\xe1\x5b\xa0\xaa\xc1\x5e\xa7\x93\x48\xaf\x17\x89\
+\x48\x5c\x11\xc0\xa8\xc7\xd3\xfd\x94\x68\x3c\x10\xb2\x2c\xa9\xcc\
+\x2a\x6b\xc8\x07\x51\x01\x5a\x47\x46\x6a\xef\x4c\x4d\x29\x51\xc5\
+\x89\xe4\xc7\x5b\x10\x3a\x07\x82\x20\x41\x14\xa5\x92\xe6\xe6\xad\
+\xa9\x36\x9b\x39\x5e\xf1\x98\x00\x1d\x43\x43\xf5\x35\xad\xad\x6d\
+\x88\x16\x7e\x21\xd1\x48\xef\x89\x64\xa4\xa5\x9d\xec\xec\xec\xfc\
+\x79\xc5\x00\x00\xf0\xf7\xe8\xe8\xe5\xab\x0f\x1e\x30\x22\xcf\x41\
+\x44\xe8\x85\x0e\xdf\xa9\x96\x96\x3d\x73\x73\x73\x09\x4e\xa7\xf3\
+\x8f\xe7\x02\xd0\xe2\x76\xdf\xf8\xd1\xe5\x6a\xf8\x75\x78\x78\x03\
+\x96\x8a\x7f\x55\x95\x4a\xdd\xee\xfc\x17\x32\x32\x0a\xdb\xbb\xba\
+\xca\x99\x59\x53\x95\xd4\x2d\x35\x79\xe3\xfe\xfd\xf3\xc7\x0e\x1e\
+\x14\xff\x95\xa4\x23\xaf\x59\x2c\x7d\xfb\x93\x92\x26\x84\xa0\xe7\
+\x52\x40\x96\x95\xca\x91\x91\x9c\xc0\x96\x2d\x27\x36\xa4\xa7\x27\
+\x8f\x8e\x8e\x7e\xe6\x74\x3a\xfb\xb5\x88\x03\x58\xba\x1a\x86\xcc\
+\x4c\x94\x74\xb2\xb0\xf0\x0b\x85\x39\x87\x01\x41\x14\x04\x59\x11\
+\x45\x83\xc9\x68\xec\x9a\x96\xa4\xbc\x5d\xbb\xb2\x0c\xeb\xd6\xad\
+\x6d\x3d\x74\xe8\x50\x96\x26\x71\x22\x0b\x16\x01\x10\x6f\x43\xf0\
+\x42\x62\x08\x8d\xb3\xb3\x73\x0b\x2e\x5d\xaa\xe2\x5b\xb7\x1a\xb9\
+\xba\xba\xfa\xb4\xc6\x77\xc5\xae\x86\x8b\x84\x6f\x11\xd1\x9f\x44\
+\x54\x14\xfa\x8d\x99\x15\x66\x7e\x14\x1a\xdf\xbe\xfd\xd7\x95\x8e\
+\x8e\x8e\xd6\xc9\xc9\x49\xd8\x6c\x5b\xcf\x95\x97\x97\x1b\xb5\x7c\
+\x85\x25\x01\x00\xa4\x00\x78\x1d\xc0\x8b\xb1\x16\x30\xb3\xd2\xd1\
+\xd1\x59\xe5\xf5\xfa\x60\x36\x9b\xed\x99\x99\x99\x9f\x3e\x4f\x80\
+\xb8\xac\xa9\xa9\xf1\x4a\x5b\x9b\xcb\xe5\xf5\xfa\x90\x9c\x9c\x7c\
+\xaa\xac\xac\xcc\xb6\xaa\x00\xcc\x2c\xf7\xf4\xf4\x56\xf9\x7c\x3e\
+\x88\xa2\x6e\x7d\x6e\x6e\xee\x97\xab\x0a\x00\x00\x8d\x8d\x37\x2f\
+\xbb\x5c\xae\x76\x9f\xcf\x87\x94\x94\xcd\xef\x57\x54\x54\xc4\x15\
+\x11\x8f\xf3\x00\x11\x1d\x01\xf0\x66\xc4\x7c\xfa\x62\x9f\x47\x44\
+\x91\x65\xb6\x85\x99\xbf\x0b\x0d\x98\x59\xd9\xbb\xf7\x8d\x6a\x87\
+\x63\xc7\x25\xab\xd5\x9a\x98\x95\xb5\xfb\xab\x28\xef\x8b\x6a\x96\
+\xc5\x90\x38\x8f\xe0\x5d\x3f\xde\x56\x17\x2d\x44\x4b\x4a\x4a\x3b\
+\xeb\xea\xae\x73\x4f\x4f\xaf\x7a\xf1\xe2\xc5\xc3\xcb\x85\x61\x78\
+\x26\xfc\x09\xc0\x9d\x08\xb8\xfd\x00\x4e\x00\xa8\x5d\x9c\x0f\xb7\
+\xb1\x48\x4f\x98\x59\xc9\xcb\xcb\xab\x7a\x69\xdb\xf6\x4a\xeb\xd4\
+\x14\xe5\xe4\xe4\x94\x11\x51\x3d\x33\xcb\xcb\x7e\x81\x18\x84\x1f\
+\x2e\x7a\x7b\x41\x43\x72\xd1\x95\x94\x9c\xed\xab\xbd\x56\xc7\x03\
+\x03\x03\x5c\x53\x53\x13\x33\x39\x61\xb9\x44\xf4\x2c\xc6\xcc\x72\
+\x7f\x7f\x5f\x95\xd7\xeb\xc3\xf8\xb8\x17\x0e\x87\xe3\xec\x81\x03\
+\x07\x2c\xb1\xd6\x3f\x77\x00\x00\x68\x68\xa8\xaf\xec\xed\xed\xeb\
+\x1f\xf3\x78\xb0\x76\xad\x25\xad\xb8\xb8\xf8\xdc\xaa\x02\x30\xb3\
+\xec\xee\x77\x57\xfb\x7c\x13\x18\xf3\x78\x60\xb5\x5a\x0b\x88\x28\
+\xaa\xd6\x92\xe5\x18\xc0\x6d\x00\xa5\x00\x9a\xb5\x42\x74\xb6\xbb\
+\x2a\x6d\xa9\xa9\xc7\x02\xb3\x33\xfe\x85\x85\xf9\x0b\xcc\xac\x46\
+\x5b\x47\xd0\xfe\xf7\x5c\x8b\xe9\x10\xbc\xc8\xc4\x32\xd3\x7f\x2a\
+\xd9\x02\x8c\x40\x79\xbc\x6b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
+\x42\x60\x82\
+\x00\x00\x04\x38\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\xb5\x49\x44\
+\x41\x54\x58\x85\xed\x97\xcf\x6b\xe3\x46\x14\xc7\xdf\xbc\x19\x4b\
+\x4d\x64\x4b\xc8\x75\x8c\x13\xe7\x27\xa1\x05\xe7\x52\x4a\xe9\xaf\
+\x5b\x20\x87\x2e\xed\x39\x2c\x85\x92\x5b\xc1\x01\x97\x9e\x7b\x59\
+\x72\xe8\x1f\x50\x12\x7a\x28\x14\x4a\xaf\xa1\xe7\x5e\x9a\x5b\xa1\
+\x29\xb4\xa6\x14\x1f\x0c\x8e\xe9\x6a\xd9\xc4\x89\x8c\xfc\x23\x5e\
+\x54\xd9\xd6\x48\xd3\xc3\x5a\xc1\x76\x64\xbb\x0e\x31\xb9\xec\x03\
+\x21\xf4\xe6\x3b\xef\xfb\x99\xd1\x68\x24\x11\x00\x58\x04\x00\x1b\
+\x1e\x26\x14\x06\x00\xb6\x10\xa2\xf5\x10\xee\x84\x10\x60\xfd\x89\
+\xfd\xfd\xfd\xb7\x63\xb1\xd8\xd7\x92\x24\xcd\xcc\xb4\xd5\x6a\x15\
+\x8e\x8e\x8e\xbe\x12\x42\x08\x00\x18\x04\x58\x5f\x5f\xff\x3e\x97\
+\xcb\xbd\xc6\x39\xbf\x9c\x85\xb9\x10\x02\xcf\xcf\xcf\x1f\x71\xce\
+\x8b\x00\xf0\xe3\x2d\x80\x64\x32\xe9\x35\x9b\xcd\x3f\x4a\xa5\xd2\
+\x6f\xb3\x00\x00\x00\xc8\x64\x32\x5f\x20\xa2\x16\x5c\xb3\x71\xe2\
+\x51\xe1\xfb\x3e\x39\x39\x39\xf9\x4c\xd3\xb4\xa7\x6b\x6b\x6b\xc5\
+\x30\x4d\xb9\x5c\x7e\xa7\xd3\xe9\xa8\x3b\x3b\x3b\x3f\x8d\xab\x75\
+\x27\x00\xce\x39\xbb\x6e\x34\xde\x8d\x5b\x96\xda\x3d\x3b\x5b\x0a\
+\xd3\x20\x62\xba\xc1\xd8\x1a\x00\xdc\x3f\x00\x63\x8c\xeb\x94\x3e\
+\xfb\xb4\x5e\xff\x7d\x94\xc6\x25\xe4\xe9\x77\xc9\x24\x4e\xaa\x35\
+\x51\x10\xda\x09\x51\xc4\x11\xaf\xc6\x69\x22\x42\xf8\xba\x24\x3d\
+\x9f\x09\xc0\x7d\xc6\x2b\x80\x57\x00\x77\x02\x70\x5d\x97\x3d\x73\
+\xdd\xb7\xc6\x69\x6c\x42\x22\xcf\x6d\xfb\xfd\x49\xb5\xee\xb4\x0f\
+\x00\x00\x70\x00\xf9\x9b\x44\xe2\x93\x04\x63\x46\x58\xbb\xc9\xf9\
+\x9b\x00\xe0\xcf\x04\x20\x12\x89\xf0\xdd\xc7\x8f\xbf\xbc\x4b\xdf\
+\xb1\x00\x42\x08\x70\x5d\x97\x74\xbb\xdd\x9b\x5b\x83\x88\xa2\x77\
+\x86\xe1\xdc\xbd\x03\x38\x8e\x43\x4b\xa5\x92\x52\x28\x14\xf4\xc0\
+\x90\x10\x12\x00\x0c\x80\x04\xf9\xfe\xa0\x94\x0e\x68\xfb\x23\xd0\
+\xa7\x52\x29\x3a\x12\xa0\xdd\x6e\xa3\x61\x18\xf3\x86\x61\xe8\x7d\
+\xc6\x23\x0d\x03\xa3\xe1\xb6\x00\x24\x0c\x60\x6b\x6b\x6b\x34\x40\
+\xa7\xd3\xc1\x66\xb3\xa9\x5c\x5e\x5e\xea\xc3\x45\xfb\x47\x35\xae\
+\xad\x17\xb7\xb4\xc1\x40\x2c\xcb\x1a\x0d\x50\xaf\xd7\xa9\x24\x49\
+\x6f\xa4\xd3\xe9\xc4\x70\xb1\xbe\x99\x18\x1e\xdc\x2d\x80\x40\x13\
+\x92\x27\xa6\x69\x12\x00\xf8\x37\x14\xe0\xfa\xfa\x3a\x57\xab\xd5\
+\x8e\xda\xed\x76\x24\xcc\x28\x08\x4a\x69\x1c\x00\x68\xff\xc2\x04\
+\x00\xf0\x7d\xff\x85\x10\xc2\x19\xd5\x57\x92\x24\xaf\x56\xab\xfd\
+\xda\x6a\xb5\x7e\xb8\x81\x02\x00\x75\x9a\xaf\xe2\x6c\x36\xfb\xb1\
+\xae\xeb\xdf\x2a\x8a\x12\x19\x6e\xab\x56\xab\xe5\xc3\xc3\xc3\xed\
+\xff\x5b\x8b\x10\xa2\x4e\xb5\x13\xe6\x72\xb9\xd7\x65\x59\x7e\x12\
+\x8b\xc5\x28\x22\xfa\xc3\x87\xa2\x28\xeb\xd9\x6c\xf6\xd1\x34\x35\
+\x27\xce\xc0\xde\xde\x9e\x12\x8d\x46\x3f\x44\xc4\xcf\x19\x63\xef\
+\x69\x9a\x36\x47\x29\x1d\xb9\xc3\x35\x1a\x0d\xcf\x75\xdd\x7f\x00\
+\xe0\x17\xd7\x75\x7f\x6e\x34\x1a\x7f\x1f\x1f\x1f\x7b\xa1\xe6\x84\
+\xa8\x13\x77\x42\x59\x96\x37\x11\xf1\x03\x42\xc8\x5f\xbe\xef\xff\
+\x59\xaf\xd7\x09\x22\x82\x10\x82\x20\x22\x01\x00\xf0\x7d\x7f\xe0\
+\x71\xec\x2d\xbe\x08\xa5\xf4\xa3\x58\x2c\x76\x06\x00\x2f\xa6\x99\
+\x01\x92\xcf\xe7\x59\xb7\xdb\x65\xc5\x62\x91\x55\xab\x55\x56\x2a\
+\x95\x58\xa5\x52\x61\x17\x17\x17\xcc\xb2\x2c\x7a\x75\x75\x45\xe1\
+\xe5\x8b\x2c\xb8\x85\x02\x00\x84\x2c\xcb\xfe\xd2\xd2\x12\x4f\x26\
+\x93\xde\xea\xea\x2a\xd7\x75\x9d\x67\x32\x19\x9e\x4e\xa7\xf9\xc2\
+\xc2\x02\x07\x00\xbe\xbd\xbd\xcd\xfb\x67\x60\x18\x00\xcb\xe5\x72\
+\xe4\xf4\xf4\x94\x39\x8e\xc3\x0c\xc3\x60\x86\x61\x30\xd3\x34\x99\
+\x61\x18\xb4\x52\xa9\xb0\x76\xbb\x1d\x98\x93\x61\x00\x78\xf9\xf2\
+\xf1\x35\x4d\xf3\x56\x56\x56\xf8\xe2\xe2\xa2\x97\x4a\xa5\xf8\xe6\
+\xe6\x26\x8f\xc7\xe3\x7c\x63\x63\x83\x47\xa3\xd1\x6e\x00\x11\x06\
+\x10\x04\xe6\xf3\x79\x5a\x28\x14\xa8\x65\x59\xd4\xb6\x6d\x6a\x9a\
+\x26\xb5\x2c\x8b\xd9\xb6\x4d\x5d\xd7\x45\xcf\xf3\x88\xe3\x38\x37\
+\x1d\xa2\xd1\xa8\x40\x44\x31\x3f\x3f\xef\xc5\xe3\x71\x9e\x48\x24\
+\xbc\xb9\xb9\x39\x4f\x55\x55\x6f\x79\x79\xd9\x03\x00\x6f\x77\x77\
+\x77\x60\x2d\x10\x42\x54\xe8\x01\xc0\x34\x07\x00\x10\x21\x04\x11\
+\x42\xe0\xc1\xc1\x01\x0a\x21\x48\x2f\x37\x6d\x1d\x95\xc0\x03\xff\
+\x9e\xff\x07\xb7\x67\xdf\x28\x63\xab\x1b\xbf\x00\x00\x00\x00\x49\
+\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x07\x10\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x06\x8d\x49\x44\
+\x41\x54\x58\x85\xc5\x57\x7b\x50\x94\xd7\x15\xff\xdd\x6f\x17\x16\
+\x76\xd7\x25\xcb\x12\x1e\x51\xd6\x00\x85\x0c\x6c\x01\xa3\x01\xed\
+\x88\x1a\x69\xda\x0a\xca\x4c\x0d\x3a\x36\xb6\xb4\x4e\x12\xc1\xa0\
+\x93\x32\x69\xfe\x50\xec\x4c\x64\x3a\x2d\x49\xa7\x63\x92\xd1\xc1\
+\xec\x42\x3b\x49\x99\xa4\x2a\xe3\x68\x1c\x93\x38\x68\xc2\x84\x04\
+\x34\x12\x1e\x2a\x8f\x40\xe5\x21\x8f\x7d\xc8\x22\xbb\xc0\x2e\x2c\
+\xfb\x7d\xdf\xe9\x1f\xb2\xce\xba\xb0\xbb\x89\x69\xd3\xdf\xcc\x9d\
+\x6f\xee\xb9\xe7\x9e\xdf\xb9\xe7\x9c\x7b\xee\x7c\x0c\x40\x1c\x00\
+\x07\xfe\x3f\x50\x48\x01\x38\x88\x68\xea\xdb\x68\x33\xc6\x42\xb2\
+\xf3\x4a\x7f\xb3\xe6\xa9\xf4\x3c\x65\x28\x8b\x9e\x76\xcc\x4e\xf3\
+\xee\xb9\x91\xdb\xfd\xb7\xce\xd5\x9f\xad\xa9\xff\xae\xec\x8c\x31\
+\x30\x00\x2a\x6f\x07\x18\x63\x91\x00\x8e\x03\x90\x2f\x88\x46\x01\
+\xfc\x3e\xaf\xe8\x8f\x07\x92\x57\x6a\x0e\xc9\x54\x71\xd2\xb1\xa9\
+\x30\x8b\xc5\x29\x37\x2a\x64\x9c\x53\x46\x53\xc4\x9c\xc3\xf2\x69\
+\x63\x27\x6f\x9f\x9a\x39\xdc\x5c\x7f\xb2\x00\xc0\xea\x85\xbd\x3c\
+\x80\x57\x89\x68\xc8\x8f\x03\x2a\xa9\xaf\x90\x88\xee\x32\xc6\x4e\
+\x03\x38\x03\x80\x03\x80\xc7\x1e\x4f\xcd\xd5\x3d\xa1\x7d\xbc\x9f\
+\xcb\x19\x95\xaa\x52\xcd\x88\x80\x4d\x0d\xd8\x71\x6f\xd8\xc0\x60\
+\x93\xc6\x0d\xb8\x8d\xef\x16\xd6\x02\xd0\x79\x99\xdb\xeb\x8f\xdc\
+\x03\x6e\x29\x21\x11\x9d\x03\x70\xc0\x33\x37\x0e\xf5\xa4\xd6\xb7\
+\xdd\x75\x4a\x35\xa9\xd3\x00\xdc\x20\xf0\x8c\xc0\x73\x80\x9b\x00\
+\xb7\x48\xe0\xfb\x1a\x4e\x24\x0e\xf5\x5e\x4f\xf3\x32\x73\x90\x88\
+\x6a\x02\x91\x03\x58\x9c\x82\x07\xbc\xe3\x24\x6f\x12\x89\x65\x00\
+\xc0\x38\x09\xad\xdb\x7b\xaa\x77\xc5\xea\xc2\x61\x22\xd8\x00\xd8\
+\x19\xbb\xf7\xbd\x7d\xe5\x3d\x55\xcb\x3f\x5f\x2c\x23\x91\x0f\x05\
+\x80\xe8\xd8\xc7\xcc\x7f\xaa\x78\xed\x6d\x8f\x1d\x51\x14\xff\xb1\
+\x6f\xdf\xbe\x3b\x8b\xc8\x97\x4a\x81\x37\x76\x1f\xa8\x0c\xb9\xd2\
+\x78\x51\x18\xb8\xde\x20\x21\x51\x60\x2d\xef\xee\x49\x96\xab\xe3\
+\x2d\x91\x09\xd9\x3c\xa3\x7b\x91\xb0\x0e\x7d\xa5\x68\xfb\x60\x7f\
+\x89\x87\x5c\x1d\x1d\xdf\x1b\x97\xbe\xa5\xb2\xf2\x8d\xa3\xd6\xc1\
+\xfe\x6f\x3e\x0a\x16\x81\x25\x53\xe0\x81\xcb\xe5\xca\xc9\x7c\xe1\
+\xfc\xd4\xa3\x29\x9b\x66\x01\x80\x77\xcd\x48\x9a\x4e\xfc\xf2\x29\
+\xc7\xe4\x08\xd7\xff\xc9\xa1\xcd\xdf\x9c\xfa\xdd\xaf\x9b\x8f\xfd\
+\xe2\x15\x7e\xde\x11\x01\x00\xca\x08\x8d\x23\x7d\x5d\x5e\x43\xca\
+\x2e\x43\x93\x20\x8a\x19\xc1\xc8\x83\x3a\x20\x4a\xc2\x95\x52\x99\
+\xd2\xbd\x7e\xff\xf9\x31\x55\x5c\xaa\x13\x00\xe6\xec\x26\xc5\x97\
+\x6f\x6f\x79\x7a\x7e\x66\x3c\x6c\xa8\xe7\x9a\x7b\xce\x61\x97\x01\
+\x40\x98\x2a\xb6\x73\xd5\x33\x2f\x1e\x67\x80\x20\x00\xee\xa8\xa8\
+\x28\xc5\xb7\x71\x20\x60\x0a\x44\x81\x17\x24\x80\x3b\x24\x4c\x35\
+\xbf\xe1\xe5\x8b\x5d\x9f\xbe\xbe\xf6\xc7\x73\x76\x73\xf8\x94\xa9\
+\x3b\xb6\xef\xee\x10\xef\x72\x39\xa5\x00\x20\x53\x46\x0d\x6e\x7c\
+\xe5\xf2\x11\x67\x7b\xd5\x33\xe6\x81\xd6\x7c\xbb\x3e\x27\x53\xad\
+\x52\x44\x18\x0c\x86\x19\xc0\x7f\x0d\x04\x8d\xc0\xc4\xe4\xf4\x28\
+\x00\xbe\xbd\x76\x4f\xc2\x68\xd3\x89\xe4\x95\xab\xf2\x66\x25\x21\
+\x61\x22\x00\x78\xc8\x43\xc3\x1f\xb9\xb3\xbe\xf4\xfc\x9f\x23\x62\
+\x75\x53\xa1\xaa\x15\xdd\x61\xf2\x65\x23\x12\x89\x74\x52\xa1\x90\
+\xdb\x89\xc8\x46\x44\x36\x41\x10\x84\x87\x8a\xc0\xd4\xf8\x60\x5f\
+\x2c\xa0\x95\x29\xa3\xf8\x94\x82\xca\xd6\x59\xdb\x98\xf3\x76\xc7\
+\xc5\x8d\x82\xdd\x14\x71\xdf\x40\xb8\xca\xba\x2c\x2e\x6d\x92\x08\
+\x6e\x71\x76\x42\x1d\x19\xbd\xbc\x5b\x22\x09\x3f\xab\x54\x38\x77\
+\x08\x82\x70\x0e\x00\xac\x56\xab\xfd\xa1\x1c\x18\xbd\xd9\x50\xa5\
+\x49\x7b\x7f\x2d\x48\x7c\xd4\x3d\x6b\x17\x3f\x3f\x9a\xbb\x7e\xce\
+\x8b\x1c\x00\x9c\x77\x87\xd3\x3e\x7f\x7d\xf5\x6b\xab\x7f\xf6\xc2\
+\xc9\xb9\xc9\x91\x24\x59\x28\x67\x49\x4f\x56\x6f\xe9\x68\xed\xbb\
+\x50\x5a\x5a\x6a\x0e\x64\x1f\x08\x92\x02\xab\xd5\x74\xd3\xd8\x56\
+\xf7\x35\x44\x37\x1a\xdf\xfa\xf9\xaa\x69\x4b\x5f\x24\x00\x48\x65\
+\x4a\x47\x46\xfe\xab\x1f\x4b\x43\x64\x6e\x00\xb0\x59\x06\x32\x7a\
+\xbe\xa8\x7d\x4e\x74\xcf\x2c\x9f\x9b\xb6\x6a\x5c\x73\xce\xe8\xc6\
+\xc6\xc6\xf3\xc1\xc8\x3d\x50\x11\x11\xfc\x0d\x00\xcb\x22\x34\x71\
+\x0e\x00\x04\x80\x38\xa9\x6c\x7e\x5d\xf1\x69\xfd\x0e\x3d\x95\x65\
+\x14\xfe\xb5\x92\x31\x8e\xf7\xac\x25\xa7\xad\xf9\xb0\x78\xdf\x4b\
+\x7d\xdb\xb6\x6d\x5b\x17\xc8\xa6\x97\x6d\x55\xc0\x4e\x08\x00\x8c\
+\xb1\x63\x58\x68\xcb\x8c\x71\xf4\xe4\xaf\x8e\x9d\x49\x7a\xba\xb4\
+\x83\x01\x36\x10\xec\x5f\xbe\xb3\x7d\xad\xb1\xe3\xdc\x01\x00\xe0\
+\x38\x0e\xf9\xf9\xf9\x57\x0a\x0a\x0a\x1e\x78\x19\x79\x9e\x7f\x67\
+\xa9\x74\x2c\xea\x84\x15\x15\x15\x5c\x4c\x4c\x8c\xd6\x33\x2f\x2f\
+\x2f\x7f\x19\x5e\x6f\x42\x42\x4a\xfa\x85\x84\x90\xbe\x95\xcb\x4d\
+\x55\x09\x02\x42\x26\x5c\xae\x79\xdb\xf3\x3b\x73\x63\xce\xb8\x6f\
+\x4d\xf6\x74\x75\xaa\x45\x51\x44\x7d\x7d\x7d\xb6\x56\xab\xbd\x9e\
+\x99\x99\x69\xf1\xec\x1b\x1f\x1f\xb7\xfa\x3d\xa0\x77\x04\xea\xea\
+\xea\x42\x6d\x36\xdb\x6e\x00\xa8\xa9\xa9\xd9\x7c\xed\xda\xb5\xdf\
+\x7a\xe9\x1e\x26\xa2\xbf\x30\xc6\xa4\x3f\x4a\x5b\x93\xa3\x4d\x4a\
+\x4d\x8a\xd6\x44\x3c\x32\x7c\x7b\x60\xb8\xb9\xe1\x93\xcb\x1a\x8d\
+\xe6\xdf\x13\x13\x13\x9a\x85\x93\x59\x88\x28\x8b\x88\x46\xfc\x11\
+\x7b\x22\xb0\x64\x0a\x18\x63\x3b\x00\x9c\xc2\x42\x91\xa6\xa4\xa4\
+\x5c\xed\xed\xed\xfd\x89\xb7\x8e\xc1\x60\xf8\x03\x80\x65\x9e\x79\
+\x7b\x7b\x47\x62\x5d\x5d\x5d\xd1\xc4\xc4\xfd\xc3\x76\x02\xc8\x21\
+\x22\xbf\x57\x90\x31\xa6\x02\x7c\x8a\x10\xc0\x4f\x01\xb8\xb0\x50\
+\x58\x00\xce\x56\x55\x55\x1d\xf2\x2d\x20\xbd\x5e\x7f\xd0\x57\xb6\
+\x7d\xfb\xb3\xad\x72\xb9\x9c\xbc\xf6\x7e\x0a\x20\x24\x50\x11\x72\
+\x3e\x1e\xad\x01\x70\x16\x40\xe8\x82\xa8\x19\xc0\x6e\x89\x44\x42\
+\x81\x42\xe9\x81\x56\x1b\x7f\x79\xd7\xae\xe7\x88\xe3\xee\x9b\xcd\
+\x4d\x4c\x4c\xfc\xba\xa2\xa2\xc2\x6f\xbf\x79\x60\x81\x88\x5a\x01\
+\xa8\x7c\x95\xf4\x7a\x7d\x82\xc1\x60\x38\xe2\xcb\xe7\xab\xa7\xd3\
+\xe9\x3e\x6e\x6f\xef\xd8\x56\x5b\xfb\x7e\x5a\x52\x52\x22\xb5\xb5\
+\xb5\xbe\x27\x91\x48\x7a\xd5\x6a\xb5\xdf\x03\x04\xec\x84\x1e\x94\
+\x94\x94\x94\xf8\xca\x0c\x06\xc3\xc1\x25\x54\x23\xed\x76\xfb\x1b\
+\x63\x63\x63\x7f\x8f\x89\x89\x96\x6a\xb5\x5a\x5d\x4b\x4b\xcb\xfe\
+\xe2\xe2\xe2\x87\x7b\x0b\x82\x40\x56\x5d\x5d\xbd\xca\x5b\x40\x44\
+\xb1\x9b\x36\x6d\x6c\x68\x6e\xbe\xfa\x61\x7c\xfc\x8a\x42\x9d\x4e\
+\x97\x35\x38\x38\xb8\x07\x40\x95\x3f\x23\x01\x5b\x71\x10\x9c\x12\
+\x45\x31\xd6\x7b\x60\xe1\x56\xf4\xf4\xf4\xfc\x6d\x6c\xcc\xc8\x5b\
+\xad\x56\x64\x65\x65\x95\x65\x67\x67\x2f\x4a\xab\x07\x41\x3b\xe1\
+\x77\x41\x75\x75\xf5\x76\x51\x14\x07\x64\x32\x59\xef\xd5\xab\x5f\
+\x9d\xde\xbc\x39\xb7\x20\x3d\x5d\x87\xae\xae\xae\x23\x3b\x77\xee\
+\xac\x58\x44\xce\x98\xea\xfb\x44\x60\x11\x44\x51\x9c\x61\x8c\x15\
+\xce\xcf\xcf\x97\x29\x95\x4a\xa3\xd1\x64\x12\x2d\x96\x3b\xc8\xc8\
+\xc8\x28\x2d\x2a\x2a\x5a\xe9\x6f\x5f\xc0\xc7\xe8\xfb\x8c\xbd\xc5\
+\x2f\x5d\xf8\xe0\x5f\x27\xa9\xbb\xbb\x87\x2e\x5d\xba\x74\x3c\x68\
+\x1f\xf8\x6f\xa3\xab\xf3\xe6\x51\x93\xc9\x2c\x98\xcd\x66\x24\x27\
+\xa7\x3c\x5f\x5e\x5e\xfe\xa4\xaf\xce\xff\xd4\x81\xa6\xa6\x2f\x3e\
+\xeb\xee\xee\xbe\x6c\x32\x5b\x30\x3b\xeb\x0c\xdf\xba\x75\xeb\xe1\
+\x1f\xd4\x01\x00\xe8\xbc\x79\xe3\x4d\xb3\xd9\x2c\xdc\xea\x1f\x98\
+\xee\xef\xef\xbf\xe1\xbb\xce\xf0\x03\xfc\x9e\x6f\xd8\xb0\x71\x07\
+\x63\xb8\xd1\xd8\xd8\xd8\xe7\xb3\xa4\xf8\x0f\x57\x7d\x9a\x0c\x52\
+\xb2\x60\x80\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x47\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xc4\x49\x44\
+\x41\x54\x58\x85\xed\x96\xbf\x4b\x5c\x41\x14\x85\xbf\x63\xde\x4a\
+\xa2\xb2\x2a\x8b\xb0\xb1\x51\x10\x24\xfe\x28\x2c\x2d\x6c\x0c\x08\
+\x81\x34\x26\x7f\x81\xa5\xb6\x01\x83\xa5\x9d\x8b\x55\xfe\x09\x41\
+\x6d\xd4\x42\x50\x0b\x21\x45\xc0\xd2\xc2\x22\x45\xc0\x76\x23\x44\
+\x24\x89\x61\x31\xc2\x4d\xf1\x14\x52\xbc\x3b\x6f\xf1\x39\x2b\x88\
+\x07\x5e\xf5\xcd\xdc\x39\xef\xce\xcc\x61\x04\xbc\x04\x2e\x89\xa3\
+\x69\xe0\x3d\xf0\xc3\xe1\x9f\x13\xe0\xd2\xcc\x7e\xc6\x58\x5d\xd2\
+\x0b\xe0\x14\x58\x77\x86\xfc\x49\x62\x2c\xfc\x9f\x1a\x40\xdd\xcc\
+\xbe\x66\x41\x49\xe5\xc2\x06\x24\x4d\x01\x5d\x0e\x1e\xc3\x6f\x3f\
+\x00\xf7\xd1\x81\x55\x60\xd3\x61\xd5\x56\x18\x38\x33\xb3\x4f\x59\
+\x40\xd2\xec\x8d\x89\xa8\x06\x42\x7a\x0e\x54\x25\xbd\x72\x78\xf4\
+\x43\x78\x05\x8c\x00\xf3\x0e\xdf\xcf\x35\x20\x69\x0b\xe8\xbe\x29\
+\x96\xa5\x8e\xc0\xf4\x06\xf0\x37\x54\xbf\x99\x0e\x7c\x07\x16\xcc\
+\xac\xee\x18\xdc\x0e\xcc\x2d\x03\xdf\x78\xd4\x39\x00\xb4\x49\x7a\
+\xe3\xb0\x96\xe4\xc0\x1a\x30\xe8\xb0\x4a\x74\x03\x66\xb6\xe1\xb1\
+\xa7\x1c\x20\x3d\x84\x43\xc0\x9c\xc3\x0f\x63\x1b\x78\x0d\x0c\x00\
+\x7d\x0e\xdf\x49\x80\x8a\xa4\x0f\x81\x22\x03\x05\x0c\x9c\x03\x1f\
+\xcd\xec\x28\x0b\xde\x5e\xc3\x5f\x40\x28\x4c\x86\x0a\x18\xc8\x55\
+\x02\x5c\x99\xd9\xb1\x37\x40\x92\xfb\x5c\x93\x54\x02\x6a\xa4\x3f\
+\x91\xa5\x71\x60\x2f\xcf\x40\x11\x25\xa4\x61\xb3\xe4\xf0\x9e\x66\
+\x0a\x14\x91\x01\x17\x5e\x07\x25\x5d\xc4\x36\x90\xa7\x2a\xf0\x36\
+\x90\x03\x5f\x9a\x31\xd0\x09\x8c\x49\xca\x4a\xb4\x76\xa0\x2d\x30\
+\x77\x97\x74\x1b\xbc\x33\x72\xdd\x8c\x81\x13\xd2\xf7\xfd\x75\x06\
+\x4b\x80\x67\x81\xb9\x33\xc0\x28\xf0\xdb\xe1\x2b\x00\x65\x33\xe3\
+\x2e\x1f\x69\xd4\xae\x07\xf8\x32\x30\x19\xe0\xe5\x50\xfb\x5a\xa2\
+\xa2\x87\x50\xa4\x49\x5a\x73\xf8\x30\x91\x73\xa0\x01\x2c\x06\xf8\
+\x5c\x5e\x81\x42\x06\x2c\xdd\xc8\x50\x8a\x3e\x78\x0e\xf4\x03\xef\
+\x24\x4d\x38\xfc\x30\x01\x3a\x25\xc5\x32\x70\x00\xf4\xe2\x5f\xc3\
+\xd2\x3f\x6d\xfc\xb5\xcb\x34\x87\x52\x09\x00\x00\x00\x00\x49\x45\
+\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x1d\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x9a\x49\x44\
+\x41\x54\x58\x85\xc5\x97\x3b\x4f\x54\x41\x14\x80\xbf\x03\x2b\xa8\
+\xab\x0b\xc6\xe7\x6a\x25\xd1\x46\xd6\x6c\x62\x67\xa3\x89\x0a\x58\
+\xf8\x2a\xac\xfc\x0f\xd6\xc4\xd2\xf8\x07\xfc\x13\x36\x42\x63\x69\
+\xa2\x95\x56\x6a\xc2\xae\xf2\xb0\x31\x11\x22\x16\x28\x9a\x98\xac\
+\x46\x03\x1e\x8b\x39\xc3\x0e\xc3\xdd\xbb\x73\x91\x64\x27\x99\x9c\
+\x99\x3b\x67\xce\x7c\x73\xce\x9d\x97\x00\x55\xa0\x45\x6f\x52\xb9\
+\x04\xb4\x54\xf5\x47\x2f\x46\x17\x11\xfa\x7a\x31\x70\x98\x7a\x0e\
+\x20\x40\x05\x18\x07\xf6\xd9\xb7\x19\x55\x6d\x6e\x51\x14\x19\x00\
+\xee\x58\xf5\x8d\xaa\xce\x8a\xc8\x38\x70\x1c\xf8\xae\xaa\x4f\x92\
+\x06\x14\x19\x01\x2e\x58\xf5\x19\x06\xf0\x11\x50\xcb\x4f\x55\x95\
+\x38\x03\xc3\x81\xce\xa4\x7d\x7b\x64\xf5\x4f\x59\x7d\x3a\xd8\xb9\
+\x1b\xd8\x39\x99\x15\x82\x4b\x22\x72\x30\x65\x36\xc0\xa2\xc9\xa3\
+\x22\x22\x89\x7d\xaa\x26\x7f\x02\xab\x59\x00\x25\xe0\x56\x41\x80\
+\x12\x70\x28\xb1\xcf\xb1\xb0\x6f\x0c\xa0\x26\x6f\x27\x1a\x5b\xca\
+\x30\x9c\x0a\xb0\x94\x05\xf0\xca\xe4\x65\x11\x39\x90\x60\x6c\x31\
+\x28\x57\x3b\x6a\x6d\x4e\x5e\x2f\xd3\x03\x0b\xc0\x2c\xb0\x8b\xb4\
+\x30\x84\x00\x45\x3d\x90\x09\x00\x30\x65\xb2\x6b\x18\x54\xb5\x05\
+\xac\xc6\x00\x22\x52\x17\x91\x86\xe5\x07\xc1\xf7\x3e\xe0\x70\x2a\
+\xc0\x98\x88\x0c\x77\x83\xa0\xed\x85\x30\x04\xe7\x80\xba\xe5\x89\
+\xe0\xfb\x11\xa0\x3f\x17\x40\x55\x17\x80\x39\x5c\x18\x6e\x16\x00\
+\x08\x43\x50\x0b\xca\xa3\x36\xf3\x58\xa7\xa3\x07\xa0\x40\x18\x68\
+\xaf\x84\xd0\x03\x1e\x60\x05\xd8\x0b\x8c\x44\x00\x6b\xc0\xe7\x3c\
+\x80\xc7\x26\xc7\x45\x64\xa8\x0b\x40\x96\x07\x46\x81\x3f\xc0\x74\
+\x04\xe4\x21\x97\x55\x75\xbd\x23\x40\x10\x86\x01\xe0\x46\x11\x00\
+\x5b\xbe\x27\x80\x79\xe0\xb5\xb5\x9d\x8d\x20\x37\x56\x4f\xde\x69\
+\x98\x1a\x06\x6f\x6c\x48\x44\xf6\xe0\x66\x0f\xd0\xb4\xfc\xdf\x00\
+\x13\x22\x52\x49\x00\xf0\x03\x78\x77\x37\x71\x5e\x58\xdb\x16\x80\
+\xaa\xce\x9b\x81\x41\xe0\x7a\x8e\xde\x57\xdc\xc1\xe2\x07\xf0\x1e\
+\x68\xa8\xea\x6f\xdc\xe6\x76\x5a\x44\x06\x89\x76\xc1\x5c\x00\x4b\
+\xa9\x61\x08\x57\x42\xe8\x01\x2f\xfb\x81\x33\x44\xe7\x40\x11\x80\
+\xab\xc0\xfe\x1c\xbd\xf0\x47\xac\xe1\xee\x07\xdf\x22\x90\x1a\x05\
+\xff\x01\x54\x75\x0e\xe7\xc2\xdd\xc0\xb5\x04\x80\x3a\xee\x58\x6e\
+\x04\x6d\xbe\x7c\x9e\xf6\x24\x92\x3d\x00\x69\x61\xf0\x00\x57\x4c\
+\x86\x57\x3a\x5f\x1e\x33\xb9\xa2\xaa\xbf\xb6\x03\x70\x31\x01\xc0\
+\xef\x78\x1b\x1e\x50\xd5\x2f\xb8\x5d\xef\x54\xa4\x9b\x06\xa0\xaa\
+\xb3\xc0\x7b\xda\x87\x48\x1e\x80\x4f\xf1\xa5\x36\xac\x17\x03\xb0\
+\x34\xd5\xa5\x3d\xbc\x19\xb5\x80\x0f\x39\x00\xa1\xee\x8e\x01\x2c\
+\xe3\x36\x1c\x80\xb7\xaa\xfa\x37\x6a\x0f\x7f\xca\x4d\x1e\x28\x99\
+\x7c\x88\xbb\x76\xcf\x64\x59\x57\xd5\x77\x22\x32\x89\x3b\xd9\x00\
+\x5e\x46\xed\xeb\x22\x72\x0f\xf7\xb6\xd8\xf2\xa6\x00\x5e\x00\xf7\
+\xad\xfc\x3c\x6c\x10\xa0\xd2\xc3\xb7\x61\xa5\xe7\x4f\xb3\x12\x50\
+\x4e\x7f\x53\xec\x78\x2a\xff\x03\x5a\xdd\xf8\xf7\x80\xbc\xec\x9a\
+\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\xc6\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\
+\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x03\x10\
+\x0f\x18\x06\xc3\xb0\x11\x52\x00\x00\x01\x46\x49\x44\x41\x54\x58\
+\xc3\xed\xd7\xc1\x2a\x05\x61\x14\x07\xf0\xdf\x70\x09\x57\x16\x58\
+\xb8\x58\xdc\x67\x90\x25\xa5\x2c\x3c\x80\xb5\xac\x65\x63\xe3\x05\
+\x3c\x80\x87\x50\xca\x8a\x2c\xa5\x2c\xb0\xf0\x04\xd6\x36\x22\x4a\
+\x11\x85\xba\x5d\x9b\x4f\xdd\xa6\x99\x3b\x83\xee\x8c\xb8\xa7\xbe\
+\xfe\x7d\xe7\xcc\x37\xe7\xdf\x77\xfe\x73\x4e\x13\xa1\x86\x17\xe5\
+\x58\xb5\x12\x92\x3f\x95\x44\x40\xa5\xa0\x3c\x2b\x58\x8f\xf9\x6e\
+\xb0\xda\x53\x10\x81\x05\xcc\xa0\x3f\x29\x38\x52\x00\x81\x0d\x34\
+\x51\x8f\xe7\xee\x51\xb2\x25\x11\x68\xc6\x56\x92\x4d\xe2\x0c\x6f\
+\x38\xc5\x44\x2c\xbe\x96\x71\x3e\x57\x09\xda\xbd\x60\x37\xc4\x96\
+\x03\xee\xb4\xc4\xea\xb8\x8f\x9d\x4f\x2d\xc1\x77\x09\x7c\x26\x18\
+\x0e\x78\x17\xfc\x11\x4e\xb0\x99\x97\xc0\x77\x35\x30\x1a\xf0\x25\
+\xb6\x5f\xc3\x10\xb6\x3b\xdd\x07\x1e\x30\x8e\x6a\xcb\x1e\xb6\x30\
+\x8f\xc6\x4f\x44\x28\x47\x49\x8e\x03\x2e\x05\x3c\x0a\x38\x86\xcb\
+\xbc\xe2\x4b\x13\x61\x33\x63\xc1\x14\xce\xf1\x1e\xbe\x86\x5a\x06\
+\xe1\x54\x0d\x24\x95\x20\xca\x41\xfa\x1a\x73\x19\xcf\x44\x5f\xd5\
+\x40\x1f\x7a\xcb\x98\x39\x9f\x25\xd8\xcb\x71\xfd\x3f\x5d\x6d\x4b\
+\x70\x88\xab\x0e\xdd\xc0\x2c\x16\xbf\xda\x09\xff\xef\x30\xea\x12\
+\xe8\x12\xe8\x12\xf8\x93\xff\x05\x03\x01\xa7\x5b\x7c\x0d\x3c\x16\
+\xd5\x09\x0f\x12\xe6\xc2\x6d\xda\x38\xee\x84\xed\x63\x10\x17\x78\
+\x0d\xbe\xe7\x22\x67\x41\xea\x1c\xfa\x15\x22\xac\x96\x98\xbf\xfa\
+\x01\x23\x9a\x68\x5e\xa9\x95\x69\x93\x00\x00\x00\x00\x49\x45\x4e\
+\x44\xae\x42\x60\x82\
+\x00\x00\x03\x63\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x13\x08\x06\x00\x00\x00\x99\x67\x8d\xcf\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\xe0\x49\x44\
+\x41\x54\x38\x8d\x85\x93\x4d\x68\x5d\x55\x14\x85\xbf\xbd\xef\xcd\
+\x6b\x78\x49\x6c\x9b\xb4\xdc\xa3\xbc\xe6\x69\x05\x1b\x27\xa6\xa5\
+\x08\x1d\x28\x34\xa6\x54\xa4\x74\xaa\x86\x0e\x04\x27\x3a\x90\x20\
+\x8a\x9a\x3b\xf1\xb7\xe5\x0e\x2c\x2a\x62\x55\x4a\x07\x22\x98\x0a\
+\x1d\x88\x7f\x94\x52\x44\x45\x85\x82\x04\x07\xa2\xd5\x94\x5a\x6a\
+\x8d\x3d\x89\xa1\x16\xf3\xa3\x2f\xef\x9e\xb3\x1d\xf8\xae\x44\xeb\
+\xcf\x1e\x1d\x38\x6b\xad\xbd\xce\xd9\x6b\x8b\x99\xf1\x7f\xe5\x73\
+\xb7\x16\xd8\x0b\x6c\x03\x3e\x03\xde\x72\x85\x37\x80\xf4\x5f\x08\
+\x19\xb0\x15\xf8\x12\x58\x06\x9e\x00\x1a\xc0\x71\xe0\x6e\xe0\x4c\
+\xe7\xee\x4a\x01\x9f\x3b\x01\x26\x81\x12\x38\x0d\x4c\x03\x03\xc0\
+\x5d\x40\x0f\x70\x3b\xb0\xbe\xc2\xeb\xdf\xc8\x29\x70\x6f\x87\x7c\
+\x04\xd8\x02\x5c\x0f\x7c\xe2\x0a\x1f\xa3\xb1\xcb\xa2\x39\x11\x9e\
+\xf3\xb9\xeb\xb9\x42\x00\x78\x18\xd8\x0d\x8c\x03\x6b\x81\xcb\x1d\
+\x4c\x0f\x80\x24\xb6\x8c\x71\x34\x46\x33\x29\xad\xff\x2f\x02\x3e\
+\x77\x7d\x01\x6e\x03\xee\x71\x85\xff\x16\x98\xc4\x68\x00\x83\xc0\
+\x4d\x00\x57\x1f\x98\x3d\xa1\x35\xd9\x6c\xc2\x1a\x4b\x65\x01\x40\
+\x7d\xee\xea\x3e\x77\xe3\x26\xbc\x91\xc2\x86\xee\xa4\x95\x01\xb8\
+\xc2\x2f\x8b\xb0\xc6\xb0\x1d\x98\xd5\xaa\x46\xd9\x7e\xff\xa8\x22\
+\x6f\x57\xae\x14\x28\x80\xef\xd3\x5a\xdc\x57\x97\xe5\xdd\xeb\xf6\
+\xff\x7c\xbe\x02\x9b\xd9\x7b\x41\xe2\x58\x14\x8e\xce\x3c\xd2\x18\
+\xed\x38\xad\x01\xbf\x02\x57\x55\x53\x98\x01\x2e\x6c\x7c\x72\x6e\
+\x61\xf5\x67\x7c\xf4\x94\xa4\x43\xe9\xc0\xfb\x5d\x65\xba\x29\x98\
+\x2d\x24\x69\x7b\xd4\xe7\xae\x1b\xb8\x11\x98\x02\xbe\xa9\x1c\x3c\
+\x0b\x0c\xf9\xdc\x5d\xb3\x5a\x60\x27\xc4\x32\x74\xf5\x99\xda\x2e\
+\x55\xcd\x14\x19\x2d\x8d\x0c\x58\x72\x85\x3f\x51\x05\x49\x3b\x87\
+\x49\x60\xd8\xe7\xae\x0e\xf0\xdd\x83\xfd\xcd\xd9\x56\x76\xa0\x71\
+\xca\x7f\x2a\x51\x6e\x10\xb1\xa7\xa3\xd1\x14\xb5\x56\x88\x36\xe8\
+\x73\x37\xe2\x73\xd7\x04\x90\x2a\xca\x9d\xb7\x0d\x11\x93\x9d\x49\
+\x1a\xe7\x5b\x81\x6b\x7b\x5b\xdd\x2f\xb7\x7a\x7e\xd9\x42\xec\x7a\
+\x26\x46\x66\x52\x15\xdf\x0e\x71\x87\xaa\x7c\x1d\xc5\xa6\xd5\xe4\
+\xf8\xea\x1c\x34\xa2\x70\x9d\x24\x61\xd1\x44\xe6\xeb\xbf\xb5\x5e\
+\x5c\xf7\xfc\xb9\xcb\xb1\xdd\x35\x62\x51\xa6\x2c\xca\x87\x6d\x2b\
+\x3f\x4e\x14\x05\xc6\xc4\x64\x18\x18\x51\x80\x8b\x13\xd9\x04\x66\
+\xef\x60\xf6\x50\x30\x7b\x3c\x59\x91\x76\xff\x0b\x97\x16\x7d\xee\
+\xd6\x8b\x72\x04\xb1\x69\x49\xec\xd6\xde\xb0\x32\x55\x0a\xc7\x04\
+\x04\x64\x00\x68\x26\xf7\xb7\x5e\xed\x15\xe4\x10\xe8\xb8\x09\x0a\
+\xb2\x31\x28\x17\x96\x3e\x38\x58\x07\x6e\x01\xe6\x80\x2f\x14\xee\
+\x6c\x27\xb5\x9f\x42\xe4\x73\x11\xb6\x8b\x71\x12\xa1\x2f\x05\x06\
+\x45\xcc\x24\xb5\x73\x04\x1d\x16\xb1\x97\xb4\x5d\xce\x87\x24\x39\
+\x0f\x7c\xe5\x0a\x7f\x09\xe0\xc7\xc7\xb2\x77\x35\xb1\x07\x12\x4d\
+\x8f\xc5\x10\x5f\x13\xb1\xad\x0a\x67\x15\x98\x8b\x50\x2b\x83\xd5\
+\x16\x17\x7b\x0f\x65\x67\x66\xdf\x5c\x91\xf4\x0e\x60\xa1\x22\x03\
+\xa8\xca\xeb\x98\x9c\x52\x0b\xfb\x12\xb5\x31\x15\x96\x80\xc3\x72\
+\x71\x22\xeb\x06\x5e\xb1\x68\x37\x9b\xea\x61\x2c\x0c\xa9\x68\xd3\
+\x15\x7e\x0f\xff\x50\x9d\x75\x17\x57\xf8\xf8\xe7\x18\x7d\xee\x06\
+\xf8\x63\x13\x47\x80\x1f\x80\xfb\x56\x77\xff\xaf\xfa\x1d\xba\x24\
+\x3c\x2d\x28\xaa\x26\x54\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
+\x60\x82\
+"
+
+qt_resource_name = b"\
+\x00\x09\
+\x07\x6f\x7f\x13\
+\x00\x65\
+\x00\x74\x00\x65\x00\x20\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x73\
+\x00\x0c\
+\x0b\xac\xc9\x87\
+\x00\x79\
+\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x05\x68\x0e\x67\
+\x00\x66\
+\x00\x69\x00\x6c\x00\x65\x00\x73\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0a\
+\x08\x94\x60\x47\
+\x00\x73\
+\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x0d\x20\x81\xa7\
+\x00\x73\
+\x00\x68\x00\x6f\x00\x77\x00\x5f\x00\x6e\x00\x61\x00\x6d\x00\x65\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x04\x7d\x40\x27\
+\x00\x79\
+\x00\x5f\x00\x72\x00\x65\x00\x64\x00\x75\x00\x63\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x08\x77\x3b\x27\
+\x00\x65\
+\x00\x74\x00\x65\x00\x5f\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x05\x19\x1a\x27\
+\x00\x66\
+\x00\x69\x00\x74\x00\x5f\x00\x74\x00\x72\x00\x65\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x0b\x8c\xc9\x87\
+\x00\x78\
+\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x0b\x21\x0f\x87\
+\x00\x66\
+\x00\x69\x00\x6c\x00\x65\x00\x6f\x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x08\x44\x78\xa7\
+\x00\x65\
+\x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x5f\x00\x70\x00\x64\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x10\
+\x0c\x5c\xa4\x07\
+\x00\x73\
+\x00\x68\x00\x6f\x00\x77\x00\x5f\x00\x73\x00\x75\x00\x70\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x06\xeb\x91\xa7\
+\x00\x7a\
+\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x6f\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x04\x5d\x40\x27\
+\x00\x78\
+\x00\x5f\x00\x72\x00\x65\x00\x64\x00\x75\x00\x63\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0b\
+\x05\x03\x9b\x27\
+\x00\x7a\
+\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x69\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x01\x2c\x5a\x47\
+\x00\x66\
+\x00\x69\x00\x74\x00\x5f\x00\x72\x00\x65\x00\x67\x00\x69\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x10\
+\x08\x0c\xea\xa7\
+\x00\x63\
+\x00\x6c\x00\x65\x00\x61\x00\x6e\x00\x5f\x00\x73\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0e\
+\x0b\x65\x21\x67\
+\x00\x66\
+\x00\x6f\x00\x72\x00\x63\x00\x65\x00\x5f\x00\x74\x00\x6f\x00\x70\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0f\
+\x02\x33\x29\x27\
+\x00\x73\
+\x00\x68\x00\x6f\x00\x77\x00\x5f\x00\x6e\x00\x65\x00\x77\x00\x69\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x03\x4a\xfd\xc7\
+\x00\x73\
+\x00\x68\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0c\
+\x07\xf4\x3c\xa7\
+\x00\x65\
+\x00\x74\x00\x65\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x15\x00\x00\x00\x02\
+\x00\x00\x01\xc6\x00\x00\x00\x00\x00\x01\x00\x00\x50\xd4\
+\x00\x00\x02\x30\x00\x00\x00\x00\x00\x01\x00\x00\x5e\x6f\
+\x00\x00\x02\x54\x00\x00\x00\x00\x00\x01\x00\x00\x61\x90\
+\x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x48\x30\
+\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x97\
+\x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x4b\xcc\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x2e\x72\
+\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x28\x92\
+\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x03\x4a\
+\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x43\x53\
+\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x00\x63\x5a\
+\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x55\x10\
+\x00\x00\x01\x26\x00\x00\x00\x00\x00\x01\x00\x00\x3b\xa4\
+\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x12\x12\
+\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x06\x3d\
+\x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x00\x37\xde\
+\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x5c\x24\
+\x00\x00\x00\xea\x00\x00\x00\x00\x00\x01\x00\x00\x34\x52\
+\x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x48\x00\x00\x00\x00\x00\x01\x00\x00\x40\xc4\
+\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xa8\
+"
+
+def qInitResources():
+    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/ete3/treeview/export_pdf.png b/ete3/treeview/export_pdf.png
new file mode 100644
index 0000000..eab0f9d
Binary files /dev/null and b/ete3/treeview/export_pdf.png differ
diff --git a/ete3/treeview/faces.py b/ete3/treeview/faces.py
new file mode 100644
index 0000000..dff8e73
--- /dev/null
+++ b/ete3/treeview/faces.py
@@ -0,0 +1,2325 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import re
+
+try:
+    from urllib2 import urlopen
+except ImportError:
+    from urllib.request import urlopen
+
+from PyQt4.QtGui import (QGraphicsRectItem, QGraphicsLineItem,
+                         QGraphicsPolygonItem, QGraphicsEllipseItem,
+                         QPen, QColor, QBrush, QPolygonF, QFont,
+                         QPixmap, QFontMetrics, QPainter,
+                         QRadialGradient, QGraphicsSimpleTextItem, QGraphicsTextItem,
+                         QGraphicsItem)
+from PyQt4.QtCore import Qt,  QPointF, QRect, QRectF
+
+import math
+from .main import add_face_to_node, _Background, _Border, COLOR_SCHEMES
+import six
+from six.moves import map
+from six.moves import range
+from six.moves import zip
+
+try:
+    from numpy import isfinite as _isfinite, ceil
+except ImportError:
+    pass
+else:
+    isfinite = lambda n: n and _isfinite(n)
+
+_aafgcolors = {
+    'A':"#000000" ,
+    'R':"#000000" ,
+    'N':"#000000" ,
+    'D':"#000000" ,
+    'C':"#000000" ,
+    'Q':"#000000" ,
+    'E':"#000000" ,
+    'G':"#000000" ,
+    'H':"#000000" ,
+    'I':"#000000" ,
+    'L':"#000000" ,
+    'K':"#000000" ,
+    'M':"#000000" ,
+    'F':"#000000" ,
+    'P':"#000000" ,
+    'S':"#000000" ,
+    'T':"#000000" ,
+    'W':"#000000" ,
+    'Y':"#000000" ,
+    'V':"#000000" ,
+    'B':"#000000" ,
+    'Z':"#000000" ,
+    'X':"#000000",
+    '.':"#000000",
+    '-':"#000000",
+}
+
+_aabgcolors = {
+    'A':"#C8C8C8" ,
+    'R':"#145AFF" ,
+    'N':"#00DCDC" ,
+    'D':"#E60A0A" ,
+    'C':"#E6E600" ,
+    'Q':"#00DCDC" ,
+    'E':"#E60A0A" ,
+    'G':"#EBEBEB" ,
+    'H':"#8282D2" ,
+    'I':"#0F820F" ,
+    'L':"#0F820F" ,
+    'K':"#145AFF" ,
+    'M':"#E6E600" ,
+    'F':"#3232AA" ,
+    'P':"#DC9682" ,
+    'S':"#FA9600" ,
+    'T':"#FA9600" ,
+    'W':"#B45AB4" ,
+    'Y':"#3232AA" ,
+    'V':"#0F820F" ,
+    'B':"#FF69B4" ,
+    'Z':"#FF69B4" ,
+    'X':"#BEA06E",
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    }
+
+_ntfgcolors = {
+    'A':'#000000',
+    'G':'#000000',
+    'I':'#000000',
+    'C':'#000000',
+    'T':'#000000',
+    'U':'#000000',
+    '.':"#000000",
+    '-':"#000000",
+    ' ':"#000000"
+    }
+
+_ntbgcolors = {
+    'A':'#A0A0FF',
+    'G':'#FF7070',
+    'I':'#80FFFF',
+    'C':'#FF8C4B',
+    'T':'#A0FFA0',
+    'U':'#FF8080',
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    ' ':"#FFFFFF"
+}
+
+__all__ = ["Face", "TextFace", "AttrFace", "ImgFace",
+           "ProfileFace", "SequenceFace", "TreeFace",
+           "RandomFace", "DynamicItemFace", "StaticItemFace",
+           "CircleFace", "PieChartFace", "BarChartFace", "SeqMotifFace",
+           "RectFace", "StackedBarFace"]
+
+class Face(object):
+    """Base Face object. All Face types (i.e. TextFace, SeqMotifFace,
+    etc.) inherit the following options:
+
+    :param 0 margin_left: in pixels
+    :param 0 margin_right: in pixels
+    :param 0 margin_top: in pixels
+    :param 0 margin_bottom: in pixels
+    :param 1.0 opacity: a float number in the (0,1) range
+    :param True rotable: If True, face will be rotated when necessary
+      (i.e. when circular mode is enabled and face occupies an inverted position.)
+    :param 0 hz_align: 0 left, 1 center, 2 right
+    :param 1 vt_align: 0 top, 1 center, 2 bottom
+    :param background.color: background color of face plus all its margins.
+    :param inner_background.color: background color of the face excluding margins
+    :param border: Border around face margins.
+    :param inner_border: Border around face excluding margins.
+
+    **border and inner_border sub-parameters:**
+
+    :param 0 (inner\_)border.type: 0=solid, 1=dashed, 2=dotted
+    :param None (inner\_)border.width: a positive integer number. Zero
+                             indicates a cosmetic pen. This means that
+                             the pen width is always drawn one pixel
+                             wide, independent of the transformation
+                             set on the painter. A "None" value means
+                             invisible border.
+    :param black (inner\_)border.color: RGB or color name in :data:`SVG_COLORS`
+
+    See also specific options for each face type.
+
+    """
+    __slots__ = ["margin_left", "margin_right", "margin_top", "margin_bottom",
+                 "pixmap", "opacity", "rotable", "rotable", "hz_align",
+                 "vt_align", "background", "border", "inner_border",
+                 "inner_background", "rotation", "node", "type"]
+
+    def __init__(self):
+        self.node        = None
+        self.type = "pixmap" # pixmap, text or item
+
+        self.margin_left = 0
+        self.margin_right = 0
+        self.margin_top = 0
+        self.margin_bottom = 0
+        self.pixmap = None
+        self.opacity = 1.0
+        self.rotable = True
+        self.hz_align = 0 # 0 left, 1 center, 2 right
+        self.vt_align = 1
+        self.background = _Background()
+        self.border = _Border()
+        self.inner_border = _Border()
+        self.inner_background = _Background()
+        self.rotation = 0
+
+    def _size(self):
+        if self.pixmap:
+            return self._width(),self._height()
+        else:
+            return 0, 0
+
+    def _width(self):
+        if self.pixmap:
+            return self.pixmap.width()
+        else:
+            return 0
+
+    def _height(self):
+        if self.pixmap:
+            return self.pixmap.height()
+        else:
+            return 0
+
+    def load_pixmap_from_file(self, filename):
+        self.pixmap = QPixmap(filename)
+
+    def update_pixmap(self):
+        pass
+
+
+class TextFace(Face):
+    """Static text Face object
+
+    .. currentmodule:: ete3
+
+    :param text:     Text to be drawn
+    :param ftype:    Font type, e.g. Arial, Verdana, Courier
+    :param fsize:    Font size, e.g. 10,12,6, (default=10)
+    :param fgcolor:  Foreground font color. RGB code or color name in :data:`SVG_COLORS`
+    :param penwidth: Penwdith used to draw the text.
+    :param fstyle: "normal" or "italic"
+
+    :param False tight_text: When False, boundaries of the text are
+    approximated according to general font metrics, producing slightly
+    worse aligned text faces but improving the performance of tree
+    visualization in scenes with a lot of text faces.
+    """
+    __slots__ = ["fgcolor", "fstyle", "fsize", "ftype", "penwidth",
+                 "tight_text", "bold", "_text", "_bounding_rect", "_real_rect"]
+
+    def __init__(self, text, ftype="Verdana", fsize=10,
+                 fgcolor="black", penwidth=0, fstyle="normal",
+                 tight_text=False, bold=False):
+        self._text = str(text)
+        self._bounding_rect = None
+        self._real_rect = None
+
+        Face.__init__(self)
+        self.pixmap = None
+        self.type = "text"
+        self.fgcolor = fgcolor
+        self.ftype = ftype
+        self.fsize = fsize
+        self.fstyle = fstyle
+        self.penwidth = penwidth
+        self.tight_text = tight_text
+        self.bold = bold
+
+
+    def __repr__(self):
+        return "Text Face [%s] (%s)" %(self._text, hex(self.__hash__()))
+
+    def _load_bounding_rect(self, txt=None):
+        if txt is None:
+            txt= self.get_text()
+        fm = QFontMetrics(self._get_font())
+        tx_w = fm.width(txt)
+        if self.tight_text:
+            textr = fm.tightBoundingRect(self.get_text())
+            down = textr.height() + textr.y()
+            up = textr.height() - down
+            asc = fm.ascent()
+            des = fm.descent()
+            center = (asc + des) / 2.0
+            xcenter = ((up+down)/2.0) + asc - up
+            self._bounding_rect = QRectF(0, asc - up, tx_w, textr.height())
+            self._real_rect = QRectF(0, 0, tx_w, textr.height())
+        else:
+            textr = fm.boundingRect(txt)
+            self._bounding_rect = QRectF(0, 0, tx_w, textr.height())
+            self._real_rect = QRectF(0, 0, tx_w, textr.height())
+
+    def _get_text(self):
+        return self._text
+
+    def _set_text(self, txt):
+        self._text = str(txt)
+
+    def get_bounding_rect(self):
+        if not self._bounding_rect:
+            self._load_bounding_rect()
+        return self._bounding_rect
+
+    def get_real_rect(self):
+        if not self._real_rect:
+            self._load_bounding_rect()
+        return self._bounding_rect
+
+    text = property(_get_text, _set_text)
+
+    def _get_font(self):
+        font = QFont(self.ftype, self.fsize)
+        font.setBold(self.bold)
+        if self.fstyle == "italic":
+            font.setStyle(QFont.StyleItalic)
+        elif self.fstyle == "oblique":
+            font.setStyle(QFont.StyleOblique)
+        return font
+
+    def _height(self):
+        return self.get_bounding_rect().height()
+
+    def _width(self):
+        return self.get_bounding_rect().width()
+
+    def get_text(self):
+        return self._text
+
+class AttrFace(TextFace):
+    """
+
+    Dynamic text Face. Text rendered is taken from the value of a
+    given node attribute.
+
+    :param attr:     Node's attribute that will be drawn as text
+    :param ftype:    Font type, e.g. Arial, Verdana, Courier, (default="Verdana")
+    :param fsize:    Font size, e.g. 10,12,6, (default=10)
+    :param fgcolor:  Foreground font color. RGB code or name in :data:`SVG_COLORS`
+    :param penwidth: Penwdith used to draw the text. (default is 0)
+    :param text_prefix: text_rendered before attribute value
+    :param text_suffix: text_rendered after attribute value
+    :param formatter: a text string defining a python formater to
+      process the attribute value before renderer. e.g. "%0.2f"
+    :param fstyle: "normal" or "italic"
+    """
+
+    __slots__ = ["attr", "text_suffix", "text_prefix", "attr_formatter", "_bounding_rect_text"]
+
+    def __repr__(self):
+        return "Attribute Face [%s] (%s)" %(self.attr, hex(self.__hash__()))
+
+    def get_text(self):
+        if self.attr_formatter:
+            text = self.attr_formatter % getattr(self.node, self.attr)
+        else:
+            text = str(getattr(self.node, self.attr))
+        text = ''.join(map(str, [self.text_prefix, \
+                                     text, \
+                                     self.text_suffix]))
+        return text
+
+    def get_bounding_rect(self):
+        current_text = self.get_text()
+        if current_text != self._bounding_rect_text:
+            self._load_bounding_rect(current_text)
+            self._bounding_rect_text = current_text
+        return self._bounding_rect
+
+    def get_real_rect(self):
+        current_text = self.get_text()
+        if current_text != self._bounding_rect_text:
+            self._load_bounding_rect(current_text)
+            self._bounding_rect_text = current_text
+        return self._real_rect
+
+    def __init__(self, attr, ftype="Verdana", fsize=10,
+                 fgcolor="black", penwidth=0, text_prefix="",
+                 text_suffix="", formatter=None, fstyle="normal",
+                 tight_text=False):
+
+        Face.__init__(self)
+        TextFace.__init__(self, None, ftype, fsize, fgcolor, penwidth,
+                          fstyle, tight_text)
+        self.attr = attr
+        self.type  = "text"
+        self.text_prefix = text_prefix
+        self.text_suffix = text_suffix
+        self.attr_formatter = formatter
+        self._bounding_rect_text = ""
+
+class ImgFace(Face):
+    """Creates a node Face using an external image file.
+
+    :param img_file: path to the image file.
+    :param None width: if provided, image will be scaled to this width (in pixels)
+    :param None height: if provided, image will be scaled to this height (in pixels)
+    :param False is_url: if True, img_file is considered a URL and the image is automatically downloaded
+
+    If only one dimension value (width or height) is provided, the other
+    will be calculated to keep aspect ratio.
+
+    """
+
+    def __init__(self, img_file, width=None, height=None, is_url=False):
+        Face.__init__(self)
+        self.img_file = img_file
+        self.width = width
+        self.height = height
+        self.is_url = is_url
+
+    def update_pixmap(self):
+        if self.is_url:
+            self.pixmap = QPixmap()
+            self.pixmap.loadFromData(urlopen(self.img_file).read())
+        else:
+            self.pixmap = QPixmap(self.img_file)
+
+        if self.width or self.height:
+            w, h = self.width, self.height
+            ratio = self.pixmap.width() / float(self.pixmap.height())
+            if not w:
+                w = ratio * h
+            if not h:
+                h = w  / ratio
+            self.pixmap = self.pixmap.scaled(w, h)
+
+class ProfileFace(Face):
+    """
+    A profile Face for ClusterNodes
+
+    :param max_v: maximum value used to build the build the plot scale.
+    :param max_v: minimum value used to build the build the plot scale.
+    :param center_v: Center value used to scale plot and heatmap.
+    :param 200 width:  Plot width in pixels.
+    :param 40 height: Plot width in pixels.
+    :param lines style: Plot style: "lines", "bars", "cbars" or "heatmap".
+
+    :param 2 colorscheme: colors used to create the gradient from
+      min values to max values. 0=green & blue; 1=green & red; 2=red &
+      blue. In all three cases, missing values are rendered in black
+      and transition color (values=center) is white.
+    """
+
+    def __init__(self,max_v,min_v,center_v,width=200,height=40,style="lines", colorscheme=2, values_vector=None, deviations_vector=None):
+        Face.__init__(self)
+        self.profile = values_vector
+        self.deviations = deviations_vector
+
+        self.width  = width
+        self.height = height
+        self.max_value = max_v
+        self.min_value = min_v
+        self.center_v  = center_v
+        self.style = style
+        self.colorscheme = colorscheme
+
+    def update_pixmap(self):
+        if self.style=="lines":
+            self.draw_line_profile()
+        elif self.style=="heatmap":
+            self.draw_heatmap_profile()
+        elif self.style=="bars":
+            self.draw_bar_profile()
+        elif self.style=="cbars":
+            self.draw_centered_bar_profile()
+
+    def get_color_gradient(self):
+        colors = []
+        if self.colorscheme == 0:
+            # Blue and Green
+            for a in range(100,0,-1):
+                color=QColor()
+                color.setRgb( 200-2*a,255,200-2*a )
+                colors.append(color)
+
+            colors.append(QColor("white"))
+
+            for a in range(0,100):
+                color=QColor()
+                color.setRgb( 200-2*a,200-2*a,255 )
+                colors.append(color)
+#            color=QColor()
+#            color.setRgb( 0,255,255 )
+#            colors.append(color)
+
+        elif self.colorscheme == 1:
+            for a in range(100,0,-1):
+                color=QColor()
+                color.setRgb( 200-2*a,255,200-2*a )
+                colors.append(color)
+
+            colors.append(QColor("white"))
+
+            for a in range(0,100):
+                color=QColor()
+                color.setRgb( 255,200-2*a,200-2*a )
+                colors.append(color)
+#            color=QColor()
+#            color.setRgb(255,255,0 )
+#            colors.append(color)
+
+        else:
+            # Blue and Red
+            for a in range(100,0,-1):
+                color=QColor()
+                color.setRgb( 200-2*a,200-2*a,255 )
+                colors.append(color)
+
+            colors.append(QColor("white"))
+
+            for a in range(0,100):
+                color=QColor()
+                color.setRgb( 255,200-2*a,200-2*a )
+                colors.append(color)
+
+#            color=QColor()
+#            color.setRgb( 255,0,255 )
+#            colors.append(color)
+
+        return colors
+
+    def draw_bar_profile(self):
+        # Calculate vector
+        mean_vector = self.node.profile
+        deviation_vector = self.node.deviation
+        # If no vector, skip
+        if mean_vector is None:
+            return
+
+        colors = self.get_color_gradient()
+
+        vlength = len(mean_vector)
+        # pixels per array position
+        profile_width = self.width  - 40
+        profile_height= self.height
+
+        x_alpha = float( profile_width / (len(mean_vector)) )
+        y_alpha = float ( (profile_height-1) / (self.max_value-self.min_value) )
+
+        # Creates a pixmap
+        self.pixmap = QPixmap(self.width,self.height)
+        self.pixmap.fill(QColor("white"))
+        p = QPainter(self.pixmap)
+
+        x2 = 0
+        y  = 0
+
+        # Mean and quartiles y positions
+        mean_line_y = y + profile_height/2
+        line2_y     = mean_line_y + profile_height/4
+        line3_y     = mean_line_y - profile_height/4
+
+        # Draw axis and scale
+        p.setPen(QColor("black"))
+        p.drawRect(x2,y,profile_width, profile_height-1)
+        p.setFont(QFont("Verdana",8))
+        p.drawText(profile_width,y+10,"%0.3f" %self.max_value)
+        p.drawText(profile_width,y+profile_height,"%0.3f" %self.min_value)
+
+        dashedPen = QPen(QBrush(QColor("#ddd")), 0)
+        dashedPen.setStyle(Qt.DashLine)
+
+        # Draw hz grid
+        p.setPen(dashedPen)
+        p.drawLine(x2+1, mean_line_y, profile_width-2, mean_line_y )
+        p.drawLine(x2+1, line2_y, profile_width-2, line2_y )
+        p.drawLine(x2+1, line3_y, profile_width-2, line3_y )
+
+
+        # Draw bars
+        for pos in range(vlength):
+            # first and second X pixel positions
+            x1 = x2
+            x2 = x1 + x_alpha
+
+            dev1 =  self.fit_to_scale(deviation_vector[pos])
+            mean1 = self.fit_to_scale(mean_vector[pos])
+
+            # If nan value, skip
+            if not isfinite(mean1):
+                continue
+
+            # Set heatmap color
+            if mean1 > self.center_v:
+                color_index = abs(int(ceil(((self.center_v - mean1) * 100) / (self.max_value - self.center_v))))
+                customColor = colors[100 + color_index]
+            elif mean1 < self.center_v:
+                color_index = abs(int(ceil(((self.center_v - mean1) * 100) / (self.min_value - self.center_v))))
+                customColor = colors[100 - color_index]
+            else:
+                customColor = colors[100]
+
+            # mean bar high
+            mean_y1     = int ( (mean1 - self.min_value) * y_alpha)
+
+            # Draw bar border
+            p.setPen(QColor("black"))
+            #p.drawRect(x1+2,mean_y1, x_alpha-3, profile_height-mean_y1+1)
+            # Fill bar with custom color
+            p.fillRect(x1+3,profile_height-mean_y1, x_alpha-4, mean_y1-1, QBrush(customColor))
+
+            # Draw error bars
+            if dev1 != 0:
+                dev_up_y1   = int((mean1+dev1 - self.min_value) * y_alpha)
+                dev_down_y1 = int((mean1-dev1 - self.min_value) * y_alpha)
+                p.drawLine(x1+x_alpha/2, profile_height-dev_up_y1 ,x1+x_alpha/2, profile_height-dev_down_y1 )
+                p.drawLine(x1-1+x_alpha/2,  profile_height-dev_up_y1, x1+1+x_alpha/2, profile_height-dev_up_y1 )
+                p.drawLine(x1-1+x_alpha/2,  profile_height-dev_down_y1, x1+1+x_alpha/2, profile_height-dev_down_y1 )
+
+    def draw_centered_bar_profile(self):
+        # Calculate vector
+        mean_vector  = self.node.profile
+        deviation_vector = self.node.deviation
+        # If no vector, skip
+        if mean_vector is None:
+            return
+
+        colors = self.get_color_gradient()
+
+        vlength = len(mean_vector)
+        # pixels per array position
+        profile_width = self.width - 40
+        profile_height= self.height
+
+        x_alpha = float( profile_width / (len(mean_vector)) )
+        y_alpha_up = float ( ((profile_height-1)/2) / (self.max_value-self.center_v) )
+        y_alpha_down = float ( ((profile_height-1)/2) / (self.min_value-self.center_v) )
+
+        # Creates a pixmap
+        self.pixmap = QPixmap(self.width,self.height)
+        self.pixmap.fill(QColor("white"))
+        p = QPainter(self.pixmap)
+
+        x2 = 0
+        y  = 0
+
+        # Mean and quartiles y positions
+        mean_line_y = y + profile_height/2
+        line2_y     = mean_line_y + profile_height/4
+        line3_y     = mean_line_y - profile_height/4
+
+        # Draw axis and scale
+        p.setPen(QColor("black"))
+        p.drawRect(x2,y,profile_width, profile_height-1)
+        p.setFont(QFont("Verdana",8))
+        p.drawText(profile_width,y+10,"%0.3f" %self.max_value)
+        p.drawText(profile_width,y+profile_height,"%0.3f" %self.min_value)
+        p.drawText(profile_width,mean_line_y,"%0.3f" %self.center_v)
+
+        dashedPen = QPen(QBrush(QColor("#ddd")), 0)
+        dashedPen.setStyle(Qt.DashLine)
+
+        # Draw hz grid
+        p.setPen(dashedPen)
+        p.drawLine(x2+1, mean_line_y, profile_width-2, mean_line_y )
+        p.drawLine(x2+1, line2_y, profile_width-2, line2_y )
+        p.drawLine(x2+1, line3_y, profile_width-2, line3_y )
+
+
+        # Draw bars
+        for pos in range(vlength):
+            # first and second X pixel positions
+            x1 = x2
+            x2 = x1 + x_alpha
+
+            dev1 =  self.fit_to_scale( deviation_vector[pos]   )
+            mean1 = self.fit_to_scale( mean_vector[pos]        )
+
+            # If nan value, skip
+            if not isfinite(mean1):
+                continue
+
+            # Set heatmap color
+            if mean1>self.center_v:
+                color_index = abs(int(ceil(((self.center_v-mean1)*100)/(self.max_value-self.center_v))))
+                customColor = colors[100 + color_index]
+
+                #print mean1, color_index, len(colors), "%x" %colors[100 + color_index].rgb()
+                #print abs(((self.center_v-mean1)*100)/(self.max_value-self.center_v))
+                #print round(((self.center_v-mean1)*100)/(self.max_value-self.center_v))
+
+            elif mean1<self.center_v:
+                color_index = abs(int(ceil(((self.center_v-mean1)*100)/(self.min_value-self.center_v))))
+                customColor = colors[100 - color_index]
+            else:
+                customColor = colors[100]
+
+            # mean bar high
+            if mean1 < self.center_v:
+                mean_y1 = int(abs((mean1 - self.center_v) * y_alpha_down))
+            else:
+                mean_y1 = int(abs((mean1 - self.center_v) * y_alpha_up))
+
+            # Draw bar border
+            p.setPen(QColor("black"))
+            #p.drawRect(x1+2,mean_y1, x_alpha-3, profile_height-mean_y1+1)
+            # Fill bar with custom color
+            if mean1<self.center_v:
+                p.fillRect(x1+3, mean_line_y, x_alpha-4, mean_y1, QBrush(customColor))
+            else:
+                p.fillRect(x1+3, mean_line_y-mean_y1, x_alpha-4, mean_y1+1, QBrush(customColor))
+
+            # Draw error bars
+            if dev1 != 0:
+                if mean1<self.center_v:
+                    dev_up_y1   = int((mean1+dev1 - self.center_v) * y_alpha_down)
+                    dev_down_y1 = int((mean1-dev1 - self.center_v) * y_alpha_down)
+                    p.drawLine(x1+x_alpha/2, mean_line_y+dev_up_y1 ,x1+x_alpha/2, mean_line_y+dev_down_y1 )
+                    p.drawLine(x1-1+x_alpha/2, mean_line_y+dev_up_y1 ,x1+1+x_alpha/2, mean_line_y+dev_up_y1 )
+                    p.drawLine(x1-1+x_alpha/2, mean_line_y+dev_down_y1 ,x1+1+x_alpha/2, mean_line_y+dev_down_y1 )
+                else:
+                    dev_up_y1   = int((mean1+dev1 - self.center_v) * y_alpha_up)
+                    dev_down_y1 = int((mean1-dev1 - self.center_v) * y_alpha_up)
+                    p.drawLine(x1+x_alpha/2, mean_line_y-dev_up_y1 ,x1+x_alpha/2, mean_line_y-dev_down_y1 )
+                    p.drawLine(x1-1+x_alpha/2, mean_line_y-dev_up_y1 ,x1+1+x_alpha/2, mean_line_y-dev_up_y1 )
+                    p.drawLine(x1-1+x_alpha/2, mean_line_y-dev_down_y1 ,x1+1+x_alpha/2, mean_line_y-dev_down_y1 )
+
+    def draw_line_profile(self):
+        # Calculate vector
+        mean_vector = self.node.profile
+        deviation_vector = self.node.deviation
+        if mean_vector is None:
+            return
+
+        vlength = len(mean_vector)
+        # pixels per array position
+        profile_width = self.width - 40
+        profile_height= self.height
+
+
+        x_alpha = float( profile_width / (len(mean_vector)-1) )
+        y_alpha = float ( (profile_height-1) / (self.max_value-self.min_value) )
+
+        # Creates a pixmap
+        self.pixmap = QPixmap(self.width,self.height)
+        self.pixmap.fill(QColor("white"))
+        p = QPainter(self.pixmap)
+
+        x2 = 0
+        y  = 0
+
+        # Mean and quartiles y positions
+        mean_line_y = y + profile_height/2
+        line2_y     = mean_line_y + profile_height/4
+        line3_y     = mean_line_y - profile_height/4
+
+        # Draw axis and scale
+        p.setPen(QColor("black"))
+        p.drawRect(x2,y,profile_width, profile_height-1)
+        p.setFont(QFont("Verdana",8))
+        p.drawText(profile_width,y+10,"%0.3f" %self.max_value)
+        p.drawText(profile_width,y+profile_height,"%0.3f" %self.min_value)
+        p.drawText(profile_width,mean_line_y+5,"%0.3f" %self.center_v)
+
+        dashedPen = QPen(QBrush(QColor("#ddd")), 0)
+        dashedPen.setStyle(Qt.DashLine)
+
+        # Draw hz grid
+        p.setPen(dashedPen)
+        p.drawLine(x2+1, mean_line_y, profile_width-2, mean_line_y )
+        p.drawLine(x2+1, line2_y, profile_width-2, line2_y )
+        p.drawLine(x2+1, line3_y, profile_width-2, line3_y )
+
+        # Draw lines
+        for pos in range(0,vlength-1):
+            dev1 =  self.fit_to_scale(mean_vector[pos] + deviation_vector[pos])
+            dev2 =  self.fit_to_scale(mean_vector[pos+1] + deviation_vector[pos+1])
+            mean1 = self.fit_to_scale(mean_vector[pos])
+            mean2 = self.fit_to_scale(mean_vector[pos+1])
+            # first and second X pixel positions
+            x1 = x2
+            x2 = x1 + x_alpha
+
+            # Draw vt grid
+            if x2 < profile_width:
+                p.setPen(dashedPen)
+                p.drawLine(x2, y+1, x2, profile_height-2)
+
+            # If nan values, continue
+            if not isfinite(mean1) or not isfinite(mean2):
+                continue
+
+            # First Y postions for mean
+            mean_y1 = (mean1 - self.min_value) * y_alpha
+            # Second Y postions for mean
+            mean_y2 = (mean2 - self.min_value) * y_alpha
+            if dev1!= 0 and dev2!=0:
+                # First Y postions for deviations
+                dev_y1   = (dev1 - self.min_value) * y_alpha
+                # Second Y postions for deviations
+                dev_y2   = (dev2 - self.min_value) * y_alpha
+                # Draw red deviation lines
+                p.setPen(QColor("red"))
+                p.drawLine(x1, profile_height-dev_y1, x2, profile_height-dev_y2)
+                p.drawLine(x1, profile_height+dev_y1, x2, profile_height+dev_y2)
+            # Draw blue mean line
+            p.setPen(QColor("blue"))
+            p.drawLine(x1, profile_height-mean_y1, x2, profile_height-mean_y2)
+
+
+    def draw_heatmap_profile(self):
+        # Calculate vector
+        vector = self.node.profile
+        deviation = self.node.deviation
+        # If no vector, skip
+        if vector is None:
+            return
+
+        colors = self.get_color_gradient()
+
+        leaves = self.node.get_leaves()
+
+        vlength = len(vector)
+        # pixels per array position
+        img_height = self.height * len(leaves)
+        profile_width = self.width
+        profile_height= img_height
+
+        x_alpha = float( profile_width / (len(vector)) )
+
+        # Creates a pixmap
+        self.pixmap = QPixmap(self.width,img_height)
+        self.pixmap.fill(QColor("white"))
+        p = QPainter(self.pixmap)
+
+        x2 = 0
+        y  = 0
+        y_step = self.height
+        for leaf in leaves:
+            mean_vector = leaf.profile
+            deviation_vector = leaf.deviation
+            # Draw heatmap
+            for pos in range(vlength):
+                # first and second X pixel positions
+                x1 = x2
+                x2 = x1 + x_alpha
+                dev1 =  self.fit_to_scale( deviation_vector[pos]   )
+                mean1 = self.fit_to_scale( mean_vector[pos]        )
+                # Set heatmap color
+                if not isfinite(mean1):
+                    customColor = QColor("black")
+                elif mean1>self.center_v:
+                    color_index = abs(int(ceil(((self.center_v-mean1)*100)/(self.max_value-self.center_v))))
+                    customColor = colors[100 + color_index]
+                elif mean1<self.center_v:
+                    color_index = abs(int(ceil(((self.center_v-mean1)*100)/(self.min_value-self.center_v))))
+                    customColor = colors[100 - color_index]
+                else:
+                    customColor = colors[100]
+
+                # Fill bar with custom color
+                p.fillRect(x1, y, x_alpha, y_step, QBrush(customColor))
+            y+= y_step
+            x2 = 0
+
+    def fit_to_scale(self,v):
+        if v<self.min_value:
+            return float(self.min_value)
+        elif v>self.max_value:
+            return float(self.max_value)
+        else:
+            return float(v)
+
+
+class OLD_SequenceFace(Face):
+    """ Creates a new molecular sequence face object.
+
+
+    :param seq:  Sequence string to be drawn
+    :param seqtype: Type of sequence: "nt" or "aa"
+    :param fsize:   Font size,  (default=10)
+
+    You can set custom colors for aminoacids or nucleotides:
+
+    :param aafg: a dictionary in which keys are aa codes and values
+      are foreground RGB colors
+
+    :param aabg: a dictionary in which keys are aa codes and values
+      are background RGB colors
+
+    :param ntfg: a dictionary in which keys are nucleotides codes
+      and values are foreground RGB colors
+
+    :param ntbg: a dictionary in which keys are nucleotides codes and values
+      are background RGB colors
+
+    """
+
+    def __init__(self, seq, seqtype, fsize=10, aafg=None,  \
+                     aabg=None, ntfg=None, ntbg=None):
+
+        Face.__init__(self)
+        self.seq  = seq
+        self.fsize= fsize
+        self.fsize = fsize
+        self.style = seqtype
+
+        if not aafg:
+            aafg = _aafgcolors
+        if not aabg:
+            aabg = _aabgcolors
+        if not ntfg:
+            ntfg = _ntfgcolors
+        if not ntbg:
+            ntbg = _ntbgcolors
+
+        self.aafg = aafg
+        self.aabg = aabg
+        self.ntfg = ntfg
+        self.ntbg = ntbg
+
+    def update_pixmap(self):
+        font = QFont("Courier", self.fsize)
+        fm = QFontMetrics(font)
+        height = fm.leading() + fm.overlinePos() + fm.underlinePos()
+        #width  = fm.size(Qt.AlignTop, self.seq).width()
+        width = self.fsize * len(self.seq)
+
+        self.pixmap = QPixmap(width,height)
+        self.pixmap.fill()
+        p = QPainter(self.pixmap)
+        x = 0
+        y = height - fm.underlinePos()*2
+
+        p.setFont(font)
+
+        for letter in self.seq:
+            letter = letter.upper()
+
+            if self.style=="nt":
+                letter_brush = QBrush(QColor(self.ntbg.get(letter,"white" )))
+                letter_pen = QPen(QColor(self.ntfg.get(letter, "black")))
+            else:
+                letter_brush = QBrush(QColor(self.aabg.get(letter,"white" )))
+                letter_pen = QPen(QColor(self.aafg.get(letter,"black" )))
+
+            p.setPen(letter_pen)
+            p.fillRect(x,0,width, height,letter_brush)
+            p.drawText(x, y, letter)
+            x += float(width)/len(self.seq)
+        p.end()
+
+class TreeFace(Face):
+    """
+    .. versionadded:: 2.1
+
+    Creates a Face containing a Tree object. Yes, a tree within a tree :)
+
+    :param tree: An ETE Tree instance (Tree, PhyloTree, etc...)
+    :param tree_style: A TreeStyle instance defining how tree show be drawn
+
+    """
+    def __init__(self, tree, tree_style):
+        Face.__init__(self)
+        self.type = "item"
+        self.root_node = tree
+        self.img = tree_style
+        self.item = None
+
+    def update_items(self):
+        from .qt4_render import render, init_tree_style
+        ts = init_tree_style(self.root_node, self.img)
+        hide_root = False
+        if self.root_node is self.node:
+            hide_root = True
+        self.item, self.n2i, self.n2f = render(self.root_node, ts, hide_root)
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+def _label_painter(obj, p, option, widget):
+    """
+    Delegate for graphics objects (RectItem, SphereItem) to
+    add an approximately-centered (gnashing of teeth) label
+
+    :param obj: the object (standard parameter to paint() method)
+    :param p: a QPainter (see paint() method)
+    :param option: (see paint() method)
+    :param widget: (see paint() method)
+
+    """
+    if not obj.label:
+        return
+    try:
+        lcolor = obj.label['color']
+        llabel = obj.label['text'] if 'text' in obj.label else 'No label text!'
+        lfont = obj.label['font'] if 'font' in obj.label else "Verdana"
+        lsize = 12 if 'fontsize' not in obj.label else int(obj.label['fontsize'])
+        p.setFont(QFont(lfont, lsize))
+        p.setPen(QPen(QColor(lcolor)))
+        fm = QFontMetrics(p.font())
+        metrics = fm.boundingRect(QRect(), Qt.AlignCenter, llabel)
+        rect = obj.boundingRect()
+        p.drawText(int(rect.width()/2-(metrics.width()/2)),
+                   int(rect.height()/2+(metrics.height()/2)),
+                   llabel)
+    except Exception as e:
+        print('Labelling problem: %s' % (e))
+
+
+class _SphereItem(QGraphicsEllipseItem):
+    def __init__(self, radius, color, solid=False, label=None):
+        self.label = label
+        r = radius
+        d = r*2
+        QGraphicsEllipseItem.__init__(self, 0, 0, d, d)
+        if solid:
+            self.setBrush(QBrush(QColor(color)))
+        else:
+            self.gradient = QRadialGradient(r, r, r,(d)/3,(d)/3)
+            self.gradient.setColorAt(0.05, Qt.white)
+            self.gradient.setColorAt(1, QColor(color))
+            self.setBrush(QBrush(self.gradient))
+        self.setPen(QPen(QColor(color)))
+
+    def paint(self, p, option, widget):
+        super(_SphereItem, self).paint(p, option, widget)
+        _label_painter(self, p, option, widget)
+
+
+class _RectItem(QGraphicsRectItem):
+    def __init__(self, w, h, bgcolor, fgcolor, label=None):
+        QGraphicsRectItem.__init__(self)
+        self.label = label
+        self.setRect(0, 0, w, h)
+        if bgcolor:
+            self.setBrush(QBrush(QColor(bgcolor)))
+        else:
+            self.setBrush(QBrush(Qt.NoBrush))
+        if fgcolor:
+            self.setPen(QPen(QColor(fgcolor)))
+        else:
+            self.setPen(QPen(Qt.NoPen))
+
+    def paint(self, p, option, widget):
+        super(_RectItem, self).paint(p, option, widget)
+        _label_painter(self, p, option, widget)
+
+
+class RectFace(Face):
+    """
+    .. versionadded:: 2.3
+
+    Creates a Rectangular solid face.
+
+    :param label: optional text string to annotate the face: Default value is None;
+    label can also be a dict with attributes text, font, color, and fontsize
+    color defaults to background color, font to Verdana, fontsize to 12
+    """
+    def __init__(self, width, height, fgcolor, bgcolor, label=None):
+        Face.__init__(self)
+        self.width = width
+        self.height = height
+        self.fgcolor = fgcolor
+        self.bgcolor = bgcolor
+        self.type = "item"
+        self.rotable = True
+        self.label = label
+        if label:
+            if not isinstance(label, dict):
+                self.label = {'text' : label}
+            if 'color' not in self.label:
+                self.label['color'] = bgcolor
+
+    def update_items(self):
+        self.item = _RectItem(self.width, self.height, self.bgcolor, self.fgcolor, label=self.label)
+
+    def _width(self):
+        return self.width
+
+    def _height(self):
+        return self.height
+
+
+class CircleFace(Face):
+    """
+    .. versionadded:: 2.1
+
+    Creates a Circle or Sphere Face.
+
+    :param radius: integer number defining the radius of the face
+    :param color: Color used to fill the circle. RGB code or name in :data:`SVG_COLORS`
+    :param "circle" style: Valid values are "circle" or "sphere"
+    :param label: optional text string to annotate the face: Default value is None;
+    label can also be a dict with attributes text, font, color, and fontsize
+    color defaults to circle color (because it looks nice with "sphere"),
+    font to Verdana, fontsize to 12
+    """
+
+    def __init__(self, radius, color, style="circle", label=None):
+        Face.__init__(self)
+        self.radius = radius
+        self.style = style
+        self.color = color
+        self.type = "item"
+        self.rotable = False
+        self.label = label
+        if label:
+            if not isinstance(label, dict):
+                self.label = {'text' : label}
+            if 'color' not in self.label:
+                self.label['color'] = color
+
+    def update_items(self):
+        if self.style == "circle":
+            self.item = _SphereItem(self.radius, self.color, solid=True, label=self.label)
+        elif self.style == "sphere":
+            self.item = _SphereItem(self.radius, self.color, label=self.label)
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+class StaticItemFace(Face):
+    """
+    .. versionadded:: 2.1
+
+    Creates a face based on an external QtGraphicsItem object.
+    QGraphicsItem object is expected to be independent from tree node
+    properties, so its content is assumed to be static (drawn only
+    once, no updates when tree changes).
+
+    :param item: an object based on QGraphicsItem
+    """
+    def __init__(self, item):
+        Face.__init__(self)
+        self.type = "item"
+        self.item = item
+
+    def update_items(self):
+        return
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+class DynamicItemFace(Face):
+    """
+    .. versionadded:: 2.1
+
+    Creates a face based on an external QGraphicsItem object whose
+    content depends on the node that is linked to.
+
+    :param constructor: A pointer to a method (function or class
+      constructor) returning a QGraphicsItem based
+      object. "constructor" method is expected to receive a node
+      instance as the first argument. The rest of arguments passed to
+      ItemFace are optional and will passed also to the constructor
+      function.
+    """
+
+    def __init__(self, constructor, *args, **kargs):
+        Face.__init__(self)
+        self.type = "item"
+        self.item = None
+        self.constructor = constructor
+        self.args = args
+        self.kargs = kargs
+
+    def update_items(self):
+        self.item = self.constructor(self.node, self.args, self.kargs)
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+class RandomFace(Face):
+    def __init__(self):
+        Face.__init__(self)
+        self.type = "item"
+
+    def update_items(self):
+        import random
+        w = random.randint(4, 100)
+        h = random.randint(4, 100)
+        self.tree_partition = QGraphicsRectItem(0,0,w, h)
+        self.tree_partition.setBrush(QBrush(QColor("green")))
+
+    def _width(self):
+        return self.tree_partition.rect().width()
+
+    def _height(self):
+        return self.tree_partition.rect().height()
+
+class _PieChartItem(QGraphicsRectItem):
+    def __init__(self, percents, width, height, colors, line_color=None):
+        QGraphicsRectItem.__init__(self, 0, 0, width, height)
+        self.percents = percents
+        self.colors = colors
+        self.line_color = line_color
+
+    def paint(self, painter, option, widget):
+        a = 5760
+        angle_start = 0
+
+        if not self.line_color:
+            painter.setPen(Qt.NoPen)
+        else:
+            painter.setPen(QColor(self.line_color))
+
+        for i, p in enumerate(self.percents):
+            col = self.colors[i]
+            painter.setBrush(QBrush(QColor(col)))
+            angle_span = (p/100.) * a
+            painter.drawPie(self.rect(), angle_start, angle_span )
+            angle_start += angle_span
+
+
+class PieChartFace(StaticItemFace):
+    """
+    .. versionadded:: 2.2
+
+    :param percents: a list of values summing up 100.
+    :param width: width of the piechart
+    :param height: height of the piechart
+    :param colors: a list of colors (same length as percents)
+    :param line_color: color used to render the border of the piechart (None=transparent)
+
+    """
+    def __init__(self, percents, width, height, colors=None, line_color=None):
+        Face.__init__(self)
+
+        if round(sum(percents)) > 100:
+            raise ValueError("PieChartItem: percentage values > 100")
+
+        self.type = "item"
+        self.item = None
+        self.percents = percents
+        if not colors:
+            colors = COLOR_SCHEMES["paired"]
+        self.colors =  colors
+        self.width = width
+        self.height = height
+        self.line_color = line_color
+
+    def update_items(self):
+        self.item = _PieChartItem(self.percents, self.width,
+                                  self.height, self.colors, self.line_color)
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+class _StackedBarItem(QGraphicsRectItem):
+    def __init__(self, percents, width, height, colors, line_color=None):
+        QGraphicsRectItem.__init__(self, 0, 0, width, height)
+        self.percents = percents
+        self.colors = colors
+        self.line_color = line_color
+
+    def paint(self, painter, option, widget):
+        total_w = self.rect().width()
+        total_h = self.rect().height()
+        painter.setBrush(Qt.NoBrush)
+
+        if not self.line_color:
+            painter.setPen(Qt.NoPen)
+        else:
+            painter.setPen(QColor(self.line_color))
+
+        x = 0
+        for i, p in enumerate(self.percents):
+            col = self.colors[i]
+            w = round((p * total_w) / 100.) # assuming p is between 0 and 100
+            painter.fillRect(x, 0, w, total_h, QColor(col))
+            painter.drawRect(x, 0, w, total_h)
+            x += w
+
+class StackedBarFace(StaticItemFace):
+    def __init__(self, percents, width, height, colors=None, line_color=None):
+        """
+        .. versionadded:: 2.3
+
+        :param percents: a list of values summing up 100.
+        :param width: width of the bar
+        :param height: height of the bar
+        :param colors: a list of colors (same length as percents)
+        :param line_color: color used to render the border of the bar (None=transparent)
+        """
+        Face.__init__(self)
+
+        if round(sum(percents)) > 100:
+            raise ValueError("BarItem: percentage values > 100")
+
+        self.type = "item"
+        self.item = None
+        self.percents = percents
+        if not colors:
+            colors = COLOR_SCHEMES["paired"]
+        self.colors =  colors
+        self.width = width
+        self.height = height
+        self.line_color = line_color
+
+    def update_items(self):
+        self.item = _StackedBarItem(self.percents, self.width,
+                                 self.height, self.colors, self.line_color)
+
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+
+class BarChartFace(Face):
+    """
+    .. versionadded:: 2.2
+
+    :param values: a list of values each representing a vertical bar.
+    :param 200 width: width of the bar chart.
+    :param 100 height: height of the bar chart
+    :param None colors: a list of colors, one per bar value
+    :param None label: a list of labels, one per bar
+    :param 0 min_value: min value to set the scale of the chart.
+    :param None max_value: max value to set the scale of the chart.
+
+    """
+    def __init__(self, values, deviations=None, width=200, height=100,
+                 colors=None, labels=None, min_value=0, max_value=None,
+                 label_fsize=6, scale_fsize=6):
+        Face.__init__(self)
+        self.type = "item"
+        self.item = None
+        self.values = values
+        if not deviations:
+            self.deviations = [0] * len(values)
+        else:
+            self.deviations = deviations
+
+        if not colors:
+            colors = COLOR_SCHEMES["paired"]
+        self.colors =  colors
+
+        self.width = width
+        self.height = height
+        self.labels = labels
+        self.max_value = max_value
+        self.min_value = min_value
+        self.margin_left = 1
+        self.margin_right = 1
+        self.margin_top = 2
+        self.margin_bottom = 2
+        self.label_fsize = label_fsize
+        self.scale_fsize = scale_fsize
+
+    def update_items(self):
+        self.item = _BarChartItem(self.values, self.deviations, self.width,
+                                  self.height, self.colors, self.labels,
+                                  self.min_value, self.max_value,
+                                  self.label_fsize, self.scale_fsize)
+    def _width(self):
+        return self.item.rect().width()
+
+    def _height(self):
+        return self.item.rect().height()
+
+
+class _BarChartItem(QGraphicsRectItem):
+    def __init__(self, values, deviations, width, height, colors, labels,
+                 min_value, max_value, label_fsize, scale_fsize):
+        QGraphicsRectItem.__init__(self, 0, 0, width, height)
+        self.values = values
+        self.colors = colors
+        self.width = float(width)
+        self.height = float(height)
+        self.draw_border = True
+        self.draw_grid = False
+        self.draw_scale = True
+        self.labels = labels
+        self.max_value = max_value
+        self.min_value = min_value
+        self.deviations = deviations
+        self.label_fsize = label_fsize
+        self.scale_fsize = scale_fsize
+
+        self.set_real_size()
+
+    def set_real_size(self):
+        label_height = 0
+        scale_width = 0
+        margin = 2
+
+        if self.max_value is None:
+            max_value = max([v+d for v,d in zip(self.values, self.deviations) if isfinite(v)])
+        else:
+            max_value = self.max_value
+
+        if self.min_value is None:
+            min_value = min([v+d for v,d in zip(self.values, self.deviations) if isfinite(v)])
+        else:
+            min_value = self.min_value
+
+        if self.draw_scale:
+            max_string = "% 7.2f" %max_value
+            min_string = "% 7.2f" %min_value
+            fm = QFontMetrics(QFont("Verdana", self.scale_fsize))
+            max_string_metrics = fm.boundingRect(QRect(), \
+                                                 Qt.AlignLeft, \
+                                                 max_string)
+            min_string_metrics = fm.boundingRect(QRect(), \
+                                                 Qt.AlignLeft, \
+                                                 min_string)
+            scale_width = margin + max(max_string_metrics.width(),
+                                             min_string_metrics.width())
+
+        if self.labels:
+            fm = QFontMetrics(QFont("Verdana", self.label_fsize))
+            longest_label = sorted(self.labels, key=lambda x: len(x))[-1]
+            label_height = fm.boundingRect(QRect(), Qt.AlignLeft, longest_label).width() + margin
+            label_width = fm.height() * len(self.labels)
+            self.width = max(label_width, self.width)
+
+        self.setRect(0, 0, self.width + scale_width, self.height + label_height)
+
+
+    def paint(self, p, option, widget):
+        colors = self.colors
+        values = self.values
+        deviations = self.deviations
+        p.setBrush(Qt.NoBrush)
+        margin = 2
+        spacer = 3
+        spacing_length = (spacer*(len(values)-1))
+        height = self.height
+
+        if self.max_value is None:
+            max_value = max([v+d for v,d in zip(values, deviations) if isfinite(v)])
+        else:
+            max_value = self.max_value
+
+        if self.min_value is None:
+            min_value = min([v+d for v,d in zip(values, deviations) if isfinite(v)])
+        else:
+            min_value = self.min_value
+
+        plot_width = self.width
+        plot_height = self.height
+
+        x_alpha = float((plot_width - spacing_length) / (len(values)))
+        if x_alpha < 1:
+            raise ValueError("BarChartFace is too small")
+
+        y_alpha = float ( (plot_height-3) / float(max_value - min_value) )
+        x = 0
+        y = 0
+
+        # Mean and quartiles y positions
+        mean_line_y = y + (plot_height / 2.0)
+        line2_y = mean_line_y + (plot_height/4.0)
+        line3_y = mean_line_y - (plot_height/4.0)
+
+        if self.draw_border:
+            p.setPen(QColor("black"))
+            p.drawRect(x, y + 1, plot_width, plot_height)
+
+        if self.draw_scale:
+            p.setFont(QFont("Verdana", self.scale_fsize))
+            font_height = QFontMetrics(p.font()).height()
+            max_string = "% 7.2f" %max_value
+            min_string = "% 7.2f" %min_value
+            p.drawText(plot_width + margin, font_height-2, max_string)
+            p.drawText(plot_width + margin, plot_height - 2, min_string)
+            p.drawLine(plot_width + margin - 1, 1, plot_width + margin - 1, plot_height+1)
+            p.drawLine(plot_width + margin - 1, 1, plot_width + margin + 2, 1)
+            p.drawLine(plot_width + margin - 1, plot_height+1, plot_width + margin + 2, plot_height+1)
+
+        if self.draw_grid:
+            dashedPen = QPen(QBrush(QColor("#ddd")), 0)
+            dashedPen.setStyle(Qt.DashLine)
+            p.setPen(dashedPen)
+            p.drawLine(x+1, mean_line_y, plot_width - 2, mean_line_y)
+            p.drawLine(x+1, line2_y, plot_width - 2, line2_y )
+            p.drawLine(x+1, line3_y, plot_width - 2, line3_y )
+
+        # Draw bars
+        p.setFont(QFont("Verdana", self.label_fsize))
+        label_height = self.rect().height() - self.height
+        label_width = QFontMetrics(p.font()).height()
+        for pos in range(len(values)):
+            # first and second X pixel positions
+            x1 = x
+            x = x1 + x_alpha + spacer
+
+            std =  deviations[pos]
+            val = values[pos]
+
+            if self.labels:
+                p.save()
+                p.translate(x1, plot_height+2)
+                p.rotate(90)
+                p.drawText(0, -x_alpha, label_height, x_alpha, Qt.AlignVCenter, str(self.labels[pos]))
+                #p.drawRect(0, -x_alpha, label_height, x_alpha)
+                p.restore()
+
+            # If nan value, skip
+            if not isfinite(val):
+                continue
+
+            color = QColor(colors[pos])
+            # mean bar high
+            mean_y1     = int((val - min_value) * y_alpha)
+            # Draw bar border
+            p.setPen(QColor("black"))
+
+            # Fill bar with custom color
+            p.fillRect(x1, height - mean_y1, x_alpha, mean_y1, QBrush(color))
+
+            # Draw error bars
+            if std != 0:
+                dev_up_y1   = int((val + std - min_value) * y_alpha)
+                dev_down_y1 = int((val - std - min_value) * y_alpha)
+                center_x = x1 + (x_alpha / 2)
+                p.drawLine(center_x, plot_height - dev_up_y1, center_x, plot_height - dev_down_y1)
+                p.drawLine(center_x + 1, plot_height - dev_up_y1, center_x -1, plot_height - dev_up_y1)
+                p.drawLine(center_x + 1, plot_height - dev_down_y1, center_x -1, plot_height - dev_down_y1)
+
+
+
+class QGraphicsTriangleItem(QGraphicsPolygonItem):
+    def __init__(self, width, height, orientation=1):
+        self.tri = QPolygonF()
+        if orientation == 1:
+            self.tri.append(QPointF(0, 0))
+            self.tri.append(QPointF(0, height))
+            self.tri.append(QPointF(width, height / 2.0))
+            self.tri.append(QPointF(0, 0))
+        elif orientation == 2:
+            self.tri.append(QPointF(0, 0))
+            self.tri.append(QPointF(width, 0))
+            self.tri.append(QPointF(width / 2.0, height))
+            self.tri.append(QPointF(0, 0))
+        elif orientation == 3:
+            self.tri.append(QPointF(0, height / 2.0))
+            self.tri.append(QPointF(width, 0))
+            self.tri.append(QPointF(width, height))
+            self.tri.append(QPointF(0, height / 2.0))
+        elif orientation == 4:
+            self.tri.append(QPointF(0, height))
+            self.tri.append(QPointF(width, height))
+            self.tri.append(QPointF(width / 2.0, 0))
+            self.tri.append(QPointF(0, height))
+
+        QGraphicsPolygonItem.__init__(self, self.tri)
+
+class QGraphicsDiamondItem(QGraphicsPolygonItem):
+    def __init__(self, width, height):
+        self.pol = QPolygonF()
+        self.pol.append(QPointF(width / 2.0, 0))
+        self.pol.append(QPointF(width, height / 2.0))
+        self.pol.append(QPointF(width / 2.0, height))
+        self.pol.append(QPointF(0, height / 2.0))
+        self.pol.append(QPointF(width / 2.0, 0))
+        QGraphicsPolygonItem.__init__(self, self.pol)
+
+class QGraphicsRoundRectItem(QGraphicsRectItem):
+    def __init__(self, *args, **kargs):
+        QGraphicsRectItem.__init__(self, *args, **kargs)
+    def paint(self, p, option, widget):
+        p.setPen(self.pen())
+        p.setBrush(self.brush())
+        p.drawRoundedRect(self.rect(), 3, 3)
+
+class SequenceItem(QGraphicsRectItem):
+    def __init__(self, seq, seqtype="aa", poswidth=1, posheight=10,
+                 draw_text=False):
+        QGraphicsRectItem.__init__(self)
+        self.seq = seq
+        self.seqtype = seqtype
+        self.poswidth = poswidth
+        self.posheight = posheight
+        if draw_text:
+            self.poswidth = poswidth
+        self.draw_text = draw_text
+        if seqtype == "aa":
+            self.fg = _aafgcolors
+            self.bg = _aabgcolors
+        elif seqtype == "nt":
+            self.fg = _ntfgcolors
+            self.bg = _ntbgcolors
+        self.setRect(0, 0, len(seq) * poswidth, posheight)
+
+    def paint(self, p, option, widget):
+        x, y = 0, 0
+        qfont = QFont("Courier")
+        current_pixel = 0
+        blackPen = QPen(QColor("black"))
+        for letter in self.seq:
+            if x >= current_pixel:
+                if self.draw_text and self.poswidth >= 8:
+                    br = QBrush(QColor(self.bg.get(letter, "white")))
+                    p.setPen(blackPen)
+                    p.fillRect(x, 0, self.poswidth, self.posheight, br)
+                    qfont.setPixelSize(min(self.posheight, self.poswidth))
+                    p.setFont(qfont)
+                    p.setBrush(QBrush(QColor("black")))
+                    p.drawText(x, 0, self.poswidth, self.posheight,
+                               Qt.AlignCenter |  Qt.AlignVCenter,
+                               letter)
+                elif letter == "-" or letter == ".":
+                    p.setPen(blackPen)
+                    p.drawLine(x, self.posheight/2, x+self.poswidth, self.posheight/2)
+
+                else:
+                    br = QBrush(QColor(self.bg.get(letter, "white")))
+                    p.fillRect(x, 0, max(1, self.poswidth), self.posheight, br)
+                    #p.setPen(QPen(QColor(self.bg.get(letter, "black"))))
+                    #p.drawLine(x, 0, x, self.posheight)
+                current_pixel = int(x)
+            x += self.poswidth
+
+
+class TextLabelItem(QGraphicsRectItem):
+    def __init__(self, text, w, h, fcolor="black", ffam="Arial", fsize=10):
+        QGraphicsRectItem.__init__(self)
+        self.setRect(0, 0, w, h)
+        self.text = text
+        self.fsize = int(fsize)
+        self.ffam = ffam
+        self.fcolor = fcolor
+
+
+    def paint(self, p, option, widget):
+        color = QColor(self.fcolor)
+        p.setPen(color)
+        p.setBrush(QBrush(color))
+
+        qfont = QFont()
+        qfont.setFamily(self.ffam)
+        qfont.setPointSize(self.fsize)
+        p.setFont(qfont)
+        p.save()
+        p.setBrush(Qt.NoBrush)
+        p.setClipRect(self.rect())
+        p.drawText(self.rect(), Qt.AlignCenter |  Qt.AlignVCenter, self.text)
+        p.restore()
+
+
+
+        #p.drawRect(self.rect())
+
+class SeqMotifRectItem(QGraphicsRectItem):
+    pass
+
+class SeqMotifFace(StaticItemFace):
+    """.. versionadded:: 2.2
+
+    Creates a face based on an amino acid or nucleotide sequence and a
+    list of motif regions.
+
+    :param None seq: a text string containing an aa or nt sequence. If
+        not provided, ``seq`` and ``compactseq`` motif modes will not be
+        available.
+
+    :param None motifs: a list of motif regions referred to original
+        sequence. Each motif is defined as a list containing the
+        following information:
+
+        ::
+
+          motifs = [[seq.start, seq.end, shape, width, height, fgcolor, bgcolor, text_label],
+                   [seq.start, seq.end, shape, width, height, fgcolor, bgcolor, text_label],
+                   ...
+                  ]
+
+        Where:
+
+         * **seq.start:** Motif start position referred to the full sequence (1-based)
+         * **seq.end:** Motif end position referred to the full sequence (1-based)
+         * **shape:** Shape used to draw the motif. Available values are:
+
+            * ``o`` = circle or ellipse
+            * ``>``  = triangle (base to the left)
+            * ``<``  = triangle (base to the left)
+            * ``^``  = triangle (base at bottom)
+            * ``v``  = triangle (base on top )
+            * ``<>`` = diamond
+            * ``[]`` = rectangle
+            * ``()`` = round corner rectangle
+            * ``line`` = horizontal line
+            * ``blank`` = blank space
+
+            * ``seq`` = Show a color and the corresponding letter of each sequence position
+            * ``compactseq`` = Show a thinh vertical color line for each sequence position
+
+         * **width:** total width of the motif (or sequence position width if seq motif type)
+         * **height:** total height of the motif (or sequence position height if seq motif type)
+         * **fgcolor:** color for the motif shape border
+         * **bgcolor:** motif background color. Color code or name can be preceded with the "rgradient:" tag to create a radial gradient effect.
+         * **text_label:** a text label in the format 'FontType|FontSize|FontColor|Text', for instance, arial|8|white|MotifName""
+
+    :param line gap_format: default shape for the gaps between motifs
+    :param blockseq seq_format: default shape for the seq regions not covered in motifs
+    """
+
+    def __init__(self, seq=None, motifs=None, seqtype="aa",
+                 gap_format="line", seq_format="()",
+                 scale_factor=1, height=10, width=10,
+                 fgcolor='slategrey', bgcolor='slategrey', gapcolor='black'):
+
+        if not motifs and not seq:
+            raise ValueError("At least one argument (seq or motifs) should be provided. ")
+
+        StaticItemFace.__init__(self, None)
+        self.seq = seq
+        self.motifs = motifs
+
+        self.scale_factor = scale_factor
+        self.overlaping_motif_opacity = 0.5
+        self.adjust_to_text = False
+
+        self.gap_format = gap_format
+        self.seq_format = seq_format
+
+        if seqtype == "aa":
+            self.fg = _aafgcolors
+            self.bg = _aabgcolors
+        elif seqtype == "nt":
+            self.fg = _ntfgcolors
+            self.bg = _ntbgcolors
+
+        self.h = height
+        self.w = width
+        self.fgcolor = fgcolor
+        self.bgcolor = bgcolor
+        self.gapcolor = gapcolor
+        self.regions = []
+
+        self.build_regions()
+
+    def build_regions(self):
+        # Build and sort regions
+        motifs = self.motifs
+        if self.seq:
+            seq = self.seq
+        else:
+            seq = "-" * max([m[1] for m in motifs])
+
+        # if only sequence is provided, build regions out of gap spaces
+        if not motifs:
+            if self.seq_format == "seq":
+                motifs = [[0, len(seq), "seq", 10, self.h, None, None, None]]
+            else:
+                motifs = []
+                pos = 0
+                for reg in re.split('([^-]+)', seq):
+                    if reg:
+                        if not reg.startswith("-"):
+                            if self.seq_format == "compactseq":
+                                motifs.append([pos, pos+len(reg)-1, "compactseq", 1, self.h, None, None, None])
+                            elif self.seq_format == "line":
+                                motifs.append([pos, pos+len(reg)-1, "-", 1, 1, self.fgcolor, None, None])
+                            else:
+                                motifs.append([pos, pos+len(reg)-1, self.seq_format, None, self.h, self.fgcolor, self.bgcolor, None])
+                        pos += len(reg)
+
+        motifs.sort()
+
+        # complete missing regions
+        current_seq_pos = 0
+        for index, mf in enumerate(motifs):
+            start, end, typ, w, h, fg, bg, name = mf
+            if start > current_seq_pos:
+                pos = current_seq_pos
+                for reg in re.split('([^-]+)', seq[current_seq_pos:start]):
+                    if reg:
+                        if reg.startswith("-") and self.seq_format != "seq":
+                            self.regions.append([pos, pos+len(reg)-1, self.gap_format, 1, 1, self.gapcolor, None, None])
+                        else:
+                            self.regions.append([pos, pos+len(reg)-1, self.seq_format,
+                                                 self.w, self.h,
+                                                 self.fgcolor, self.bgcolor, None])
+                    pos += len(reg)
+                current_seq_pos = start
+
+            self.regions.append(mf)
+            current_seq_pos = end + 1
+
+        if len(seq) > current_seq_pos:
+            pos = current_seq_pos
+            for reg in re.split('([^-]+)', seq[current_seq_pos:]):
+                if reg:
+                    if reg.startswith("-") and self.seq_format != "seq":
+                        self.regions.append([pos, pos+len(reg)-1, self.gap_format, 1, 1, self.gapcolor, None, None])
+                    else:
+                        self.regions.append([pos, pos+len(reg)-1, self.seq_format,
+                                             self.w, self.h,
+                                             self.fgcolor, self.bgcolor, None])
+                    pos += len(reg)
+
+        #print ('\n'.join(map(str, self.regions)))
+
+    def update_items(self):
+        # master item, all object should have this as parent
+        self.item = SeqMotifRectItem()
+
+        # Calculate max height of all elements in this motif object
+        max_h = max([reg[4] for index, reg
+                     in enumerate(self.regions)])
+        y_center = max_h / 2
+
+        max_x_pos = 0
+        current_seq_end = 0
+
+
+        seq_x_correction = {}
+        for seq_start, seq_end, typ, wf, h, fg, bg, name in self.regions:
+            if typ == "seq":
+                seq_x_correction[(seq_start, seq_end)] = wf * self.scale_factor
+
+        for index, (seq_start, seq_end, typ, wf, h, fg, bg, name) in enumerate(self.regions):
+            # this are the actual coordinates mapping to the sequence
+            opacity = 1
+            w = (seq_end - seq_start) + 1
+            xstart = seq_start
+
+            if self.scale_factor:
+                w *= self.scale_factor
+                if wf:
+                    wf *= self.scale_factor
+                xstart *= self.scale_factor
+
+
+            # this loop corrects x-positions for overlaping motifs and takes
+            # into account the different scales used for different motif types,
+            # i.e. seq
+            for (old_start, old_end), correction in six.iteritems(seq_x_correction):
+                seq_range = None
+                if seq_start > old_start:
+                    seq_range = min(old_end, seq_start) - old_start
+                    xstart -= seq_range
+                    xstart += (seq_range * correction)
+                elif seq_end > old_start:
+                    seq_range = min(old_end, seq_end) - old_start
+                # corrects also the width for the overlaping part
+                if seq_range:
+                    if seq_start < old_end or seq_end < seq_start:
+                        w -= seq_range
+                        w += (seq_range * correction)
+
+            if seq_start < current_seq_end:
+                opacity = self.overlaping_motif_opacity
+
+            # expected width of the object to be drawn
+            ystart = y_center - (h/2)
+
+            if typ == "-" or typ == "line":
+                i = QGraphicsLineItem(0, h/2, w, h/2)
+            elif typ == " " or typ == "blank":
+                i = None
+            elif typ == "o":
+                i = QGraphicsEllipseItem(0, 0, w, h)
+            elif typ == ">":
+                i = QGraphicsTriangleItem(w, h, orientation=1)
+            elif typ == "v":
+                i = QGraphicsTriangleItem(w, h, orientation=2)
+            elif typ == "<":
+                i = QGraphicsTriangleItem(w, h, orientation=3)
+            elif typ == "^":
+                i = QGraphicsTriangleItem(w, h, orientation=4)
+            elif typ == "<>":
+                i = QGraphicsDiamondItem(w, h)
+            elif typ == "[]":
+                i = QGraphicsRectItem(0, 0, w, h)
+            elif typ == "()":
+                i = QGraphicsRoundRectItem(0, 0, w, h)
+
+            elif typ == "seq" and self.seq:
+                i = SequenceItem(self.seq[seq_start:seq_end+1],
+                                 poswidth=wf,
+                                 posheight=h, draw_text=True)
+                w = i.rect().width()
+                h = i.rect().height()
+            elif typ == "compactseq" and self.seq:
+                i = SequenceItem(self.seq[seq_start:seq_end+1], poswidth=1*self.scale_factor,
+                                 posheight=h, draw_text=False)
+                w = i.rect().width()
+                h = i.rect().height()
+            else:
+                i = QGraphicsSimpleTextItem("?")
+
+            if name and i:
+                family, fsize, fcolor, text = name.split("|")
+                #qfmetrics = QFontMetrics(qfont)
+                #txth = qfmetrics.height()
+                #txtw = qfmetrics.width(text)
+                txt_item = TextLabelItem(text, w, h,
+                                         fsize=fsize, ffam=family, fcolor=fcolor)
+                # enlarges circle domains to fit text
+                #if typ == "o":
+                #    min_r = math.hypot(txtw/2.0, txth/2.0)
+                #    txtw = max(txtw, min_r*2)
+
+                #y_txt_start = (max_h/2.0) - (h/2.0)
+                txt_item.setParentItem(i)
+                #txt_item.setPos(0, ystart)
+
+
+            if i:
+                i.setParentItem(self.item)
+                i.setPos(xstart, ystart)
+
+                if bg:
+                    if bg.startswith("rgradient:"):
+                        bg = bg.replace("rgradient:", "")
+                        try:
+                            c1, c2 = bg.split("|")
+                        except ValueError:
+                            c1, c2 = bg, "white"
+                        rect = i.boundingRect()
+                        gr = QRadialGradient(rect.center(), rect.width()/2)
+                        gr.setColorAt(0, QColor(c2))
+                        gr.setColorAt(1, QColor(c1))
+                        color = gr
+                    else:
+                        color = QColor(bg)
+                    try:
+                        i.setBrush(color)
+                    except:
+                        pass
+
+                if fg:
+                    i.setPen(QColor(fg))
+
+                if opacity < 1:
+                    i.setOpacity(opacity)
+
+            max_x_pos = max(max_x_pos, xstart + w)
+            current_seq_end = max(seq_end, current_seq_end)
+
+        self.item.setRect(0, 0, max_x_pos, max_h)
+
+        self.item.setPen(QPen(Qt.NoPen))
+
+
+
+class SequencePlotFace(StaticItemFace):
+    """
+    To draw plots, usually correlated to columns in alignment
+
+    :argument values : a list of values
+    :argument None errors : a list of errors associated to each value. elements of the list can contain a list with lower and upper error, if they are different.
+    :argument None colors : a list of colors associated to each value
+    :argument None header : a title for the plot
+    :argument bar kind : kind of plot, one of bar, curve or sticks.
+    :argument None fsize : font size for header and labels
+    :argument 100 height : height of the plot (excluding labels)
+    :argument None hlines : list of y values of horizontal dashed lines to be drawn across plot
+    :argument None hlines_col: list of colors associated to each horizontal line
+    :argument None col_width : width of a column in the alignment
+    :argument red error_col : color of error bars
+    """
+    def __init__(self, values, errors=None, colors=None, header='',
+                 fsize=9, height = 100, hlines=None, kind='bar',
+                 hlines_col = None, extras=None, col_width=11,
+                 ylim=None, xlabel='', ylabel=''):
+
+        self.col_w = float(col_width)
+        self.height = height
+        self.values = [float(v) for v in values]
+        self.width = self.col_w * len (self.values)
+        self.errors = errors if errors else []
+        self.colors = colors if colors else ['gray'] * len(self.values)
+        self.header = header
+        self.fsize = fsize
+        if ylim:
+            self.ylim = tuple((float(y) for y in ylim))
+        else:
+            self.ylim = (int(min(self.values)-0.5), int(max(self.values)+0.5))
+        self.xlabel = xlabel
+        self.ylabel = ylabel
+
+        if self.errors:
+            if type(self.errors[0]) is list or type(self.errors[0]) is tuple:
+                self._up_err = [float(e[1]) for e in self.errors]
+                self._dw_err = [float(-e[0]) for e in self.errors]
+            else:
+                self._up_err = [float(e) for e in self.errors]
+                self._dw_err = [float(-e) for e in self.errors]
+        if kind == 'bar':
+            self.draw_fun = self.draw_bar
+        elif kind == 'stick':
+            self.draw_fun = self.draw_stick
+        elif kind == 'curve':
+            self.draw_fun = self.draw_curve
+        else:
+            raise 'kind %s not yet implemented... ;)' % (kind)
+
+        self.hlines = [float(h) for h in hlines] if hlines else [1.0]
+        self.hlines_col = hlines_col if hlines_col else ['black']*len(self.hlines)
+
+        self.extras = extras if extras else ['']
+        if len (self.extras) != len (self.values):
+            self.extras = ['']
+
+        super(SequencePlotFace, self).__init__(None)
+
+    def update_items(self):
+        self.item =  QGraphicsRectItem(-40, 0, self.width+40, self.height+50)
+        self.item.setPen(QPen(QColor('white')))
+        # draw lines
+        for line, col in zip(self.hlines, self.hlines_col):
+            self.draw_hlines(line, col)
+        # draw plot
+        width = self.col_w
+        for i, val in enumerate(self.values):
+            self.draw_fun(width * i + self.col_w / 2 , val, i)
+        # draw error bars
+        if self.errors:
+            for i in range(len(self.errors)):
+                self.draw_errors(width * i + self.col_w / 2 , i)
+        # draw x axis
+        self.draw_x_axis()
+        # draw y axis
+        self.draw_y_axis()
+        # put header
+        self.write_header()
+
+    def write_header(self):
+        text = QGraphicsSimpleTextItem(self.header)
+        text.setFont(QFont("Arial", self.fsize))
+        text.setParentItem(self.item)
+        text.setPos(0, 5)
+
+    def draw_y_axis(self):
+        lineItem = QGraphicsLineItem(0, self.coordY(self.ylim[0]),
+                                     0, self.coordY(self.ylim[1]),
+                                     parent=self.item)
+        lineItem.setPen(QPen(QColor('black')))
+        lineItem.setZValue(10)
+        max_w = 0
+        for y in set(self.hlines + list(self.ylim)):
+            lineItem = QGraphicsLineItem(0, self.coordY(y),
+                                               -5, self.coordY(y),
+                                               parent=self.item)
+            lineItem.setPen(QPen(QColor('black')))
+            lineItem.setZValue(10)
+            text = QGraphicsSimpleTextItem(str(y))
+            text.setFont(QFont("Arial", self.fsize-2))
+            text.setParentItem(self.item)
+            tw = text.boundingRect().width()
+            max_w = tw if tw > max_w else max_w
+            th = text.boundingRect().height()
+            # Center text according to masterItem size
+            text.setPos(-tw - 5, self.coordY(y)-th/2)
+        if self.ylabel:
+            text = QGraphicsSimpleTextItem(self.ylabel)
+            text.setFont(QFont("Arial", self.fsize-1))
+            text.setParentItem(self.item)
+            text.rotate(-90)
+            tw = text.boundingRect().width()
+            th = text.boundingRect().height()
+            # Center text according to masterItem size
+            text.setPos(-th -5-max_w, tw/2+self.coordY(sum(self.ylim)/2))
+
+    def draw_x_axis(self):
+        lineItem = QGraphicsLineItem(self.col_w/2,
+                                           self.coordY(self.ylim[0])+2,
+                                           self.width-self.col_w/2,
+                                           self.coordY(self.ylim[0])+2,
+                                           parent=self.item)
+        lineItem.setPen(QPen(QColor('black')))
+        lineItem.setZValue(10)
+        all_vals = list(range(0, len(self.values), 5))
+        if (len(self.values)-1)%5:
+            all_vals += [len(self.values)-1]
+        for x in all_vals:
+            lineItem = QGraphicsLineItem(0, self.coordY(self.ylim[0])+2,
+                                               0, self.coordY(self.ylim[0])+6,
+                                               parent=self.item)
+            lineItem.setX(x*self.col_w + self.col_w/2)
+            lineItem.setPen(QPen(QColor('black')))
+            lineItem.setZValue(10)
+            text = QGraphicsSimpleTextItem(str(x))
+            text.setFont(QFont("Arial", self.fsize-2))
+            text.setParentItem(self.item)
+            tw = text.boundingRect().width()
+            # Center text according to masterItem size
+            text.setPos(x*self.col_w-tw/2 + self.col_w/2,
+                        self.coordY(self.ylim[0])+6)
+
+    def coordY(self, y):
+        """
+        return the transformation of Y according to mean value
+        (that is last element of lines)
+        """
+        y_offset = 30
+        if self.ylim[1] <= y: return y_offset
+        if self.ylim[1] == 0: return self.height + y_offset
+        if self.ylim[0] >= y: return self.height + y_offset
+        #return self.height - y * self.height / self.ylim[1]
+        return self.height + y_offset - (y-self.ylim[0]) / (self.ylim[1]-self.ylim[0]) * self.height
+
+    def draw_hlines (self, line, col):
+        lineItem = QGraphicsLineItem(0, self.coordY(line),
+                                           self.width, self.coordY(line),
+                                           parent=self.item)
+        lineItem.setPen(QPen(QColor(col), 1, Qt.DashLine))
+        lineItem.setZValue(10)
+
+    def draw_bar(self, x, y, i):
+        h = self.coordY(self.ylim[0])#self.height
+        coordY = self.coordY
+        item = self.item
+        # if value stands out of bound
+        if y < self.ylim[0]: return
+        if y < self.ylim[1]:
+            # left line
+            lineItem = QGraphicsLineItem(0, h, 0, coordY(y), parent=item)
+            lineItem.setX(x-3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # right line
+            lineItem = QGraphicsLineItem(0, h, 0, coordY(y), parent=item)
+            lineItem.setX(x+3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # top line
+            lineItem = QGraphicsLineItem(0, coordY(y), 6, coordY(y), parent=item)
+            lineItem.setX(x-3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+        else:
+            # lower left line
+            lineItem = QGraphicsLineItem(0, h, 0, coordY(y), parent=item)
+            lineItem.setX(x-3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # lower right line
+            lineItem = QGraphicsLineItem(0, h, 0, coordY(y), parent=item)
+            lineItem.setX(x+3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # upper left line
+            lineItem = QGraphicsLineItem(0, coordY(y)-4, 0, coordY(y)-7, parent=item)
+            lineItem.setX(x-3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # upper right line
+            lineItem = QGraphicsLineItem(0, coordY(y)-4, 0, coordY(y)-7, parent=item)
+            lineItem.setX(x+3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+            # top line
+            lineItem = QGraphicsLineItem(0, coordY(y)-7, 6, coordY(y)-7, parent=item)
+            lineItem.setX(x-3)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+
+    def draw_stick(self, x, y, i):
+        lineItem = QGraphicsLineItem(0, self.coordY(self.ylim[0]),
+                                           0, self.coordY(y),
+                                           parent=self.item)
+        lineItem.setX(x)
+        lineItem.setPen(QPen(QColor(self.colors[i]),2))
+
+    def draw_errors(self, x, i):
+        lower = self.values[i]+self._dw_err[i]
+        upper = self.values[i]+self._up_err[i]
+        lineItem = QGraphicsLineItem(0, self.coordY(lower), 0,
+                                           self.coordY(upper), parent=self.item)
+        lineItem.setX(x)
+        lineItem.setPen(QPen(QColor('black'),1))
+
+    def draw_curve(self, x, y, i):
+        # top line
+        lineItem = QGraphicsLineItem(0, self.coordY(y), 4,
+                                           self.coordY(y), parent=self.item)
+        lineItem.setX(x-2)
+        lineItem.setPen(QPen(QColor(self.colors[i]),2))
+        if i > 0:
+            prev = self.values[i-1] if i>0 else self.values[i]
+            lineItem = QGraphicsLineItem(0, self.coordY(prev), self.col_w-4,
+                                               self.coordY(y), parent=self.item)
+            lineItem.setX(x - self.col_w+2)
+            lineItem.setPen(QPen(QColor(self.colors[i]),2))
+
+
+
+class SequenceFace(StaticItemFace, Face):
+    """
+    Creates a new molecular sequence face object.
+    :param seq: Sequence string to be drawn
+    :param seqtype: Type of sequence: "nt" or "aa"
+    :param fsize: Font size, (default=10)
+
+    You can set custom colors for amino-acids or nucleotides:
+
+    :param None codon: a string that corresponds to the reverse
+      translation of the amino-acid sequence
+    :param None col_w: width of the column (if col_w is lower than
+      font size, letter wont be displayed)
+    :param None fg_colors: dictionary of colors for foreground, with
+      as keys each possible character in sequences, and as value the
+      colors
+    :param None bg_colors: dictionary of colors for background, with
+      as keys each possible character in sequences, and as value the
+      colors
+    :param 3 alt_col_w: works together with special_col option,
+      defines the width of given columns
+    :param None special_col: list of lists containing the bounds
+      of columns to be displayed with alt_col_w as width
+    :param False interactive: more info can be displayed when
+      mouse over sequence
+
+        """
+    def __init__(self, seq, seqtype="aa", fsize=10,
+                 fg_colors=None, bg_colors=None,
+                 codon=None, col_w=None, alt_col_w=3,
+                 special_col=None, interactive=False):
+        self.seq = seq
+        self.codon = codon
+        self.fsize = fsize
+        self.style = seqtype
+        self.col_w = float(self.fsize + 1) if col_w is None else float(col_w)
+        self.alt_col_w = float(alt_col_w)
+        self.special_col = special_col if special_col else []
+        self.width = 0 # will store the width of the whole sequence
+        self.interact = interactive
+
+        if self.style == "aa":
+            if not fg_colors:
+                fg_colors = _aafgcolors
+            if not bg_colors:
+                bg_colors = _aabgcolors
+        else:
+            if not fg_colors:
+                fg_colors = _ntfgcolors
+            if not bg_colors:
+                bg_colors = _ntbgcolors
+
+        def __init_col(color_dic):
+            """to speed up the drawing of colored rectangles and characters"""
+            new_color_dic = {}
+            for car in color_dic:
+                new_color_dic[car] = QBrush(QColor(color_dic[car]))
+            return new_color_dic
+
+        self.fg_col = __init_col(fg_colors)
+        self.bg_col = __init_col(bg_colors)
+
+        # for future?
+        self.row_h = 13.0
+        super(SequenceFace, self).__init__(None)
+
+
+    def update_items(self):
+        self.item = QGraphicsRectItem(0, 0, self.width, self.row_h)
+        seq_width = 0
+        nopen = QPen(Qt.NoPen)
+        font = QFont("Courier", self.fsize)
+        rect_cls = self.InteractiveLetterItem if self.interact \
+                   else QGraphicsRectItem
+        for i, letter in enumerate(self.seq):
+            width = self.col_w
+            for reg in self.special_col:
+                if reg[0] < i <= reg[1]:
+                    width = self.alt_col_w
+                    break
+            #load interactive item if called correspondingly
+            rectitem = rect_cls(0, 0, width, self.row_h, parent=self.item)
+            rectitem.setX(seq_width) # to give correct X to children item
+            rectitem.setBrush(self.bg_col[letter])
+            rectitem.setPen(nopen)
+            if self.interact:
+                if self.codon:
+                    rectitem.codon = '%s, %d: %s' % (self.seq[i], i,
+                                                     self.codon[i*3:i*3+3])
+                else:
+                    rectitem.codon = '%s, %d' % (self.seq[i], i)
+            # write letter if enough space
+            if width >= self.fsize:
+                text = QGraphicsSimpleTextItem(letter, parent=rectitem)
+                text.setFont(font)
+                text.setBrush(self.fg_col[letter])
+                # Center text according to rectitem size
+                txtw = text.boundingRect().width()
+                txth = text.boundingRect().height()
+                text.setPos((width - txtw)/2, (self.row_h - txth)/2)
+            seq_width += width
+        self.width = seq_width
+
+    class InteractiveLetterItem(QGraphicsRectItem):
+        """This is a class"""
+        def __init__(self, *arg, **karg):
+            QGraphicsRectItem.__init__(self, *arg, **karg)
+            self.codon = None
+            self.label = None
+            self.setAcceptsHoverEvents(True)
+
+        def hoverEnterEvent (self, e):
+            """ when mouse is over"""
+            if not self.label:
+                self.label = QGraphicsRectItem(parent=self)
+                #self.label.setY(-18)
+                self.label.setX(11)
+                self.label.setBrush(QBrush(QColor("white")))
+                self.label.text = QGraphicsSimpleTextItem(parent=self.label)
+
+            self.setZValue(1)
+            self.label.text.setText(self.codon)
+            self.label.setRect(self.label.text.boundingRect())
+            self.label.setVisible(True)
+
+        def hoverLeaveEvent(self, e):
+            """when mouse leaves area"""
+            if self.label:
+                self.label.setVisible(False)
+                self.setZValue(0)
+
diff --git a/ete3/treeview/fileopen.png b/ete3/treeview/fileopen.png
new file mode 100644
index 0000000..f0135a3
Binary files /dev/null and b/ete3/treeview/fileopen.png differ
diff --git a/ete3/treeview/filesave.png b/ete3/treeview/filesave.png
new file mode 100644
index 0000000..8370f20
Binary files /dev/null and b/ete3/treeview/filesave.png differ
diff --git a/ete3/treeview/fit_region.png b/ete3/treeview/fit_region.png
new file mode 100644
index 0000000..bede93d
Binary files /dev/null and b/ete3/treeview/fit_region.png differ
diff --git a/ete3/treeview/fit_tree.png b/ete3/treeview/fit_tree.png
new file mode 100644
index 0000000..48f2852
Binary files /dev/null and b/ete3/treeview/fit_tree.png differ
diff --git a/ete3/treeview/force_topo.png b/ete3/treeview/force_topo.png
new file mode 100644
index 0000000..e1b0262
Binary files /dev/null and b/ete3/treeview/force_topo.png differ
diff --git a/ete3/treeview/image_properties.ui b/ete3/treeview/image_properties.ui
new file mode 100644
index 0000000..1a7fa3c
--- /dev/null
+++ b/ete3/treeview/image_properties.ui
@@ -0,0 +1,201 @@
+<ui version="4.0" >
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>709</width>
+    <height>298</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <widget class="QDialogButtonBox" name="buttonBox" >
+   <property name="geometry" >
+    <rect>
+     <x>350</x>
+     <y>240</y>
+     <width>341</width>
+     <height>32</height>
+    </rect>
+   </property>
+   <property name="orientation" >
+    <enum>Qt::Horizontal</enum>
+   </property>
+   <property name="standardButtons" >
+    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+   </property>
+  </widget>
+  <widget class="QGroupBox" name="groupBox_2" >
+   <property name="geometry" >
+    <rect>
+     <x>20</x>
+     <y>10</y>
+     <width>451</width>
+     <height>141</height>
+    </rect>
+   </property>
+   <property name="title" >
+    <string>Tree aspect</string>
+   </property>
+   <widget class="QPushButton" name="pushButton" >
+    <property name="geometry" >
+     <rect>
+      <x>220</x>
+      <y>60</y>
+      <width>81</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="text" >
+     <string>Fit to window</string>
+    </property>
+   </widget>
+   <widget class="QLabel" name="label_2" >
+    <property name="geometry" >
+     <rect>
+      <x>17</x>
+      <y>32</y>
+      <width>141</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="text" >
+     <string>Min vertical branch space</string>
+    </property>
+   </widget>
+   <widget class="QSpinBox" name="spinBox_2" >
+    <property name="geometry" >
+     <rect>
+      <x>169</x>
+      <y>29</y>
+      <width>41</width>
+      <height>21</height>
+     </rect>
+    </property>
+   </widget>
+   <widget class="QLabel" name="label_4" >
+    <property name="geometry" >
+     <rect>
+      <x>56</x>
+      <y>58</y>
+      <width>101</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="text" >
+     <string>Tree width (pixels)</string>
+    </property>
+   </widget>
+   <widget class="QSpinBox" name="spinBox_3" >
+    <property name="geometry" >
+     <rect>
+      <x>170</x>
+      <y>60</y>
+      <width>41</width>
+      <height>21</height>
+     </rect>
+    </property>
+   </widget>
+   <widget class="QFontComboBox" name="fontComboBox" >
+    <property name="geometry" >
+     <rect>
+      <x>170</x>
+      <y>110</y>
+      <width>171</width>
+      <height>23</height>
+     </rect>
+    </property>
+   </widget>
+   <widget class="QLabel" name="label_3" >
+    <property name="geometry" >
+     <rect>
+      <x>10</x>
+      <y>110</y>
+      <width>160</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text" >
+     <string>Branch lengths and support</string>
+    </property>
+   </widget>
+  </widget>
+  <widget class="QCheckBox" name="checkBox_2" >
+   <property name="geometry" >
+    <rect>
+     <x>340</x>
+     <y>70</y>
+     <width>121</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Auto fit to window</string>
+   </property>
+   <property name="checked" >
+    <bool>true</bool>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox" >
+   <property name="geometry" >
+    <rect>
+     <x>190</x>
+     <y>230</y>
+     <width>221</width>
+     <height>23</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_5" >
+   <property name="geometry" >
+    <rect>
+     <x>80</x>
+     <y>230</y>
+     <width>101</width>
+     <height>18</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Tree style</string>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>Dialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Dialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/ete3/treeview/layouts.py b/ete3/treeview/layouts.py
new file mode 100644
index 0000000..2b14552
--- /dev/null
+++ b/ete3/treeview/layouts.py
@@ -0,0 +1,263 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+
+
+from .. import numpy
+from . import faces
+
+def basic(node):
+    if node.is_leaf():
+        #node.img_style["size"]=1
+        #node.img_style["shape"] = "circle"
+        faces.add_face_to_node(faces.AttrFace("name","Arial",10,"#4f8f0f",None), node, 0 )
+
+def phylogeny(node):
+    leaf_color = "#000000"
+    node.img_style["shape"] = "circle"
+    if hasattr(node,"evoltype"):
+        if node.evoltype == 'D':
+            node.img_style["fgcolor"] = "#FF0000"
+            node.img_style["hz_line_color"] = "#FF0000"
+            node.img_style["vt_line_color"] = "#FF0000"
+        elif node.evoltype == 'S':
+            node.img_style["fgcolor"] = "#1d176e"
+            node.img_style["hz_line_color"] = "#1d176e"
+            node.img_style["vt_line_color"] = "#1d176e"
+        elif node.evoltype == 'L':
+            node.img_style["fgcolor"] = "#777777"
+            node.img_style["vt_line_color"] = "#777777"
+            node.img_style["hz_line_color"] = "#777777"
+            node.img_style["hz_line_type"] = 1
+            node.img_style["vt_line_type"] = 1
+            leaf_color = "#777777"
+
+    if node.is_leaf():
+        node.img_style["shape"] = "square"
+        node.img_style["size"] = 4
+        node.img_style["fgcolor"] = leaf_color
+        faces.add_face_to_node( faces.AttrFace("name","Arial",11,leaf_color,None), node, 0 )
+        if hasattr(node,"sequence"):
+            SequenceFace =  faces.SequenceFace(node.sequence,"aa",13)
+            faces.add_face_to_node(SequenceFace, node, 1, aligned=True)
+    else:
+        node.img_style["size"] = 6
+
+def heatmap(node):
+    square_size = 10
+    # Extras node info
+    node.collapsed = False
+
+    # Color and style
+    node.img_style["fgcolor"] = "#3333FF"
+    node.img_style["size"] =  0
+
+    ncols = node.arraytable.matrix.shape[1]
+
+    matrix_max = numpy.max(node.arraytable._matrix_max)
+    matrix_min = numpy.min(node.arraytable._matrix_min)
+    
+    matrix_avg = matrix_min+((matrix_max-matrix_min)/2)
+
+    ProfileFace = faces.ProfileFace(\
+      matrix_max,\
+        matrix_min,\
+        matrix_avg,\
+        square_size*ncols,\
+        square_size,\
+        "heatmap")
+    ProfileFace.ymargin=0
+    if node.is_leaf():
+        # Set colors
+        faces.add_face_to_node(ProfileFace, node, 0, aligned=True)
+
+def cluster_cbars(node):
+    # Extras node info
+    node.collapsed = False
+    # Color and style
+    node.img_style["fgcolor"] = "#3333FF"
+    node.img_style["size"] =  4
+    matrix_max = numpy.max(node.arraytable._matrix_max)
+    matrix_min = numpy.min(node.arraytable._matrix_min)
+    matrix_avg = matrix_min+((matrix_max-matrix_min)/2)
+    ProfileFace = faces.ProfileFace(\
+                                        matrix_max,\
+                                        matrix_min,\
+                                        matrix_avg,\
+                                        200,\
+                                        60,\
+                                        "cbars")
+
+    if node.is_leaf():
+        nameFace = faces.AttrFace("name",fsize=6 )
+        faces.add_face_to_node(nameFace, node, 1, aligned=True )
+        faces.add_face_to_node(ProfileFace, node, 0,  aligned=True )
+    else:
+        # Set custom faces
+        faces.add_face_to_node(ProfileFace, node, 0, aligned=True )
+
+def cluster_lines(node):
+    # Extras node info
+    node.collapsed = False
+    # Color and style
+    node.img_style["fgcolor"] = "#3333FF"
+    node.img_style["size"] = 4
+    matrix_max = numpy.max(node.arraytable._matrix_max)
+    matrix_min = numpy.min(node.arraytable._matrix_min)
+    matrix_avg = matrix_min+((matrix_max-matrix_min)/2)
+    ProfileFace = faces.ProfileFace(\
+      matrix_max,\
+        matrix_min,\
+        matrix_avg,\
+        200,\
+        50,\
+        "lines")
+
+    if node.is_leaf():
+        nameFace = faces.AttrFace("name",fsize=6 )
+        faces.add_face_to_node(nameFace, node, 1,  aligned=True )
+        faces.add_face_to_node(ProfileFace, node, 0, aligned=True )
+    else:
+        # Set custom faces
+        faces.add_face_to_node(ProfileFace, node, 0, aligned=True )
+
+def cluster_bars(node):
+    # Extras node info
+    node.collapsed = False
+    # Color and style
+    node.img_style["fgcolor"] = "#3333FF"
+    node.img_style["size"] = 4
+
+    if node.is_leaf():
+        matrix_max = numpy.max(node.arraytable._matrix_max)
+        matrix_min = numpy.min(node.arraytable._matrix_min)
+        matrix_avg = matrix_min+((matrix_max-matrix_min)/2)
+        ProfileFace = faces.ProfileFace(\
+          matrix_max,\
+            matrix_min,\
+            matrix_avg,\
+            200,\
+            40,\
+            "bars")
+        nameFace = faces.AttrFace("name",fsize=6 )
+        faces.add_face_to_node(nameFace, node, 1, aligned=True )
+        faces.add_face_to_node(ProfileFace, node, 0, aligned=True )
+
+def large(node):
+    # Color and style
+    node.img_style["fgcolor"] = "#3333FF"
+    node.img_style["size"] = 0
+
+
+def evol_layout(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    leaf_color = "#000000"
+    if not node.is_root() and 'w' in node.features:
+        node.img_style["shape"] = 'circle'
+        if (node.w > 900):
+            node._w = 3
+        elif (node.w > 100):
+            node._w = 2.5
+        elif (node.w > 10) :
+            node._w = 2
+        elif (node.w > 1):
+            node._w = 1.5
+        else:
+            node._w = node.w
+        node.img_style["size"] = int ((float(node._w))*6+2)
+        if node._w == 3   :
+            node.img_style["fgcolor"] = "#c10000"
+        if node._w == 2.5 :
+            node.img_style["fgcolor"] = "#FF5A02"
+        if node._w == 2   :
+            node.img_style["fgcolor"] = "#FFA200"
+        if node._w == 1.5 :
+            node.img_style["fgcolor"] = "#E9BF00"
+        if node._w  < 0.2 :
+            node.img_style["fgcolor"] = "#000000"
+    if hasattr(node,"extras"):
+        faces.add_face_to_node( faces.AttrFace("extras", "Arial", 7, \
+                                               "#000000", None), node, 2 )
+    #if node.is_leaf():
+    if hasattr (node, "sequence"):
+        seqface =  faces.SequenceFace(node.sequence, interactive=True,
+                                      codon=node.nt_sequence)
+        faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+def evol_clean_layout(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    leaf_color = "#000000"
+    node.img_style["size"] = 2
+    if node.is_leaf():
+        #if hasattr (node,"highlight"):
+        #    faces.add_face_to_node(faces.AttrFace("name", "Arial", 9, \
+        #                                          node.highlight,
+        #                                          None), \
+        #                           node, 0 )
+        #else:
+        #    leaface = faces.AttrFace("name", "Arial", 9, leaf_color, None)
+        #    leaface.margin_right = 10
+        #    faces.add_face_to_node (leaface, node, 0)
+        if hasattr (node, "sequence"):
+            seqface =  faces.SequenceFace(node.sequence, interactive=True,
+                                          codon=node.nt_sequence)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+    if hasattr (node, 'dN'):
+        faces.add_face_to_node (faces.TextFace('%.4f'%(node.w), fsize=6,
+                                               fgcolor="#7D2D2D"),
+                                node, 0, position="branch-top")
+        faces.add_face_to_node (faces.TextFace('%.2f/%.2f'% (100*node.dN,
+                                                             100*node.dS),
+                                              fsize=6, fgcolor="#787878"),
+                                node, 0, position="branch-bottom")
+    if hasattr(node,"extras"):
+        faces.add_face_to_node( faces.AttrFace("extras", "Arial", 7, \
+                                               "#000000", None), node, 2 )
diff --git a/ete3/treeview/main.py b/ete3/treeview/main.py
new file mode 100644
index 0000000..f04cd71
--- /dev/null
+++ b/ete3/treeview/main.py
@@ -0,0 +1,778 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import colorsys
+import random
+import re
+import types
+from sys import stderr
+
+from PyQt4.QtGui import *
+from PyQt4 import QtCore
+
+from .svg_colors import SVG_COLORS, COLOR_SCHEMES
+
+import time
+def tracktime(f):
+    def a_wrapper_accepting_arguments(*args, **kargs):
+        t1 = time.time()
+        r = f(*args, **kargs)
+        print("                         -> TIME:", f.__name__, time.time() - t1)
+        return r
+    return a_wrapper_accepting_arguments
+
+
+_LINE_TYPE_CHECKER = lambda x: x in (0,1,2)
+_SIZE_CHECKER = lambda x: isinstance(x, int)
+_COLOR_MATCH = re.compile("^#[A-Fa-f\d]{6}$")
+_COLOR_CHECKER = lambda x: x.lower() in SVG_COLORS or re.match(_COLOR_MATCH, x)
+_NODE_TYPE_CHECKER = lambda x: x in ["sphere", "circle", "square"]
+_BOOL_CHECKER =  lambda x: isinstance(x, bool) or x in (0,1)
+
+FACE_POSITIONS = set(["branch-right", "branch-top", "branch-bottom", "float", "float-behind", "aligned"])
+
+__all__  = ["NodeStyle", "TreeStyle", "FaceContainer", "_leaf", "add_face_to_node", "COLOR_SCHEMES"]
+
+NODE_STYLE_DEFAULT = [
+    ["fgcolor",          "#0030c1",    _COLOR_CHECKER                           ],
+    ["bgcolor",          "#FFFFFF",    _COLOR_CHECKER                           ],
+    ["node_bgcolor",     "#FFFFFF",    _COLOR_CHECKER                           ],
+    #["partition_bgcolor","#FFFFFF",    _COLOR_CHECKER                           ],
+    ["faces_bgcolor",    "#FFFFFF",    _COLOR_CHECKER                           ],
+    ["vt_line_color",    "#000000",    _COLOR_CHECKER                           ],
+    ["hz_line_color",    "#000000",    _COLOR_CHECKER                           ],
+    ["hz_line_type",     0,            _LINE_TYPE_CHECKER                       ], # 0 solid, 1 dashed, 2 dotted
+    ["vt_line_type",     0,            _LINE_TYPE_CHECKER                       ], # 0 solid, 1 dashed, 2 dotted
+    ["size",             3,            _SIZE_CHECKER                            ], # node circle size
+    ["shape",            "circle",     _NODE_TYPE_CHECKER                       ],
+    ["draw_descendants", True,         _BOOL_CHECKER                            ],
+    ["hz_line_width",          0,      _SIZE_CHECKER                            ],
+    ["vt_line_width",          0,      _SIZE_CHECKER                            ]
+    ]
+
+TREE_STYLE_CHECKER = {
+    "mode": lambda x: x.lower() in set(["c", "r"]),
+    }
+
+# _faces and faces are registered to allow deepcopy to work on nodes
+VALID_NODE_STYLE_KEYS = set([i[0] for i in NODE_STYLE_DEFAULT]) | set(["_faces"])
+
+class _Border(object):
+    def __init__(self):
+        self.width = None
+        self.type = 0
+        self.color = None
+
+    def apply(self, item):
+        if self.width is not None:
+            r = item.boundingRect()
+            border = QGraphicsRectItem(r)
+            border.setParentItem(item)
+            if self.color:
+                pen = QPen(QColor(self.color))
+            else:
+                pen = QPen(QtCore.Qt.NoPen)
+            set_pen_style(pen, self.type)
+            pen.setWidth(self.width)
+            pen.setCapStyle(QtCore.Qt.FlatCap)
+            border.setPen(pen)
+            return border
+        else:
+            return None
+
+class _Background(object):
+    """
+    Set the background of the object
+
+    :param color: RGB color code or :data:`SVG_COLORS`
+
+    """
+    def __init__(self):
+        self.color = None
+
+    def apply(self, item):
+        if self.color:
+            r = item.boundingRect()
+            bg = QGraphicsRectItem(r)
+            bg.setParentItem(item)
+            pen = QPen(QColor(self.color))
+            brush = QBrush(QColor(self.color))
+            bg.setPen(pen)
+            bg.setBrush(brush)
+            bg.setFlag(QGraphicsItem.ItemStacksBehindParent)
+            return bg
+        else:
+            return None
+
+
+class _ActionDelegator(object):
+    """ Used to associate GUI Functions to nodes and faces """
+
+    def get_delegate(self):
+        return self._delegate
+
+    def set_delegate(self, delegate):
+        if hasattr(delegate, "init"):
+            delegate.init(self)
+
+        for attr in dir(delegate):
+            if not attr.startswith("_") and attr != "init" :
+                fn = getattr(delegate, attr)
+                setattr(self, attr, types.MethodType(fn, self))
+        self._delegate = delegate
+
+    delegate = property(get_delegate, set_delegate)
+
+    def __init__(self):
+        self._delegate = None
+
+class NodeStyle(dict):
+    """
+    .. versionadded:: 2.1
+
+    .. currentmodule:: ete3
+
+    A dictionary with all valid node graphical attributes.
+
+    :argument #0030c1 fgcolor: RGB code or name in :data:`SVG_COLORS`
+    :argument #FFFFFF bgcolor: RGB code or name in :data:`SVG_COLORS`
+    :argument #FFFFFF node_bgcolor: RGB code or name in :data:`SVG_COLORS`
+    :argument #FFFFFF partition_bgcolor: RGB code or name in :data:`SVG_COLORS`
+    :argument #FFFFFF faces_bgcolor: RGB code or name in :data:`SVG_COLORS`
+    :argument #000000 vt_line_color: RGB code or name in :data:`SVG_COLORS`
+    :argument #000000 hz_line_color: RGB code or name in :data:`SVG_COLORS`
+    :argument 0 hz_line_type: integer number
+    :argument 0 vt_line_type: integer number
+    :argument 3 size: integer number
+    :argument "circle" shape: "circle", "square" or "sphere"
+    :argument True draw_descendants: Mark an internal node as a leaf.
+
+    :argument 0 hz_line_width: integer number representing the width
+                               of the line in pixels.  A line width of
+                               zero indicates a cosmetic pen. This
+                               means that the pen width is always
+                               drawn one pixel wide, independent of
+                               the transformation set on the painter.
+
+    :argument 0 vt_line_width: integer number representing the width
+                               of the line in pixels.  A line width of
+                               zero indicates a cosmetic pen. This
+                               means that the pen width is always
+                               drawn one pixel wide, independent of
+                               the transformation set on the painter.
+
+    """
+
+    def __init__(self, *args, **kargs):
+        super(NodeStyle, self).__init__(*args, **kargs)
+        self.init()
+        #self._block_adding_faces = False
+
+    def init(self):
+        for key, dvalue, checker in NODE_STYLE_DEFAULT:
+            if key not in self:
+                self[key] = dvalue
+            elif not checker(self[key]):
+                raise ValueError("'%s' attribute in node style has not a valid value: %s" %\
+                                     (key, self[key]))
+    #
+    #    #super(NodeStyle, self).__setitem__("_faces", {})
+    #    # copy fixed faces to the faces dict that will be drawn
+    #    #for pos, values in self["faces"].iteritems():
+    #    #    for col, faces in values.iteritems():
+    #    #        self["_faces"].setdefault(pos, {})
+    #    #        self["_faces"][pos][col] = list(faces)
+
+    def __setitem__(self, i, v):
+        # keeps compatible with ETE 2.0 version
+        if i == "line_type":
+            print("WARNING: [%s] keyword is deprecated and it has been replaced by %s." %\
+                (i, "[hz_line_type, vt_line_type]"), file=stderr)
+            print("WARNING: Support for this keyword will be removed in next ETE versions.", file=stderr)
+            super(NodeStyle, self).__setitem__("hz_line_type", v)
+            i = "vt_line_type"
+
+        if i == "vlwidth":
+            i = "vt_line_width"
+            print("WARNING: [%s] keyword is deprecated and it has been replaced by %s." %\
+                (i, "[vt_line_width]"), file=stderr)
+            print("WARNING: Support for this keyword will be removed in next ETE versions.", file=stderr)
+        if i == "hlwidth":
+            i = "hz_line_width"
+            print("WARNING: [%s] keyword is deprecated and it has been replaced by %s." %\
+                (i, "[hz_line_width]"), file=stderr)
+            print("WARNING: Support for this keyword will be removed in next ETE versions.", file=stderr)
+
+        if i not in VALID_NODE_STYLE_KEYS:
+            raise ValueError("'%s' is not a valid keyword for a NodeStyle instance" %i)
+
+        super(NodeStyle, self).__setitem__(i, v)
+
+    #def clear(self):
+    #    super(NodeStyle, self).__setitem__("_faces", {})
+
+class TreeStyle(object):
+    """
+    .. versionadded:: 2.1
+
+    .. currentmodule:: ete3
+
+    Contains all the general image properties used to render a tree
+
+    **-- About tree design --**
+
+    :param None layout_fn: Layout function used to dynamically control
+      the aspect of nodes. Valid values are: None or a pointer to a method,
+      function, etc.
+
+    **-- About tree shape --**
+
+    :param "r" mode: Valid modes are 'c'(ircular)  or 'r'(ectangular).
+
+    :param 0 orientation: If 0, tree is drawn from left-to-right. If
+       1, tree is drawn from right-to-left. This property only makes
+       sense when "r" mode is used.
+
+    :param 0 rotation: Tree figure will be rotate X degrees (clock-wise
+       rotation).
+
+    :param 1 min_leaf_separation: Min separation, in pixels, between
+      two adjacent branches
+
+    :param 0 branch_vertical_margin: Leaf branch separation margin, in
+      pixels. This will add a separation of X pixels between adjacent
+      leaf branches. In practice, increasing this value work as
+      increasing Y axis scale.
+
+    :param 0 arc_start: When circular trees are drawn, this defines the
+      starting angle (in degrees) from which leaves are distributed
+      (clock-wise) around the total arc span (0 = 3 o'clock).
+
+    :param 359 arc_span: Total arc used to draw circular trees (in
+      degrees).
+
+    :param 0 margin_left: Left tree image margin, in pixels.
+    :param 0 margin_right: Right tree image margin, in pixels.
+    :param 0 margin_top: Top tree image margin, in pixels.
+    :param 0 margin_bottom: Bottom tree image margin, in pixels.
+
+    **-- About Tree branches --**
+
+    :param None scale: Scale used to draw branch lengths. If None, it will
+      be automatically calculated.
+
+    :param "mid" optimal_scale_level: Two levels of automatic branch
+      scale detection are available: :attr:`"mid"` and
+      :attr:`"full"`. In :attr:`full` mode, branch scale will me
+      adjusted to fully avoid dotted lines in the tree image. In other
+      words, scale will be increased until the extra space necessary
+      to allocated all branch-top/bottom faces and branch-right faces
+      (in circular mode) is covered by real branches. Note, however,
+      that the optimal scale in trees with very unbalanced branch
+      lengths might be huge. If :attr:`"mid"` mode is selected (as it is by default),
+      optimal scale will only satisfy the space necessary to allocate
+      branch-right faces in circular trees. Some dotted lines
+      (artificial branch offsets) will still appear when
+      branch-top/bottom faces are larger than branch length. Note that
+      both options apply only when :attr:`scale` is set to None
+      (automatic).
+
+    :param 0.25 root_opening_factor: (from 0 to 1). It defines how much the center of
+      a circular tree could be opened when adjusting optimal scale, referred
+      to the total tree length. By default (0.25), a blank space up to 4
+      times smaller than the tree width could be used to calculate the
+      optimal tree scale. A 0 value would mean that root node should
+      always be tightly adjusted to the center of the tree.
+
+    :param True complete_branch_lines_when_necessary: True or False.
+      Draws an extra line (dotted by default) to complete branch lengths when the space to cover is larger than the branch itself.
+
+    :param 2 extra_branch_line_type:  0=solid, 1=dashed, 2=dotted
+
+    :param "gray" extra_branch_line_color: RGB code or name in
+      :data:`SVG_COLORS`
+
+    :param False force_topology: Convert tree branches to a fixed length, thus allowing to
+      observe the topology of tight nodes
+
+    :param False draw_guiding_lines: Draw guidelines from leaf nodes
+      to aligned faces
+
+    :param 2 guiding_lines_type: 0=solid, 1=dashed, 2=dotted.
+
+    :param "gray" guiding_lines_color: RGB code or name in :data:`SVG_COLORS`
+
+    **-- About node faces --**
+
+    :param False allow_face_overlap: If True, node faces are not taken
+      into account to scale circular tree images, just like many other
+      visualization programs. Overlapping among branch elements (such
+      as node labels) will be therefore ignored, and tree size
+      will be a lot smaller. Note that in most cases, manual setting
+      of tree scale will be also necessary.
+
+    :param True draw_aligned_faces_as_table: Aligned faces will be
+      drawn as a table, considering all columns in all node faces.
+
+    :param True children_faces_on_top: When floating faces from
+      different nodes overlap, children faces are drawn on top of
+      parent faces. This can be reversed by setting this attribute
+      to false.
+
+    **-- Addons --**
+
+    :param False show_border: Draw a border around the whole tree
+
+    :param True show_scale: Include the scale legend in the tree
+      image
+
+    :param False show_leaf_name: Automatically adds a text Face to
+      leaf nodes showing their names
+
+    :param False show_branch_length: Automatically adds branch
+      length information on top of branches
+
+    :param False show_branch_support: Automatically adds branch
+      support text in the bottom of tree branches
+
+    **-- Tree surroundings --**
+
+    The following options are actually Face containers, so graphical
+    elements can be added just as it is done with nodes. In example,
+    to add tree legend:
+
+       ::
+
+          TreeStyle.legend.add_face(CircleFace(10, "red"), column=0)
+          TreeStyle.legend.add_face(TextFace("0.5 support"), column=1)
+
+    :param aligned_header: a :class:`FaceContainer` aligned to the end
+      of the tree and placed at the top part.
+
+    :param aligned_foot: a :class:`FaceContainer` aligned to the end
+      of the tree and placed at the bottom part.
+
+    :param legend: a :class:`FaceContainer` with an arbitrary number of faces
+      representing the legend of the figure.
+    :param 4 legend_position=4: TopLeft corner if 1, TopRight
+      if 2, BottomLeft if 3, BottomRight if 4
+
+    :param title: A Face container that can be used as tree title
+
+    """
+
+    def set_layout_fn(self, layout):
+        self._layout_handler = []
+        if type(layout) not in set([list, set, tuple, frozenset]):
+            layout = [layout]
+
+        for ly in layout:
+            # Validates layout function
+            if (type(ly) == types.FunctionType or type(ly) == types.MethodType or ly is None):
+                self._layout_handler.append(ly)
+            else:
+                from . import layouts
+                try:
+                    self._layout_handler.append(getattr(layouts, ly))
+                except Exception as e:
+                    print(e)
+                    raise ValueError ("Required layout is not a function pointer nor a valid layout name.")
+
+    def get_layout_fn(self):
+        return self._layout_handler
+
+    layout_fn = property(get_layout_fn, set_layout_fn)
+
+    def __init__(self):
+        # :::::::::::::::::::::::::
+        # TREE SHAPE AND SIZE
+        # :::::::::::::::::::::::::
+
+        # Valid modes are : "c" or "r"
+        self.mode = "r"
+
+        # Applies only for circular mode. It prevents aligned faces to
+        # overlap each other by increasing the radius.
+        self.allow_face_overlap = False
+
+        # Layout function used to dynamically control the aspect of
+        # nodes
+        self._layout_handler = []
+
+        # 0= tree is drawn from left-to-right 1= tree is drawn from
+        # right-to-left. This property only has sense when "r" mode
+        # is used.
+        self.orientation = 0
+
+        # Tree rotation in degrees (clock-wise rotation)
+        self.rotation = 0
+
+        # Scale used to convert branch lengths to pixels. If 'None',
+        # the scale will be automatically calculated.
+        self.scale = None
+
+        # How much the center of a circular tree can be opened,
+        # referred to the total tree length.
+        self.root_opening_factor = 0.25
+
+        # mid, or full
+        self.optimal_scale_level = "mid"
+
+        # Min separation, in pixels, between to adjacent branches
+        self.min_leaf_separation = 1
+
+        # Leaf branch separation margin, in pixels. This will add a
+        # separation of X pixels between adjacent leaf branches. In
+        # practice this produces a Y-zoom in.
+        self.branch_vertical_margin = 0
+
+        # When circular trees are drawn, this defines the starting
+        # angle (in degrees) from which leaves are distributed
+        # (clock-wise) around the total arc. 0 = 3 o'clock
+        self.arc_start = 0
+
+        # Total arc used to draw circular trees (in degrees)
+        self.arc_span = 359
+
+        # Margins around tree picture
+        self.margin_left = 1
+        self.margin_right = 1
+        self.margin_top = 1
+        self.margin_bottom = 1
+
+        # :::::::::::::::::::::::::
+        # TREE BRANCHES
+        # :::::::::::::::::::::::::
+
+        # When top-branch and bottom-branch faces are larger than
+        # branch length, branch line can be completed. Also, when
+        # circular trees are drawn,
+        self.complete_branch_lines_when_necessary = True
+        self.extra_branch_line_type = 2 # 0 solid, 1 dashed, 2 dotted
+        self.extra_branch_line_color = "gray"
+
+        # Convert tree branches to a fixed length, thus allowing to
+        # observe the topology of tight nodes
+        self.force_topology = False
+
+        # Draw guidelines from leaf nodes to aligned faces
+        self.draw_guiding_lines = False
+
+        # Format and color for the guiding lines
+        self.guiding_lines_type = 2 # 0 solid, 1 dashed, 2 dotted
+        self.guiding_lines_color = "gray"
+
+        # :::::::::::::::::::::::::
+        # FACES
+        # :::::::::::::::::::::::::
+
+        # Aligned faces will be drawn as a table, considering all
+        # columns in all node faces.
+        self.draw_aligned_faces_as_table = True
+        self.aligned_table_style = 0 # 0 = full grid (rows and
+                                     # columns), 1 = semigrid ( rows
+                                     # are merged )
+
+        # When floating faces from different nodes overlap, children
+        # faces are drawn on top of parent faces. This can be reversed
+        # by setting this attribute to false.
+        self.children_faces_on_top = True
+
+        # :::::::::::::::::::::::::
+        # Addons
+        # :::::::::::::::::::::::::
+
+        # Draw a border around the whole tree
+        self.show_border = False
+
+        # Draw the scale
+        self.show_scale = True
+
+        # Initialize aligned face headers
+        self.aligned_header = FaceContainer()
+        self.aligned_foot = FaceContainer()
+
+        self.show_leaf_name = True
+        self.show_branch_length = False
+        self.show_branch_support = False
+
+        self.legend = FaceContainer()
+        self.legend_position = 2
+
+
+        self.title = FaceContainer()
+        self.tree_width = 180
+        # PRIVATE values
+        self._scale = None
+
+        self.__closed__ = 1
+
+
+    def __setattr__(self, attr, val):
+        if hasattr(self, attr) or not getattr(self, "__closed__", 0):
+            if TREE_STYLE_CHECKER.get(attr, lambda x: True)(val):
+                object.__setattr__(self, attr, val)
+            else:
+                raise ValueError("[%s] wrong type" %attr)
+        else:
+            raise ValueError("[%s] option is not supported" %attr)
+
+class _FaceAreas(object):
+    def __init__(self):
+        for a in FACE_POSITIONS:
+            setattr(self, a, FaceContainer())
+
+    def __setattr__(self, attr, val):
+        if attr not in FACE_POSITIONS:
+            raise AttributeError("Face area [%s] not in %s" %(attr, FACE_POSITIONS) )
+        return super(_FaceAreas, self).__setattr__(attr, val)
+
+    def __getattr__(self, attr):
+        if attr not in FACE_POSITIONS:
+            raise AttributeError("Face area [%s] not in %s" %(attr, FACE_POSITIONS) )
+        return super(_FaceAreas, self).__getattr__(attr)
+
+class FaceContainer(dict):
+    """
+    .. versionadded:: 2.1
+
+    Use this object to create a grid of faces. You can add faces to different columns.
+    """
+    def add_face(self, face, column):
+        """
+        add the face **face** to the specified **column**
+        """
+        self.setdefault(int(column), []).append(face)
+
+def _leaf(node):
+    collapsed = hasattr(node, "_img_style") and not node.img_style["draw_descendants"]
+    return collapsed or node.is_leaf()
+
+def add_face_to_node(face, node, column, aligned=False, position="branch-right"):
+    """
+    .. currentmodule:: ete3.treeview.faces
+
+    Adds a Face to a given node.
+
+    :argument face: A :class:`Face` instance
+
+    .. currentmodule:: ete3
+
+    :argument node: a tree node instance (:class:`Tree`, :class:`PhyloTree`, etc.)
+    :argument column: An integer number starting from 0
+    :argument "branch-right" position: Possible values are
+      "branch-right", "branch-top", "branch-bottom", "float", "float-behind" and "aligned".
+    """
+
+    ## ADD HERE SOME TYPE CHECK FOR node and face
+
+    # to stay 2.0 compatible
+    if aligned == True:
+        position = "aligned"
+
+    if getattr(node, "_temp_faces", None):
+        getattr(node._temp_faces, position).add_face(face, column)
+    else:
+         raise Exception("This function can only be called within a layout function. Use node.add_face() instead")
+
+
+def set_pen_style(pen, line_style):
+    if line_style == 0:
+        pen.setStyle(QtCore.Qt.SolidLine)
+    elif line_style == 1:
+        pen.setStyle(QtCore.Qt.DashLine)
+    elif line_style == 2:
+        pen.setStyle(QtCore.Qt.DotLine)
+
+
+def save(scene, imgName, w=None, h=None, dpi=90,\
+             take_region=False, units="px"):
+    ipython_inline = False
+    if imgName == "%%inline":
+        ipython_inline = True
+        ext = "PNG"
+    elif imgName == "%%inlineSVG":
+        ipython_inline = True
+        ext = "SVG"        
+    elif imgName.startswith("%%return"):
+        try:
+            ext = imgName.split(".")[1].upper()
+        except IndexError:
+            ext = 'SVG'
+        imgName = '%%return'
+    else:
+        ext = imgName.split(".")[-1].upper()
+
+    main_rect = scene.sceneRect()
+    aspect_ratio = main_rect.height() / main_rect.width()
+
+    # auto adjust size
+    if not w and not h:
+        units = "px"
+        w = main_rect.width()
+        h = main_rect.height()
+        ratio_mode = QtCore.Qt.KeepAspectRatio
+    elif w and h:
+        ratio_mode = QtCore.Qt.IgnoreAspectRatio
+    elif h is None :
+        h = w * aspect_ratio
+        ratio_mode = QtCore.Qt.KeepAspectRatio
+    elif w is None:
+        w = h / aspect_ratio
+        ratio_mode = QtCore.Qt.KeepAspectRatio
+
+    # Adjust to resolution
+    if units == "mm":
+        if w:
+            w = w * 0.0393700787 * dpi
+        if h:
+            h = h * 0.0393700787 * dpi
+    elif units == "in":
+        if w:
+            w = w * dpi
+        if h:
+            h = h * dpi
+    elif units == "px":
+        pass
+    else:
+        raise Exception("wrong unit format")
+
+    x_scale, y_scale = w/main_rect.width(), h/main_rect.height()
+
+    if ext == "SVG":
+        from PyQt4 import QtSvg
+        svg = QtSvg.QSvgGenerator()
+        targetRect = QtCore.QRectF(0, 0, w, h)
+        svg.setSize(QtCore.QSize(w, h))
+        svg.setViewBox(targetRect)
+        svg.setTitle("Generated with ETE http://etetoolkit.org")
+        svg.setDescription("Generated with ETE http://etetoolkit.org")
+
+        if imgName == '%%return':
+            ba = QtCore.QByteArray()
+            buf = QtCore.QBuffer(ba)
+            buf.open(QtCore.QIODevice.WriteOnly)
+            svg.setOutputDevice(buf)
+        else:
+            svg.setFileName(imgName)
+
+        pp = QPainter()
+        pp.begin(svg)
+        scene.render(pp, targetRect, scene.sceneRect(), ratio_mode)
+        pp.end()
+        if imgName == '%%return':
+            compatible_code = str(ba)
+            print('from memory')
+        else:
+            compatible_code = open(imgName).read()
+        # Fix a very annoying problem with Radial gradients in
+        # inkscape and browsers...
+        compatible_code = compatible_code.replace("xml:id=", "id=")
+        compatible_code = re.sub('font-size="(\d+)"', 'font-size="\\1pt"', compatible_code)
+        compatible_code = compatible_code.replace('\n', ' ')
+        compatible_code = re.sub('<g [^>]+>\s*</g>', '', compatible_code)
+        # End of fix
+        if ipython_inline:
+            from IPython.core.display import SVG
+            return SVG(compatible_code)
+        
+        elif imgName == '%%return':
+            return x_scale, y_scale, compatible_code
+        else:
+            open(imgName, "w").write(compatible_code)
+
+
+    elif ext == "PDF" or ext == "PS":
+        if ext == "PS":
+            format = QPrinter.PostScriptFormat
+        else:
+            format = QPrinter.PdfFormat
+
+        printer = QPrinter(QPrinter.HighResolution)
+        printer.setResolution(dpi)
+        printer.setOutputFormat(format)
+        printer.setPageSize(QPrinter.A4)
+        printer.setPaperSize(QtCore.QSizeF(w, h), QPrinter.DevicePixel)
+        printer.setPageMargins(0, 0, 0, 0, QPrinter.DevicePixel)
+
+        #pageTopLeft = printer.pageRect().topLeft()
+        #paperTopLeft = printer.paperRect().topLeft()
+        # For PS -> problems with margins
+        #print paperTopLeft.x(), paperTopLeft.y()
+        #print pageTopLeft.x(), pageTopLeft.y()
+        # print  printer.paperRect().height(),  printer.pageRect().height()
+        #topleft =  pageTopLeft - paperTopLeft
+
+        printer.setFullPage(True);
+        printer.setOutputFileName(imgName);
+        pp = QPainter(printer)
+        targetRect =  QtCore.QRectF(0, 0 , w, h)
+        scene.render(pp, targetRect, scene.sceneRect(), ratio_mode)
+    else:
+        targetRect = QtCore.QRectF(0, 0, w, h)
+        ii= QImage(w, h, QImage.Format_ARGB32)
+        ii.fill(QColor(QtCore.Qt.white).rgb())
+        ii.setDotsPerMeterX(dpi / 0.0254) # Convert inches to meters
+        ii.setDotsPerMeterY(dpi / 0.0254)
+        pp = QPainter(ii)
+        pp.setRenderHint(QPainter.Antialiasing)
+        pp.setRenderHint(QPainter.TextAntialiasing)
+        pp.setRenderHint(QPainter.SmoothPixmapTransform)
+
+        scene.render(pp, targetRect, scene.sceneRect(), ratio_mode)
+        pp.end()
+        if ipython_inline:
+            ba = QtCore.QByteArray()
+            buf = QtCore.QBuffer(ba)
+            buf.open(QtCore.QIODevice.WriteOnly)
+            ii.save(buf, "PNG")            
+            from IPython.core.display import Image
+            return Image(ba.data())
+        elif imgName == '%%return':
+            ba = QtCore.QByteArray()
+            buf = QtCore.QBuffer(ba)
+            buf.open(QtCore.QIODevice.WriteOnly)
+            ii.save(buf, "PNG")
+            return x_scale, y_scale, ba.toBase64()
+        else:
+            ii.save(imgName)
+
+    return w/main_rect.width(), h/main_rect.height()
diff --git a/ete3/treeview/node_gui_actions.py b/ete3/treeview/node_gui_actions.py
new file mode 100644
index 0000000..ecf10bb
--- /dev/null
+++ b/ete3/treeview/node_gui_actions.py
@@ -0,0 +1,293 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+
+from .svg_colors import random_color
+from PyQt4  import QtCore, QtGui
+from six.moves import range
+from functools import partial
+
+from . import  _show_newick
+from ..evol import EvolTree
+
+class NewickDialog(QtGui.QDialog):
+    def __init__(self, node, *args):
+        QtGui.QDialog.__init__(self, *args)
+        self.node = node
+
+    def update_newick(self):
+        f= int(self._conf.nwFormat.currentText())
+        self._conf.features_list.selectAll()
+        if self._conf.useAllFeatures.isChecked():
+            features = []
+        elif self._conf.features_list.count()==0:
+            features = None
+        else:
+            features = set()
+            for i in self._conf.features_list.selectedItems():
+                features.add(str(i.text()))
+
+        nw = self.node.write(format=f, features=features)
+        self._conf.newickBox.setText(nw)
+
+    def add_feature(self):
+        aName = str(self._conf.attrName.text()).strip()
+        if aName != '':
+            self._conf.features_list.addItem(aName)
+            self.update_newick()
+    def del_feature(self):
+        r = self._conf.features_list.currentRow()
+        self._conf.features_list.takeItem(r)
+        self.update_newick()
+
+    def set_custom_features(self):
+        state = self._conf.useAllFeatures.isChecked()
+        self._conf.features_list.setDisabled(state)
+        self._conf.attrName.setDisabled(state)
+        self.update_newick()
+
+
+
+class _NodeActions(object):
+    """ Used to extend QGraphicsItem features """
+    def __init__(self):
+        self.setCursor(QtCore.Qt.PointingHandCursor)
+        self.setAcceptsHoverEvents(True)
+
+    def mouseReleaseEvent(self, e):
+        if not self.node:
+            return
+     
+        if e.button() == QtCore.Qt.RightButton:
+            self.showActionPopup()
+        elif e.button() == QtCore.Qt.LeftButton:
+            self.scene().view.set_focus(self.node)
+            
+            if isinstance(self.node, EvolTree) and self.node.get_tree_root()._is_mark_mode():
+                root = self.node.get_tree_root()
+                all_marks = set([getattr(n, "mark", '').replace('#', '').strip()
+                                 for n in root.traverse() if n is not self.node])                
+                all_marks.discard('')
+                
+                max_value = max(map(int, all_marks)) if all_marks else 0
+               
+                current_mark = getattr(self.node, "mark", "")
+                try:
+                    current_mark = int(current_mark.replace('#', ''))
+                except:
+                    current_mark = 0
+                    
+                if current_mark > max_value:
+                    self._gui_unmark_node()
+                else:
+                    self._gui_mark_node('#%d'% (current_mark + 1))
+                    
+            
+            #self.scene().view.prop_table.update_properties(self.node)
+
+
+    def hoverEnterEvent (self, e):
+        if self.node:
+            if self.node in self.scene().view.n2hl:
+                pass
+            else:
+                self.scene().view.highlight_node(self.node, fullRegion=True)
+
+    def hoverLeaveEvent(self,e):
+        if self.node:
+            if self.node in self.scene().view.n2hl:
+                self.scene().view.unhighlight_node(self.node, reset=False)
+
+    def mousePressEvent(self,e):
+        pass
+
+    def mouseDoubleClickEvent(self,e):
+        if self.node:
+            item = self.scene().n2i[self.node]
+            if item.highlighted:
+                self.scene().view.unhighlight_node(self.node, reset=True)
+            else:
+                self.scene().view.highlight_node(self.node, fullRegion=True,
+                                                 bg=random_color(l=0.5, s=0.5), permanent=True)
+
+                    
+
+    def showActionPopup(self):
+        contextMenu = QtGui.QMenu()
+        contextMenu.addAction( "Set as outgroup", self.set_as_outgroup)
+        contextMenu.addAction( "Copy partition", self.copy_partition)
+        contextMenu.addAction( "Cut partition", self.cut_partition)
+        if self.scene().view.buffer_node:
+            contextMenu.addAction( "Paste partition", self.paste_partition)
+
+        contextMenu.addAction( "Delete node (collapse children)", self.delete_node)
+        contextMenu.addAction( "Delete partition", self.detach_node)
+        contextMenu.addAction( "Populate subtree", self.populate_partition)
+        contextMenu.addAction( "Add children", self.add_children)
+        contextMenu.addAction( "Swap branches", self.swap_branches)
+        if self.node.img_style["draw_descendants"] == False:
+            contextMenu.addAction( "Open", self.toggle_collapse)
+        else:
+            contextMenu.addAction( "Close", self.toggle_collapse)
+
+        if self.node.up is not None and\
+                self.scene().tree == self.node:
+            contextMenu.addAction( "Back to parent", self.back_to_parent_node)
+        else:
+            contextMenu.addAction( "Extract", self.set_start_node)
+
+        if isinstance(self.node, EvolTree):
+            root = self.node.get_tree_root()
+            all_marks = set([getattr(n, "mark", '').replace('#', '').strip()
+                             for n in root.traverse() if n is not self.node])
+            all_marks.discard('')
+            max_value = max(map(int, all_marks)) if all_marks else 1
+            
+            current_mark = getattr(self.node, "mark", '').replace('#', '').strip()
+            current_mark = int(current_mark) if current_mark != '' else 0
+            
+            if current_mark <= max_value:
+                mark = "#%d" %(current_mark + 1)
+                contextMenu.addAction("ETE-evol: mark node as " + mark, partial(
+                    self._gui_mark_node, mark))
+                contextMenu.addAction("ETE-evol: mark group as " + mark, partial(
+                    self._gui_mark_group, mark))
+                
+            if getattr(self.node, "mark", None):
+                contextMenu.addAction("ETE-evol: clear mark in node", partial(
+                    self._gui_unmark_node))
+                contextMenu.addAction("ETE-evol: clear mark in group", partial(
+                    self._gui_unmark_group))
+        
+
+        contextMenu.addAction( "Show newick", self.show_newick)
+        contextMenu.exec_(QtGui.QCursor.pos())
+
+    def _gui_mark_node(self, mark=None):
+        if not mark:
+            if self.node.mark:
+                mark = '#' + str(int(self.node.mark.replace('#', '')) + 1)
+            else:
+                mark = '#1'
+        self.node.mark_tree([self.node.node_id], marks=[mark])
+        self.scene().GUI.redraw()
+            
+
+    def _gui_unmark_node(self):
+        self.node.mark = ""
+        self.scene().GUI.redraw()
+
+    def _gui_mark_group(self, mark=None):
+        self.node.mark_tree([self.node.node_id], marks=[mark])
+        for leaf in self.node.iter_descendants():
+            leaf.mark_tree([leaf.node_id], marks=[mark])
+        self.scene().GUI.redraw()
+
+    def _gui_unmark_group(self):
+        self.node.mark = ""
+        for leaf in self.node.iter_descendants():
+            leaf.mark = ""
+        self.scene().GUI.redraw()
+
+    def show_newick(self):
+        d = NewickDialog(self.node)
+        d._conf = _show_newick.Ui_Newick()
+        d._conf.setupUi(d)
+        d.update_newick()
+        d.exec_()
+        return False
+
+    def delete_node(self):
+        self.node.delete()
+        self.scene().GUI.redraw()
+
+    def detach_node(self):
+        self.node.detach()
+        self.scene().GUI.redraw()
+
+    def swap_branches(self):
+        self.node.swap_children()
+        self.scene().GUI.redraw()
+
+    def add_children(self):
+        n,ok = QtGui.QInputDialog.getInteger(None,"Add childs","Number of childs to add:",1,1)
+        if ok:
+            for i in range(n):
+                ch = self.node.add_child()
+        self.scene().GUI.redraw()
+
+    def void(self):
+        return True
+
+    def set_as_outgroup(self):
+        self.scene().tree.set_outgroup(self.node)
+        self.scene().GUI.redraw()
+
+    def toggle_collapse(self):
+        self.node.img_style["draw_descendants"] ^= True
+        self.scene().GUI.redraw()
+
+    def cut_partition(self):
+        self.scene().view.buffer_node = self.node
+        self.node.detach()
+        self.scene().GUI.redraw()
+
+    def copy_partition(self):
+        self.scene().view.buffer_node = self.node.copy('deepcopy')
+
+    def paste_partition(self):
+        if self.scene().view.buffer_node:
+            self.node.add_child(self.scene().view.buffer_node)
+            self.scene().view.buffer_node= None
+            self.scene().GUI.redraw()
+
+    def populate_partition(self):
+        n, ok = QtGui.QInputDialog.getInteger(None,"Populate partition","Number of nodes to add:",2,1)
+        if ok:
+            self.node.populate(n)
+            #self.scene().set_style_from(self.scene().tree,self.scene().layout_func)
+            self.scene().GUI.redraw()
+
+    def set_start_node(self):
+        self.scene().start_node = self.node
+        self.scene().GUI.redraw()
+
+    def back_to_parent_node(self):
+        self.scene().start_node = self.node.up
+        self.scene().GUI.redraw()
diff --git a/ete3/treeview/open_newick.ui b/ete3/treeview/open_newick.ui
new file mode 100644
index 0000000..236d449
--- /dev/null
+++ b/ete3/treeview/open_newick.ui
@@ -0,0 +1,38 @@
+<ui version="4.0" >
+ <class>OpenNewick</class>
+ <widget class="QDialog" name="OpenNewick" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>569</width>
+    <height>353</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <widget class="QComboBox" name="comboBox" >
+   <property name="geometry" >
+    <rect>
+     <x>460</x>
+     <y>300</y>
+     <width>81</width>
+     <height>23</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QWidget" native="1" name="widget" >
+   <property name="geometry" >
+    <rect>
+     <x>30</x>
+     <y>10</y>
+     <width>371</width>
+     <height>321</height>
+    </rect>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/ete3/treeview/qt4_circular_render.py b/ete3/treeview/qt4_circular_render.py
new file mode 100644
index 0000000..e9713c6
--- /dev/null
+++ b/ete3/treeview/qt4_circular_render.py
@@ -0,0 +1,401 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+import math
+import colorsys
+from PyQt4 import QtCore, QtGui
+from .main import _leaf, tracktime
+from .node_gui_actions import _NodeActions
+
+class _LineItem(QtGui.QGraphicsLineItem):
+    def paint(self, painter, option, widget):
+        #painter.setClipRect( option.exposedRect )
+        QtGui.QGraphicsLineItem.paint(self, painter, option, widget)
+
+
+class ArcPartition(QtGui.QGraphicsPathItem):
+    def __init__(self, parent=None):
+        QtGui.QGraphicsPathItem.__init__(self, parent)
+        self.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache)
+        #self.setCacheMode(QtGui.QGraphicsItem.ItemCoordinateCache)
+
+    def set_arc(self, cxdist, cydist, r1, r2, angle_start, angle_end):
+        """ Draws a 2D arc with two arc lines of length r1 (inner) and
+        r2 (outer) with center in cxdist,cydist. angle_start and
+        angle_end are relative to the starting rotation point equal 0
+        degrees """
+
+        #self.data = [cxdist, cydist, r1, r2, angle_start, angle_end]
+        d1 = r1 * 2
+        d2 = r2 * 2
+        r1_xstart = -r1 - cxdist
+        r1_ystart = -r1 + cydist
+        r2_xstart = -r2 - cxdist
+        r2_ystart = -r2 + cydist
+        angle_start = angle_start
+        angle_end = angle_end
+        angle_span = angle_end + angle_start
+
+        path = QtGui.QPainterPath()
+        # Calculate start and end points of inner arc
+        path.arcMoveTo(r1_xstart, r1_ystart, d1, d1, -angle_start)
+        i1 = path.currentPosition()
+        path.arcMoveTo(r1_xstart, r1_ystart, d1, d1, angle_end)
+        i2 = path.currentPosition()
+        # Moves to outer arc start position
+        path.arcMoveTo(r2_xstart, r2_ystart , d2, d2, -angle_start)
+        o1 = path.currentPosition()
+        # Draws outer arc
+        path.arcTo(r2_xstart, r2_ystart, d2, d2, -angle_start, angle_span)
+        o2 = path.currentPosition()
+        # Draws line to the end point in inner arc (straight line)
+        path.lineTo(i2)
+        # Draws inner arc from end point to to start
+        path.arcTo(r1_xstart, r1_ystart, d1, d1, angle_end, -angle_span)
+        # Draws line to the start point of outer arc (straight line)
+        path.lineTo(o1)
+        self.setPath(path)
+
+    def paint(self, painter, option, index):
+        return QtGui.QGraphicsPathItem.paint(self, painter, option, index)
+
+
+class _ArcItem(QtGui.QGraphicsPathItem):
+    def __init__(self):
+        QtGui.QGraphicsPathItem.__init__(self)
+
+    def set_arc(self, cxdist, cydist, r1, r2, angle_start, angle_end):
+        """ Draws a 2D arc with two arc lines of length r1 (inner) and
+        r2 (outer) with center in cxdist,cydist. angle_start and
+        angle_end are relative to the starting rotation point equal 0
+        degrees """
+
+        def clockwise(a):
+            if a<0:
+                return -1 * (a)
+            else:
+                return -a
+            return a
+
+        #self.data = [cxdist, cydist, r1, r2, angle_start, angle_end]
+        d1 = r1 * 2
+        d2 = r2 * 2
+        r1_xstart = -r1 - cxdist
+        r1_ystart = -r1 + cydist
+        r2_xstart = -r2 - cxdist
+        r2_ystart = -r2 + cydist
+
+        # ArcTo does not use clockwise angles
+        angle_start = clockwise(angle_start)
+        angle_end = clockwise(angle_end)
+        angle_span = angle_end - angle_start
+
+        path = QtGui.QPainterPath()
+        # Calculate start and end points of inner arc
+        path.arcMoveTo(r1_xstart, r1_ystart, d1, d1, angle_start)
+        i1 = path.currentPosition()
+        path.arcMoveTo(r1_xstart, r1_ystart, d1, d1, angle_end)
+        i2 = path.currentPosition()
+        # Moves to outer arc start position
+        path.arcMoveTo(r2_xstart, r2_ystart , d2, d2, angle_start)
+        o1 = path.currentPosition()
+        # Draws outer arc
+        path.arcTo(r2_xstart, r2_ystart, d2, d2, angle_start, angle_span)
+        o2 = path.currentPosition()
+        # Draws line to the end point in inner arc (straight line)
+        path.lineTo(i2)
+        # Draws inner arc from end point to to start
+        path.arcTo(r1_xstart, r1_ystart, d1, d1, angle_end, -angle_span)
+        # Draws line to the start point of outer arc (straight line)
+        #path.lineTo(o1)
+        self.setPath(path)
+
+    def paint(self, painter, option, index):
+        return QtGui.QGraphicsPathItem.paint(self, painter, option, index)
+
+def rotate_and_displace(item, rotation, height, offset):
+    """ Rotates an item of a given height over its own left most edis and moves
+    the item offset units in the rotated x axis """
+    t = QtGui.QTransform()
+    t.rotate(rotation)
+    t.translate(0, - (height / 2))
+    t.translate(offset, 0)
+    item.setTransform(t)
+
+
+def get_min_radius(w, h, angle, xoffset):
+    """ returns the radius and X-displacement required to render a
+    rectangle (w,h) within and given angle (a)."""
+
+    # converts to radians
+    angle = (angle * math.pi) / 180
+    b = xoffset + w
+    a = h / 2
+    off = 0
+    if xoffset:
+        effective_angle = math.atan(a / xoffset)
+        if effective_angle > angle / 2 and angle / 2 < math.pi:
+            off = a / math.tan(angle / 2)
+            bb = off + w
+            #r = math.sqrt(a**2 + bb**2)
+            r = math.hypot(a, bb)
+            off = max (off, xoffset) - xoffset
+        else:
+            #r = math.sqrt(a**2 + b**2)
+            r = math.hypot(a, b)
+    else:
+        # It happens on root nodes
+        #r1 = math.sqrt(a**2 + b**2)
+        r1 = math.hypot(a, b)
+        #effective_angle = math.asin(a/r1)
+        #r2 = w / math.cos(effective_angle)
+        #print r1, r2
+        r = r1#+r2
+
+    return r, off
+
+def render_circular(root_node, n2i, rot_step):
+    max_r = 0.0
+    for node in root_node.traverse('preorder', is_leaf_fn=_leaf):
+        item = n2i[node]
+        w = sum(item.widths[1:5])
+        h = item.effective_height
+
+        parent_radius = n2i[node.up].radius if node.up and node.up in n2i else item.xoff
+        angle = rot_step if _leaf(node) else item.angle_span
+
+        if hasattr(item, "radius"):
+            r = item.radius
+            xoffset = 0
+        else:
+            r, xoffset = get_min_radius(w, h, angle, parent_radius + item.widths[0])
+            item.radius = r
+            node.add_features(rad=item.radius)
+
+        #if xoffset: # DEBUG ONLY. IF Scale is correct, this should not be printed
+        #    print "Offset detected in node", xoffset
+
+        rotate_and_displace(item.content, item.rotation, h, parent_radius)
+
+        max_r = max(max_r, r)
+
+        if not _leaf(node) and len(node.children) > 1:
+            first_c = n2i[node.children[0]]
+            last_c = n2i[node.children[-1]]
+            # Vertical arc Line
+            rot_end = n2i[node.children[-1]].rotation
+            rot_start = n2i[node.children[0]].rotation
+            rot_span = abs(rot_end - rot_start)
+            C = item.vt_line
+            C.setParentItem(item)
+            path = QtGui.QPainterPath()
+            # Counter clock wise
+            start = r - node.img_style["vt_line_width"]/2
+            path.arcMoveTo(-start, -start, start * 2, start * 2, 360 - rot_start - rot_span)
+            path.arcTo(-start, -start, start * 2, start * 2, 360 - rot_start - rot_span, rot_span)
+            # Faces
+            C.setPath(path)
+            item.static_items.append(C)
+
+
+        if hasattr(item, "content"):
+
+            # If applies, it sets the length of the extra branch length
+            if item.extra_branch_line:
+                xtra =  item.extra_branch_line.line().dx()
+                if xtra > 0:
+                    xtra = xoffset + xtra
+                else:
+                    xtra = xoffset
+                item.extra_branch_line.setLine(item.branch_length, item.center,\
+                                               item.branch_length + xtra , item.center)
+                item.nodeRegion.setWidth(item.nodeRegion.width()+xtra)
+
+            # And moves elements
+            if xoffset:
+                for i in item.movable_items:
+                    i.moveBy(xoffset, 0)
+
+
+    n2i[root_node].max_r = max_r
+    return max_r
+
+def init_circular_leaf_item(node, n2i, n2f, last_rotation, rot_step):
+    item = n2i[node]
+    item.rotation = last_rotation
+    item.full_start = last_rotation - (rot_step / 2)
+    item.full_end = last_rotation + (rot_step / 2)
+    item.angle_span = rot_step
+    #item.center = item.nodeRegion.height() / 2
+    item.effective_height = get_effective_height(node, n2i, n2f)
+    item.center = item.effective_height/2
+    #item.setParentItem(n2i[node.up])
+
+def init_circular_node_item(node, n2i, n2f):
+    item = n2i[node]
+    if len(node.children) > 1:
+        first_c = n2i[node.children[0]]
+        last_c = n2i[node.children[-1]]
+        rot_start = first_c.rotation
+        rot_end = last_c.rotation
+        item.rotation = rot_start + ((rot_end - rot_start) / 2)
+        item.full_start = first_c.full_start
+        item.full_end = last_c.full_end
+        item.angle_span = item.full_end - item.full_start
+    else:
+        child = n2i[node.children[0]]
+        rot_start = child.full_start
+        rot_end = child.full_end
+        item.angle_span = child.angle_span
+        item.rotation = child.rotation
+        #item.rotation = rot_start + ((rot_end - rot_start) / 2)
+        item.full_start = child.full_start
+        item.full_end = child.full_end
+
+    item.effective_height = get_effective_height(node, n2i, n2f)
+    item.center = item.effective_height/2
+
+def get_effective_height(n, n2i, n2f):
+    """Returns the height needed to calculated the adjustment
+    of node to its available angle.
+    """
+    down_h = n2f[n]["branch-bottom"].h
+    up_h = n2f[n]["branch-top"].h
+
+    right_h = n2i[n].nodeRegion.height()/2
+    up_h = max(right_h, up_h)
+    down_h = max(right_h, down_h)
+
+    fullR = n2i[n].fullRegion
+    center = fullR.height()/2
+    return max(up_h, down_h)*2
+
+#@tracktime
+def calculate_optimal_scale(root_node, n2i, rot_step, img):
+    """ Note: Seems to be fast. 0.5s from a tree of 10.000 leaves"""
+
+    n2minradius = {}
+    n2sumdist = {}
+    n2sumwidth = {}
+    visited_nodes = []
+    # Calcula la posicion minima de los elementos (con scale=0, es
+    # decir, sin tener en cuenta branch lengths.
+    for node in root_node.traverse('preorder', is_leaf_fn=_leaf):
+        visited_nodes.append(node)
+        ndist = node.dist if not img.force_topology else 1.0
+        item = n2i[node]
+        # Uses size of all node parts, except branch length
+        w = sum(item.widths[1:5])
+        h = item.effective_height
+        parent_radius = n2minradius.get(node.up, 0)
+        angle = rot_step if _leaf(node) else item.angle_span
+
+        r, xoffset = get_min_radius(w, h, angle, parent_radius)
+        n2minradius[node] = r
+        n2sumdist[node] = n2sumdist.get(node.up, 0) + ndist
+        # versed sine: the little extra line needed to complete the
+        # radius.
+        #vs = r - (parent_radius + xoffset + w)
+        n2sumwidth[node] = n2sumwidth.get(node.up, 0) + sum(item.widths[2:5]) #+ vs
+
+    root_opening = 0.0
+    most_distant = max(n2sumdist.values())
+    if most_distant == 0: return 0.0
+
+    best_scale = None
+    for node in visited_nodes:
+        item = n2i[node]
+        ndist = node.dist if not img.force_topology else 1.0
+        if best_scale is None:
+            best_scale = (n2minradius[node] - n2sumwidth[node]) / ndist if ndist else 0.0
+        else:
+            #Whats the expected radius of this node?
+            current_rad = n2sumdist[node] * best_scale + (n2sumwidth[node] + root_opening)
+
+            # If still too small, it means we need to increase scale.
+            if current_rad < n2minradius[node]:
+                # This is a simplification of the real ecuacion needed
+                # to calculate the best scale. Given that I'm not
+                # taking into account the versed sine of each parent
+                # node, the equation is actually very simple.
+                if img.root_opening_factor:
+                    best_scale = (n2minradius[node] - (n2sumwidth[node])) / (n2sumdist[node] + (most_distant * img.root_opening_factor))
+                    root_opening = most_distant * best_scale * img.root_opening_factor
+                else:
+                    best_scale = (n2minradius[node] - (n2sumwidth[node]) + root_opening) / n2sumdist[node]
+                #print "OOps adjusting scale", ndist, best_scale, n2minradius[node], current_rad, item.heights[5], node.name
+
+            # If the width of branch top/bottom faces is not covered,
+            # we can also increase the scale to adjust it. This may
+            # produce huge scales, so let's keep it optional
+            if img.optimal_scale_level == "full" and \
+               item.widths[1] > ndist * best_scale:
+                best_scale = item.widths[1] / ndist
+                #print "OOps adjusting scale because  branch-faces", ndist, best_scale, item.widths[1]
+
+    # Adjust scale for aligned faces
+    if not img.allow_face_overlap:
+        aligned_h = [(n2i[node].heights[5], node) for node in visited_nodes]
+        aligned_h.sort(reverse=True, key=lambda x: x[0])
+        maxh, maxh_node = aligned_h[0]
+        angle = n2i[maxh_node].angle_span
+        rad, off = get_min_radius(1, maxh, angle, 0.0001)
+        min_alg_scale = None
+        for node in visited_nodes:
+            if n2i[node].heights[5]:
+                new_scale = (rad - (n2sumwidth[node] + root_opening)) / n2sumdist[node]
+                min_alg_scale = min(new_scale, min_alg_scale) if min_alg_scale is not None else new_scale
+        if min_alg_scale is not None and min_alg_scale > best_scale:
+            best_scale = min_alg_scale
+
+    if root_opening:
+        n2i[root_node].nodeRegion.adjust(root_opening, 0, root_opening, 0)
+        n2i[root_node].fullRegion.adjust(root_opening, 0, root_opening, 0)
+        n2i[root_node].xoff = root_opening
+        #n2i[root_node].widths[0] += root_opening
+
+    #for node in visited_nodes:
+    #    item = n2i[node]
+    #    h = item.effective_height
+    #    a = n2sumdist[node] * best_scale + n2sumwidth.get(node)
+    #    b = h/2
+    #    item.radius = math.sqrt(a**2 + b**2)
+    #print "root opening", root_opening
+    #best_scale = max(best_scale, min_scale)
+    return best_scale
diff --git a/ete3/treeview/qt4_compile_resources.sh b/ete3/treeview/qt4_compile_resources.sh
new file mode 100755
index 0000000..4bd5f8e
--- /dev/null
+++ b/ete3/treeview/qt4_compile_resources.sh
@@ -0,0 +1,11 @@
+#!/bin/sh 
+
+pyrcc4  ete_resources.qrc -o ete_resources_rc.py
+pyuic4 open_newick.ui > _open_newick.py
+pyuic4 show_newick.ui > _show_newick.py
+pyuic4 search_dialog.ui > _search_dialog.py
+pyuic4 ete_qt4app.ui > _mainwindow.py
+pyuic4 about.ui > _about.py
+
+# test
+python -c 'from ete_dev import Tree; Tree("(A,B,C,(D,E)F,(G,(H,I)J)K);", format=1).show();'
diff --git a/ete3/treeview/qt4_face_render.py b/ete3/treeview/qt4_face_render.py
new file mode 100644
index 0000000..ccb5390
--- /dev/null
+++ b/ete3/treeview/qt4_face_render.py
@@ -0,0 +1,399 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import random
+from PyQt4 import QtCore, QtGui
+from PyQt4.QtGui import QGraphicsSimpleTextItem, QGraphicsPixmapItem, \
+    QGraphicsRectItem, QTransform, QBrush, QPen, QColor, QGraphicsItem
+
+from .main import FACE_POSITIONS, _leaf
+from .node_gui_actions import _NodeActions as _ActionDelegator
+from math import pi, cos, sin
+import six
+from six.moves import range
+
+class _TextFaceItem(QGraphicsSimpleTextItem, _ActionDelegator):
+    def __init__(self, face, node, text):
+        QGraphicsSimpleTextItem.__init__(self, text)
+        _ActionDelegator.__init__(self)
+        self.node = node
+        self.face = face
+        self._bounding_rect = self.face.get_bounding_rect()
+        self._real_rect = self.face.get_real_rect()
+    def boundingRect(self):
+        return self._bounding_rect
+
+class _ImgFaceItem(QGraphicsPixmapItem, _ActionDelegator):
+    def __init__(self, face, node, pixmap):
+        QGraphicsPixmapItem.__init__(self, pixmap)
+        _ActionDelegator.__init__(self)
+        self.node = node
+
+class _BackgroundFaceItem(QGraphicsRectItem):
+    def __init__(self, face, node):
+        QGraphicsRectItem.__init__(self)
+        self.node = node
+
+    def paint(self, painter, option, index):
+        return
+
+class _FaceGroupItem(QGraphicsRectItem): # I was about to name this FaceBookItem :)
+    def paint(self, painter, option, index):
+        "Avoid little dots in acrobat reader"
+        return
+
+    def __init__(self, faces, node, as_grid=False):
+
+        # This caused seg. faults. in some computers. No idea why.
+        # QtGui.QGraphicsItem.__init__(self, *args, **kargs)
+        QGraphicsRectItem.__init__(self, 0, 0, 0, 0)
+
+        self.as_grid = as_grid
+        self.c2max_w = {}
+        self.r2max_h = {}
+        self.node = node
+        self.column2faces = faces
+        self.column2size = {}
+        self.columns = sorted(set(self.column2faces.keys()))
+
+        # Two dictionaries containing min column size. Can be used to
+        # reserve some space to specific columns and draw FaceBlocks
+        # like tables.
+        self.column_widths = {}
+        self.row_heights = {}
+
+        self.w = 0
+        self.h = 0
+        # updates the size of this grid
+        self.update_columns_size()
+
+    def set_min_column_widths(self, column_widths):
+        # column_widths is a dictionary of min column size. Can be
+        # used to reserve horizontal space to specific columns
+        self.column_widths = column_widths
+        self.columns = sorted(set(list(self.column2faces.keys()) + list(self.column_widths.keys())))
+
+    def set_min_column_heights(self, column_heights):
+        # column_widths is a dictionary of min column size. Can be
+        # used to reserve vertical space to specific columns
+        self.row_heights = column_heights
+
+    #def paint(self, painter, option, index):
+    #    return
+
+    def boundingRect(self):
+        return QtCore.QRectF(0,0, self.w, self.h)
+
+    def rect(self):
+        return QtCore.QRectF(0,0, self.w, self.h)
+
+    def get_size(self):
+        return self.w, self.h
+
+    def update_columns_size(self, norender=False):
+        self.sizes = {}
+        self.c2height = {}
+
+        for c in self.columns:
+            faces = self.column2faces.get(c, [])
+            self.sizes[c] = {}
+            total_height = 0
+            for r, f in enumerate(faces):
+                f.node = self.node
+                if f.type == "pixmap" and not norender:
+                    f.update_pixmap()
+                elif f.type == "item" and not norender:
+                    f.update_items()
+                elif f.type == "text" and f.rotation:
+                    f.tight_text = False
+
+                width = f._width() + f.margin_right + f.margin_left
+                height = f._height() + f.margin_top + f.margin_bottom
+
+                if f.rotation:
+                    if f.rotation == 90 or f.rotation == 270:
+                        width, height = height, width
+                    elif f.rotation == 180:
+                        pass
+                    else:
+                        x0 =  width/2.0
+                        y0 =  height/2.0
+                        theta = (f.rotation * pi)/180
+                        trans = lambda x, y: (x0+(x-x0)*cos(theta) + (y-y0)*sin(theta), y0-(x-x0)*sin(theta)+(y-y0)*cos(theta))
+                        coords = (trans(0,0), trans(0,height), trans(width,0), trans(width,height))
+                        x_coords = [e[0] for e in coords]
+                        y_coords = [e[1] for e in coords]
+                        width = max(x_coords) - min(x_coords)
+                        height = max(y_coords) - min(y_coords)
+
+                self.sizes[c][r] = [width, height]
+                self.c2max_w[c] = max(self.c2max_w.get(c, 0), width)
+                self.r2max_h[r] = max(self.r2max_h.get(r, 0), height)
+                total_height += height
+            self.c2height[c] = total_height
+
+        if not self.sizes:
+            return
+
+        if self.as_grid:
+            self.h = max( [sum([self.r2max_h[r] for r in six.iterkeys(rows)]) for c, rows in six.iteritems(self.sizes)])
+        else:
+            self.h = max( [self.c2height[c] for c in six.iterkeys(self.sizes)])
+
+        self.w = sum(self.c2max_w.values())
+        #self.setRect(0, 0, self.w+random.randint(1,5), self.h)
+        #pen = QtGui.QPen()
+        #pen.setColor(QtGui.QColor("red"))
+        #self.setPen(pen)
+
+    def setup_grid(self, c2max_w=None, r2max_h=None, as_grid=True):
+        if c2max_w:
+            self.c2max_w = c2max_w
+
+        if r2max_h:
+            self.r2max_h = r2max_h
+
+        # complete missing face columns
+        if self.columns:
+            self.columns = list(range(min(self.c2max_w), max(self.c2max_w)+1))
+
+        self.as_grid = as_grid
+        self.update_columns_size(norender=True)
+        return self.c2max_w, self.r2max_h
+
+
+    def render(self):
+        x = 0
+        for c in self.columns:
+            max_w = self.c2max_w[c]
+            faces = self.column2faces.get(c, [])
+
+            if self.as_grid:
+                y = 0
+            else:
+                y = (self.h - self.c2height.get(c,0)) / 2
+
+            for r, f in enumerate(faces):
+                w, h = self.sizes[c][r]
+                if self.as_grid:
+                    max_h = self.r2max_h[r]
+                else:
+                    max_h = h
+
+                f.node = self.node
+                if f.type == "text":
+                    obj = _TextFaceItem(f, self.node, f.get_text())
+                    font = f._get_font()
+                    obj.setFont(font)
+                    obj.setBrush(QBrush(QColor(f.fgcolor)))
+                elif f.type == "item":
+                    obj = f.item
+                else:
+                    # Loads the pre-generated pixmap
+                    obj = _ImgFaceItem(f, self.node, f.pixmap)
+
+                obj.setAcceptsHoverEvents(True)
+                obj.setParentItem(self)
+
+                x_offset, y_offset = 0, 0
+
+                if max_w > w:
+                    # Horizontally at the left
+                    if f.hz_align == 0:
+                        x_offset = 0
+                    elif f.hz_align == 1:
+                        # Horizontally centered
+                        x_offset = (max_w - w) / 2
+                    elif f.hz_align == 2:
+                        # At the right
+                        x_offset = (max_w - w)
+
+                if max_h > h:
+                    if f.vt_align == 0:
+                        # Vertically on top
+                        y_offset = 0
+                    elif f.vt_align == 1:
+                        # Vertically centered
+                        y_offset = (max_h - h) / 2
+                    elif f.hz_align == 2:
+                        # Vertically at bottom
+                        y_offset = (max_h - h)
+
+                # Correct cases in which object faces has negative
+                # starting points
+                #obj_rect = obj.boundingRect()
+                #_pos = obj_rect.topLeft()
+                #_x = abs(_pos.x()) if _pos.x() < 0 else 0
+                #_y = abs(_pos.y()) if _pos.y() < 0 else 0
+
+                text_y_offset = -obj.boundingRect().y() if f.type == "text" else 0
+
+                obj.setPos(x + f.margin_left + x_offset,
+                           y + y_offset + f.margin_top + text_y_offset)
+
+                if f.rotation and f.rotation != 180:
+                    fake_rect = obj.boundingRect()
+                    fake_w, fake_h = fake_rect.width(), fake_rect.height()
+                    self._rotate_item(obj, f.rotation)
+                    #wcorr = fake_w/2.0 - w/2.0
+                    #ycorr = fake_h/2.0 - h/2.0
+                    #print "Correctopm", fake_w/2.0 - w/2.0, fake_h/2.0 - h/2
+                    #obj.moveBy(-wcorr, -ycorr)
+                    obj.moveBy(((w/2) - fake_w/2.0), (h/2) - (fake_h/2.0))
+                    #r = QGraphicsRectItem(0, 0, w, h)
+                    #r.setParentItem(self)
+
+                obj.rotable = f.rotable
+                f.inner_background.apply(obj)
+                f.inner_border.apply(obj)
+
+                bg = f.background.apply(obj)
+                border = f.border.apply(obj)
+                if border:
+                    border.setRect(x, y, max_w, max_h)
+                    border.setParentItem(self)
+                if bg:
+                    bg.setRect(x, y, max_w, max_h)
+                    bg.setParentItem(self)
+
+                if f.opacity < 1:
+                    obj.setOpacity(f.opacity)
+
+                if self.as_grid:
+                    y += max_h
+                else:
+                    y += h
+
+                # set label of the face if possible
+                try:
+                    obj.face_label = f.label
+                except AttributeError:
+                    pass
+                obj.face_type = str(type(f)).split(".")[-1]
+
+            x += max_w
+
+    def _rotate_item(self, item, rotation):
+        if hasattr(item, "_real_rect"):
+            rect = item._real_rect
+        else:
+            rect = item.boundingRect()
+        x = rect.width()/2
+        y = rect.height()/2
+        matrix = item.transform()
+        #item.setTransform(QTransform().translate(x, y).rotate(rotation).translate(-x, -y))
+        item.setTransform(matrix.translate(x, y).rotate(rotation).translate(-x, -y))
+
+    def rotate(self, rotation):
+        "rotates item over its own center"
+        for obj in self.childItems():
+            if hasattr(obj, "rotable") and obj.rotable:
+                if hasattr(obj, "_real_rect"):
+                    # to avoid incorrect rotation of tightgly wrapped
+                    # text items we need to rotate using the real
+                    # wrapping rect and revert y_text correction.
+                    yoff = obj.boundingRect().y()
+                    rect = obj._real_rect
+                    # OJO!! this only works for the rotation of text
+                    # faces in circular mode. Other cases are
+                    # unexplored!!
+                    obj.moveBy(0, yoff*2)
+                else:
+                    yoff = None
+                    rect = obj.boundingRect()
+                x = rect.width() / 2
+                y = rect.height() / 2
+                matrix = obj.transform()
+                #obj.setTransform(QTransform().translate(x, y).rotate(rotation).translate(-x, -y))
+                obj.setTransform(matrix.translate(x, y).rotate(rotation).translate(-x, -y))
+
+    def flip_hz(self):
+        for obj in self.childItems():
+            rect = obj.boundingRect()
+            x =  rect.width() / 2
+            y =  rect.height() / 2
+            matrix = obj.transform()
+            #obj.setTransform(QTransform().translate(x, y).scale(-1,1).translate(-x, -y))
+            obj.setTransform(matrix.translate(x, y).scale(-1,1).translate(-x, -y))
+
+    def flip_vt(self):
+        for obj in self.childItems():
+            rect = obj.boundingRect()
+            x =  rect.width() / 2
+            y =  rect.height() / 2
+            matrix = obj.transform()
+            #obj.setTransform(QTransform().translate(x, y).scale(1,-1).translate(-x, -y))
+            obj.setTransform(matrix.translate(x, y).scale(1,-1).translate(-x, -y))
+
+
+
+def update_node_faces(node, n2f, img):
+
+    # Organize all faces of this node in FaceGroups objects
+    # (tables of faces)
+    faceblock = {}
+
+    n2f[node] = faceblock
+    for position in FACE_POSITIONS:
+        # _temp_faces.position =
+        #  1: [f1, f2, f3],
+        #  2: [f4, f4],
+        #  ...
+
+        # In case there are fixed faces
+        fixed_faces =  getattr(getattr(node, "faces", None) , position, {})
+
+        # _temp_faces should be initialized by the set_style funcion
+        all_faces = getattr(node._temp_faces, position)
+        for column, values in six.iteritems(fixed_faces):
+            all_faces.setdefault(column, []).extend(values)
+
+        if position == "aligned" and img.draw_aligned_faces_as_table:
+            as_grid = False
+        else:
+            as_grid = False
+
+        faceblock[position] = _FaceGroupItem(all_faces, node, as_grid=as_grid)
+
+    # all temp and fixed faces are now referenced by the faceblock, so
+    # we can clear the node temp faces (don't want temp faces to be
+    # replicated with copy or dumped with cpickle)
+    node._temp_faces = None
+
+    return faceblock
diff --git a/ete3/treeview/qt4_gui.py b/ete3/treeview/qt4_gui.py
new file mode 100644
index 0000000..38bf736
--- /dev/null
+++ b/ete3/treeview/qt4_gui.py
@@ -0,0 +1,973 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import re
+from sys import stderr
+from PyQt4  import QtCore, QtGui
+from PyQt4.QtGui import QBrush, QPen, QGraphicsRectItem
+from PyQt4.QtGui import QPrinter
+from PyQt4.QtCore import QThread, SIGNAL
+import six
+try:
+    from PyQt4 import QtOpenGL
+    USE_GL = True
+    USE_GL = False # Temporarily disabled
+except ImportError:
+    USE_GL = False
+
+from . import _mainwindow, _search_dialog, _show_newick, _open_newick, _about
+from .main import TreeStyle, save, _leaf
+from .svg_colors import random_color
+from .qt4_render import render
+from .node_gui_actions import NewickDialog
+try:
+    from .._ph import new_version
+except Exception:
+    pass
+from .. import Tree, TreeStyle
+import time
+
+class _SelectorItem(QtGui.QGraphicsRectItem):
+    def __init__(self, parent=None):
+        self.Color = QtGui.QColor("blue")
+        self._active = False
+        QtGui.QGraphicsRectItem.__init__(self, 0, 0, 0, 0)
+        if parent:
+            self.setParentItem(parent)
+
+    def paint(self, p, option, widget):
+        p.setPen(self.Color)
+        p.setBrush(QtGui.QBrush(QtCore.Qt.NoBrush))
+        p.drawRect(self.rect().x(),self.rect().y(),self.rect().width(),self.rect().height())
+        return
+        # Draw info text
+        font = QtGui.QFont("Arial",13)
+        text = "%d selected."  % len(self.get_selected_nodes())
+        textR = QtGui.QFontMetrics(font).boundingRect(text)
+        if  self.rect().width() > textR.width() and \
+                self.rect().height() > textR.height()/2 and 0: # OJO !!!!
+            p.setPen(QtGui.QPen(self.Color))
+            p.setFont(QtGui.QFont("Arial",13))
+            p.drawText(self.rect().bottomLeft().x(),self.rect().bottomLeft().y(),text)
+
+    def get_selected_nodes(self):
+        selPath = QtGui.QPainterPath()
+        selPath.addRect(self.rect())
+        self.scene().setSelectionArea(selPath)
+        return [i.node for i in self.scene().selectedItems()]
+
+    def setActive(self,bool):
+        self._active = bool
+
+    def isActive(self):
+        return self._active
+
+def etime(f):
+    def a_wrapper_accepting_arguments(*args, **kargs):
+        global TIME
+        t1 = time.time()
+        f(*args, **kargs)
+        print(time.time() - t1)
+    return a_wrapper_accepting_arguments
+
+class CheckUpdates(QThread):
+    def run(self):
+        try:
+            current, latest, tag = new_version()
+            if tag is None:
+                tag = ""
+            msg = ""
+            if current and latest:
+                if current < latest:
+                    msg = "New version available (rev%s): %s More info at http://etetoolkit.org." %\
+                        (latest, tag)
+                elif current == latest:
+                    msg = "Up to date"
+            self.emit(SIGNAL("output(QString)"), msg)
+        except Exception:
+            pass
+
+class _GUI(QtGui.QMainWindow):
+    def _updatestatus(self, msg):
+        self.main.statusbar.showMessage(msg)
+
+    def redraw(self):
+        self.scene.draw()
+        self.view.init_values()
+
+    def __init__(self, scene, *args):
+        QtGui.QMainWindow.__init__(self, *args)
+        self.main = _mainwindow.Ui_MainWindow()
+        self.main.setupUi(self)
+        self.setWindowTitle("ETE Tree Browser")
+
+        self.scene = scene
+        self.scene.GUI = self
+        self.view = _TreeView(scene)
+        scene.view = self.view
+        self.node_properties = _PropertiesDialog(scene)
+        self.view.prop_table = self.node_properties
+
+        #self.view.centerOn(0,0)
+        if scene.img.show_branch_length:
+            self.main.actionBranchLength.setChecked(True)
+        if scene.img.show_branch_support:
+            self.main.actionBranchSupport.setChecked(True)
+        if scene.img.show_leaf_name:
+            self.main.actionLeafName.setChecked(True)
+        if scene.img.force_topology:
+            self.main.actionForceTopology.setChecked(True)
+
+        splitter = QtGui.QSplitter()
+        splitter.addWidget(self.view)
+        splitter.addWidget(self.node_properties)
+        self.setCentralWidget(splitter)
+        # I create a single dialog to keep the last search options
+        self.searchDialog =  QtGui.QDialog()
+        # Don't know if this is the best way to set up the dialog and
+        # its variables
+        self.searchDialog._conf = _search_dialog.Ui_Dialog()
+        self.searchDialog._conf.setupUi(self.searchDialog)
+
+        self.scene.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex)
+
+        # Shows the whole tree by default
+        #self.view.fitInView(self.scene.sceneRect(), QtCore.Qt.KeepAspectRatio)
+        splitter.setCollapsible(1, True)
+        splitter.setSizes([self.scene.sceneRect().width(), 10])
+
+        self.view.fitInView(0, 0, self.scene.sceneRect().width(), 200, QtCore.Qt.KeepAspectRatio)
+
+        # Check for updates
+        self.check = CheckUpdates()
+        #self.check.start()
+        #self.connect(self.check, SIGNAL("output(QString)"), self._updatestatus)
+
+    @QtCore.pyqtSignature("")
+    def on_actionETE_triggered(self):
+        try:
+            __version__
+        except:
+            __version__= "development branch"
+
+        d = QtGui.QDialog()
+        d._conf = _about.Ui_About()
+        d._conf.setupUi(d)
+        d._conf.version.setText("Version: %s" %__version__)
+        d._conf.version.setAlignment(QtCore.Qt.AlignHCenter)
+        d.exec_()
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomOut_triggered(self):
+        self.view.safe_scale(0.8,0.8)
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomIn_triggered(self):
+        self.view.safe_scale(1.2,1.2)
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomInX_triggered(self):
+        self.scene.img._scale += self.scene.img._scale * 0.05
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomOutX_triggered(self):
+        self.scene.img._scale -= self.scene.img._scale * 0.05
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomInY_triggered(self):
+        self.scene.img.branch_vertical_margin += 5
+        self.scene.img._scale = None
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionZoomOutY_triggered(self):
+        if self.scene.img.branch_vertical_margin > 0:
+            margin = self.scene.img.branch_vertical_margin - 5
+            if margin > 0:
+                self.scene.img.branch_vertical_margin = margin
+            else:
+                self.scene.img.branch_vertical_margin = 0.0
+            self.scene.img._scale = None
+            self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionFit2tree_triggered(self):
+        self.view.fitInView(self.scene.sceneRect(), QtCore.Qt.KeepAspectRatio)
+
+    @QtCore.pyqtSignature("")
+    def on_actionFit2region_triggered(self):
+        R = self.view.selector.rect()
+        if R.width()>0 and R.height()>0:
+            self.view.fitInView(R.x(), R.y(), R.width(),\
+                                    R.height(), QtCore.Qt.KeepAspectRatio)
+
+    @QtCore.pyqtSignature("")
+    def on_actionSearchNode_triggered(self):
+        setup = self.searchDialog._conf
+        setup.attrValue.setFocus()
+        ok = self.searchDialog.exec_()
+        if ok:
+            mType = setup.attrType.currentIndex()
+            aName = str(setup.attrName.text())
+            if mType >= 2 and mType <=6:
+                try:
+                    aValue =  float(setup.attrValue.text())
+                except ValueError:
+                    QtGui.QMessageBox.information(self, "!",\
+                                              "A numeric value is expected")
+                    return
+            elif mType == 7:
+                aValue = re.compile(str(setup.attrValue.text()))
+            elif mType == 0 or mType == 1:
+
+                aValue =  str(setup.attrValue.text())
+
+            if mType == 1 or mType == 2: #"is or =="
+                cmpFn = lambda x,y: x == y
+            elif mType == 0: # "contains"
+                cmpFn = lambda x,y: y in x
+            elif mType == 3:
+                cmpFn = lambda x,y: x >= y
+            elif mType == 4:
+                cmpFn = lambda x,y: x > y
+            elif mType == 5:
+                cmpFn = lambda x,y: x <= y
+            elif mType == 6:
+                cmpFn = lambda x,y: x < y
+            elif mType == 7:
+                cmpFn = lambda x,y: re.search(y, x)
+
+            last_match_node = None
+            for n in self.scene.tree.traverse(is_leaf_fn=_leaf):
+                if setup.leaves_only.isChecked() and not _leaf(n):
+                    continue
+                if hasattr(n, aName) \
+                        and cmpFn(getattr(n, aName), aValue ):
+                    self.scene.view.highlight_node(n)
+                    last_match_node = n
+
+            if last_match_node:
+                item = self.scene.n2i[last_match_node]
+                R = item.mapToScene(item.fullRegion).boundingRect()
+                R.adjust(-60, -60, 60, 60)
+                self.view.fitInView(R.x(), R.y(), R.width(),\
+                                    R.height(), QtCore.Qt.KeepAspectRatio)
+
+
+    @QtCore.pyqtSignature("")
+    def on_actionClear_search_triggered(self):
+        # This could be much more efficient
+        for n in list(self.view.n2hl.keys()):
+            self.scene.view.unhighlight_node(n)
+
+    @QtCore.pyqtSignature("")
+    def on_actionBranchLength_triggered(self):
+        self.scene.img.show_branch_length ^= True
+        self.scene.img._scale = None
+        self.redraw()
+        self.view.centerOn(0,0)
+
+    @QtCore.pyqtSignature("")
+    def on_actionBranchSupport_triggered(self):
+        self.scene.img.show_branch_support ^= True
+        self.scene.img._scale = None
+        self.redraw()
+        self.view.centerOn(0,0)
+
+    @QtCore.pyqtSignature("")
+    def on_actionLeafName_triggered(self):
+        self.scene.img.show_leaf_name ^= True
+        self.scene.img._scale = None
+        self.redraw()
+        self.view.centerOn(0,0)
+
+    @QtCore.pyqtSignature("")
+    def on_actionForceTopology_triggered(self):
+        self.scene.img.force_topology ^= True
+        self.scene.img._scale = None
+        self.redraw()
+        self.view.centerOn(0,0)
+
+    @QtCore.pyqtSignature("")
+    def on_actionShow_newick_triggered(self):
+        d = NewickDialog(self.scene.tree)
+        d._conf = _show_newick.Ui_Newick()
+        d._conf.setupUi(d)
+        d.update_newick()
+        d.exec_()
+
+    @QtCore.pyqtSignature("")
+    def on_actionChange_orientation_triggered(self):
+        self.scene.props.orientation ^= 1
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionShow_phenogram_triggered(self):
+        self.scene.props.style = 0
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionShowCladogram_triggered(self):
+        self.scene.props.style = 1
+        self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionOpen_triggered(self):
+        d = QtGui.QFileDialog()
+        d._conf = _open_newick.Ui_OpenNewick()
+        d._conf.setupUi(d)
+        d.exec_()
+        return
+        fname = QtGui.QFileDialog.getOpenFileName(self ,"Open File",
+                                                 "/home",
+                                                 )
+        try:
+            t = Tree(str(fname))
+        except Exception as e:
+            print(e)
+        else:
+            self.scene.tree = t
+            self.img = TreeStyle()
+            self.redraw()
+
+    @QtCore.pyqtSignature("")
+    def on_actionSave_newick_triggered(self):
+        fname = QtGui.QFileDialog.getSaveFileName(self ,"Save File",
+                                                 "/home",
+                                                 "Newick (*.nh *.nhx *.nw )")
+        nw = self.scene.tree.write()
+        try:
+            OUT = open(fname,"w")
+        except Exception as e:
+            print(e)
+        else:
+            OUT.write(nw)
+            OUT.close()
+
+    @QtCore.pyqtSignature("")
+    def on_actionRenderPDF_triggered(self):
+        F = QtGui.QFileDialog(self)
+        if F.exec_():
+            imgName = str(F.selectedFiles()[0])
+            if not imgName.endswith(".pdf"):
+                imgName += ".pdf"
+            save(self.scene, imgName)
+
+
+    @QtCore.pyqtSignature("")
+    def on_actionRender_selected_region_triggered(self):
+        if not self.scene.selector.isVisible():
+            return QtGui.QMessageBox.information(self, "!",\
+                                              "You must select a region first")
+
+        F = QtGui.QFileDialog(self)
+        if F.exec_():
+            imgName = str(F.selectedFiles()[0])
+            if not imgName.endswith(".pdf"):
+                imgName += ".pdf"
+            save(imgName, take_region=True)
+
+
+    @QtCore.pyqtSignature("")
+    def on_actionPaste_newick_triggered(self):
+        text,ok = QtGui.QInputDialog.getText(self,\
+                                                 "Paste Newick",\
+                                                 "Newick:")
+        if ok:
+            try:
+                t = Tree(str(text))
+            except Exception as e:
+                print(e)
+            else:
+                self.scene.tree = t
+                self.redraw()
+                self.view.centerOn(0,0)
+
+    def keyPressEvent(self,e):
+        key = e.key()
+        control = e.modifiers() & QtCore.Qt.ControlModifier
+        if key == 77:
+            if self.isMaximized():
+                self.showNormal()
+            else:
+                self.showMaximized()
+        elif key >= 49 and key <= 58:
+            key = key - 48
+            m = self.view.matrix()
+            m.reset()
+            self.view.setMatrix(m)
+            self.view.scale(key, key)
+
+
+# This function should be reviewed. Probably there are better ways to
+# do de same, or at least less messy ways... So far this is what I
+# have
+class _TableItem(QtGui.QItemDelegate):
+    def __init__(self, parent=None):
+        QtGui.QItemDelegate.__init__(self, parent)
+        self.propdialog = parent
+
+    def paint(self, painter, style, index):
+        self.propdialog.tableView.setRowHeight(index.row(), 18)
+        val = index.data()
+        if getattr(val, "background", None):
+            painter.fillRect(style.rect, QtGui.QColor(val.background))
+        QtGui.QItemDelegate.paint(self, painter, style, index)
+
+    def createEditor(self, parent, option, index):
+        # Edit only values, not property names
+        if index.column() != 1:
+            return None
+
+        originalValue = index.model().data(index)
+        if not self.isSupportedType(originalValue.type()):
+            return None
+
+        if re.search("^#[0-9ABCDEFabcdef]{6}$",str(originalValue.toString())):
+            origc = QtGui.QColor(str(originalValue.toString()))
+            color = QtGui.QColorDialog.getColor(origc)
+            if color.isValid():
+                self.propdialog._edited_indexes.add( (index.row(), index.column()) )
+                #index.model().setData(index, QtCore.QVariant(color.name()))
+                index.model().setData(index, color.name)
+                self.propdialog.apply_changes()
+
+            return None
+        else:
+            editField = QtGui.QLineEdit(parent)
+            editField.setFrame(False)
+            validator = QtGui.QRegExpValidator(QtCore.QRegExp(".+"), editField)
+            editField.setValidator(validator)
+            self.connect(editField, QtCore.SIGNAL("returnPressed()"),
+                         self.commitAndCloseEditor)
+            self.connect(editField, QtCore.SIGNAL("returnPressed()"),
+                         self.propdialog.apply_changes)
+            self.propdialog._edited_indexes.add( (index.row(), index.column()) )
+            return editField
+
+    def setEditorData(self, editor, index):
+        value = index.model().data(index)
+        if editor is not None:
+            editor.setText(self.displayText(value))
+
+    def isSupportedType(valueType):
+        return True
+
+    isSupportedType = staticmethod(isSupportedType)
+    def displayText(self,value):
+        return value.toString()
+
+    def commitAndCloseEditor(self):
+        editor = self.sender()
+        self.emit(QtCore.SIGNAL("commitData(QWidget *)"), editor)
+        self.emit(QtCore.SIGNAL("closeEditor(QWidget *)"), editor)
+
+class _PropModeChooser(QtGui.QWidget):
+    def __init__(self,scene, *args):
+        QtGui.QWidget.__init__(self,*args)
+
+class _PropertiesDialog(QtGui.QWidget):
+    def __init__(self, scene, *args):
+        QtGui.QWidget.__init__(self,*args)
+        self.scene = scene
+        self._mode = 0
+        self.layout =  QtGui.QVBoxLayout()
+
+        # Display an estimated bL, w, dN and dS for a given evolutionary model
+        if hasattr(self.scene.tree, '_models'):
+            from ..evol.control import AVAIL
+            global AVAIL
+            
+            self.model_lbl = QtGui.QLabel('Showing model: ', self)
+            self.layout.addWidget(self.model_lbl)
+            self.combo = QtGui.QComboBox()
+            self.layout.addWidget(self.combo)
+            try:
+                models = sorted(list(self.scene.tree._models.keys()))
+            except AttributeError:
+                return
+            models = []
+            for model in sorted(list(self.scene.tree._models.keys())):
+                models.append(self.tr(model))
+            self.combo.clear()
+            if models:
+                self.combo.addItems(models)
+            else:
+                self.combo.addItems([self.tr('None')])
+            self.connect(self.combo, QtCore.SIGNAL(
+                "currentIndexChanged(const QString&)"), self.handleModelButton)
+            self.model_lbl = QtGui.QLabel('Available models: ', self)
+            self.layout.addWidget(self.model_lbl)
+            
+            if hasattr(self.scene.tree.get_leaves()[0], 'nt_sequence'):
+                self.combo_run = QtGui.QComboBox()
+                self.layout.addWidget(self.combo_run)
+                avail_models = sorted(list(AVAIL.keys()))
+                self.combo_run.clear()
+                self.combo_run.addItems(['%s (%s)' % (m, AVAIL[m]['typ'])
+                                         for m in avail_models])
+                self.modelButton = QtGui.QPushButton('Run', self)
+                self.modelButton.clicked.connect(self.runModelButton)
+                self.layout.addWidget(self.modelButton)
+
+        self.tableView = QtGui.QTableView()
+        self.tableView.move(5,60)
+        self.tableView.verticalHeader().setVisible(False)
+        #self.tableView.horizontalHeader().setVisible(True)
+        #self.tableView.setVerticalHeader(None)
+        self.layout.addWidget(self.tableView)
+        self.setLayout(self.layout)
+        self.tableView.setGeometry (0, 0, 200,200)
+
+    def handleModelButton(self):
+        model = sorted(list(self.scene.tree._models.keys()))[self.combo.currentIndex()]
+        self.scene.tree.change_dist_to_evol(
+            'bL', self.scene.tree._models[model], fill=True)
+        self.scene.GUI.redraw()
+
+    def runModelButton(self):
+        model = sorted(list(AVAIL.keys()))[self.combo_run.currentIndex()]
+        print('Running model %s from GUI...' % model)
+        if AVAIL[model]['allow_mark']:
+            # TODO if allow mark model and no mark => popup window
+            marks = [str(n.node_id) for n in self.scene.tree.iter_descendants()
+                     if n.mark]
+            if not marks:
+                QtGui.QMessageBox.information(
+                    self, "ERROR",
+                    "This model requires tree to be marked\nUse right click on "
+                    "nodes to mark branches")
+                return
+            model += '.' + '_'.join(marks)
+        self.scene.tree.run_model(model)
+        print('Done.')
+        try:
+            models = sorted(list(self.scene.tree._models.keys()))
+        except AttributeError:
+            return
+        models = []
+        for model in sorted(list(self.scene.tree._models.keys())):
+            models.append(self.tr(model))
+        self.combo.clear()
+        if models:
+            self.combo.addItems(models)
+        else:
+            self.combo.addItems([self.tr('None')])
+
+    def update_properties(self, node):
+        self.node = node
+        self._edited_indexes =  set([])
+        self._style_indexes = set([])
+        self._prop_indexes = set([])
+
+        self.get_prop_table(node)
+
+    def get_props_in_nodes(self, nodes):
+        # sorts properties and faces of selected nodes
+        self.prop2nodes = {}
+        self.prop2values = {}
+        self.style2nodes = {}
+        self.style2values = {}
+
+        for n in nodes:
+            for pname in n.features:
+                pvalue = getattr(n,pname)
+                if type(pvalue) == int or \
+                   type(pvalue) == float or \
+                   type(pvalue) == str :
+                    self.prop2nodes.setdefault(pname,[]).append(n)
+                    self.prop2values.setdefault(pname,[]).append(pvalue)
+
+            for pname,pvalue in six.iteritems(n.img_style):
+                if type(pvalue) == int or \
+                   type(pvalue) == float or \
+                   type(pvalue) == str :
+                    self.style2nodes.setdefault(pname,[]).append(n)
+                    self.style2values.setdefault(pname,[]).append(pvalue)
+
+    def get_prop_table(self, node):
+        if self._mode == 0: # node
+            self.get_props_in_nodes([node])
+        elif self._mode == 1: # childs
+            self.get_props_in_nodes(node.get_leaves())
+        elif self._mode == 2: # partition
+            self.get_props_in_nodes([node]+node.get_descendants())
+
+        total_props = len(self.prop2nodes) + len(list(self.style2nodes.keys()))
+        self.model = QtGui.QStandardItemModel(total_props, 2)
+        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "Feature")
+        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Value")
+        self.tableView.setModel(self.model)
+        self.delegate = _TableItem(self)
+        self.tableView.setItemDelegate(self.delegate)
+
+        row = 0
+        items = list(self.prop2nodes.items())
+        for name, nodes in sorted(items):
+            value= getattr(nodes[0],name)
+
+            index1 = self.model.index(row, 0, QtCore.QModelIndex())
+            index2 = self.model.index(row, 1, QtCore.QModelIndex())
+            f = name#QtCore.QVariant(str(name))
+            v = value#QtCore.QVariant(value)
+            self.model.setData(index1, f)
+            self.model.setData(index2, v)
+            self._prop_indexes.add( (index1, index2) )
+            row +=1
+
+        keys = list(self.style2nodes.keys())
+        for name in sorted(keys):
+            value= self.style2values[name][0]
+            index1 = self.model.index(row, 0, QtCore.QModelIndex())
+            index2 = self.model.index(row, 1, QtCore.QModelIndex())
+
+            #self.model.setData(index1, QtCore.QVariant(name))
+            self.model.setData(index1, name)
+            v = value #QtCore.QVariant(value)
+            self.model.setData(index2, v)
+            # Creates a variant element
+            self._style_indexes.add( (index1, index2) )
+            row +=1
+        return
+
+    def apply_changes(self):
+        # Apply changes on styles
+        for i1, i2 in self._style_indexes:
+            if (i2.row(), i2.column()) not in self._edited_indexes:
+                continue
+            name = str(self.model.data(i1).toString())
+            value = str(self.model.data(i2).toString())
+            for n in self.style2nodes[name]:
+                typedvalue = type(n.img_style[name])(value)
+                try:
+                    n.img_style[name] = typedvalue
+                except:
+                    #logger(-1, "Wrong format for attribute:", name)
+                    break
+
+        # Apply changes on properties
+        for i1, i2 in self._prop_indexes:
+            if (i2.row(), i2.column()) not in self._edited_indexes:
+                continue
+            name = str(self.model.data(i1).toString())
+            value = str(self.model.data(i2).toString())
+            for n in self.prop2nodes[name]:
+                try:
+                    setattr(n, name, type(getattr(n,name))(value))
+                except Exception as e:
+                    #logger(-1, "Wrong format for attribute:", name)
+                    print(e)
+                    break
+        self.update_properties(self.node)
+        self.scene.img._scale = None
+        self.scene.GUI.redraw()
+        return
+
+class _TreeView(QtGui.QGraphicsView):
+    def __init__(self,*args):
+        QtGui.QGraphicsView.__init__(self,*args)
+        self.buffer_node = None
+        self.init_values()
+
+        if USE_GL:
+            print("USING GL")
+            F = QtOpenGL.QGLFormat()
+            F.setSampleBuffers(True)
+            print(F.sampleBuffers())
+            self.setViewport(QtOpenGL.QGLWidget(F))
+            self.setRenderHints(QtGui.QPainter.Antialiasing)
+        else:
+            self.setRenderHints(QtGui.QPainter.Antialiasing or QtGui.QPainter.SmoothPixmapTransform )
+
+        self.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate)
+        self.setRenderHints(QtGui.QPainter.Antialiasing or QtGui.QPainter.SmoothPixmapTransform )
+        #self.setViewportUpdateMode(QtGui.QGraphicsView.NoViewportUpdate)
+        self.setCacheMode(QtGui.QGraphicsView.CacheBackground)
+        self.setResizeAnchor(QtGui.QGraphicsView.AnchorUnderMouse)
+        #self.setOptimizationFlag (QtGui.QGraphicsView.DontAdjustForAntialiasing)
+        self.setOptimizationFlag (QtGui.QGraphicsView.DontSavePainterState)
+        #self.setOptimizationFlag (QtGui.QGraphicsView.DontClipPainter)
+        #self.scene().setItemIndexMethod(QtGui.QGraphicsScene.NoIndex)
+        #self.scene().setBspTreeDepth(24)
+
+    def init_values(self):
+        master_item = self.scene().master_item
+        self.n2hl = {}
+        self.focus_highlight = QtGui.QGraphicsRectItem(master_item)
+        #self.buffer_node = None
+        self.focus_node = None
+        self.selector = _SelectorItem(master_item)
+
+    def resizeEvent(self, e):
+        QtGui.QGraphicsView.resizeEvent(self, e)
+
+    def safe_scale(self, xfactor, yfactor):
+        self.setTransformationAnchor(self.AnchorUnderMouse)
+
+        xscale = self.matrix().m11()
+        yscale = self.matrix().m22()
+        srect = self.sceneRect()
+
+        if (xfactor>1 and xscale>200000) or \
+                (yfactor>1 and yscale>200000):
+            QtGui.QMessageBox.information(self, "!",\
+                                              "I will take the microscope!")
+            return
+
+        # Do not allow to reduce scale to a value producing height or with smaller than 20 pixels
+        # No restrictions to zoom in
+        if (yfactor<1 and  srect.width() * yscale < 20):
+            pass
+        elif (xfactor<1 and  srect.width() * xscale < 20):
+            pass
+        else:
+            self.scale(xfactor, yfactor)
+
+    def highlight_node(self, n, fullRegion=False, fg="red", bg="gray", permanent=False):
+        self.unhighlight_node(n)
+        item = self.scene().n2i[n]
+        hl = QtGui.QGraphicsRectItem(item.content)
+        if fullRegion:
+            hl.setRect(item.fullRegion)
+        else:
+            hl.setRect(item.nodeRegion)
+        hl.setPen(QtGui.QColor(fg))
+        hl.setBrush(QtGui.QColor(bg))
+        hl.setOpacity(0.2)
+        # save info in Scene
+        self.n2hl[n] = hl
+        if permanent:
+            item.highlighted = True
+
+    def unhighlight_node(self, n, reset=False):
+        if n in self.n2hl:
+            item = self.scene().n2i[n]
+            if not item.highlighted:
+                self.scene().removeItem(self.n2hl[n])
+                del self.n2hl[n]
+            elif reset:
+                self.scene().removeItem(self.n2hl[n])
+                del self.n2hl[n]
+                item.highlighted = False
+            else:
+                pass
+
+    def wheelEvent(self,e):
+        factor =  (-e.delta() / 360.0)
+        if abs(factor)>=1:
+            factor = 0.0
+
+        # Ctrl+Shift -> Zoom in X
+        if  (e.modifiers() & QtCore.Qt.ControlModifier) and (e.modifiers() & QtCore.Qt.ShiftModifier):
+            self.safe_scale(1+factor, 1)
+
+        # Ctrl+Alt -> Zomm in Y
+        elif  (e.modifiers() & QtCore.Qt.ControlModifier) and (e.modifiers() & QtCore.Qt.AltModifier):
+            self.safe_scale(1,1+factor)
+
+        # Ctrl -> Zoom X,Y
+        elif e.modifiers() & QtCore.Qt.ControlModifier:
+            self.safe_scale(1-factor, 1-factor)
+
+        # Shift -> Horizontal scroll
+        elif e.modifiers() &  QtCore.Qt.ShiftModifier:
+            if e.delta()>0:
+                self.horizontalScrollBar().setValue(self.horizontalScrollBar().value()-20 )
+            else:
+                self.horizontalScrollBar().setValue(self.horizontalScrollBar().value()+20 )
+        # No modifiers ->  Vertival scroll
+        else:
+            if e.delta()>0:
+                self.verticalScrollBar().setValue(self.verticalScrollBar().value()-20 )
+            else:
+                self.verticalScrollBar().setValue(self.verticalScrollBar().value()+20 )
+
+    def set_focus(self, node):
+        i = self.scene().n2i[node]
+        self.focus_highlight.setPen(QtGui.QColor("red"))
+        self.focus_highlight.setBrush(QtGui.QColor("SteelBlue"))
+        self.focus_highlight.setOpacity(0.2)
+        self.focus_highlight.setParentItem(i.content)
+        self.focus_highlight.setRect(i.fullRegion)
+        self.focus_highlight.setVisible(True)
+        self.prop_table.update_properties(node)
+        #self.focus_highlight.setRect(i.nodeRegion)
+        self.focus_node = node
+        self.update()
+
+    def hide_focus(self):
+        return
+        #self.focus_highlight.setVisible(False)
+
+    def keyPressEvent(self,e):
+        key = e.key()
+        control = e.modifiers() & QtCore.Qt.ControlModifier
+        #print >>sys.stderr, "****** Pressed key: ", key, QtCore.Qt.LeftArrow
+        if control:
+            if key  == QtCore.Qt.Key_Left:
+                self.horizontalScrollBar().setValue(self.horizontalScrollBar().value()-20 )
+                self.update()
+            elif key  == QtCore.Qt.Key_Right:
+                self.horizontalScrollBar().setValue(self.horizontalScrollBar().value()+20 )
+                self.update()
+            elif key  == QtCore.Qt.Key_Up:
+                self.verticalScrollBar().setValue(self.verticalScrollBar().value()-20 )
+                self.update()
+            elif key  == QtCore.Qt.Key_Down:
+                self.verticalScrollBar().setValue(self.verticalScrollBar().value()+20 )
+                self.update()
+        else:
+            if not self.focus_node:
+                self.focus_node = self.scene().tree
+
+            if key == QtCore.Qt.Key_Left:
+                if self.focus_node.up:
+                    new_focus_node = self.focus_node.up
+                    self.set_focus(new_focus_node)
+            elif key == QtCore.Qt.Key_Right:
+                if self.focus_node.children:
+                    new_focus_node = self.focus_node.children[0]
+                    self.set_focus(new_focus_node)
+            elif key == QtCore.Qt.Key_Up:
+                if self.focus_node.up:
+                    i = self.focus_node.up.children.index(self.focus_node)
+                    if i>0:
+                        new_focus_node = self.focus_node.up.children[i-1]
+                        self.set_focus(new_focus_node)
+                    elif self.focus_node.up:
+                        self.set_focus(self.focus_node.up)
+
+            elif key == QtCore.Qt.Key_Down:
+                if self.focus_node.up:
+                    i = self.focus_node.up.children.index(self.focus_node)
+                    if i < len(self.focus_node.up.children)-1:
+                        new_focus_node = self.focus_node.up.children[i+1]
+                        self.set_focus(new_focus_node)
+                    elif self.focus_node.up:
+                        self.set_focus(self.focus_node.up)
+
+            elif key == QtCore.Qt.Key_Escape:
+                self.hide_focus()
+            elif key == QtCore.Qt.Key_Enter or\
+                    key == QtCore.Qt.Key_Return:
+                self.prop_table.tableView.setFocus()
+            elif key == QtCore.Qt.Key_Space:
+                self.highlight_node(self.focus_node, fullRegion=True,
+                                    bg=random_color(l=0.5, s=0.5),
+                                    permanent=True)
+        QtGui.QGraphicsView.keyPressEvent(self,e)
+
+    def mouseReleaseEvent(self, e):
+        self.scene().view.hide_focus()
+        curr_pos = self.mapToScene(e.pos())
+        if hasattr(self.selector, "startPoint"): 
+            x = min(self.selector.startPoint.x(),curr_pos.x())
+            y = min(self.selector.startPoint.y(),curr_pos.y())
+            w = max(self.selector.startPoint.x(),curr_pos.x()) - x
+            h = max(self.selector.startPoint.y(),curr_pos.y()) - y
+            if self.selector.startPoint == curr_pos:
+                self.selector.setVisible(False)
+            self.selector.setActive(False)
+        QtGui.QGraphicsView.mouseReleaseEvent(self,e)
+
+    def mousePressEvent(self,e):
+        pos = self.mapToScene(e.pos())
+        x, y = pos.x(), pos.y()
+        self.selector.setRect(x, y, 0,0)
+        self.selector.startPoint = QtCore.QPointF(x, y)
+        self.selector.setActive(True)
+        self.selector.setVisible(True)
+        QtGui.QGraphicsView.mousePressEvent(self,e)
+
+    def mouseMoveEvent(self,e):
+        curr_pos = self.mapToScene(e.pos())
+        if self.selector.isActive():
+            x = min(self.selector.startPoint.x(),curr_pos.x())
+            y = min(self.selector.startPoint.y(),curr_pos.y())
+            w = max(self.selector.startPoint.x(),curr_pos.x()) - x
+            h = max(self.selector.startPoint.y(),curr_pos.y()) - y
+            self.selector.setRect(x,y,w,h)
+        QtGui.QGraphicsView.mouseMoveEvent(self, e)
+
+
+class _BasicNodeActions(object):
+    """ Should be added as ActionDelegator """
+
+    @staticmethod
+    def init(obj):
+        obj.setCursor(QtCore.Qt.PointingHandCursor)
+        obj.setAcceptsHoverEvents(True)
+
+    @staticmethod
+    def hoverEnterEvent (obj, e):
+        print("HOLA")
+
+    @staticmethod
+    def hoverLeaveEvent(obj, e):
+        print("ADIOS")
+
+    @staticmethod
+    def mousePressEvent(obj, e):
+        print("Click")
+
+    @staticmethod
+    def mouseReleaseEvent(obj, e):
+        if e.button() == QtCore.Qt.RightButton:
+            obj.showActionPopup()
+        elif e.button() == QtCore.Qt.LeftButton:
+            obj.scene().view.set_focus(obj.node)
+            #obj.scene().view.prop_table.update_properties(obj.node)
+
+    @staticmethod
+    def hoverEnterEvent (self, e):
+        self.scene().view.highlight_node(self.node, fullRegion=True)
+
+    @staticmethod
+    def hoverLeaveEvent(self,e):
+        self.scene().view.unhighlight_node(self.node)
+
+
+
+
+
+
diff --git a/ete3/treeview/qt4_rect_render.py b/ete3/treeview/qt4_rect_render.py
new file mode 100644
index 0000000..7360d77
--- /dev/null
+++ b/ete3/treeview/qt4_rect_render.py
@@ -0,0 +1,110 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from PyQt4 import QtCore, QtGui
+from .main import _leaf
+
+class RectPartition(QtGui.QGraphicsRectItem):
+    def __init__(self, *args):
+        QtGui.QGraphicsRectItem.__init__(self, *args)
+        self.drawbg = False
+        self.nodeRegion = QtCore.QRectF()
+        self.facesRegion = QtCore.QRectF()
+        self.fullRegion = QtCore.QRectF()
+
+    def paint(self, painter, option, index):
+        if self.drawbg:
+            painter.setClipRect( option.exposedRect )
+            return QtGui.QGraphicsRectItem.paint(self, painter, option, index)
+
+def get_partition_center(n, n2i, n2f):
+        down_h = n2f[n]["branch-bottom"].h
+        up_h = n2f[n]["branch-top"].h
+
+        #right_h = max(n2f[n]["branch-right"].h, n.img_style["size"]) /2
+        right_h = n2i[n].nodeRegion.height()/2
+
+        up_h = max(right_h, up_h)
+        down_h = max(right_h, down_h)
+
+        fullR = n2i[n].fullRegion
+
+        if _leaf(n):
+            center = fullR.height()/2
+        else:
+            first_child_part = n2i[n.children[0]]
+            last_child_part = n2i[n.children[-1]]
+            c1 = first_child_part.start_y + first_child_part.center
+            c2 = last_child_part.start_y + last_child_part.center
+            center = c1 + ((c2-c1)/2)
+
+        if up_h > center:
+            center = up_h
+        elif down_h > fullR.height() - center:
+            center = fullR.height() - down_h
+
+        return center
+
+def init_rect_leaf_item(node, n2i, n2f):
+    item = n2i[node]
+    item.center = get_partition_center(node, n2i, n2f)
+
+def init_rect_node_item(node, n2i, n2f):
+    item = n2i[node]
+    all_childs_height = sum([n2i[c].fullRegion.height() for c in node.children])
+    all_childs_width = max([n2i[c].fullRegion.width() for c in node.children])
+    if all_childs_height > item.fullRegion.height():
+        item.fullRegion.setHeight(all_childs_height)
+
+    item.fullRegion.setWidth(all_childs_width + item.nodeRegion.width())
+
+    suby = 0
+    subx = item.nodeRegion.width()
+    if item.nodeRegion.height() > all_childs_height:
+        suby += ((item.fullRegion.height() - all_childs_height))/2
+
+    for c in node.children:
+        cpart = n2i[c]
+        # Sets x and y position of child within parent
+        # partition (relative positions)
+        cpart.setParentItem(item)
+        cpart.setPos(subx, suby)
+        cpart.start_y = suby
+        suby += cpart.fullRegion.height()
+    item.center = get_partition_center(node, n2i, n2f)
diff --git a/ete3/treeview/qt4_render.py b/ete3/treeview/qt4_render.py
new file mode 100644
index 0000000..a3a2fee
--- /dev/null
+++ b/ete3/treeview/qt4_render.py
@@ -0,0 +1,1142 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import math
+import re # Used to fix SVG exporting
+
+from PyQt4 import QtCore, QtGui, QtSvg
+
+from . import qt4_circular_render as crender
+from . import qt4_rect_render as rrender
+
+from .main import _leaf, NodeStyle, _FaceAreas, tracktime, TreeStyle
+from .node_gui_actions import _NodeActions as _ActionDelegator
+from .qt4_face_render import update_node_faces, _FaceGroupItem, _TextFaceItem
+from .templates import _DEFAULT_STYLE, apply_template
+from . import faces
+import six
+
+## | General scheme of node content
+## |==========================================================================================================================|
+## |                                                fullRegion                                                                |
+## |             nodeRegion                  |================================================================================|
+## |                                         |                                fullRegion                                     ||
+## |                                         |        nodeRegion                     |=======================================||
+## |                                         |                                       |         fullRegion                   |||
+## |                                         |                                       |         nodeRegion                   |||
+## |                                         |                         |             |branch_length | nodeSize | facesRegion|||
+## |                                         | branch_length | nodesize|faces-right  |=======================================||
+## |                                         |                         |(facesRegion)|=======================================||
+## |                                         |                                       |             fullRegion                ||
+## |                                         |                                       |             nodeRegion                ||
+## |  faces-top     |          |             |                                       | branch_length | nodeSize | facesRegion||
+## | branch_length  | NodeSize |faces-right  |                                       |=======================================||
+## |  faces-bottom  |          |(facesRegion)|================================================================================|
+## |                                         |=======================================|                                        |
+## |                                         |             fullRegion                |                                        |
+## |                                         |        nodeRegion                     |                                        |
+## |                                         | branch_length | nodeSize | facesRegion|                                        |
+## |                                         |=======================================|                                        |
+## |==========================================================================================================================|
+
+class _CircleItem(QtGui.QGraphicsEllipseItem, _ActionDelegator):
+    def __init__(self, node):
+        self.node = node
+        d = node.img_style["size"]
+        QtGui.QGraphicsEllipseItem.__init__(self, 0, 0, d, d)
+        _ActionDelegator.__init__(self)
+
+        self.setBrush(QtGui.QBrush(QtGui.QColor(self.node.img_style["fgcolor"])))
+        self.setPen(QtGui.QPen(QtGui.QColor(self.node.img_style["fgcolor"])))
+
+class _RectItem(QtGui.QGraphicsRectItem, _ActionDelegator):
+    def __init__(self, node):
+        self.node = node
+        d = node.img_style["size"]
+        QtGui.QGraphicsRectItem.__init__(self, 0, 0, d, d)
+        _ActionDelegator.__init__(self)
+        self.setBrush(QtGui.QBrush(QtGui.QColor(self.node.img_style["fgcolor"])))
+        self.setPen(QtGui.QPen(QtGui.QColor(self.node.img_style["fgcolor"])))
+
+class _SphereItem(QtGui.QGraphicsEllipseItem, _ActionDelegator):
+    def __init__(self, node):
+        self.node = node
+        d = node.img_style["size"]
+        r = d/2.0
+        QtGui.QGraphicsEllipseItem.__init__(self, 0, 0, d, d)
+        _ActionDelegator.__init__(self)
+        #self.setBrush(QtGui.QBrush(QtGui.QColor(self.node.img_style["fgcolor"])))
+        self.setPen(QtGui.QPen(QtGui.QColor(self.node.img_style["fgcolor"])))
+        gradient = QtGui.QRadialGradient(r, r, r,(d)/3,(d)/3)
+        gradient.setColorAt(0.05, QtCore.Qt.white);
+        gradient.setColorAt(1, QtGui.QColor(self.node.img_style["fgcolor"]));
+        self.setBrush(QtGui.QBrush(gradient))
+        # self.setPen(QtCore.Qt.NoPen)
+
+class _EmptyItem(QtGui.QGraphicsItem):
+    def __init__(self, parent=None):
+        QtGui.QGraphicsItem.__init__(self)
+        self.setParentItem(parent)
+
+        # qt4.6+ Only
+        try:
+            self.setFlags(QtGui.QGraphicsItem.ItemHasNoContents)
+        except:
+            pass
+
+    def boundingRect(self):
+        return QtCore.QRectF(0,0,0,0)
+
+    def paint(self, *args, **kargs):
+        return
+
+class _TreeItem(QtGui.QGraphicsRectItem):
+    def __init__(self, parent=None):
+        QtGui.QGraphicsRectItem.__init__(self)
+        self.setParentItem(parent)
+        self.n2i = {}
+        self.n2f = {}
+
+class _NodeItem(_EmptyItem):
+    def __init__(self, node, parent):
+        _EmptyItem.__init__(self, parent)
+        self.node = node
+        self.nodeRegion = QtCore.QRectF()
+        self.facesRegion = QtCore.QRectF()
+        self.fullRegion = QtCore.QRectF()
+        self.highlighted = False
+
+class _NodeLineItem(QtGui.QGraphicsLineItem, _ActionDelegator):
+    def __init__(self, node, *args, **kargs):
+        self.node = node
+        QtGui.QGraphicsLineItem.__init__(self, *args, **kargs)
+        _ActionDelegator.__init__(self)
+    def paint(self, painter, option, widget):
+        QtGui.QGraphicsLineItem.paint(self, painter, option, widget)
+
+class _LineItem(QtGui.QGraphicsLineItem):
+    def paint(self, painter, option, widget):
+        QtGui.QGraphicsLineItem.paint(self, painter, option, widget)
+
+class _PointerItem(QtGui.QGraphicsRectItem):
+    def __init__(self, parent=None):
+        QtGui.QGraphicsRectItem.__init__(self,0,0,0,0, parent)
+        self.color = QtGui.QColor("blue")
+        self._active = False
+        self.setBrush(QtGui.QBrush(QtCore.Qt.NoBrush))
+
+    def paint(self, p, option, widget):
+        p.setPen(self.color)
+        p.drawRect(self.rect())
+        return
+        # Draw info text
+        font = QtGui.QFont("Arial",13)
+        text = "%d selected."  % len(self.get_selected_nodes())
+        textR = QtGui.QFontMetrics(font).boundingRect(text)
+        if  self.rect().width() > textR.width() and \
+                self.rect().height() > textR.height()/2.0 and 0: # OJO !!!!
+            p.setPen(QtGui.QPen(self.color))
+            p.setFont(QtGui.QFont("Arial",13))
+            p.drawText(self.rect().bottomLeft().x(),self.rect().bottomLeft().y(),text)
+
+    def get_selected_nodes(self):
+        selPath = QtGui.QPainterPath()
+        selPath.addRect(self.rect())
+        self.scene().setSelectionArea(selPath)
+        return [i.node for i in self.scene().selectedItems()]
+
+    def setActive(self,bool):
+        self._active = bool
+
+    def isActive(self):
+        return self._active
+
+class _TreeScene(QtGui.QGraphicsScene):
+    def __init__(self):
+        QtGui.QGraphicsScene.__init__(self)
+        self.view = None
+
+    def init_values(self, tree, img, n2i, n2f):
+        self.master_item = _EmptyItem()
+        self.tree = tree
+        self.n2i = n2i
+        self.n2f = n2f
+        self.img = img
+
+    def draw(self):
+        self.img._scale = None
+        tree_item, self.n2i, self.n2f = render(self.tree, self.img)
+        if self.master_item:
+            self.removeItem(self.master_item)
+        tree_item, n2i, n2f = render(self.tree, self.img)
+        self.init_values(self.tree, self.img, n2i, n2f)
+        self.addItem(self.master_item)
+        tree_item.setParentItem(self.master_item)
+        self.setSceneRect(tree_item.rect())
+
+#@tracktime
+def render(root_node, img, hide_root=False):
+    '''main render function. hide_root option is used when render
+    trees as Faces
+
+    '''
+    mode = img.mode
+    orientation = img.orientation
+
+    arc_span = img.arc_span
+
+    layout_fn = img._layout_handler
+
+    parent = _TreeItem()
+    n2i = parent.n2i # node to items
+    n2f = parent.n2f # node to faces
+
+    parent.bg_layer =  _EmptyItem(parent)
+    parent.tree_layer = _EmptyItem(parent)
+    parent.float_layer = _EmptyItem(parent)
+    parent.float_behind_layer = _EmptyItem(parent)
+
+    TREE_LAYERS = [parent.bg_layer, parent.tree_layer,
+                   parent.float_layer, parent.float_behind_layer]
+
+    parent.bg_layer.setZValue(0)
+    parent.tree_layer.setZValue(2)
+
+    parent.float_behind_layer.setZValue(1)
+    parent.float_layer.setZValue(3)
+
+    # This could be used to handle aligned faces in internal
+    # nodes.
+    virtual_leaves = 0
+
+    if img.show_branch_length:
+        bl_face = faces.AttrFace("dist", fsize=8, ftype="Arial", fgcolor="black", formatter = "%0.3g")
+    if img.show_branch_support:
+        su_face = faces.AttrFace("support", fsize=8, ftype="Arial", fgcolor="darkred", formatter = "%0.3g")
+    if img.show_leaf_name:
+        na_face = faces.AttrFace("name", fsize=10, ftype="Arial", fgcolor="black")
+
+    for n in root_node.traverse(is_leaf_fn=_leaf):
+        set_style(n, layout_fn)
+
+        if img.show_branch_length:
+            faces.add_face_to_node(bl_face, n, 0, position="branch-top")
+
+        if not _leaf(n) and img.show_branch_support:
+            faces.add_face_to_node(su_face, n, 0, position="branch-bottom")
+
+        if _leaf(n) and n.name and img.show_leaf_name:
+            faces.add_face_to_node(na_face, n, 0, position="branch-right")
+
+        if _leaf(n):# or len(n.img_style["_faces"]["aligned"]):
+            virtual_leaves += 1
+
+        update_node_faces(n, n2f, img)
+
+    rot_step = float(arc_span) / virtual_leaves
+    #rot_step = float(arc_span) / len([n for n in root_node.traverse() if _leaf(n)])
+
+    # Calculate optimal branch length
+    if img._scale is not None:
+        init_items(root_node, parent, n2i, n2f, img, rot_step, hide_root)
+    elif img.scale is None:
+        # create items and calculate node dimensions skipping branch lengths
+        init_items(root_node, parent, n2i, n2f, img, rot_step, hide_root)
+        if mode == 'r':
+            if img.optimal_scale_level == "full":
+                scales = [(i.widths[1]/n.dist) for n,i in six.iteritems(n2i) if n.dist]
+                img._scale = max(scales) if scales else 0.0
+            else:
+                farthest, dist = root_node.get_farthest_leaf(topology_only=img.force_topology)
+                img._scale = img.tree_width / dist if dist else 0.0
+            update_branch_lengths(root_node, n2i, n2f, img)
+        else:
+            img._scale = crender.calculate_optimal_scale(root_node, n2i, rot_step, img)
+            #print "OPTIMAL circular scale", img._scale
+            update_branch_lengths(root_node, n2i, n2f, img)
+            init_items(root_node, parent, n2i, n2f, img, rot_step, hide_root)
+    else:
+        # create items and calculate node dimensions CONSIDERING branch lengths
+        img._scale = img.scale
+        init_items(root_node, parent, n2i, n2f, img, rot_step, hide_root)
+
+    #print "USING scale", img._scale
+    # Draw node content
+    for node in root_node.traverse(is_leaf_fn=_leaf):
+        if node is not root_node or not hide_root:
+            render_node_content(node, n2i, n2f, img)
+
+    # Adjust content to rect or circular layout
+    mainRect = parent.rect()
+
+    if mode == "c":
+        tree_radius = crender.render_circular(root_node, n2i, rot_step)
+        mainRect.adjust(-tree_radius, -tree_radius, tree_radius, tree_radius)
+    else:
+        iwidth = n2i[root_node].fullRegion.width()
+        iheight = n2i[root_node].fullRegion.height()
+        mainRect.adjust(0, 0, iwidth, iheight)
+        tree_radius = iwidth
+
+    # Add extra layers: aligned faces, floating faces, node
+    # backgrounds, etc. The order by which the following methods are
+    # called IS IMPORTANT
+    render_floatings(n2i, n2f, img, parent.float_layer, parent.float_behind_layer)
+
+    aligned_region_width = render_aligned_faces(img, mainRect, parent.tree_layer, n2i, n2f)
+
+    render_backgrounds(img, mainRect, parent.bg_layer, n2i, n2f)
+
+    # rotate if necessary in circular images. flip and adjust if mirror orientation.
+    adjust_faces_to_tranformations(img, mainRect, n2i, n2f, TREE_LAYERS)
+
+    # Rotate main image if necessary
+    parent.setRect(mainRect)
+    parent.setPen(QtGui.QPen(QtCore.Qt.NoPen))
+
+    if img.rotation:
+        rect = parent.boundingRect()
+        x =  rect.x() + (rect.width()/2.0)
+        y =  rect.y() +  (rect.height()/2.0)
+        parent.setTransform(QtGui.QTransform().translate(x, y).rotate(img.rotation).translate(-x, -y))
+
+    # Creates the main tree item that will act as frame for the whole image
+    frame = QtGui.QGraphicsRectItem()
+    parent.setParentItem(frame)
+    mainRect = parent.mapToScene(mainRect).boundingRect()
+
+    mainRect.adjust(-img.margin_left, -img.margin_top, \
+                         img.margin_right, img.margin_bottom)
+
+    # Fix negative coordinates, so main item always starts at 0,0
+    topleft  = mainRect.topLeft()
+    _x = abs(topleft.x()) if topleft.x() < 0 else 0
+    _y = abs(topleft.y()) if topleft.y() < 0 else 0
+    if _x or _y:
+        parent.moveBy(_x, _y)
+        mainRect.adjust(_x, _y, _x, _y)
+
+    # Add extra components and adjust mainRect to them
+    add_legend(img, mainRect, frame)
+    add_title(img, mainRect, frame)
+    add_scale(img, mainRect, frame)
+    frame.setRect(mainRect)
+
+    # Draws a border around the tree
+    if not img.show_border:
+        frame.setPen(QtGui.QPen(QtCore.Qt.NoPen))
+    else:
+        frame.setPen(QtGui.QPen(QtGui.QColor("black")))
+
+    return frame, n2i, n2f
+
+def adjust_faces_to_tranformations(img, mainRect, n2i, n2f, tree_layers):
+    if img.mode == "c":
+        rotate_inverted_faces(n2i, n2f, img)
+    elif img.mode == "r" and img.orientation == 1:
+        for layer in tree_layers:
+            layer.setTransform(QtGui.QTransform().translate(0, 0).scale(-1,1).translate(0, 0))
+            layer.moveBy(mainRect.width(),0)
+        for faceblock in six.itervalues(n2f):
+            for pos, fb in six.iteritems(faceblock):
+                fb.flip_hz()
+
+def add_legend(img, mainRect, parent):
+    if img.legend:
+        legend = _FaceGroupItem(img.legend, None)
+        legend.setup_grid()
+        legend.render()
+        lg_w, lg_h = legend.get_size()
+        dw = max(0, lg_w-mainRect.width())
+        legend.setParentItem(parent)
+        if img.legend_position == 1:
+            mainRect.adjust(0, -lg_h, dw, 0)
+            legend.setPos(mainRect.topLeft())
+        elif img.legend_position == 2:
+            mainRect.adjust(0, -lg_h, dw, 0)
+            pos = mainRect.topRight()
+            legend.setPos(pos.x()-lg_w, pos.y())
+        elif img.legend_position == 3:
+            legend.setPos(mainRect.bottomLeft())
+            mainRect.adjust(0, 0, dw, lg_h)
+        elif img.legend_position == 4:
+            pos = mainRect.bottomRight()
+            legend.setPos(pos.x()-lg_w, pos.y())
+            mainRect.adjust(0, 0, dw, lg_h)
+
+def add_title(img, mainRect, parent):
+    if img.title:
+        title = _FaceGroupItem(img.title, None)
+        title.setup_grid()
+        title.render()
+        lg_w, lg_h = title.get_size()
+        dw = max(0, lg_w-mainRect.width())
+        title.setParentItem(parent)
+        mainRect.adjust(0, -lg_h, dw, 0)
+        title.setPos(mainRect.topLeft())
+
+def add_legend(img, mainRect, parent):
+    if img.legend:
+        legend = _FaceGroupItem(img.legend, None)
+        legend.setup_grid()
+        legend.render()
+        lg_w, lg_h = legend.get_size()
+        dw = max(0, lg_w-mainRect.width())
+        legend.setParentItem(parent)
+        if img.legend_position == 1:
+            mainRect.adjust(0, -lg_h, dw, 0)
+            legend.setPos(mainRect.topLeft())
+        elif img.legend_position == 2:
+            mainRect.adjust(0, -lg_h, dw, 0)
+            pos = mainRect.topRight()
+            legend.setPos(pos.x()-lg_w, pos.y())
+        elif img.legend_position == 3:
+            legend.setPos(mainRect.bottomLeft())
+            mainRect.adjust(0, 0, dw, lg_h)
+        elif img.legend_position == 4:
+            pos = mainRect.bottomRight()
+            legend.setPos(pos.x()-lg_w, pos.y())
+            mainRect.adjust(0, 0, dw, lg_h)
+
+def add_scale(img, mainRect, parent):
+    if img.show_scale:
+        length=50
+        scaleItem = _EmptyItem()
+        customPen = QtGui.QPen(QtGui.QColor("black"), 1)
+
+        if img.force_topology:
+            wtext = "Force topology is enabled!\nBranch lengths do not represent real values."
+            warning_text = QtGui.QGraphicsSimpleTextItem(wtext)
+            warning_text.setFont(QtGui.QFont("Arial", 8))
+            warning_text.setBrush( QtGui.QBrush(QtGui.QColor("darkred")))
+            warning_text.setPos(0, 32)
+            warning_text.setParentItem(scaleItem)
+        else:
+            line = QtGui.QGraphicsLineItem(scaleItem)
+            line2 = QtGui.QGraphicsLineItem(scaleItem)
+            line3 = QtGui.QGraphicsLineItem(scaleItem)
+            line.setPen(customPen)
+            line2.setPen(customPen)
+            line3.setPen(customPen)
+
+            line.setLine(0, 5, length, 5)
+            line2.setLine(0, 0, 0, 10)
+            line3.setLine(length, 0, length, 10)
+            length_text = float(length) / img._scale if img._scale else 0.0
+            scale_text = "%0.2f" % (length_text)
+            scale = QtGui.QGraphicsSimpleTextItem(scale_text)
+            scale.setParentItem(scaleItem)
+            scale.setPos(0, 10)
+
+        scaleItem.setParentItem(parent)
+        dw = max(0, length-mainRect.width())
+        scaleItem.setPos(mainRect.bottomLeft())
+        scaleItem.moveBy(img.margin_left, 0)
+        mainRect.adjust(0, 0, dw, length)
+
+def rotate_inverted_faces(n2i, n2f, img):
+    for node, faceblock in six.iteritems(n2f):
+        item = n2i[node]
+        if item.rotation > 90 and item.rotation < 270:
+            for pos, fb in six.iteritems(faceblock):
+                fb.rotate(181)
+
+def render_backgrounds(img, mainRect, bg_layer, n2i, n2f):
+
+    if img.mode == "c":
+        max_r = mainRect.width()/2.0
+    else:
+        max_r = mainRect.width()
+
+    for node, item in six.iteritems(n2i):
+        if _leaf(node):
+            first_c = n2i[node]
+            last_c = n2i[node]
+        else:
+            first_c = n2i[node.children[0]]
+            last_c = n2i[node.children[-1]]
+
+        if img.mode == "c":
+            h = item.effective_height
+            angle_start = first_c.full_start
+            angle_end = last_c.full_end
+            parent_radius = getattr(n2i.get(node.up, None), "radius", 0)
+            base = parent_radius + item.nodeRegion.width()
+
+            if node.img_style["node_bgcolor"].upper() != "#FFFFFF":
+                bg1 = crender._ArcItem()
+                r = math.sqrt(base**2 + h**2)
+                bg1.set_arc(0, 0, parent_radius, r, angle_start, angle_end)
+                bg1.setParentItem(item.content.bg)
+                bg1.setPen(QtGui.QPen(QtGui.QColor(node.img_style["node_bgcolor"])))
+                bg1.setBrush(QtGui.QBrush(QtGui.QColor(node.img_style["node_bgcolor"])))
+
+            if node.img_style["faces_bgcolor"].upper() != "#FFFFFF":
+                bg2 = crender._ArcItem()
+                r = math.sqrt(base**2 + h**2)
+                bg2.set_arc(0, 0, parent_radius, item.radius, angle_start, angle_end)
+                bg2.setParentItem(item.content)
+                bg2.setPen(QtGui.QPen(QtGui.QColor(node.img_style["faces_bgcolor"])))
+                bg2.setBrush(QtGui.QBrush(QtGui.QColor(node.img_style["faces_bgcolor"])))
+
+            if node.img_style["bgcolor"].upper() != "#FFFFFF":
+                bg = crender._ArcItem()
+                bg.set_arc(0, 0, parent_radius, max_r, angle_start, angle_end)
+                bg.setPen(QtGui.QPen(QtGui.QColor(node.img_style["bgcolor"])))
+                bg.setBrush(QtGui.QBrush(QtGui.QColor(node.img_style["bgcolor"])))
+                bg.setParentItem(bg_layer)
+                bg.setZValue(item.zValue())
+
+        if img.mode == "r":
+            if node.img_style["bgcolor"].upper() != "#FFFFFF":
+                bg = QtGui.QGraphicsRectItem()
+                pos = item.content.mapToScene(0, 0)
+                bg.setPos(pos.x(), pos.y())
+                bg.setRect(0, 0, max_r-pos.x(),  item.fullRegion.height())
+                bg.setPen(QtGui.QPen(QtGui.QColor(node.img_style["bgcolor"])))
+                bg.setBrush(QtGui.QBrush(QtGui.QColor(node.img_style["bgcolor"])))
+                bg.setParentItem(bg_layer)
+                bg.setZValue(item.zValue())
+
+def set_node_size(node, n2i, n2f, img):
+    scale = img._scale
+    min_separation = img.min_leaf_separation
+
+    item = n2i[node]
+    if img.force_topology:
+        branch_length = item.branch_length = 25
+    else:
+        branch_length = item.branch_length = float(node.dist * scale)
+
+    # Organize faces by groups
+    #faceblock = update_node_faces(node, n2f, img)
+    faceblock = n2f[node]
+    aligned_height = 0
+    if _leaf(node):
+        if img.mode == "r":
+            aligned_height = faceblock["aligned"].h
+        elif img.mode == "c":
+            # aligned faces in circular mode are adjusted afterwords. The
+            # min radius of the largest aligned faces will be calculated.
+            pass
+
+    # Total height required by the node. I cannot sum up the height of
+    # all elements, since the position of some of them are forced to
+    # be on top or at the bottom of branches. This fact can produce
+    # and unbalanced nodeRegion center. Here, I only need to know
+    # about the imbalance size to correct node height. The center will
+    # be calculated later according to the parent position.
+    top_half_h = ( (node.img_style["size"]/2.0) +
+                       node.img_style["hz_line_width"]/2.0 +
+                       faceblock["branch-top"].h )
+
+    bottom_half_h =( (node.img_style["size"]/2.0) +
+                       node.img_style["hz_line_width"]/2.0 +
+                       faceblock["branch-bottom"].h )
+
+    h1 = top_half_h + bottom_half_h
+    h2 = max(faceblock["branch-right"].h, \
+                 aligned_height, \
+                min_separation )
+    h = max(h1, h2)
+    imbalance = abs(top_half_h - bottom_half_h)
+    if imbalance > h2/2.0:
+        h += imbalance - (h2/2.0)
+
+    # This adds a vertical margin around the node elements
+    h += img.branch_vertical_margin
+
+    # Total width required by the node
+    w = sum([max(branch_length + node.img_style["size"],
+                 faceblock["branch-top"].w + node.img_style["size"],
+                 faceblock["branch-bottom"].w + node.img_style["size"],
+                 ),
+             faceblock["branch-right"].w]
+            )
+
+    # This breaks ultrametric tree visualization
+    #w += node.img_style["vt_line_width"]
+
+    # rightside faces region
+    item.facesRegion.setRect(0, 0, faceblock["branch-right"].w, h)
+
+    # Node region
+    item.nodeRegion.setRect(0, 0, w, h)
+
+    # This is the node total region covered by the node
+    item.fullRegion.setRect(0, 0, w, h)
+
+def render_node_content(node, n2i, n2f, img):
+    style = node.img_style
+    item = n2i[node]
+    item.content = _EmptyItem(item)
+
+    nodeR = item.nodeRegion
+    facesR = item.facesRegion
+    center = item.center
+    branch_length = item.branch_length
+
+    # Node points
+    ball_size = style["size"]
+
+
+    vlw = style["vt_line_width"] if not _leaf(node) and len(node.children) > 1 else 0.0
+
+    # face_start_x = nodeR.width() - facesR.width() - vlw
+    face_start_x = max(0, nodeR.width() - facesR.width() - vlw)
+    ball_start_x = face_start_x - ball_size
+
+    if ball_size:
+        if node.img_style["shape"] == "sphere":
+            node_ball = _SphereItem(node)
+        elif node.img_style["shape"] == "circle":
+            node_ball = _CircleItem(node)
+        elif node.img_style["shape"] == "square":
+            node_ball = _RectItem(node)
+
+        node_ball.setPos(ball_start_x, center-(ball_size/2.0))
+
+        #from qt4_gui import _BasicNodeActions
+        #node_ball.delegate = _BasicNodeActions()
+        #node_ball.setAcceptsHoverEvents(True)
+        #node_ball.setCursor(QtCore.Qt.PointingHandCursor)
+
+    else:
+        node_ball = None
+
+    # Branch line to parent
+    pen = QtGui.QPen()
+    set_pen_style(pen, style["hz_line_type"])
+    pen.setColor(QtGui.QColor(style["hz_line_color"]))
+    pen.setWidth(style["hz_line_width"])
+    pen.setCapStyle(QtCore.Qt.FlatCap)
+    #pen.setCapStyle(QtCore.Qt.RoundCap)
+    #pen.setCapStyle(QtCore.Qt.SquareCap)
+    #pen.setJoinStyle(QtCore.Qt.RoundJoin)
+    hz_line = _LineItem()
+    hz_line = _NodeLineItem(node)
+    hz_line.setPen(pen)
+
+    join_fix = 0
+    if img.mode == "c" and node.up and node.up.img_style["vt_line_width"]:
+        join_fix = node.up.img_style["vt_line_width"]
+        # fix_join_line = _LineItem()
+        # fix_join_line = _NodeLineItem(node)
+        # parent_style = node.up.img_style
+        # pen = QtGui.QPen()
+        # pen.setColor(QtGui.QColor(parent_style["vt_line_color"]))
+        # pen.setWidth(parent_style["hz_line_width"])
+        # pen.setCapStyle(QtCore.Qt.FlatCap)
+        # fix_join_line.setPen(pen)
+        # fix_join_line.setLine(-join_fix, center, join_fix, center)
+        # fix_join_line.setParentItem(item.content)
+
+    hz_line.setLine(-join_fix, center, branch_length, center)
+
+    if img.complete_branch_lines_when_necessary:
+        extra_line = _LineItem(branch_length, center, ball_start_x, center)
+        pen = QtGui.QPen()
+        item.extra_branch_line = extra_line
+        set_pen_style(pen, img.extra_branch_line_type)
+        pen.setColor(QtGui.QColor(img.extra_branch_line_color))
+        pen.setCapStyle(QtCore.Qt.FlatCap)
+        pen.setWidth(style["hz_line_width"])
+        extra_line.setPen(pen)
+    else:
+        extra_line = None
+
+    # Attach branch-right faces to child
+    fblock_r = n2f[node]["branch-right"]
+    fblock_r.render()
+    fblock_r.setPos(face_start_x, center-fblock_r.h/2.0)
+
+    # Attach branch-bottom faces to child
+    fblock_b = n2f[node]["branch-bottom"]
+    fblock_b.render()
+    fblock_b.setPos(item.widths[0], center + style["hz_line_width"]/2.0)
+
+    # Attach branch-top faces to child
+    fblock_t = n2f[node]["branch-top"]
+    fblock_t.render()
+    fblock_t.setPos(item.widths[0], center - fblock_t.h - style["hz_line_width"]/2.0)
+
+    # Vertical line
+    if not _leaf(node):
+        if img.mode == "c":
+            vt_line = QtGui.QGraphicsPathItem()
+
+        elif img.mode == "r":
+            vt_line = _LineItem(item)
+            first_child = node.children[0]
+            last_child = node.children[-1]
+            first_child_part = n2i[node.children[0]]
+            last_child_part = n2i[node.children[-1]]
+            c1 = first_child_part.start_y + first_child_part.center
+            c2 = last_child_part.start_y + last_child_part.center
+            fx = nodeR.width() - (vlw/2.0)
+            if first_child.img_style["hz_line_width"] > 0:
+                c1 -= (first_child.img_style["hz_line_width"] / 2.0)
+            if last_child.img_style["hz_line_width"] > 0:
+                c2 += (last_child.img_style["hz_line_width"] / 2.0)
+            vt_line.setLine(fx, c1, fx, c2)
+
+        pen = QtGui.QPen()
+        set_pen_style(pen, style["vt_line_type"])
+        pen.setColor(QtGui.QColor(style["vt_line_color"]))
+        pen.setWidth(style["vt_line_width"])
+        pen.setCapStyle(QtCore.Qt.FlatCap)
+        #pen.setCapStyle(QtCore.Qt.RoundCap)
+        #pen.setCapStyle(QtCore.Qt.SquareCap)
+        vt_line.setPen(pen)
+        item.vt_line = vt_line
+    else:
+        vt_line = None
+
+    item.bg = QtGui.QGraphicsItemGroup()
+    item.movable_items = [] #QtGui.QGraphicsItemGroup()
+    item.static_items = [] #QtGui.QGraphicsItemGroup()
+
+    # Items fow which coordinates are exported in the image map
+    item.mapped_items = [node_ball, fblock_r, fblock_b, fblock_t]
+
+
+    for i in [vt_line, extra_line, hz_line]:
+        if i:
+            #item.static_items.addToGroup(i)
+            item.static_items.append(i)
+            i.setParentItem(item.content)
+    for i in [node_ball, fblock_r, fblock_b, fblock_t]:
+        if i:
+            #item.movable_items.addToGroup(i)
+            item.movable_items.append(i)
+            i.setParentItem(item.content)
+
+
+    #item.movable_items.setParentItem(item.content)
+    #item.static_items.setParentItem(item.content)
+
+def set_pen_style(pen, line_style):
+    if line_style == 0:
+        pen.setStyle(QtCore.Qt.SolidLine)
+    elif line_style == 1:
+        pen.setStyle(QtCore.Qt.DashLine)
+    elif line_style == 2:
+        pen.setStyle(QtCore.Qt.DotLine)
+
+def set_style(n, layout_func):
+    #if not isinstance(getattr(n, "img_style", None), NodeStyle):
+    #    print "Style of", n.name ,"is None"
+    #    n.set_style()
+    #    n.img_style = NodeStyle()
+
+    n._temp_faces = _FaceAreas()
+
+    for func in layout_func:
+        func(n)
+
+def render_floatings(n2i, n2f, img, float_layer, float_behind_layer):
+    #floating_faces = [ [node, fb["float"]] for node, fb in n2f.iteritems() if "float" in fb]
+
+    for node, faces in six.iteritems(n2f):
+        face_set = [ [float_layer, faces.get("float", None)],
+                     [float_behind_layer, faces.get("float-behind",None)]]
+
+        for parent_layer,fb in face_set:
+            if not fb:
+                continue
+
+            item = n2i[node]
+            fb.setParentItem(parent_layer)
+
+            try:
+                xtra =  item.extra_branch_line.line().dx()
+            except AttributeError:
+                xtra = 0
+
+            if img.mode == "c":
+                # Floatings are positioned over branches
+                crender.rotate_and_displace(fb, item.rotation, fb.h, item.radius - item.nodeRegion.width() + xtra)
+                # Floatings are positioned starting from the node circle
+                #crender.rotate_and_displace(fb, item.rotation, fb.h, item.radius - item.nodeRegion.width())
+
+            elif img.mode == "r":
+                start = item.branch_length + xtra - fb.w #if fb.w < item.branch_length else 0.0
+                fb.setPos(item.content.mapToScene(start, item.center - (fb.h/2.0)))
+
+            z = item.zValue()
+            if not img.children_faces_on_top:
+                z = -z
+
+            fb.setZValue(z)
+            fb.update_columns_size()
+            fb.render()
+
+def render_aligned_faces(img, mainRect, parent, n2i, n2f):
+    # Prepares and renders aligned face headers. Used to later
+    # place aligned faces
+    aligned_faces = [ [node, fb["aligned"]] for node, fb in six.iteritems(n2f)\
+                          if fb["aligned"].column2faces and _leaf(node)]
+
+    # If no aligned faces, just return an offset of 0 pixels
+    if not aligned_faces:
+        return 0
+
+    # Load header and footer
+    if img.mode == "r":
+        tree_end_x = mainRect.width()
+
+        fb_head = _FaceGroupItem(img.aligned_header, None)
+        fb_head.setParentItem(parent)
+        fb_foot = _FaceGroupItem(img.aligned_foot, None)
+        fb_foot.setParentItem(parent)
+        surroundings = [[None,fb_foot], [None, fb_head]]
+        mainRect.adjust(0, -fb_head.h, 0, fb_foot.h)
+    else:
+        tree_end_x = mainRect.width()/2.0
+        surroundings = []
+
+    # Place aligned faces and calculates the max size of each
+    # column (needed to place column headers)
+    c2max_w = {}
+    maxh = 0
+    maxh_node = None
+    for node, fb in aligned_faces + surroundings:
+        if fb.h > maxh:
+            maxh = fb.h
+            maxh_node = node
+        for c, w in six.iteritems(fb.c2max_w):
+            c2max_w[c] = max(w, c2max_w.get(c,0))
+    extra_width = sum(c2max_w.values())
+
+    # If rect mode, render header and footer
+    if img.mode == "r":
+        if img.draw_aligned_faces_as_table:
+            fb_head.setup_grid(c2max_w)
+            fb_foot.setup_grid(c2max_w)
+
+        fb_head.render()
+        fb_head.setPos(tree_end_x, mainRect.top())
+        fb_foot.render()
+        fb_foot.setPos(tree_end_x, mainRect.bottom()-fb_foot.h)
+        if img.orientation == 1:
+            fb_head.flip_hz()
+            fb_foot.flip_hz()
+
+    # if no scale provided in circular mode, optimal scale is expected
+    # to provide the correct ending point to start drawing aligned
+    # faces.
+    elif img.mode == "c" and (img.scale or img._scale == 0) and not img.allow_face_overlap:
+        angle = n2i[maxh_node].angle_span
+        rad, off = crender.get_min_radius(1, maxh, angle, tree_end_x)
+        extra_width += rad - tree_end_x
+        tree_end_x = rad
+
+    # Place aligned faces
+    for node, fb in aligned_faces:
+        item = n2i[node]
+        item.mapped_items.append(fb)
+        if img.draw_aligned_faces_as_table:
+            if img.aligned_table_style == 0:
+                fb.setup_grid(c2max_w, as_grid=True)
+            elif img.aligned_table_style == 1:
+                fb.setup_grid(c2max_w, as_grid=False)
+
+        fb.render()
+        fb.setParentItem(item.content)
+        if img.mode == "c":
+            if node.up in n2i:
+                x = tree_end_x - n2i[node.up].radius
+            else:
+                x = tree_end_x
+            #fb.moveBy(tree_end_x, 0)
+        elif img.mode == "r":
+            x = item.mapFromScene(tree_end_x, 0).x()
+
+        fb.setPos(x, item.center-(fb.h/2.0))
+
+        if img.draw_guiding_lines and _leaf(node):
+            # -1 is to connect the two lines, otherwise there is a pixel in between
+            guide_line = _LineItem(item.nodeRegion.width()-1, item.center, x, item.center)
+            pen = QtGui.QPen()
+            set_pen_style(pen, img.guiding_lines_type)
+            pen.setColor(QtGui.QColor(img.guiding_lines_color))
+            pen.setCapStyle(QtCore.Qt.FlatCap)
+            pen.setWidth(node.img_style["hz_line_width"])
+            guide_line.setPen(pen)
+            guide_line.setParentItem(item.content)
+
+    if img.mode == "c":
+        mainRect.adjust(-extra_width, -extra_width, extra_width, extra_width)
+    else:
+        mainRect.adjust(0, 0, extra_width, 0)
+    return extra_width
+
+def get_tree_img_map(n2i, x_scale=1, y_scale=1):
+    MOTIF_ITEMS = set([faces.QGraphicsTriangleItem,
+                       faces.QGraphicsEllipseItem,
+                       faces.QGraphicsDiamondItem,
+                       faces.QGraphicsRectItem,
+                       faces.QGraphicsRoundRectItem])
+    node_list = []
+    face_list = []
+    node_areas = {}
+    #nid = 0
+    for n, main_item in six.iteritems(n2i):
+        #n.add_feature("_nid", str(nid))
+        nid = n._nid
+
+        rect = main_item.mapToScene(main_item.fullRegion).boundingRect()
+        x1 = x_scale * rect.x()
+        y1 = y_scale * rect.y()
+        x2 = x_scale * (rect.x() + rect.width())
+        y2 = y_scale * (rect.y() + rect.height())
+        node_areas[nid] = [x1, y1, x2, y2]
+
+        for item in main_item.mapped_items:
+            if isinstance(item, _CircleItem) \
+                    or isinstance(item, _SphereItem) \
+                    or isinstance(item, _RectItem):
+                r = item.boundingRect()
+                rect = item.mapToScene(r).boundingRect()
+                x1 = x_scale * rect.x()
+                y1 = y_scale * rect.y()
+                x2 = x_scale * (rect.x() + rect.width())
+                y2 = y_scale * (rect.y() + rect.height())
+                node_list.append([x1, y1, x2, y2, nid, None])
+            elif isinstance(item, _FaceGroupItem):
+                if item.column2faces:
+                    for f in item.childItems():
+                        r = f.boundingRect()
+                        rect = f.mapToScene(r).boundingRect()
+                        x1 = x_scale * rect.x()
+                        y1 = y_scale * rect.y()
+                        x2 = x_scale * (rect.x() + rect.width())
+                        y2 = y_scale * (rect.y() + rect.height())
+                        if isinstance(f, _TextFaceItem):
+                            face_list.append([x1, y1, x2, y2, nid, str(getattr(f, "face_label", f.text()))])
+                        elif isinstance(f, faces.SeqMotifRectItem):
+                            #face_list.append([x1, y1, x2, y2, nid, str(getattr(f, "face_label", None))])
+                            for mf in f.childItems():
+                                r = mf.boundingRect()
+                                rect = mf.mapToScene(r).boundingRect()
+                                x1 = x_scale * rect.x()
+                                y1 = y_scale * rect.y()
+                                x2 = x_scale * (rect.x() + rect.width())
+                                y2 = y_scale * (rect.y() + rect.height())
+                                try:
+                                    label = "Motif:%s" %mf.childItems()[0].text
+                                except Exception:
+                                    label = ""
+                                face_list.append([x1, y1, x2, y2, nid, label])
+                        else:
+                            face_list.append([x1, y1, x2, y2, nid, getattr(f, "face_label", None)])
+        #nid += 1
+
+    return {"nodes": node_list, "faces": face_list, "node_areas": node_areas}
+
+#@tracktime
+def init_items(root_node, parent, n2i, n2f, img, rot_step, hide_root):
+    # ::: Precalculate values :::
+    visited = set()
+    to_visit = []
+    to_visit.append(root_node)
+    last_rotation = img.arc_start
+    depth = 1
+    while to_visit:
+        node = to_visit[-1]
+        finished = True
+        if node not in n2i:
+            # Set style according to layout function
+            item = n2i[node] = _NodeItem(node, parent.tree_layer)
+            depth += 1
+
+            item.setZValue(depth)
+            if node is root_node and hide_root:
+                pass
+            else:
+                init_node_dimensions(node, item, n2f[node], img)
+                #set_node_size(node, n2i, n2f, img)
+
+        if not _leaf(node):
+            # visit children starting from left to right. Very
+            #  important!! check all children[-1] and children[0]
+            for c in reversed(node.children):
+                if c not in visited:
+                    to_visit.append(c)
+                    finished = False
+            # :: pre-order code here ::
+        if not finished:
+            continue
+        else:
+            to_visit.pop(-1)
+            visited.add(node)
+
+        # :: Post-order visits. Leaves are already visited here ::
+        if img.mode == "c":
+            if _leaf(node):
+                crender.init_circular_leaf_item(node, n2i, n2f, last_rotation, rot_step)
+                last_rotation += rot_step
+            else:
+                crender.init_circular_node_item(node, n2i, n2f)
+
+        elif img.mode == "r":
+            if _leaf(node):
+                rrender.init_rect_leaf_item(node, n2i, n2f)
+            else:
+                rrender.init_rect_node_item(node, n2i, n2f)
+
+
+def init_node_dimensions(node, item, faceblock, img):
+    """Calculates width and height of all different subparts and faces
+    of a given node. Branch lengths are not taken into account, so some
+    dimensions must be adjusted after setting a valid scale.
+    """
+
+    min_separation = img.min_leaf_separation
+
+    if _leaf(node):
+        aligned_height = faceblock["aligned"].h
+        aligned_width = faceblock["aligned"].w
+    else:
+        aligned_height = 0
+        aligned_width = 0
+
+    ndist =  1.0 if img.force_topology else node.dist
+    item.branch_length = (ndist * img._scale) if img._scale else 0
+    ## Calculate dimensions of the different node regions
+    ##
+    ##
+    ##                                |
+    ##                                |        ------
+    ##          b-top       --------- |        |    |
+    ## xoff-------------- O |b-right| |        |alg |
+    ##          b-bottom    --------- |        |    |
+    ##                                |        ------
+    ##                                |
+    ##
+    ##      0     1       2     3     4           5
+    ##
+
+    item.xoff = 0.0
+    # widths
+    w1 = max(faceblock["branch-bottom"].w, faceblock["branch-top"].w)
+    w0 = item.branch_length - w1 if item.branch_length > w1 else 0
+    w2 = node.img_style["size"]
+    w3 = faceblock["branch-right"].w
+    w4 = node.img_style["vt_line_width"] if not _leaf(node) and len(node.children) > 1 else 0.0
+    w5 = 0
+    # heights
+    h0 = node.img_style["hz_line_width"]
+    h1 = node.img_style["hz_line_width"] + faceblock["branch-top"].h + faceblock["branch-bottom"].h
+    h2 = node.img_style["size"]
+    h3 = faceblock["branch-right"].h
+    h4 = 0
+    h5 = aligned_height
+
+    # This fixes the problem of miss-aligned branches in ultrametric trees. If
+    # there is nothing between the hz line and the vt line, then I prevent
+    # vt_line_width to add extra width to the node, so node distances are
+    # preserved in the img.
+    if w2 == 0 and w3 == 0:
+        w4 = 0
+
+    # ignore face heights if requested
+    if img.mode == "c" and img.allow_face_overlap:
+        h1, h3, h5 = 0, 0, 0
+
+    item.heights = [h0, h1, h2, h3, h4, h5]
+    item.widths = [w0, w1, w2, w3, w4, w5]
+
+    # Calculate total node size
+    total_w = sum([w0, w1, w2, w3, w4, item.xoff]) # do not count aligned faces
+	
+    if img.mode == "c":
+        max_h = max(item.heights[:4] + [min_separation])
+    elif img.mode == "r":
+        max_h = max(item.heights + [min_separation])
+
+    max_h += img.branch_vertical_margin
+
+    # correct possible unbalanced block in branch faces
+    h_imbalance = abs(faceblock["branch-top"].h - faceblock["branch-bottom"].h)
+    if h_imbalance + h1 > max_h:
+        max_h += h_imbalance
+
+    item.facesRegion.setRect(0, 0, w3, max_h)
+    item.nodeRegion.setRect(0, 0, total_w, max_h)
+    item.fullRegion.setRect(0, 0, total_w, max_h)
+
+def update_branch_lengths(tree, n2i, n2f, img):
+    for node in tree.traverse("postorder", is_leaf_fn=_leaf):
+        item = n2i[node]
+        ndist = 1.0 if img.force_topology else node.dist
+        item.branch_length = ndist * img._scale
+        w0 = 0
+
+        if item.branch_length > item.widths[1]:
+            w0 = item.widths[0] = item.branch_length - item.widths[1]
+            item.nodeRegion.adjust(0, 0, w0, 0)
+
+        child_width = 0
+        if not _leaf(node):
+            for ch in node.children:
+                child_width = max(child_width, n2i[ch].fullRegion.width())
+                if w0 and img.mode == "r":
+                    n2i[ch].translate(w0, 0)
+        item.fullRegion.setWidth(item.nodeRegion.width() + child_width)
+
+def init_tree_style(t, ts):
+    custom_ts = True
+    if not ts:
+        custom_ts = False
+        ts = TreeStyle()
+
+    if not ts.layout_fn:
+        cl = t.__class__
+        try:
+            ts_template = _DEFAULT_STYLE[cl]
+        except KeyError as e:
+            pass
+        else:
+            if not custom_ts:
+                apply_template(ts, ts_template)
+            else:
+                ts.layout_fn = ts_template.get("layout_fn", None)
+
+    return ts
+
diff --git a/ete3/treeview/search.png b/ete3/treeview/search.png
new file mode 100644
index 0000000..130c867
Binary files /dev/null and b/ete3/treeview/search.png differ
diff --git a/ete3/treeview/search_dialog.ui b/ete3/treeview/search_dialog.ui
new file mode 100644
index 0000000..7cb0647
--- /dev/null
+++ b/ete3/treeview/search_dialog.ui
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <author>Jaime Huerta Cepas</author>
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog">
+  <property name="windowModality">
+   <enum>Qt::ApplicationModal</enum>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>613</width>
+    <height>103</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <widget class="QDialogButtonBox" name="buttonBox">
+   <property name="geometry">
+    <rect>
+     <x>430</x>
+     <y>60</y>
+     <width>171</width>
+     <height>32</height>
+    </rect>
+   </property>
+   <property name="orientation">
+    <enum>Qt::Horizontal</enum>
+   </property>
+   <property name="standardButtons">
+    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+   </property>
+   <property name="centerButtons">
+    <bool>true</bool>
+   </property>
+  </widget>
+  <widget class="QCheckBox" name="leaves_only">
+   <property name="geometry">
+    <rect>
+     <x>10</x>
+     <y>40</y>
+     <width>211</width>
+     <height>24</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Search only for leaf nodes</string>
+   </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="attrType">
+   <property name="geometry">
+    <rect>
+     <x>330</x>
+     <y>10</y>
+     <width>101</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <item>
+    <property name="text">
+     <string>contains</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>is</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>== </string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>>=</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>></string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string><=</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string><</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>matches this regular expression</string>
+    </property>
+   </item>
+  </widget>
+  <widget class="QLabel" name="label">
+   <property name="geometry">
+    <rect>
+     <x>10</x>
+     <y>10</y>
+     <width>141</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Search nodes whose                                </string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="attrName">
+   <property name="geometry">
+    <rect>
+     <x>150</x>
+     <y>8</y>
+     <width>113</width>
+     <height>25</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>name</string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="attrValue">
+   <property name="geometry">
+    <rect>
+     <x>440</x>
+     <y>10</y>
+     <width>113</width>
+     <height>25</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string/>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_2">
+   <property name="geometry">
+    <rect>
+     <x>270</x>
+     <y>10</y>
+     <width>61</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>attribute</string>
+   </property>
+  </widget>
+ </widget>
+ <tabstops>
+  <tabstop>attrName</tabstop>
+  <tabstop>attrType</tabstop>
+  <tabstop>attrValue</tabstop>
+  <tabstop>leaves_only</tabstop>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>Dialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>198</x>
+     <y>134</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>159</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Dialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>266</x>
+     <y>140</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>159</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/ete3/treeview/show_dist.png b/ete3/treeview/show_dist.png
new file mode 100644
index 0000000..cda49c7
Binary files /dev/null and b/ete3/treeview/show_dist.png differ
diff --git a/ete3/treeview/show_names.png b/ete3/treeview/show_names.png
new file mode 100644
index 0000000..26bb2b5
Binary files /dev/null and b/ete3/treeview/show_names.png differ
diff --git a/ete3/treeview/show_newick.png b/ete3/treeview/show_newick.png
new file mode 100644
index 0000000..b2440e0
Binary files /dev/null and b/ete3/treeview/show_newick.png differ
diff --git a/ete3/treeview/show_newick.ui b/ete3/treeview/show_newick.ui
new file mode 100644
index 0000000..5d60d93
--- /dev/null
+++ b/ete3/treeview/show_newick.ui
@@ -0,0 +1,256 @@
+<ui version="4.0" >
+ <class>Newick</class>
+ <widget class="QDialog" name="Newick" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>594</width>
+    <height>397</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <widget class="QComboBox" name="nwFormat" >
+   <property name="geometry" >
+    <rect>
+     <x>200</x>
+     <y>20</y>
+     <width>51</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <item>
+    <property name="text" >
+     <string>0</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>1</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>2</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>3</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>4</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>5</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>6</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>7</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>8</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>9</string>
+    </property>
+   </item>
+   <item>
+    <property name="text" >
+     <string>100</string>
+    </property>
+   </item>
+  </widget>
+  <widget class="QLabel" name="label" >
+   <property name="geometry" >
+    <rect>
+     <x>100</x>
+     <y>20</y>
+     <width>91</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Newick format</string>
+   </property>
+  </widget>
+  <widget class="QWidget" name="verticalLayoutWidget" >
+   <property name="geometry" >
+    <rect>
+     <x>300</x>
+     <y>10</y>
+     <width>258</width>
+     <height>361</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" name="verticalLayout" >
+    <item>
+     <widget class="QTextEdit" name="newickBox" />
+    </item>
+   </layout>
+   <zorder>features_list</zorder>
+   <zorder>newickBox</zorder>
+  </widget>
+  <widget class="QLineEdit" name="attrName" >
+   <property name="geometry" >
+    <rect>
+     <x>20</x>
+     <y>80</y>
+     <width>113</width>
+     <height>25</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton" >
+   <property name="geometry" >
+    <rect>
+     <x>140</x>
+     <y>80</y>
+     <width>51</width>
+     <height>29</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Add</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_2" >
+   <property name="geometry" >
+    <rect>
+     <x>200</x>
+     <y>80</y>
+     <width>51</width>
+     <height>29</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Del</string>
+   </property>
+  </widget>
+  <widget class="QListWidget" name="features_list" >
+   <property name="geometry" >
+    <rect>
+     <x>20</x>
+     <y>120</y>
+     <width>231</width>
+     <height>251</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_3" >
+   <property name="geometry" >
+    <rect>
+     <x>60</x>
+     <y>60</y>
+     <width>191</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Node's attribute (NHX format)</string>
+   </property>
+  </widget>
+  <widget class="QCheckBox" name="useAllFeatures" >
+   <property name="geometry" >
+    <rect>
+     <x>20</x>
+     <y>370</y>
+     <width>221</width>
+     <height>24</height>
+    </rect>
+   </property>
+   <property name="text" >
+    <string>Include all attributes in nodes</string>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>nwFormat</sender>
+   <signal>activated(QString)</signal>
+   <receiver>Newick</receiver>
+   <slot>update_newick()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>250</x>
+     <y>32</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>99</x>
+     <y>32</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>pushButton</sender>
+   <signal>released()</signal>
+   <receiver>Newick</receiver>
+   <slot>add_feature()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>162</x>
+     <y>82</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>271</x>
+     <y>132</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>pushButton_2</sender>
+   <signal>released()</signal>
+   <receiver>Newick</receiver>
+   <slot>del_feature()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>242</x>
+     <y>98</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>266</x>
+     <y>82</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>useAllFeatures</sender>
+   <signal>released()</signal>
+   <receiver>Newick</receiver>
+   <slot>set_custom_features()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>218</x>
+     <y>383</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>287</x>
+     <y>382</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>update_newick()</slot>
+  <slot>add_feature()</slot>
+  <slot>del_feature()</slot>
+  <slot>set_custom_features()</slot>
+ </slots>
+</ui>
diff --git a/ete3/treeview/show_support.png b/ete3/treeview/show_support.png
new file mode 100644
index 0000000..e8a2a94
Binary files /dev/null and b/ete3/treeview/show_support.png differ
diff --git a/ete3/treeview/svg_colors.py b/ete3/treeview/svg_colors.py
new file mode 100644
index 0000000..11bce89
--- /dev/null
+++ b/ete3/treeview/svg_colors.py
@@ -0,0 +1,566 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+
+import random
+import colorsys
+from six.moves import range
+
+all = ["SVG_COLORS", "COLOR_SCHEMES", "random_color"]
+
+SVG_COLORS = set([
+    "indianred", # 	CD5C5C 	2059292
+    "lightcoral", # 	F08080 	240128128
+    "salmon", # 	FA8072 	250128114
+    "darksalmon", # 	E9967A 	233150122
+    "lightsalmon", # 	FFA07A 	255160122
+    "crimson", # 	DC143C 	2202060
+    "red", # 	FF0000 	25500
+    "firebrick", # 	B22222 	1783434
+    "darkred", # 	8B0000 	13900
+    "pink", # 	FFC0CB 	255192203
+    "lightpink", # 	FFB6C1 	255182193
+    "hotpink", # 	FF69B4 	255105180
+    "deeppink", # 	FF1493 	25520147
+    "mediumvioletred", # 	C71585 	19921133
+    "palevioletred", # 	DB7093 	219112147
+    "lightsalmon", # 	FFA07A 	255160122
+    "coral", # 	FF7F50 	25512780
+    "tomato", # 	FF6347 	2559971
+    "orangered", # 	FF4500 	255690
+    "darkorange", # 	FF8C00 	2551400
+    "orange", # 	FFA500 	2551650
+    "gold", # 	FFD700 	2552150
+    "yellow", # 	FFFF00 	2552550
+    "lightyellow", # 	FFFFE0 	255255224
+    "lemonchiffon", # 	FFFACD 	255250205
+    "lightgoldenrodyellow", # 	FAFAD2 	250250210
+    "papayawhip", # 	FFEFD5 	255239213
+    "moccasin", # 	FFE4B5 	255228181
+    "peachpuff", # 	FFDAB9 	255218185
+    "palegoldenrod", # 	EEE8AA 	238232170
+    "khaki", # 	F0E68C 	240230140
+    "darkkhaki", # 	BDB76B 	189183107
+    "lavender", # 	E6E6FA 	230230250
+    "thistle", # 	D8BFD8 	216191216
+    "plum", # 	DDA0DD 	221160221
+    "violet", # 	EE82EE 	238130238
+    "orchid", # 	DA70D6 	218112214
+    "fuchsia", # 	FF00FF 	2550255
+    "magenta", # 	FF00FF 	2550255
+    "mediumorchid", # 	BA55D3 	18685211
+    "mediumpurple", # 	9370DB 	147112219
+    "amethyst", # 	9966CC 	153102204
+    "blueviolet", # 	8A2BE2 	13843226
+    "darkviolet", # 	9400D3 	1480211
+    "darkorchid", # 	9932CC 	15350204
+    "darkmagenta", # 	8B008B 	1390139
+    "purple", # 	800080 	1280128
+    "indigo", # 	4B0082 	750130
+    "slateblue", # 	6A5ACD 	10690205
+    "darkslateblue", # 	483D8B 	7261139
+    "mediumslateblue", # 	7B68EE 	123104238
+    "greenyellow", # 	ADFF2F 	17325547
+    "chartreuse", # 	7FFF00 	1272550
+    "lawngreen", # 	7CFC00 	1242520
+    "lime", # 	00FF00 	02550
+    "limegreen", # 	32CD32 	5020550
+    "palegreen", # 	98FB98 	152251152
+    "lightgreen", # 	90EE90 	144238144
+    "mediumspringgreen", # 	00FA9A 	0250154
+    "springgreen", # 	00FF7F 	0255127
+    "mediumseagreen", # 	3CB371 	60179113
+    "seagreen", # 	2E8B57 	4613987
+    "forestgreen", # 	228B22 	3413934
+    "green", # 	008000 	01280
+    "darkgreen", # 	006400 	01000
+    "yellowgreen", # 	9ACD32 	15420550
+    "olivedrab", # 	6B8E23 	10714235
+    "olive", # 	808000 	1281280
+    "darkolivegreen", # 	556B2F 	8510747
+    "mediumaquamarine", # 	66CDAA 	102205170
+    "darkseagreen", # 	8FBC8F 	143188143
+    "lightseagreen", # 	20B2AA 	32178170
+    "darkcyan", # 	008B8B 	0139139
+    "teal", # 	008080 	0128128
+    "aqua", # 	00FFFF 	0255255
+    "cyan", # 	00FFFF 	0255255
+    "lightcyan", # 	E0FFFF 	224255255
+    "paleturquoise", # 	AFEEEE 	175238238
+    "aquamarine", # 	7FFFD4 	127255212
+    "turquoise", # 	40E0D0 	64224208
+    "mediumturquoise", # 	48D1CC 	72209204
+    "darkturquoise", # 	00CED1 	0206209
+    "cadetblue", # 	5F9EA0 	95158160
+    "steelblue", # 	4682B4 	70130180
+    "lightsteelblue", # 	B0C4DE 	176196222
+    "powderblue", # 	B0E0E6 	176224230
+    "lightblue", # 	ADD8E6 	173216230
+    "skyblue", # 	87CEEB 	135206235
+    "lightskyblue", # 	87CEFA 	135206250
+    "deepskyblue", # 	00BFFF 	0191255
+    "dodgerblue", # 	1E90FF 	30144255
+    "cornflowerblue", # 	6495ED 	100149237
+    "mediumslateblue", # 	7B68EE 	123104238
+    "royalblue", # 	4169E1 	65105225
+    "blue", # 	0000FF 	00255
+    "mediumblue", # 	0000CD 	00205
+    "darkblue", # 	00008B 	00139
+    "navy", # 	000080 	00128
+    "midnightblue", # 	191970 	2525112
+    "cornsilk", # 	FFF8DC 	255248220
+    "blanchedalmond", # 	FFEBCD 	255235205
+    "bisque", # 	FFE4C4 	255228196
+    "navajowhite", # 	FFDEAD 	255222173
+    "wheat", # 	F5DEB3 	245222179
+    "burlywood", # 	DEB887 	222184135
+    "tan", # 	D2B48C 	210180140
+    "rosybrown", # 	BC8F8F 	188143143
+    "sandybrown", # 	F4A460 	24416496
+    "goldenrod", # 	DAA520 	21816532
+    "darkgoldenrod", # 	B8860B 	18413411
+    "peru", # 	CD853F 	20513363
+    "chocolate", # 	D2691E 	21010530
+    "saddlebrown", # 	8B4513 	1396919
+    "sienna", # 	A0522D 	1608245
+    "brown", # 	A52A2A 	1654242
+    "maroon", # 	800000 	12800
+    "white", # 	FFFFFF 	255255255
+    "snow", # 	FFFAFA 	255250250
+    "honeydew", # 	F0FFF0 	240255240
+    "mintcream", # 	F5FFFA 	245255250
+    "azure", # 	F0FFFF 	240255255
+    "aliceblue", # 	F0F8FF 	240248255
+    "ghostwhite", # 	F8F8FF 	248248255
+    "whitesmoke", # 	F5F5F5 	245245245
+    "seashell", # 	FFF5EE 	255245238
+    "beige", # 	F5F5DC 	245245220
+    "oldlace", # 	FDF5E6 	253245230
+    "floralwhite", # 	FFFAF0 	255250240
+    "ivory", # 	FFFFF0 	255255240
+    "antiquewhite", # 	FAEBD7 	250235215
+    "linen", # 	FAF0E6 	250240230
+    "lavenderblush", # 	FFF0F5 	255240245
+    "mistyrose", # 	FFE4E1 	255228225
+    "gainsboro", # 	DCDCDC 	220220220
+    "lightgrey", # 	D3D3D3 	211211211
+    "silver", # 	C0C0C0 	192192192
+    "darkgray", # 	A9A9A9 	169169169
+    "gray", # 	808080 	128128128
+    "dimgray", # 	696969 	105105105
+    "lightslategray", # 	778899 	119136153
+    "slategray", # 	708090 	112128144
+    "darkslategray", # 	2F4F4F 	477979
+    "black"] ) # 	000000 	000
+
+# http://colorbrewer2.org/
+#schemas = {'Spectral': {3: [(252, 141, 89), (255, 255, 191), (153, 213, 148)], 4: [(215, 25, 28), (253, 174, 97), (171, 221, 164), (43, 131, 186)], 5: [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 221, 164), (43, 131, 186)], 6: [(213, 62, 79), (252, 141, 89), (254, 224, 139), (230, 245, 152), (153, 213, 148), (50, 136, 189)], 7: [(213, 62, 79), (252, 141, 89), (254, 224, 139), (255, 255, 191), (230, 245, 152), (153, 213, 148), (50, 136, 189)], 8: [(213, 62, 79), (244, 109, 67), [...]
+COLOR_SCHEMES = {'accent': ['#7fc97f',
+  '#beaed4',
+  '#fdc086',
+  '#ffff99',
+  '#386cb0',
+  '#f0027f',
+  '#bf5b17',
+  '#666666'],
+ 'blues': ['#f7fbff',
+  '#deebf7',
+  '#c6dbef',
+  '#9ecae1',
+  '#6baed6',
+  '#4292c6',
+  '#2171b5',
+  '#08519c',
+  '#08306b'],
+ 'brbg': ['#543005',
+  '#8c510a',
+  '#bf812d',
+  '#dfc27d',
+  '#f6e8c3',
+  '#f5f5f5',
+  '#c7eae5',
+  '#80cdc1',
+  '#35978f',
+  '#01665e',
+  '#003c30'],
+ 'bugn': ['#f7fcfd',
+  '#e5f5f9',
+  '#ccece6',
+  '#99d8c9',
+  '#66c2a4',
+  '#41ae76',
+  '#238b45',
+  '#006d2c',
+  '#00441b'],
+ 'bupu': ['#f7fcfd',
+  '#e0ecf4',
+  '#bfd3e6',
+  '#9ebcda',
+  '#8c96c6',
+  '#8c6bb1',
+  '#88419d',
+  '#810f7c',
+  '#4d004b'],
+ 'dark2': ['#1b9e77',
+  '#d95f02',
+  '#7570b3',
+  '#e7298a',
+  '#66a61e',
+  '#e6ab02',
+  '#a6761d',
+  '#666666'],
+ 'gnbu': ['#f7fcf0',
+  '#e0f3db',
+  '#ccebc5',
+  '#a8ddb5',
+  '#7bccc4',
+  '#4eb3d3',
+  '#2b8cbe',
+  '#0868ac',
+  '#084081'],
+ 'greens': ['#f7fcf5',
+  '#e5f5e0',
+  '#c7e9c0',
+  '#a1d99b',
+  '#74c476',
+  '#41ab5d',
+  '#238b45',
+  '#006d2c',
+  '#00441b'],
+ 'greys': ['#ffffff',
+  '#f0f0f0',
+  '#d9d9d9',
+  '#bdbdbd',
+  '#969696',
+  '#737373',
+  '#525252',
+  '#252525',
+  '#000000'],
+ 'orrd': ['#fff7ec',
+  '#fee8c8',
+  '#fdd49e',
+  '#fdbb84',
+  '#fc8d59',
+  '#ef6548',
+  '#d7301f',
+  '#b30000',
+  '#7f0000'],
+ 'oranges': ['#fff5eb',
+  '#fee6ce',
+  '#fdd0a2',
+  '#fdae6b',
+  '#fd8d3c',
+  '#f16913',
+  '#d94801',
+  '#a63603',
+  '#7f2704'],
+ 'prgn': ['#40004b',
+  '#762a83',
+  '#9970ab',
+  '#c2a5cf',
+  '#e7d4e8',
+  '#f7f7f7',
+  '#d9f0d3',
+  '#a6dba0',
+  '#5aae61',
+  '#1b7837',
+  '#00441b'],
+ 'paired': ['#a6cee3',
+  '#1f78b4',
+  '#b2df8a',
+  '#33a02c',
+  '#fb9a99',
+  '#e31a1c',
+  '#fdbf6f',
+  '#ff7f00',
+  '#cab2d6',
+  '#6a3d9a',
+  '#ffff99',
+  '#b15928'],
+ 'pastel1': ['#fbb4ae',
+  '#b3cde3',
+  '#ccebc5',
+  '#decbe4',
+  '#fed9a6',
+  '#ffffcc',
+  '#e5d8bd',
+  '#fddaec',
+  '#f2f2f2'],
+ 'pastel2': ['#b3e2cd',
+  '#fdcdac',
+  '#cbd5e8',
+  '#f4cae4',
+  '#e6f5c9',
+  '#fff2ae',
+  '#f1e2cc',
+  '#cccccc'],
+ 'piyg': ['#8e0152',
+  '#c51b7d',
+  '#de77ae',
+  '#f1b6da',
+  '#fde0ef',
+  '#f7f7f7',
+  '#e6f5d0',
+  '#b8e186',
+  '#7fbc41',
+  '#4d9221',
+  '#276419'],
+ 'pubu': ['#fff7fb',
+  '#ece7f2',
+  '#d0d1e6',
+  '#a6bddb',
+  '#74a9cf',
+  '#3690c0',
+  '#0570b0',
+  '#045a8d',
+  '#023858'],
+ 'pubugn': ['#fff7fb',
+  '#ece2f0',
+  '#d0d1e6',
+  '#a6bddb',
+  '#67a9cf',
+  '#3690c0',
+  '#02818a',
+  '#016c59',
+  '#014636'],
+ 'puor': ['#7f3b08',
+  '#b35806',
+  '#e08214',
+  '#fdb863',
+  '#fee0b6',
+  '#f7f7f7',
+  '#d8daeb',
+  '#b2abd2',
+  '#8073ac',
+  '#542788',
+  '#2d004b'],
+ 'purd': ['#f7f4f9',
+  '#e7e1ef',
+  '#d4b9da',
+  '#c994c7',
+  '#df65b0',
+  '#e7298a',
+  '#ce1256',
+  '#980043',
+  '#67001f'],
+ 'purples': ['#fcfbfd',
+  '#efedf5',
+  '#dadaeb',
+  '#bcbddc',
+  '#9e9ac8',
+  '#807dba',
+  '#6a51a3',
+  '#54278f',
+  '#3f007d'],
+ 'rdbu': ['#67001f',
+  '#b2182b',
+  '#d6604d',
+  '#f4a582',
+  '#fddbc7',
+  '#f7f7f7',
+  '#d1e5f0',
+  '#92c5de',
+  '#4393c3',
+  '#2166ac',
+  '#053061'],
+ 'rdgy': ['#67001f',
+  '#b2182b',
+  '#d6604d',
+  '#f4a582',
+  '#fddbc7',
+  '#ffffff',
+  '#e0e0e0',
+  '#bababa',
+  '#878787',
+  '#4d4d4d',
+  '#1a1a1a'],
+ 'rdpu': ['#fff7f3',
+  '#fde0dd',
+  '#fcc5c0',
+  '#fa9fb5',
+  '#f768a1',
+  '#dd3497',
+  '#ae017e',
+  '#7a0177',
+  '#49006a'],
+ 'rdylbu': ['#a50026',
+  '#d73027',
+  '#f46d43',
+  '#fdae61',
+  '#fee090',
+  '#ffffbf',
+  '#e0f3f8',
+  '#abd9e9',
+  '#74add1',
+  '#4575b4',
+  '#313695'],
+ 'rdylgn': ['#a50026',
+  '#d73027',
+  '#f46d43',
+  '#fdae61',
+  '#fee08b',
+  '#ffffbf',
+  '#d9ef8b',
+  '#a6d96a',
+  '#66bd63',
+  '#1a9850',
+  '#006837'],
+ 'reds': ['#fff5f0',
+  '#fee0d2',
+  '#fcbba1',
+  '#fc9272',
+  '#fb6a4a',
+  '#ef3b2c',
+  '#cb181d',
+  '#a50f15',
+  '#67000d'],
+ 'set1': ['#e41a1c',
+  '#377eb8',
+  '#4daf4a',
+  '#984ea3',
+  '#ff7f00',
+  '#ffff33',
+  '#a65628',
+  '#f781bf',
+  '#999999'],
+ 'set2': ['#66c2a5',
+  '#fc8d62',
+  '#8da0cb',
+  '#e78ac3',
+  '#a6d854',
+  '#ffd92f',
+  '#e5c494',
+  '#b3b3b3'],
+ 'set3': ['#8dd3c7',
+  '#ffffb3',
+  '#bebada',
+  '#fb8072',
+  '#80b1d3',
+  '#fdb462',
+  '#b3de69',
+  '#fccde5',
+  '#d9d9d9',
+  '#bc80bd',
+  '#ccebc5',
+  '#ffed6f'],
+ 'spectral': ['#9e0142',
+  '#d53e4f',
+  '#f46d43',
+  '#fdae61',
+  '#fee08b',
+  '#ffffbf',
+  '#e6f598',
+  '#abdda4',
+  '#66c2a5',
+  '#3288bd',
+  '#5e4fa2'],
+ 'ylgn': ['#ffffe5',
+  '#f7fcb9',
+  '#d9f0a3',
+  '#addd8e',
+  '#78c679',
+  '#41ab5d',
+  '#238443',
+  '#006837',
+  '#004529'],
+ 'ylgnbu': ['#ffffd9',
+  '#edf8b1',
+  '#c7e9b4',
+  '#7fcdbb',
+  '#41b6c4',
+  '#1d91c0',
+  '#225ea8',
+  '#253494',
+  '#081d58'],
+ 'ylorbr': ['#ffffe5',
+  '#fff7bc',
+  '#fee391',
+  '#fec44f',
+  '#fe9929',
+  '#ec7014',
+  '#cc4c02',
+  '#993404',
+  '#662506'],
+ 'ylorrd': ['#ffffcc',
+  '#ffeda0',
+  '#fed976',
+  '#feb24c',
+  '#fd8d3c',
+  '#fc4e2a',
+  '#e31a1c',
+  '#bd0026',
+  '#800026']}
+
+def random_color(h=None, l=None, s=None, num=None, sep=None, seed=None):
+    """ returns the RGB code of a random color. Hue (h), Lightness (l)
+    and Saturation (s) of the generated color could be fixed using the
+    pertinent function argument.  """
+    def rgb2hex(rgb):
+        return '#%02x%02x%02x' % rgb
+    def hls2hex(h, l, s):
+        return rgb2hex( tuple([int(x*255) for x in colorsys.hls_to_rgb(h, l, s)]))
+
+    if not h:
+        if seed:
+            random.seed(seed)
+        color = 1.0 / random.randint(1, 360)
+    else:
+        color = h
+
+    if not num:
+        n = 1
+        sep = 1
+    if not sep:
+        n = num
+        sep = (1.0/n)
+
+    evenly_separated_colors =  [color + (sep*n) for n in range(n)]
+
+    rcolors = []
+    for h in evenly_separated_colors:
+        if not s:
+            s = 0.5
+        if not l:
+            l = 0.5
+        rcolors.append(hls2hex(h, l, s))
+    if num:
+        return rcolors
+    else:
+        return rcolors[0]
diff --git a/ete3/treeview/templates.py b/ete3/treeview/templates.py
new file mode 100644
index 0000000..c3145b3
--- /dev/null
+++ b/ete3/treeview/templates.py
@@ -0,0 +1,73 @@
+from __future__ import absolute_import
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from .. import (PhyloTree, PhyloNode,
+                  ClusterTree, ClusterNode, EvolTree, EvolNode)
+from . import layouts
+import six
+
+def apply_template(tree_style, template):
+    for k, v in six.iteritems(template):
+        setattr(tree_style, k, v)
+
+phylogeny = {
+    "layout_fn": layouts.phylogeny,
+     "show_leaf_name":False,
+     "draw_guiding_lines":False
+    }
+
+evol = {
+    "layout_fn": layouts.evol_layout,
+     "show_leaf_name":True,
+     "draw_guiding_lines":False
+    }
+
+clustering = {
+    "layout_fn": layouts.large,
+    "show_leaf_name":False
+    }
+
+_DEFAULT_STYLE={
+    PhyloTree: phylogeny,
+    PhyloNode: phylogeny,
+    EvolTree: evol,
+    EvolNode: evol,
+    ClusterTree: clustering,
+    ClusterNode: clustering,
+    }
diff --git a/ete3/treeview/x_expand.png b/ete3/treeview/x_expand.png
new file mode 100644
index 0000000..5dafecf
Binary files /dev/null and b/ete3/treeview/x_expand.png differ
diff --git a/ete3/treeview/x_reduce.png b/ete3/treeview/x_reduce.png
new file mode 100644
index 0000000..42cbd36
Binary files /dev/null and b/ete3/treeview/x_reduce.png differ
diff --git a/ete3/treeview/y_expand.png b/ete3/treeview/y_expand.png
new file mode 100644
index 0000000..54f7302
Binary files /dev/null and b/ete3/treeview/y_expand.png differ
diff --git a/ete3/treeview/y_reduce.png b/ete3/treeview/y_reduce.png
new file mode 100644
index 0000000..074e358
Binary files /dev/null and b/ete3/treeview/y_reduce.png differ
diff --git a/ete3/treeview/zoom_in.png b/ete3/treeview/zoom_in.png
new file mode 100644
index 0000000..aaacd77
Binary files /dev/null and b/ete3/treeview/zoom_in.png differ
diff --git a/ete3/treeview/zoom_out.png b/ete3/treeview/zoom_out.png
new file mode 100644
index 0000000..c76277a
Binary files /dev/null and b/ete3/treeview/zoom_out.png differ
diff --git a/ete3/utils.py b/ete3/utils.py
new file mode 100644
index 0000000..e44a978
--- /dev/null
+++ b/ete3/utils.py
@@ -0,0 +1,226 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+from __future__ import absolute_import
+from __future__ import print_function
+import re
+import time
+
+import os
+import six
+from six.moves import range
+from six.moves import input
+
+try:
+    import numpy
+except ImportError:
+    mean = lambda v: sum(v)/len(v)
+else:
+    mean = numpy.mean
+
+# CONVERT shell colors to the same curses palette
+SHELL_COLORS = {
+    "wr": '\033[1;37;41m', # white on red
+    "wo": '\033[1;37;43m', # white on orange
+    "wm": '\033[1;37;45m', # white on magenta
+    "wb": '\033[1;37;46m', # white on blue
+    "bw": '\033[1;37;40m', # black on white
+    "lblue": '\033[1;34m', # light blue
+    "lred": '\033[1;31m', # light red
+    "lgreen": '\033[1;32m', # light green
+    "yellow": '\033[1;33m', # yellow
+    "cyan": '\033[36m', # cyan
+    "blue": '\033[34m', # blue
+    "green": '\033[32m', # green
+    "orange": '\033[33m', # orange
+    "red": '\033[31m', # red
+    "magenta": "\033[35m", # magenta
+    "white": "\033[0m", # white
+    None: "\033[0m", # end
+}
+
+
+def color(string, color):
+    return "%s%s%s" %(SHELL_COLORS[color], string, SHELL_COLORS[None])
+
+def clear_color(string):
+    return re.sub("\\033\[[^m]+m", "", string)
+
+def print_table(items, header=None, wrap=True, max_col_width=20,
+                wrap_style="wrap", row_line=False, fix_col_width=False, title=None):
+    ''' Prints a matrix of data as a human readable table. Matrix
+    should be a list of lists containing any type of values that can
+    be converted into text strings.
+
+    Two different column adjustment methods are supported through
+    the *wrap_style* argument:
+
+       wrap: it will wrap values to fit max_col_width (by extending cell height)
+       cut: it will strip values to max_col_width
+
+    If the *wrap* argument is set to False, column widths are set to fit all
+    values in each column.
+
+    This code is free software. Updates can be found at
+    https://gist.github.com/jhcepas/5884168
+
+
+    # print_table([[3,2, {"whatever":1, "bla":[1,2]}], [5,"this is a test\n             of wrapping text\n  with the new function",777], [1,1,1]],
+    #            header=[ "This is column number 1", "Column number 2", "col3"],
+    #            wrap=True, max_col_width=15, wrap_style='wrap',
+    #            row_line=True, fix_col_width=True)
+
+
+    # This is column  | Column number 2 | col3
+    # number 1        |                 |
+    # =============== | =============== | ===============
+    # 3               | 2               | {'bla': [1, 2],
+    #                 |                 |  'whatever': 1}
+    # --------------- | --------------- | ---------------
+    # 5               | this is a test  | 777
+    #                 |              of |
+    #                 |  wrapping text  |
+    #                 |   with the new  |
+    #                 | function        |
+    # --------------- | --------------- | ---------------
+    # 1               | 1               | 1
+    # =============== | =============== | ===============
+
+    '''
+    def safelen(string):
+        return len(clear_color(string))
+
+    if isinstance(fix_col_width, list):
+        c2maxw = dict([(i, fix_col_width[i]) for i in range(len(items[0]))])
+        wrap = True
+    elif fix_col_width == True:
+        c2maxw = dict([(i, max_col_width) for i in range(len(items[0]))])
+        wrap = True
+    elif not wrap:
+        c2maxw = dict([(i, max([safelen(str(e[i])) for e in items])) for i in range(len(items[0]))])
+    else:
+        c2maxw = dict([(i, min(max_col_width, max([safelen(str(e[i])) for e in items])))
+                        for i in range(len(items[0]))])
+        
+    if header:
+        current_item = -1
+        row = header
+        if wrap and not fix_col_width:
+            for col, maxw in six.iteritems(c2maxw):
+                c2maxw[col] = max(maxw, safelen(header[col]))
+                if wrap:
+                    c2maxw[col] = min(c2maxw[col], max_col_width)
+    else:
+        current_item = 0
+        row = items[current_item]
+
+    if title:
+        table_width = sum(c2maxw.values()) + (3*(len(c2maxw)-1))
+        print("-" *table_width)
+        print(title.center(table_width))
+        print("-" *table_width)
+        
+    while row:
+        is_extra = False
+        values = []
+        extra_line = [""]*len(row)
+        for col, val in enumerate(row):
+            cwidth = c2maxw[col]
+            wrap_width = cwidth
+            val = clear_color(str(val))
+            try:
+                newline_i = val.index("\n")
+            except ValueError:
+                pass
+            else:
+                wrap_width = min(newline_i+1, wrap_width)
+                val = val.replace("\n", " ", 1)
+            if wrap and safelen(val) > wrap_width:
+                if wrap_style == "cut":
+                    val = val[:wrap_width-1]+"+"
+                elif wrap_style == "wrap":
+                    extra_line[col] = val[wrap_width:]
+                    val = val[:wrap_width]
+            val = val.ljust(cwidth)
+            values.append(val)
+        print(' | '.join(values))
+        if not set(extra_line) - set(['']):
+            if header and current_item == -1:
+                print(' | '.join(['='*c2maxw[col] for col in range(len(row)) ]))
+            current_item += 1
+            try:
+                row = items[current_item]
+            except IndexError:
+                row = None
+        else:
+            row = extra_line
+            is_extra = True
+
+        if row_line and not is_extra and not (header and current_item == 0):
+            if row:
+                print(' | '.join(['-'*c2maxw[col] for col in range(len(row)) ]))
+            else:
+                print(' | '.join(['='*c2maxw[col] for col in range(len(extra_line)) ]))
+
+def ask_filename(text):
+    fname = ""
+    while not os.path.exists(fname):
+        fname = input(text)
+    return fname
+
+def ask(string,valid_values,default=-1,case_sensitive=False):
+    """ Asks for a keyborad answer """
+    v = None
+    if not case_sensitive:
+        valid_values = [value.lower() for value in valid_values]
+    while v not in valid_values:
+        v = input("%s [%s]" % (string,','.join(valid_values) ))
+        if v == '' and default>=0:
+            v = valid_values[default]
+        if not case_sensitive:
+            v = v.lower()
+    return v
+
+def timeit(f):
+    def a_wrapper_accepting_arguments(*args, **kargs):
+        t1 = time.time()
+        r = f(*args, **kargs)
+        print("    ", f.__name__, time.time() - t1, "seconds")
+        return r
+    return a_wrapper_accepting_arguments
+
diff --git a/ete3/version.py b/ete3/version.py
new file mode 100644
index 0000000..3925dc3
--- /dev/null
+++ b/ete3/version.py
@@ -0,0 +1,2 @@
+#autogenerated during release process. Do not modify
+__version__='3.0.0b35'
diff --git a/ete3/webplugin/__init__.py b/ete3/webplugin/__init__.py
new file mode 100644
index 0000000..daababf
--- /dev/null
+++ b/ete3/webplugin/__init__.py
@@ -0,0 +1,38 @@
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
diff --git a/ete3/webplugin/webapp.py b/ete3/webplugin/webapp.py
new file mode 100755
index 0000000..0ff106e
--- /dev/null
+++ b/ete3/webplugin/webapp.py
@@ -0,0 +1,346 @@
+from __future__ import absolute_import
+from __future__ import print_function
+# #START_LICENSE###########################################################
+#
+#
+# This file is part of the Environment for Tree Exploration program
+# (ETE).  http://etetoolkit.org
+#
+# ETE is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# ETE is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with ETE.  If not, see <http://www.gnu.org/licenses/>.
+#
+#
+#                     ABOUT THE ETE PACKAGE
+#                     =====================
+#
+# ETE is distributed under the GPL copyleft license (2008-2015).
+#
+# If you make use of ETE in published work, please cite:
+#
+# Jaime Huerta-Cepas, Joaquin Dopazo and Toni Gabaldon.
+# ETE: a python Environment for Tree Exploration. Jaime BMC
+# Bioinformatics 2010,:24doi:10.1186/1471-2105-11-24
+#
+# Note that extra references to the specific methods implemented in
+# the toolkit may be available in the documentation.
+#
+# More info at http://etetoolkit.org. Contact: huerta at embl.de
+#
+#
+# #END_LICENSE#############################################################
+import sys
+import os
+import time
+import cgi
+from hashlib import md5
+import six.moves.cPickle
+from six.moves import map
+
+ALL = ["WebTreeApplication"]
+
+class WebTreeApplication(object):
+    """ Provides a basic WSGI application object which can handle ETE
+        tree visualization and interactions.  Please, see the
+        webplugin example provided with the ETE installation package
+        (http://pypi.python.org/pypi/ete3)."""
+
+    def __init__(self):
+        # Redirects normal output msgs to stderr, since stdout in web
+        # application is for the browser
+        sys.stdout = sys.stderr
+
+        self.TreeConstructor = None
+        self.NODE_TARGET_ACTIONS = ["node", "face"]
+        self.TREE_TARGET_ACTIONS = ["layout", "search"]
+        self.actions = []
+        self._layout = None
+        self._tree_style = None
+        self._width = None
+        self._height = None
+        self._size_units = "px"
+        self._custom_tree_renderer = None
+        self._treeid2layout = {}
+        self._external_app_handler = None
+        self._treeid2tree = {}
+        self._treeid2cache = {}
+        self._treeid2index = {}
+        self.queries = {}
+        self.CONFIG = {
+            "temp_dir":"/var/www/webplugin/",
+            "temp_url":"http://localhost/webplugin/tmp",
+            "DISPLAY" :":0" # Used by ete to render images
+            }
+
+    def set_tree_size(self, w, h, units="px"):
+        """ Fix the size of tree image """
+        self._width = w
+        self._height = h
+        self._size_units = units
+
+    def set_external_app_handler(self, handler):
+        """ Sets a custom function that will extend current WSGI
+        application."""
+        self._external_app_handler = handler
+
+    def set_external_tree_renderer(self, handler):
+        """ If the tree needs to be processed every time is going to
+        be drawn, the task can be delegated. """
+        self._custom_tree_renderer = handler
+
+    def register_action(self, name, target, handler, checker, html_generator):
+        """ Adds a new web interactive function associated to tree
+        nodes. """
+        self.actions.append([name, target, handler, checker, html_generator])
+
+    def set_tree_loader(self, TreeConstructor):
+        """ Delegate tree constructor. It allows to customize the Tree
+        class used to create new tree instances. """
+        self._tree = TreeConstructor
+
+    def set_default_layout_fn(self, layout_fn):
+        """ Fix the layout function used to render the tree. """
+        self._layout = layout_fn
+
+    def set_tree_style(self, handler):
+        """ Fix a :class:`TreeStyle` instance to render tree images. """
+        self._tree_style = handler
+
+    def _get_html_map(self, img_map, treeid, mapid, tree):
+        # Scans for node-enabled actions.
+        nid2actions = {}
+        nid2face_actions = {}
+        for n in tree.traverse():
+            for aindex, (action, target, handler, checker, html_generator) in enumerate(self.actions):
+                if target == "node" and (not checker or checker(n)):
+                    nid2actions.setdefault(int(n._nid), []).append(aindex)
+                elif target == "face" and (not checker or checker(n)):
+                    nid2face_actions.setdefault(int(n._nid), []).append(aindex)
+
+        html_map = '<MAP NAME="%s"  class="ete_tree_img">' %(mapid)
+        if img_map["nodes"]:
+            for x1, y1, x2, y2, nodeid, text in img_map["nodes"]:
+                text = "" if not text else text
+                area = img_map["node_areas"].get(int(nodeid), [0,0,0,0])
+                html_map += """ <AREA SHAPE="rect" COORDS="%s,%s,%s,%s" onMouseOut='unhighlight_node();' onMouseOver='highlight_node("#%s", "%s", %s, %s, %s, %s);' onClick='show_context_menu("%s", "%s", "%s");' href="javascript:void('%s');">""" %\
+                    (int(x1), int(y1), int(x2), int(y2),
+                     treeid, text, area[0], area[1], area[2]-area[0], area[3]-area[1],
+                     treeid, nodeid, ','.join(map(str, nid2actions.get(nodeid,[]))), str(nodeid) )
+
+        if img_map["faces"]:
+            for x1, y1, x2, y2, nodeid, text in img_map["faces"]:
+                text = "" if not text else text
+                area = img_map["node_areas"].get(int(nodeid), [0,0,0,0])
+                html_map += """ <AREA SHAPE="rect" COORDS="%s,%s,%s,%s" onMouseOut='unhighlight_node(); hide_face_popup();' onMouseOver='highlight_node("#%s", "%s", %s, %s, %s, %s); show_face_popup("%s", "%s", "%s", "%s");' onClick='show_context_menu("%s", "%s", "%s", "%s");' href="javascript:void('%s');">""" %\
+                    (int(x1),int(y1),int(x2),int(y2),
+                     treeid, text, area[0], area[1], area[2]-area[0], area[3]-area[1],
+                     treeid, nodeid, ','.join(map(str, nid2actions.get(nodeid,[])+nid2face_actions.get(nodeid,[])  )), text,
+                     treeid, nodeid, ','.join(map(str, nid2actions.get(nodeid,[])+nid2face_actions.get(nodeid,[])  )), text,
+                     text,
+                     )
+
+        html_map += '</MAP>'
+        return html_map
+
+    def _load_tree(self, treeid, tree=None, cache_file=None):
+        # if a tree is given, it overwrites previous versions
+        if tree and isinstance(tree, str):
+            tree = self._tree(tree)
+            self._treeid2tree[treeid] = tree
+            self._load_tree_index(treeid)
+        elif tree:
+            self._treeid2tree[treeid] = tree
+            self._load_tree_index(treeid)
+
+        self._treeid2cache[treeid] = cache_file if cache_file else "%s.pkl" %treeid
+
+        # if no tree is given, and not in memmory, it tries to loaded
+        # from previous sessions
+        if treeid not in self._treeid2tree:
+            self._load_tree_from_path(self._treeid2cache[treeid])
+
+        # Returns True if tree and indexes are loaded
+        return (treeid in self._treeid2tree) and (treeid in self._treeid2index)
+
+    def _load_tree_from_path(self, pkl_path):
+        tree_path = os.path.join(self.CONFIG["temp_dir"], pkl_path)
+        if os.path.exists(tree_path):
+            print(six.moves.cPickle.load(open(tree_path)))
+            t = self._treeid2tree[treeid] = six.moves.cPickle.load(open(tree_path))
+            self._load_tree_index(treeid)
+            return True
+        else:
+            return False
+
+    def _load_tree_index(self, treeid):
+        if not self._treeid2index.get(treeid, {}):
+            tree_index = self._treeid2index[treeid] = {}
+            t = self._treeid2tree[treeid]
+            for n in t.traverse():
+                if hasattr(n, "_nid"):
+                    tree_index[str(n._nid)] = n
+            return True
+        else:
+            return False
+
+    def _dump_tree_to_file(self, t, treeid):
+        tree_path = os.path.join(self.CONFIG["temp_dir"], treeid+".pkl")
+        six.moves.cPickle.dump(t, open(tree_path, "w"))
+        #open(tree_path, "w").write(t.write(features=[]))
+
+    def _get_tree_img(self, treeid, pre_drawing_action=None):
+        img_url = os.path.join(self.CONFIG["temp_url"], treeid+".png?"+str(time.time()))
+        img_path = os.path.join(self.CONFIG["temp_dir"], treeid+".png")
+
+        t = self._treeid2tree[treeid]
+        tree_index = self._treeid2index[treeid]
+
+        if pre_drawing_action:
+            atype, handler, arguments = pre_drawing_action
+            if atype in set(["node", "face"]) and len(arguments)==1 and handler:
+                nid = arguments[0]
+                node = tree_index.get(str(nid), None)
+                handler(node)
+            elif atype == "tree":
+                handler(t, arguments[0])
+            elif atype == "search":
+                handler(t, arguments[0])
+            elif atype == "layout":
+                self._treeid2layout[treeid] = handler
+
+        layout_fn = self._treeid2layout.get(treeid, self._layout)
+        mapid = "img_map_"+str(time.time())
+        img_map = _render_tree(t, img_path, self.CONFIG["DISPLAY"], layout = layout_fn,
+                               tree_style = self._tree_style,
+                               w=self._width,
+                               h=self._height,
+                               units=self._size_units)
+        html_map = self._get_html_map(img_map, treeid, mapid, t)
+        for n in t.traverse():
+            self._treeid2index[treeid][str(n._nid)]=n
+            if hasattr(n, "_QtItem_"):
+                n._QtItem_ = None
+                delattr(n, "_QtItem_")
+
+        tree_actions = []
+        for aindex, (action, target, handler, checker, html_generator) in enumerate(self.actions):
+            if target in self.TREE_TARGET_ACTIONS and (not checker or checker(t)):
+                tree_actions.append(aindex)
+
+        try:
+            version_tag = __version__
+        except NameError:
+            version_tag = "ete3"
+
+        self._dump_tree_to_file(t, treeid)
+
+        ete_publi = '<div style="margin:0px;padding:0px;text-align:left;"><a href="http://etetoolkit.org" style="font-size:7pt;" target="_blank" >%s</a></div>' %\
+            (version_tag)
+        img_html = """<img id="%s" class="ete_tree_img" src="%s" USEMAP="#%s" onLoad='javascript:bind_popup();' onclick='javascript:show_context_menu("%s", "", "%s");' >""" %\
+            (treeid, img_url, mapid, treeid, ','.join(map(str, tree_actions)))
+
+        tree_div_id = "ETE_tree_"+str(treeid)
+        return html_map+ '<div id="%s" >'%tree_div_id + img_html + ete_publi + "</div>"
+
+    # WSGI web application
+    def __call__(self, environ, start_response):
+        """ This function is executed when the application is called
+        by the WSGI apache module. It is, therefore, in charge of
+        answering web requests."""
+        path = environ['PATH_INFO'].split("/")
+        start_response('202 OK', [('content-type', 'text/plain')])
+        if environ['REQUEST_METHOD'].upper() == 'GET' and  environ['QUERY_STRING']:
+            self.queries = cgi.parse_qs(environ['QUERY_STRING'])
+        elif environ['REQUEST_METHOD'].upper() == 'POST' and environ['wsgi.input']:
+            self.queries = cgi.parse_qs(environ['wsgi.input'].read())
+        else:
+            self.queries = {}
+
+        method = path[1]
+        treeid = self.queries.get("treeid", [None])[0]
+        nodeid = self.queries.get("nid", [None])[0]
+        textface = self.queries.get("textface", [None])[0]
+        actions = self.queries.get("show_actions", [None])[0]
+        tree = self.queries.get("tree", [None])[0]
+        search_term = self.queries.get("search_term", [None])[0]
+        aindex = self.queries.get("aindex", [None])[0]
+
+        if method == "draw":
+            # if not treeid is given, generate one
+            if not treeid:
+                treeid = md5(str(time.time())).hexdigest()
+
+            if not self._load_tree(treeid, tree):
+                return "draw: Cannot load the tree: %s" %treeid
+
+            if self._custom_tree_renderer:
+                t = self._treeid2tree[treeid]
+                return self._custom_tree_renderer(t, treeid, self)
+            elif t and treeid:
+                return self._get_tree_img(treeid=treeid)
+            else:
+                return "No tree to draw"
+
+        elif method == "get_menu":
+            if not self._load_tree(treeid):
+                return "get_menu: Cannot load the tree: %s" %treeid
+
+            if nodeid:
+                tree_index = self._treeid2index[treeid]
+                node = tree_index[nodeid]
+            else:
+                node = None
+
+            if textface:
+                header = str(textface).strip()
+            else:
+                header = "Menu"
+            html = """<div id="ete_popup_header"><span id="ete_popup_header_text">%s</span><div id="ete_close_popup" onClick='hide_popup();'></div></div><ul>""" %\
+                (header)
+            for i in map(int, actions.split(",")):
+                aname, target, handler, checker, html_generator = self.actions[i]
+                if html_generator:
+                    html += html_generator(i, treeid, nodeid, textface, node)
+                else:
+                    html += """<li><a  href='javascript:void(0);' onClick='hide_popup(); run_action("%s", "%s", "%s");'> %s </a></li> """ %\
+                        (treeid, nodeid, i, aname)
+            html += '</ul>'
+            return html
+
+        elif method == "action":
+            if not self._load_tree(treeid):
+                return "action: Cannot load the tree: %s" %treeid
+
+            if aindex is None:
+                # just refresh tree
+                return self._get_tree_img(treeid=treeid)
+            else:
+                aname, target, handler, checker, html_generator = self.actions[int(aindex)]
+
+            if target in set(["node", "face", "layout"]):
+                return self._get_tree_img(treeid=treeid, pre_drawing_action=[target, handler, [nodeid]])
+            elif target in set(["search"]):
+                return self._get_tree_img(treeid=treeid, pre_drawing_action=[target, handler, [search_term]])
+            elif target in set(["refresh"]):
+                return self._get_tree_img(treeid=treeid)
+            return "Bad guy"
+
+        elif self._external_app_handler:
+            return self._external_app_handler(environ, start_response, self.queries)
+        else:
+            return  '\n'.join(map(str, list(environ.items()))) + str(self.queries) + '\t\n'.join(environ['wsgi.input'])
+
+def _render_tree(t, img_path, display, layout=None, tree_style=None,
+                 w=None, h=None, units="px"):
+    os.environ["DISPLAY"]=display
+    return t.render(img_path, layout = layout, tree_style=tree_style,
+                    w=w, h=h, units=units)
diff --git a/examples/clustering/bubbles_validation.py b/examples/clustering/bubbles_validation.py
new file mode 100644
index 0000000..b005de4
--- /dev/null
+++ b/examples/clustering/bubbles_validation.py
@@ -0,0 +1,64 @@
+from ete3 import ClusterTree, TreeStyle, AttrFace, ProfileFace, TextFace
+from ete3.treeview.faces import add_face_to_node
+
+# To operate with numbers efficiently
+import numpy
+
+PATH = "./"
+# Loads tree and array
+t = ClusterTree(PATH+"diauxic.nw", PATH+"diauxic.array")
+
+# nodes are linked to the array table
+array =  t.arraytable
+
+# Calculates some stats on the matrix. Needed to establish the color
+# gradients.
+matrix_dist = [i for r in xrange(len(array.matrix))\
+               for i in array.matrix[r] if numpy.isfinite(i)]
+matrix_max = numpy.max(matrix_dist)
+matrix_min = numpy.min(matrix_dist)
+matrix_avg = matrix_min+((matrix_max-matrix_min)/2)
+
+# Creates a profile face that will represent node's profile as a
+# heatmap
+profileFace  = ProfileFace(matrix_max, matrix_min, matrix_avg, \
+                                         200, 14, "heatmap")
+cbarsFace = ProfileFace(matrix_max,matrix_min,matrix_avg,200,70,"cbars")
+nameFace = AttrFace("name", fsize=8)
+# Creates my own layout function that uses previous faces
+def mylayout(node):
+    # If node is a leaf
+    if node.is_leaf():
+        # And a line profile
+        add_face_to_node(profileFace, node, 0, aligned=True)
+        node.img_style["size"]=0
+        add_face_to_node(nameFace, node, 1, aligned=True)
+
+    # If node is internal
+    else:
+        # If silhouette is good, creates a green bubble
+        if node.silhouette>0:
+            validationFace = TextFace("Silh=%0.2f" %node.silhouette,
+                                      "Verdana", 10, "#056600")
+            node.img_style["fgcolor"]="#056600"
+        # Otherwise, use red bubbles
+        else:
+            validationFace = TextFace("Silh=%0.2f" %node.silhouette,
+                                      "Verdana", 10, "#940000")
+            node.img_style["fgcolor"]="#940000"
+
+        # Sets node size proportional to the silhouette value.
+        node.img_style["shape"]="sphere"
+        if node.silhouette<=1 and node.silhouette>=-1:
+            node.img_style["size"]= 15+int((abs(node.silhouette)*10)**2)
+
+        # If node is very internal, draw also a bar diagram
+        # with the average expression of the partition
+        add_face_to_node(validationFace, node, 0)
+        if len(node)>100:
+            add_face_to_node(cbarsFace, node, 1)
+
+# Use my layout to visualize the tree
+ts = TreeStyle()
+ts.layout_fn = mylayout
+t.show(tree_style=ts)
diff --git a/examples/clustering/cluster_visualization.py b/examples/clustering/cluster_visualization.py
new file mode 100644
index 0000000..fdea911
--- /dev/null
+++ b/examples/clustering/cluster_visualization.py
@@ -0,0 +1,36 @@
+# Import Tree instance and faces module
+from ete3 import ClusterTree
+# Example of a minimalistic numerical matrix. It is encoded as a text
+# string for convenience, but it usally be loaded from a text file.
+matrix = """
+#Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7
+A\t-1.23\t-0.81\t1.79\t0.78\t-0.42\t-0.69\t0.58
+B\t-1.76\t-0.94\t1.16\t0.36\t0.41\t-0.35\t1.12
+C\t-2.19\t0.13\t0.65\t-0.51\t0.52\t1.04\t0.36
+D\t-1.22\t-0.98\t0.79\t-0.76\t-0.29\t1.54\t0.93
+E\t-1.47\t-0.83\t0.85\t0.07\t-0.81\t1.53\t0.65
+F\t-1.04\t-1.11\t0.87\t-0.14\t-0.80\t1.74\t0.48
+G\t-1.57\t-1.17\t1.29\t0.23\t-0.20\t1.17\t0.26
+H\t-1.53\t-1.25\t0.59\t-0.30\t0.32\t1.41\t0.77
+"""
+print "Example numerical matrix"
+print matrix
+# #Names  col1    col2    col3    col4    col5    col6    col7
+# A       -1.23   -0.81   1.79    0.78    -0.42   -0.69   0.58
+# B       -1.76   -0.94   1.16    0.36    0.41    -0.35   1.12
+# C       -2.19   0.13    0.65    -0.51   0.52    1.04    0.36
+# D       -1.22   -0.98   0.79    -0.76   -0.29   1.54    0.93
+# E       -1.47   -0.83   0.85    0.07    -0.81   1.53    0.65
+# F       -1.04   -1.11   0.87    -0.14   -0.80   1.74    0.48
+# G       -1.57   -1.17   1.29    0.23    -0.20   1.17    0.26
+# H       -1.53   -1.25   0.59    -0.30   0.32    1.41    0.77
+#
+#
+# We load a tree structure whose leaf nodes correspond to rows in the
+# numerical matrix. We use the text_array argument to link the tree
+# with numerical matrix.
+t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));", text_array=matrix)
+t.show("heatmap")
+t.show("cluster_cbars")
+t.show("cluster_bars")
+t.show("cluster_lines")
diff --git a/examples/clustering/clustering_tree.py b/examples/clustering/clustering_tree.py
new file mode 100644
index 0000000..e9b0f74
--- /dev/null
+++ b/examples/clustering/clustering_tree.py
@@ -0,0 +1,102 @@
+from ete3 import ClusterTree
+
+# Example of a minimalistic numerical matrix. It is encoded as a text
+# string for convenience, but it usally be loaded from a text file.
+matrix = """
+#Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7
+A\t-1.23\t-0.81\t1.79\t0.78\t-0.42\t-0.69\t0.58
+B\t-1.76\t-0.94\t1.16\t0.36\t0.41\t-0.35\t1.12
+C\t-2.19\t0.13\t0.65\t-0.51\t0.52\t1.04\t0.36
+D\t-1.22\t-0.98\t0.79\t-0.76\t-0.29\t1.54\t0.93
+E\t-1.47\t-0.83\t0.85\t0.07\t-0.81\t1.53\t0.65
+F\t-1.04\t-1.11\t0.87\t-0.14\t-0.80\t1.74\t0.48
+G\t-1.57\t-1.17\t1.29\t0.23\t-0.20\t1.17\t0.26
+H\t-1.53\t-1.25\t0.59\t-0.30\t0.32\t1.41\t0.77
+"""
+print "Example numerical matrix"
+print matrix
+# #Names  col1    col2    col3    col4    col5    col6    col7
+# A       -1.23   -0.81   1.79    0.78    -0.42   -0.69   0.58
+# B       -1.76   -0.94   1.16    0.36    0.41    -0.35   1.12
+# C       -2.19   0.13    0.65    -0.51   0.52    1.04    0.36
+# D       -1.22   -0.98   0.79    -0.76   -0.29   1.54    0.93
+# E       -1.47   -0.83   0.85    0.07    -0.81   1.53    0.65
+# F       -1.04   -1.11   0.87    -0.14   -0.80   1.74    0.48
+# G       -1.57   -1.17   1.29    0.23    -0.20   1.17    0.26
+# H       -1.53   -1.25   0.59    -0.30   0.32    1.41    0.77
+#
+#
+# We load a tree structure whose leaf nodes correspond to rows in the
+# numerical matrix. We use the text_array argument to link the tree
+# with numerical matrix.
+t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));", text_array=matrix)
+print "Example tree", t
+#                              /-A
+#                    /--------|
+#                   |          \-B
+#          /--------|
+#         |         |          /-C
+#         |          \--------|
+#         |                   |          /-D
+#---------|                    \--------|
+#         |                              \-E
+#         |
+#         |          /-F
+#          \--------|
+#                   |          /-G
+#                    \--------|
+#                              \-H
+
+# Now we can ask the numerical profile associated to each node
+A = t.search_nodes(name='A')[0]
+print "A associated profile:\n", A.profile
+# [-1.23 -0.81  1.79  0.78 -0.42 -0.69  0.58]
+#
+# Or we can ask for the mean numerical profile of an internal
+# partition, which is computed as the average of all vectors under the
+# the given node.
+cluster = t.get_common_ancestor("E", "A")
+print "Internal cluster mean profile:\n", cluster.profile
+#[-1.574 -0.686  1.048 -0.012 -0.118  0.614  0.728]
+#
+# We can also obtain the std. deviation vector of the mean profile
+print "Internal cluster std deviation profile:\n", cluster.deviation
+#[ 0.36565558  0.41301816  0.40676283  0.56211743  0.50704635  0.94949671
+#  0.26753691]
+# If would need to re-link the tree to a different matrix or use
+# different matrix for different sub parts of the tree, we can use the
+# link_to_arraytable method()
+#
+# Creates a matrix with all values = 1
+matrix_ones = """
+#Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7
+A\t1\t1\t1\t1\t1\t1\t1
+B\t1\t1\t1\t1\t1\t1\t1
+C\t1\t1\t1\t1\t1\t1\t1
+D\t1\t1\t1\t1\t1\t1\t1
+E\t1\t1\t1\t1\t1\t1\t1
+F\t1\t1\t1\t1\t1\t1\t1
+G\t1\t1\t1\t1\t1\t1\t1
+H\t1\t1\t1\t1\t1\t1\t1
+"""
+# Creates a matrix with all values = 0
+matrix_zeros = """
+#Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7
+A\t0\t0\t0\t0\t0\t0\t0
+B\t0\t0\t0\t0\t0\t0\t0
+C\t0\t0\t0\t0\t0\t0\t0
+D\t0\t0\t0\t0\t0\t0\t0
+E\t0\t0\t0\t0\t0\t0\t0
+F\t0\t0\t0\t0\t0\t0\t0
+G\t0\t0\t0\t0\t0\t0\t0
+H\t0\t0\t0\t0\t0\t0\t0
+"""
+# Re-associate left part of the tree with matrix of 1s, and right part
+# with matrix of 0s. Note that rows without matches in both are
+# obviated from association.
+t.children[0].link_to_arraytable(matrix_ones)
+t.children[1].link_to_arraytable(matrix_zeros)
+print "A profile (using matrix with 1s", (t&"A").profile
+print "H profile (using matrix with 0s)", (t&"H").profile
+#A profile (using matrix with 1s [ 1.  1.  1.  1.  1.  1.  1.]
+#H profile (using matrix with 0s) [ 0.  0.  0.  0.  0.  0.  0.]
diff --git a/examples/clustering/diauxic.array b/examples/clustering/diauxic.array
new file mode 100644
index 0000000..775ce55
--- /dev/null
+++ b/examples/clustering/diauxic.array
@@ -0,0 +1,835 @@
+#NAMES	col1  	col2	col3	col4	col5	col6	col7
+YGR138C	-1.23	-0.81	1.79	0.78	-0.42	-0.69	0.58
+YPR156C	-1.76	-0.94	1.16	0.36	0.41	-0.35	1.12
+YOR230W	-2.19	0.13	0.65	-0.51	0.52	1.04	0.36
+YAL018C	-1.22	-0.98	0.79	-0.76	-0.29	1.54	0.93
+YBR287W	-1.47	-0.83	0.85	0.07	-0.81	1.53	0.65
+YCL075W	-1.04	-1.11	0.87	-0.14	-0.80	1.74	0.48
+YDR055w	-1.57	-1.17	1.29	0.23	-0.20	1.17	0.26
+YOR358W	-1.53	-1.25	0.59	-0.30	0.32	1.41	0.77
+YBR006W	-1.76	-0.72	0.13	-0.01	-0.23	1.30	1.28
+YBR241C	-1.39	-0.42	-0.08	-0.29	-0.65	1.85	0.98
+YCR021c	-1.52	-0.99	0.26	0.04	-0.42	1.43	1.19
+YCR061W	-1.57	-0.39	0.33	-0.54	-0.51	1.59	1.09
+YDL024c	-1.27	-1.14	0.57	-0.30	-0.47	1.46	1.14
+YDR298C	-1.49	-0.87	0.41	-0.47	-0.25	1.38	1.29
+YER141w	-1.69	-0.60	0.00	0.41	-0.62	1.45	1.05
+YER158c	-1.54	-1.15	0.28	-0.05	0.16	0.60	1.69
+YGR028W	-1.69	-0.59	-0.05	-0.37	0.00	1.44	1.26
+YGR149W	-1.35	-1.18	0.20	0.09	-0.41	1.21	1.45
+YIR038C	-1.16	-0.94	-0.04	-0.28	-0.51	1.74	1.19
+YJL155C	-1.37	-0.77	-0.14	-0.48	-0.15	1.53	1.38
+YLR297W	-1.74	-0.14	-0.20	-0.25	-0.36	1.59	1.09
+YLR423C	-1.44	-0.90	0.04	-0.55	0.16	1.59	1.11
+YOL083W	-1.30	-0.84	-0.29	-0.54	0.12	1.18	1.68
+YOR049C	-1.17	-1.23	-0.02	-0.45	0.06	1.50	1.30
+YPL087W	-1.36	-1.19	0.16	0.02	-0.30	1.43	1.25
+YBR052C	-1.53	-0.93	-0.06	0.41	-0.27	1.77	0.62
+YBR054W	-1.46	-1.36	0.09	0.34	0.05	1.44	0.91
+YBR056W	-1.47	-1.20	-0.06	0.48	-0.21	1.42	1.04
+YBR183W	-1.20	-1.23	-0.41	0.28	0.05	1.84	0.67
+YCL040w	-1.63	-1.15	-0.01	-0.04	1.13	1.23	0.48
+YCL042W	-1.26	-0.93	-0.45	-0.32	1.52	1.39	0.04
+YDL021W	-1.49	-1.25	-0.31	0.23	0.52	1.39	0.92
+YDR032c	-1.52	-1.16	0.04	0.22	0.30	1.76	0.34
+YDR342C	-1.52	-1.16	-0.41	0.42	0.62	1.53	0.53
+YDR343C	-1.70	-0.91	-0.27	0.53	0.01	0.86	1.48
+YER053c	-1.64	-1.03	-0.30	0.22	0.36	0.98	1.42
+YER150w	-1.28	-1.12	-0.35	-0.07	0.01	1.47	1.35
+YGR194C	-1.54	-0.83	-0.40	0.06	-0.01	1.54	1.18
+YGR244C	-1.35	-1.06	-0.45	-0.23	0.42	1.53	1.14
+YHR092C	-1.62	-1.01	-0.25	0.58	0.56	1.62	0.12
+YIL111W	-1.21	-0.97	-0.40	0.05	0.43	2.06	0.04
+YIR039C	-1.13	-1.48	-0.09	0.30	-0.21	1.29	1.32
+YJL079C	-1.95	-0.82	0.28	-0.05	0.71	1.30	0.52
+YJL164C	-1.19	-1.28	-0.34	0.73	-0.34	1.57	0.85
+YJR073C	-1.39	-1.20	-0.33	0.01	0.42	1.58	0.91
+YKL035W	-1.27	-0.74	-0.27	0.31	-0.27	2.14	0.09
+YMR250W	-1.50	-1.03	-0.54	0.14	0.41	1.21	1.32
+YMR297W	-1.81	-0.81	-0.17	0.05	0.38	0.94	1.42
+YNL160W	-1.27	-1.17	-0.42	-0.07	0.19	1.49	1.26
+YOR136W	-1.40	-0.87	-0.32	-0.39	0.19	1.63	1.16
+YOR273C	-1.26	-1.13	-0.47	0.13	-0.07	1.31	1.48
+YOR347C	-1.77	-0.76	-0.29	0.03	0.50	1.53	0.76
+Ydr021w	-1.35	-1.02	-0.52	-0.29	0.63	1.52	1.03
+YPL154C	-1.79	-1.02	0.05	0.14	0.60	1.41	0.60
+YBL078C	-1.03	-0.80	-0.51	-0.41	-0.33	1.63	1.45
+YBR072W	-1.11	-0.77	-0.81	-0.30	0.06	1.73	1.20
+YBR139W	-1.19	-0.72	-0.81	0.03	-0.24	1.22	1.69
+YBR149W	-0.99	-0.72	-0.85	-0.49	0.09	1.78	1.17
+YBR169C	-1.00	-0.96	-0.84	-0.15	0.02	1.61	1.32
+YBR204C	-1.11	-1.27	-0.57	0.07	0.12	1.38	1.38
+YDL022w	-0.95	-1.10	-0.96	0.19	0.10	1.66	1.07
+YDL023c	-0.93	-0.88	-1.30	0.15	0.30	1.35	1.32
+YDL091c	-0.90	-0.80	-0.71	-0.52	-0.13	1.69	1.38
+YDR001C	-0.99	-1.11	-0.56	-0.01	-0.28	1.60	1.35
+YDR077W	-1.23	-0.95	-0.88	-0.07	0.60	1.62	0.90
+YDR171W	-0.91	-0.87	-0.66	-0.35	-0.28	1.65	1.43
+YDR178W	-1.17	-1.02	-0.42	-0.15	-0.19	1.45	1.50
+YDR231C	-1.02	-1.06	-0.54	-0.34	-0.03	1.54	1.43
+YDR258C	-1.04	-0.68	-1.02	-0.01	-0.23	1.53	1.43
+YDR513W	-0.90	-0.90	-0.64	-0.60	0.02	1.73	1.28
+YDR529C	-0.90	-1.06	-0.67	-0.16	-0.19	1.29	1.70
+YEL024w	-1.17	-0.94	-0.57	-0.16	-0.08	1.21	1.71
+YFL014W	-1.33	-0.94	-0.77	-0.06	0.42	1.40	1.27
+YFR015C	-1.26	-1.01	-0.68	0.32	-0.14	1.39	1.37
+YFR033C	-0.74	-0.93	-0.78	-0.46	-0.12	1.79	1.25
+YGL006W	-1.11	-1.00	-1.00	0.17	0.22	1.45	1.27
+YGL187C	-1.09	-0.87	-0.58	-0.43	-0.02	1.40	1.60
+YGL191W	-0.74	-0.85	-0.75	-0.75	0.06	1.58	1.45
+YGR008C	-1.17	-1.06	-0.60	0.05	-0.01	1.74	1.05
+YGR019W	-0.99	-1.06	-0.40	-0.30	-0.28	1.56	1.46
+YGR088W	-0.81	-0.88	-0.77	-0.38	-0.21	1.77	1.28
+YGR174C	-0.94	-0.93	-0.60	-0.35	-0.22	1.74	1.30
+YHL021C	-1.34	-0.84	-0.38	-0.08	-0.25	1.65	1.24
+YIL087C	-1.11	-1.06	-0.40	-0.21	-0.16	1.62	1.33
+YIL107C	-1.01	-0.91	-0.92	-0.22	0.14	1.44	1.48
+YKL085W	-1.02	-1.04	-0.79	-0.21	0.19	1.58	1.30
+YKL103C	-1.38	-0.80	-0.67	-0.16	0.39	1.75	0.87
+YKL148C	-1.09	-0.82	-0.47	-0.67	0.07	1.51	1.48
+YKL150W?1	-0.88	-0.65	-0.85	-0.39		1.62	1.14
+YKR016W	-1.16	-0.98	-0.32	-0.33	-0.18	1.66	1.30
+YKR067W	-1.15	-1.04	-0.73	-0.24	0.41	1.18	1.56
+YLL026w	-0.88	-0.88	-1.07	-0.12	0.03	1.33	1.59
+YLL041c	-1.15	-1.20	-0.62	-0.07	0.27	1.34	1.41
+YLR178C	-1.05	-1.04	-0.88	-0.08	0.38	1.75	0.92
+YLR258W	-1.26	-0.97	-0.94	0.31	0.38	1.61	0.87
+YLR294C	-0.66	-1.15	-0.64	-0.46	-0.08	1.75	1.24
+YLR299W	-0.96	-0.69	-0.99	-0.55	0.31	1.30	1.59
+YLR304C	-1.20	-0.74	-0.81	-0.15	0.07	0.97	1.84
+YLR327C	-0.96	-1.07	-0.75	-0.13	0.00	1.73	1.17
+YLR345W	-1.20	-0.81	-0.73	-0.12	-0.10	1.48	1.48
+YLR395C	-1.01	-1.10	-0.44	-0.58	0.32	1.11	1.70
+YML100W	-1.15	-0.87	-1.10	0.26	0.22	1.14	1.51
+YML120C	-0.73	-1.13	-0.75	-0.35	-0.02	1.38	1.61
+YML128C	-1.19	-0.98	-0.46	-0.07	-0.21	1.72	1.19
+YMR105C	-1.30	-0.91	-0.74	0.25	-0.03	1.62	1.12
+YMR110C	-0.97	-0.75	-0.67	-0.61	-0.05	1.69	1.36
+YMR133W	-1.41	-0.78	-0.39	-0.41	0.16	1.57	1.26
+YMR196W	-1.12	-1.06	-0.93	0.26	0.25	1.65	0.95
+YNL015W	-0.97	-1.19	-0.45	-0.18	-0.10	1.77	1.12
+YNL055C	-0.86	-1.25	-0.45	-0.13	-0.24	1.74	1.18
+YNL100W	-1.05	-1.10	-0.77	-0.12	0.20	1.52	1.32
+YNL144C	-0.97	-1.04	-0.71	-0.37	0.14	1.48	1.46
+YOL048C	-1.01	-0.80	-0.46	-0.36	-0.44	1.72	1.36
+YOL053C	-1.01	-1.08	-0.80	0.04	0.07	1.78	1.00
+YOR215C	-0.89	-0.95	-0.66	-0.34	-0.21	1.73	1.31
+YOR317W	-1.31	-0.61	-0.77	-0.32	0.11	1.37	1.53
+YOR374W	-1.26	-0.72	-0.88	-0.16	0.17	1.42	1.43
+YPL078C	-1.00	-1.04	-0.60	-0.73	0.75	1.16	1.45
+YPL230W	-0.98	-0.77	-0.95	0.05	-0.32	1.52	1.46
+YPR149W	-0.98	-1.04	-0.70	-0.18	-0.05	1.32	1.64
+YDR258C	-1.04	-0.68	-1.02	-0.01	-0.23	1.53	1.43
+YAL060W	-0.91	-0.63	-0.78	-0.32	-0.38	1.92	1.11
+YBL038W	-0.85	-0.98	-0.71	-0.38	-0.05	1.83	1.15
+YBL064C	-0.77	-1.04	-0.48	-0.34	-0.44	1.77	1.29
+YBR269C	-0.79	-1.01	-0.76	-0.35	-0.05	1.84	1.12
+YCL035C	-0.98	-0.63	-0.38	-0.21	-0.69	2.07	0.82
+YDL004W	-0.88	-1.01	-0.62	-0.34	-0.08	1.91	1.02
+YDR031w	-1.02	-0.78	-0.47	-0.53	-0.04	2.05	0.80
+YDR074W	-1.06	-0.99	-0.93	0.32	0.21	1.88	0.57
+YDR272W	-0.85	-0.92	-0.39	-0.30	-0.36	2.15	0.66
+YDR272W	-0.85	-0.92	-0.39	-0.30	-0.36	2.15	0.66
+YDR277C	-1.23	-0.86	-0.39	-0.60	0.25	1.72	1.11
+YDR516C	-1.26	-0.69	-0.48	0.02	-0.08	2.14	0.35
+YEL039c	-0.72	-0.95	-0.61	-0.37	-0.40	1.89	1.15
+YER035w	-0.73	-0.78	-0.74	-0.75	0.15	2.00	0.85
+YER067w	-1.04	-0.85	-0.34	-0.10	-0.66	1.77	1.22
+YER182w	-0.81	-0.81	-0.59	-0.71	-0.05	1.97	0.98
+YFR053C	-0.91	-0.72	-0.63	0.12	0.74	2.07	-0.67
+YGL037C	-1.07	-0.88	-0.98	-0.01	0.33	1.85	0.76
+YGL121C	-1.12	-0.59	-0.59	-0.65	-0.04	1.79	1.20
+YGL199C	-0.73	-1.02	-0.67	-0.44	0.01	2.02	0.84
+YGR248W	-1.00	-1.06	-0.51	-0.35	0.14	1.94	0.84
+YHR104W	-0.81	-0.83	-0.43	-0.32	-0.40	2.21	0.58
+YIL113W	-0.73	-0.75	-0.70	-0.35	-0.47	2.04	0.95
+YIL136W	-1.22	-0.72	-0.38	-0.71	0.39	1.92	0.72
+YIL162W	-0.85	-0.49	-0.05	-0.50	-0.87	2.16	0.60
+YJL144W	-0.91	-0.96	-0.18	-0.26	-0.56	2.03	0.84
+YJL151C	-0.87	-0.63	-0.52	-0.77	-0.23	1.94	1.08
+YJR096W	-1.20	-0.57	-0.59	-0.45	0.13	2.06	0.63
+YKL026C	-0.82	-0.79	-0.66	-0.50	-0.31	1.84	1.24
+YKL142W	-1.08	-0.70	-0.70	-0.37	0.29	2.11	0.45
+YKL151C	-1.09	-0.68	-0.29	-0.25	-0.66	1.92	1.05
+YKL193C	-0.69	-0.78	-0.92	-0.44	-0.09	2.02	0.90
+YLL023C	-0.91	-0.93	-0.26	-0.31	-0.48	2.06	0.83
+YLR080W?1	-0.83	-0.98	-0.63	-0.22		1.74	0.93
+YLR270W	-0.72	-0.85	-0.61	-0.21	-0.45	2.16	0.68
+YLR356W?1	-1.29		-0.62	-0.29	-0.33	1.79	0.74
+YML004C	-0.92	-0.16	-0.63	-0.79	-0.39	2.07	0.82
+YMR030W	-0.89	-0.89	-0.38	-0.43	-0.43	1.91	1.12
+YMR090W	-1.18	-0.84	-0.21	-0.54	0.32	2.08	0.37
+YMR170C	-0.74	-0.69	-0.72	-0.53	-0.31	2.05	0.94
+YMR195W	-1.23	-0.65	-0.60	-0.54	0.40	1.95	0.67
+YNL045W	-1.17	-0.78	-0.15	-0.63	-0.17	1.87	1.04
+YNL115C	-1.21	-0.57	-0.25	-0.92	0.09	1.75	1.11
+YNL173C	-0.94	-1.11	-0.74	0.03	-0.02	1.88	0.89
+YNL200C	-1.14	-1.00	-0.71	-0.04	0.16	1.83	0.90
+YNL274C	-0.91	-0.86	-0.54	-0.23	-0.39	2.04	0.88
+YNL305C	-1.04	-0.77	-0.28	-0.73	0.21	2.10	0.51
+YNR073C	-0.69	-0.67	-0.45	-0.61	-0.55	2.12	0.85
+YOL071W	-0.90	-0.96	-0.23	-0.40	-0.52	1.83	1.19
+YOR052C	-0.87	-0.62	-0.35	-0.40	-0.62	2.17	0.68
+YOR161C	-1.21	-0.87	-0.48	0.07	-0.20	2.00	0.69
+YOR220W	-0.80	-1.09	-0.21	-0.29	-0.61	1.80	1.20
+YPL004C	-0.99	-0.54	-0.96	-0.45	0.09	1.94	0.91
+YAL034C	-1.04	-0.01	-0.34	-0.87	-0.73	1.35	1.64
+YBL043W	-0.87	-0.34	-0.39	-0.59	-0.89	1.37	1.72
+YBL049W	-0.87	-0.31	-0.29	-0.54	-1.05	1.46	1.59
+YBR046C	-0.78	0.37	-1.09	-0.60	-0.76	1.63	1.22
+YCR039c	-0.91	0.09	-0.47	-0.73	-0.93	1.76	1.20
+YCR091w	-1.00	-0.30	-0.64	-0.33	-0.75	1.86	1.17
+YDL079C	-0.76	0.77	-0.65	-0.97	-0.85	1.83	0.63
+YDL085w	-0.78	0.20	-0.63	-0.79	-0.92	1.13	1.79
+YDL204w	-0.87	-0.09	-0.96	-0.49	-0.60	1.79	1.23
+YDL218w	-0.84	0.11	-0.51	-0.91	-0.84	1.32	1.66
+YDL223c	-0.62	0.11	-0.30	-0.66	-1.33	0.95	1.85
+YDR003W	-1.16	0.64	-1.07	-0.47	-0.54	1.63	0.96
+YDR018c	-0.99	0.71	-0.47	-1.03	-0.87	1.25	1.39
+YDR313C	-0.52	-0.06	-0.41	-0.88	-1.10	1.77	1.20
+YIL097W	-0.80	-0.35	-0.55	-0.66	-0.76	1.67	1.46
+YJL141C	-1.03	-0.30	-0.34	-0.74	-0.57	1.93	1.05
+YKL093W	-0.82	-0.27	-0.29	-0.71	-0.98	1.57	1.49
+YLR164W?1	-0.83		-0.78	-0.46	-0.71	1.63	1.15
+YLR168C	-0.95	-0.32	-0.29	-0.61	-0.90	1.53	1.54
+YMR139W	-0.86	-0.39	-0.93	-0.35	-0.56	1.66	1.43
+YNL093W	-1.28	0.33	-0.48	-0.46	-0.89	1.65	1.14
+YBL048W	-0.69	-0.39	-0.60	-0.67	-0.77	1.72	1.41
+YBL075C	-0.48	-0.83	-0.57	-0.69	-0.57	1.45	1.69
+YBR067C	-0.67	-0.65	-0.40	-0.66	-0.76	1.44	1.70
+YBR101C	-0.65	-0.67	-0.52	-0.75	-0.57	1.50	1.65
+YBR147W	-0.80	-0.43	-0.73	-0.65	-0.51	1.78	1.34
+YDR070c	-0.70	-0.62	-0.64	-0.70	-0.43	1.93	1.16
+YGR236C	-0.49	-0.52	-0.59	-0.72	-0.81	1.76	1.37
+YGR238C	-0.75	-0.65	-0.34	-0.77	-0.63	1.55	1.59
+YGR243W	-0.64	-0.60	-0.67	-0.54	-0.69	1.81	1.33
+YJL067W	-0.89	-0.60	-0.69	-0.61	-0.34	1.65	1.48
+YKL016C	-0.69	-0.82	-0.71	-0.64	-0.25	1.71	1.40
+YKL217W	-0.82	-0.58	-0.52	-0.74	-0.47	1.49	1.65
+YLR216C	-0.45	-0.62	-0.58	-0.56	-0.77	2.10	0.88
+YLR217W	-0.38	-0.47	-0.88	-0.75	-0.60	1.86	1.22
+YLR219W	-0.79	-0.57	-0.41	-0.67	-0.68	1.78	1.34
+YLR295C	-0.54	-0.78	-0.96	-0.41	-0.42	1.66	1.44
+YMR107W	-0.76	-0.63	-0.58	-0.67	-0.51	1.58	1.57
+YNL037C	-0.86	-0.59	-0.74	-0.43	-0.52	1.54	1.60
+YNL134C	-0.62	-0.69	-0.69	-0.66	-0.49	1.72	1.42
+YNL194C	-0.81	-0.61	-0.55	-0.73	-0.44	1.72	1.41
+YNL202W	-0.76	-0.72	-0.44	-0.87	-0.33	1.53	1.59
+YOR031W	-0.46	-0.70	-0.70	-0.71	-0.52	1.94	1.13
+YBR116C	-0.66	-0.32	-0.46	-0.71	-0.92	1.23	1.84
+YDL020C	-0.14	-0.68	-0.61	-0.74	-0.91	1.65	1.43
+YDR043C	-0.57	-0.50	-0.38	-0.38	-1.19	1.24	1.78
+YDR262w	-0.26	-0.36	-0.45	-1.24	-0.70	1.35	1.66
+YEL065w	1.17	0.08	0.01	-1.45	-1.40	0.41	1.17
+YGR146C	-0.29	-0.15	-0.46	-1.20	-0.87	1.31	1.67
+YGR256W	-0.31	-0.39	-0.14	-1.38	-0.69	1.66	1.26
+YJR155W	-0.14	-0.43	-0.68	-0.89	-0.92	1.58	1.48
+YKL163W	-0.42	-0.25	0.06	-1.29	-0.98	1.52	1.35
+YNL036W	0.52	-0.34	-0.98	-0.95	-0.99	1.43	1.31
+YOR027W	-0.12	-0.30	-0.84	-1.08	-0.66	1.30	1.71
+YPL135W	-0.44	-0.44	-0.57	-0.87	-0.77	1.33	1.77
+YOL109W	-0.43	-0.38	0.24	-0.63	-1.54	1.15	1.59
+YAL067C	-0.98	-0.76	0.21	-0.83	-0.59	1.64	1.30
+YBR053C	-0.78	-0.74	0.12	-0.20	-1.26	1.70	1.16
+YBR203W	-0.69	-0.70	-0.53	-0.45	-0.75	1.82	1.30
+YBR214W	-0.97	-0.67	-0.21	-0.20	-0.93	1.81	1.17
+YBR280C	-0.73	-0.69	-0.31	-0.43	-0.84	1.99	1.02
+YDL169C	-0.77	-0.95	-0.40	-0.60	-0.38	1.59	1.52
+YDL245C	-0.52	-0.79	0.10	-0.42	-1.29	1.40	1.51
+YDR148C	-1.16	-0.46	-0.01	-0.66	-0.68	1.75	1.21
+YDR255C	-0.80	-0.73	-0.15	-0.08	-1.20	1.41	1.54
+YDR329C	-0.81	-0.71	-0.29	-0.81	-0.48	1.78	1.31
+YDR533C	-0.86	-0.74	-0.28	-0.42	-0.78	1.73	1.35
+YER098w	-0.84	-0.92	0.13	-0.32	-1.00	1.45	1.50
+YER142c	-0.92	-0.51	0.19	-0.38	-1.25	1.55	1.33
+YER175c	-0.90	-0.81	-0.15	-0.52	-0.71	1.56	1.52
+YGL045W	-0.87	-0.77	-0.38	-0.80	-0.28	1.61	1.48
+YGL059W	-1.15	-0.91	0.43	-0.07	-1.00	1.51	1.18
+YGR043C	-0.71	-0.90	-0.47	-0.50	-0.53	1.81	1.29
+YGR052W	-1.30	-0.75	0.45	-0.46	-0.70	1.49	1.27
+YGR066C	-0.68	-0.83	0.03	-0.65	-0.88	1.72	1.30
+YGR130C	-0.62	-0.70	-0.50	-0.40	-0.82	1.95	1.11
+YGR201C	-0.85	-1.07	0.34	-0.47	-0.81	1.59	1.28
+YGR289C	-0.81	-0.61	-0.16	-0.79	-0.68	1.85	1.20
+YHR195W	-0.90	-0.59	-0.04	-0.70	-0.65	2.06	0.82
+YJL153C	-1.16	-0.44	0.27	-0.53	-1.00	1.50	1.36
+YJL161W	-0.69	-0.88	-0.60	-0.45	-0.52	1.60	1.54
+YJR008W	-1.00	-0.59	0.19	-0.28	-1.19	1.56	1.31
+YJR080C	-0.80	-0.55	0.03	-0.25	-1.32	1.64	1.25
+YKR058W	-0.91	-0.87	-0.42	-0.32	-0.57	1.71	1.38
+YLL001w	-0.91	-0.71	-0.36	-0.33	-0.78	1.56	1.54
+YLR271W	-1.02	-0.58	-0.65	-0.36	-0.48	1.75	1.34
+YMR271C	-0.86	-0.90	-0.12	-0.77	-0.38	1.70	1.33
+YMR311C	-0.59	-0.84	-0.51	-0.52	-0.58	2.00	1.04
+YMR322C	-0.74	-0.65	-0.45	-0.36	-0.91	1.45	1.67
+YNR007C	-0.72	-0.76	-0.61	-0.42	-0.61	1.84	1.27
+YOL032W	-0.77	-0.74	-0.41	-0.52	-0.61	1.97	1.09
+YOL053W	-1.19	-0.52	0.40	-0.54	-0.95	1.47	1.34
+YOR178C	-0.94	-0.83	-0.25	-0.47	-0.60	1.69	1.40
+YOR289W	-0.99	-1.10	-0.06	-0.26	-0.57	1.58	1.39
+YOR386W	-1.10	-0.70	0.17	-0.18	-1.02	1.73	1.10
+YPL185W	-0.84	-0.81	-0.53	-0.15	-0.74	1.68	1.39
+YPL186C	-0.78	-0.94	-0.20	-0.52	-0.65	1.55	1.55
+YPR150W	-0.71	-0.95	-0.55	-0.49	-0.42	1.71	1.40
+YBL015W	-0.76	-0.64	-0.67	-0.60	-0.46	1.32	1.81
+YBL099W	-1.07	-1.04	-0.07	-0.66	0.21	0.68	1.96
+YBL100C	-0.95	-0.85	-0.59	-0.36	0.04	0.57	2.14
+YBR039W	-0.64	-1.04	-0.10	-0.77	-0.37	0.96	1.96
+YBR132C	-1.40	-0.83	0.30	-0.27	-0.55	1.18	1.57
+YDL181W	-1.32	-0.44	-0.43	-0.02	-0.71	1.26	1.67
+YDR059C	-1.00	-1.24	-0.08	-0.56	0.09	1.04	1.75
+YDR085C	-1.31	-0.70	0.25	-0.72	-0.37	1.43	1.42
+YEL011w	-1.15	-0.78	-0.47	-0.17	-0.47	1.40	1.62
+YER079w	-0.90	-1.16	-0.18	-0.33	-0.38	1.18	1.77
+YFL030W	-1.11	-0.77	-0.11	-0.56	-0.27	0.80	2.03
+YGL259W	-0.98	-0.91	-0.35	-0.19	-0.45	0.87	2.02
+YGR070W	-0.89	-0.59	-0.85	-0.58	-0.15	1.37	1.70
+YGR142W	-0.97	-0.79	-0.50	-0.50	-0.24	1.11	1.90
+YGR250C	-0.86	-1.10	-0.35	-0.68	0.07	1.13	1.78
+YHL024W	-1.13	-0.78	0.01	-0.50	-0.54	1.12	1.82
+YHR051W	-0.74	-0.91	-0.75	-0.52	-0.15	1.36	1.70
+YIL101C	-0.85	-0.97	-0.29	-0.09	-0.82	1.35	1.66
+YJL103C	-1.01	-0.60	-0.68	-0.58	-0.20	1.35	1.72
+YJR048W	-0.75	-0.86	-0.58	-0.69	-0.13	1.09	1.92
+YJR121W	-0.86	-0.89	-0.58	-0.44	-0.13	0.85	2.05
+YKL109W	-0.99	-0.66	-0.22	-0.58	-0.62	1.24	1.81
+YKL141W	-0.89	-1.11	-0.55	-0.39	0.05	1.05	1.85
+YLR038c	-0.72	-0.91	-0.58	-0.96	0.27	1.20	1.70
+YLR149C	-0.88	-0.77	-0.83	-0.17	-0.42	1.44	1.64
+YLR312C	-0.91	-0.96	-0.31	-0.14	-0.59	0.92	1.99
+YML054C	-1.01	-0.62	-0.21	-0.65	-0.58	1.30	1.76
+YMR031C	-1.17	-0.95	-0.42	-0.39	0.27	0.72	1.95
+YMR056C	-1.02	-1.03	-0.43	-0.42	0.11	0.83	1.96
+YMR081C	-0.93	-1.05	-0.14	-0.73	-0.13	1.39	1.59
+YMR136W	-1.52	-0.57	0.33	-0.53	-0.46	1.36	1.38
+YMR181C	-0.99	-1.07	0.02	-0.07	-0.81	1.41	1.50
+YMR191W	-1.03	-0.81	-0.28	-0.38	-0.54	1.23	1.80
+YNL052W	-0.87	-0.88	-0.73	-0.55	0.03	1.24	1.76
+YNR001C	-1.02	-0.78	-0.60	-0.54	-0.08	1.26	1.76
+YOL117W	-1.13	-0.84	-0.05	-0.19	-0.75	1.37	1.60
+YOL126C	-0.46	-0.64	-0.52	-1.17	-0.23	1.26	1.76
+YOL153C	-1.19	-0.73	-0.09	-0.78	-0.06	1.00	1.85
+YOR035C	-1.30	-0.27	-0.38	-0.89	-0.05	1.20	1.69
+YOR065W	-0.82	-0.90	-0.64	-0.69	0.12	1.04	1.88
+YOR100C	-1.16	-0.77	-0.09	-0.34	-0.49	0.88	1.98
+YPL165C	-1.15	-0.68	-0.41	-0.54	-0.29	1.44	1.61
+YPL201C?1	-0.84	-0.75		-0.65	-0.54	1.16	1.63
+YPL223C	-0.75	-0.90	-0.55	-0.43	-0.49	1.35	1.76
+YPR020W	-0.84	-0.93	-0.55	-0.56	-0.21	1.47	1.62
+YPR098C	-1.15	-1.07	0.00	-0.33	-0.20	0.82	1.92
+YPR184W	-0.85	-0.71	-0.89	-0.41	-0.05	0.90	2.00
+YAL054C	-0.85	-0.51	-0.38	-0.51	-0.59	0.64	2.20
+YDR125C	-0.90	-0.44	-0.42	-0.68	-0.64	1.20	1.87
+YDR216W	-0.58	-0.46	-0.80	-0.69	-0.59	1.30	1.81
+YEL012w	-0.55	-0.79	-0.40	-0.38	-0.85	0.93	2.04
+YER024w	-0.60	-0.49	-0.24	-0.67	-0.78	0.54	2.24
+YGL062W	0.28	0.36	-0.89	-0.67	-0.68	-0.58	2.18
+YIL125W	-0.69	-0.35	-0.54	-0.81	-0.41	0.56	2.23
+YJL089W	-0.82	-0.58	-0.49	-0.45	-0.50	0.64	2.21
+YJL163C	-0.66	-0.73	-0.57	-0.39	-0.65	0.92	2.07
+YKL187C	-0.53	-0.52	-0.41	-0.70	-0.88	1.08	1.96
+YLR259C	-0.29	-0.45	-1.30	-0.50	-0.39	1.05	1.88
+YLR311C	-0.78	-0.74	-0.50	-0.33	-0.62	0.90	2.07
+YNL009W	-0.47	-1.02	-0.38	-0.55	-0.58	1.02	1.98
+YOL084W?1	-0.89	-0.47		-0.59	-0.67	0.69	1.93
+YPL262W	-0.49	-0.57	-0.56	-0.73	-0.64	0.90	2.09
+YPR030W	-0.71	-0.45	-0.44	-0.82	-0.63	1.08	1.97
+YBL045C	-0.84	-0.92	-0.14	-0.32	-0.74	1.03	1.93
+YBR001C	-0.76	-0.97	-0.01	0.19	-1.17	0.91	1.80
+YBR117C	-0.49	-0.17	-0.12	-0.85	-1.22	0.95	1.90
+YBR298C	-0.88	-0.55	-0.22	-0.85	-0.53	1.15	1.88
+YCR005c	-0.72	-0.35	-0.13	-0.60	-1.06	0.83	2.04
+YDL199c	-0.80	-0.22	-0.29	-0.55	-1.12	1.15	1.83
+YGL153W	-0.69	-0.60	-0.16	-0.54	-1.01	1.14	1.87
+YGR110W	-0.42	-0.54	0.00	-0.70	-1.12	0.72	2.06
+YHL032C	-0.72	-0.65	-0.12	-0.80	-0.72	1.11	1.91
+YHR096C	-0.76	-0.69	-0.04	-0.35	-0.94	0.65	2.12
+YJL045W	-0.78	-0.62	0.04	-0.50	-0.93	0.68	2.11
+YJL137C	-0.60	-0.42	-0.19	-0.45	-1.23	0.90	1.98
+YJR095W	-0.91	-0.81	0.27	-0.57	-0.60	0.48	2.13
+YKR076W	-0.81	-0.72	-0.31	-0.48	-0.74	1.19	1.88
+YLR174W	-0.69	-0.84	0.02	-0.49	-0.71	0.51	2.19
+YLR267W	-0.65	-0.42	-0.29	-0.64	-0.99	1.01	1.98
+YML042W	-0.83	-0.60	-0.01	-0.65	-0.93	1.25	1.77
+YMR114C	-1.38	-0.26	1.39	-0.76	-0.67	0.24	1.42
+YMR206W	-0.78	-0.71	-0.41	-0.40	-0.77	1.19	1.88
+YOR019W	-1.01	-0.52	0.15	-0.99	-0.55	1.20	1.73
+YOR391C	-0.70	-0.78	-0.11	-0.54	-0.90	1.21	1.82
+YCR054C	0.31	0.46	0.79	-1.08	-0.73	1.60	-1.35
+YKL061W	1.42	-0.64	-0.67	-0.17	-0.26	1.57	-1.24
+YLR109W	1.05	0.88	-1.06	-1.42	0.39	1.03	-0.87
+YBL054W	1.39	1.03	0.80	-1.24	-0.79	-0.09	-1.10
+YBR034C	0.87	1.15	1.22	-0.90	-0.87	-0.10	-1.36
+YGR177C	0.53	1.29	0.86	-0.77	-1.06	0.63	-1.49
+YKL078W	0.94	1.00	1.07	-0.68	-0.46	-0.05	-1.82
+YKL106W	1.65	0.86	0.36	-0.41	-1.11	0.05	-1.41
+YKR024C	0.81	1.03	0.94	-0.71	-1.19	0.58	-1.46
+YLR380W	1.58	0.87	0.52	-0.57	-0.61	-0.13	-1.66
+YMR310C	1.53	0.47	0.66	-0.64	-0.55	0.32	-1.79
+YOR271C	1.25	0.77	0.93	-0.83	-0.84	0.30	-1.58
+YPL256C	1.06	0.94	0.42	-0.13	-0.51	0.33	-2.11
+YBR247C	1.01	0.80	0.96	-0.28	-0.11	-0.31	-2.06
+YBR267W	1.35	0.70	1.15	-0.51	-0.80	-0.35	-1.54
+YCLX02C	1.07	1.32	0.69	-0.39	-0.39	-0.54	-1.75
+YCR058C	0.81	1.64	0.56	-0.29	-0.28	-0.92	-1.53
+YDL151c	1.06	1.53	0.42	-0.17	-0.40	-0.92	-1.53
+YDR384C	1.32	1.07	0.79	-0.16	-0.82	-0.65	-1.54
+YDR465C	1.06	1.03	1.09	-0.24	-0.49	-0.80	-1.64
+YFL022C	1.25	1.27	0.62	-0.24	-0.52	-0.85	-1.54
+YGR159C	1.16	0.97	1.04	-0.50	-0.54	-0.41	-1.71
+YGR280C	1.23	1.02	0.85	-0.66	-0.21	-0.53	-1.72
+YHR206W	1.64	1.23	0.23	-0.57	-0.62	-0.60	-1.30
+YIL019W	1.38	0.57	1.25	-0.36	-1.21	-0.45	-1.18
+YIL065C	1.30	0.88	0.66	-0.19	-0.10	-0.64	-1.91
+YJL194W	1.90	0.88	-0.07	-0.51	-0.39	-0.37	-1.44
+YKR056W	1.29	0.96	0.95	-0.52	-0.31	-0.78	-1.60
+YLL012W	1.55	1.18	0.29	-0.55	-0.26	-0.71	-1.50
+YLR073C	1.22	0.98	1.07	-0.60	-0.29	-0.88	-1.49
+YLR214W	1.70	1.04	0.41	-0.61	-0.74	-0.51	-1.30
+YLR293C	1.45	0.84	0.68	-0.23	-0.29	-0.70	-1.76
+YMR093W	1.25	1.19	0.67	-0.26	-0.34	-0.91	-1.60
+YMR259C	1.18	1.20	0.72	-0.03	-0.63	-0.87	-1.58
+YNR038W	1.51	1.10	0.54	-0.27	-0.60	-0.86	-1.43
+YOL019W	1.19	1.47	0.54	-0.69	-0.64	-0.43	-1.44
+YOL101C	1.03	1.13	1.16	-0.38	-0.62	-0.94	-1.37
+YOR272W	1.14	0.94	1.14	-0.70	-0.70	-0.23	-1.58
+YOR294W	0.95	0.93	1.33	-0.50	-0.64	-0.48	-1.60
+YPL043W	1.06	0.91	1.27	-0.58	-0.51	-0.53	-1.60
+YPL126W	1.12	1.17	0.82	-0.10	-0.53	-0.83	-1.65
+YPR144C	1.11	1.17	0.95	-0.41	-0.33	-0.97	-1.51
+YBL068W	1.49	0.84	1.04	-0.49	-0.98	-0.93	-0.96
+YBR158W	1.37	1.37	0.50	-0.63	-0.44	-1.11	-1.07
+YBR186W	0.30	1.85	0.90	-0.25	-0.92	-0.94	-0.94
+YCR055C	0.92	1.05	1.43	-0.56	-0.82	-0.94	-1.07
+YCR065w	1.42	1.31	0.51	-0.38	-0.66	-1.13	-1.08
+YDL037c	0.85	1.75	0.69	-0.70	-0.80	-0.82	-0.96
+YDL042C	1.69	0.93	0.54	-0.40	-0.51	-1.24	-1.01
+YDL182w	1.79	0.88	0.35	-0.30	-0.42	-1.07	-1.23
+YDR508C	1.59	0.99	0.61	-0.46	-0.55	-1.44	-0.74
+YER145c	1.37	1.27	0.42	0.02	-0.70	-1.32	-1.05
+YER165w	1.27	1.25	0.78	-0.48	-0.51	-0.99	-1.32
+YGR245C	1.23	1.13	1.00	-0.46	-0.61	-1.09	-1.20
+YJL069C	1.34	1.02	1.02	-0.66	-0.53	-1.15	-1.04
+YLR397C	0.91	1.29	1.14	-0.65	-0.40	-1.21	-1.08
+YMR108W	1.47	1.15	0.60	-0.46	-0.61	-1.44	-0.70
+YMR309C	1.32	1.24	0.53	-0.23	-0.35	-1.06	-1.46
+YNL124W	1.50	1.08	0.62	-0.55	-0.32	-1.00	-1.34
+YNL189W	1.20	1.49	0.28	-0.13	-0.36	-1.07	-1.41
+YOL007C	1.22	1.54	0.01	-0.10	-0.18	-1.17	-1.31
+YOL130W?1	1.37	1.37		-0.46	-1.08	-0.31	-0.89
+YAL043C	1.41	1.11	-0.11	-1.36	-0.14	-1.31	0.40
+YDR006C	1.65	0.94	-0.51	-1.27	-1.16	0.42	-0.07
+YHR205W	1.51	0.85	0.63	-1.21	-0.96	-1.07	0.24
+YJL195C	1.72	1.26	-0.62	-0.97	-0.90	-0.55	0.07
+YPL061W	1.64	0.77	0.63	-0.62	-1.37	-1.02	-0.02
+YDR101C	1.15	1.01	1.08	-0.50	-0.90	-1.54	-0.29
+YKL185W	1.35	1.04	0.37	-0.75	-0.47	-1.77	0.23
+YNL061W	1.05	0.43	0.54	-0.58	-0.71	-1.84	1.10
+YOR091W	0.63	0.76	1.01	-1.31	-0.62	-1.41	0.95
+YAL003W	1.15	0.87	0.82	0.13	-0.21	-0.92	-1.83
+YAL025C	1.20	0.77	0.87	0.06	0.00	-1.35	-1.54
+YAL046C	1.10	0.81	1.10	-0.30	0.02	-1.12	-1.60
+YAL059W	0.66	1.43	1.02	-0.17	-0.46	-0.90	-1.56
+YAR071W	1.14	1.01	1.04	-0.01	-0.72	-1.02	-1.44
+YAR074C	0.96	1.07	0.93	0.08	-0.22	-1.26	-1.56
+YBL024W	1.25	0.72	1.01	0.05	-0.27	-1.24	-1.51
+YBL039C	0.90	1.18	1.04	0.05	-0.69	-0.90	-1.56
+YBR069C	1.00	0.83	1.12	-0.49	-0.87	-1.75	0.16
+YBR079C	1.19	0.93	0.85	-0.08	-0.22	-0.86	-1.79
+YBR089W	1.05	1.20	0.55	0.22	-0.25	-1.06	-1.71
+YBR093C	0.83	0.67	1.50	0.08	-0.47	-1.31	-1.30
+YBR142W	0.81	0.92	1.52	-0.41	-0.47	-1.18	-1.19
+YBR238C	0.70	1.44	0.91	-0.18	-0.37	-0.86	-1.65
+YBR266C	1.30	0.63	1.32	-0.33	-0.58	-1.11	-1.22
+YCL046W	1.15	0.91	0.65	0.33	-0.09	-1.44	-1.50
+YCL054W	1.13	0.72	1.10	-0.06	-0.31	-0.76	-1.82
+YCR053w	1.32	0.97	0.85	-0.54	-0.05	-1.09	-1.45
+YDL050c	0.95	0.88	1.03	0.15	-0.12	-1.35	-1.54
+YDL051W	0.83	1.31	0.98	-0.04	-0.50	-1.21	-1.38
+YDL052C	0.64	1.46	0.57	0.28	-0.12	-1.37	-1.46
+YDL063c	1.13	1.13	0.79	-0.11	-0.31	-0.96	-1.67
+YDL084w	1.00	1.12	0.65	0.13	0.02	-1.32	-1.60
+YDL111c	1.22	1.03	0.82	-0.12	-0.25	-1.51	-1.19
+YDL122W	0.67	1.21	0.83	0.48	-0.35	-1.30	-1.53
+YDL131w	1.48	0.93	0.25	-0.55	0.42	-1.58	-0.96
+YDL140C	1.08	1.39	0.62	-0.28	-0.23	-1.26	-1.33
+YDL148c	0.88	0.85	1.24	-0.12	-0.27	-0.76	-1.82
+YDL152w	0.70	1.19	1.16	-0.18	-0.38	-0.74	-1.74
+YDL153c	1.20	0.91	1.12	-0.23	-0.51	-1.05	-1.44
+YDL167C	1.02	0.94	0.85	0.08	0.06	-1.38	-1.57
+YDL213c	0.87	0.83	1.20	-0.09	0.06	-1.48	-1.39
+YDR024w	0.21	1.84	0.36	0.26	-0.06	-1.23	-1.37
+YDR144C	1.14	0.96	0.72	0.17	-0.08	-1.31	-1.59
+YDR165W	1.04	0.97	1.12	-0.10	-0.40	-1.52	-1.11
+YDR206W	1.17	1.02	0.79	-0.05	-0.14	-1.51	-1.29
+YDR324C	0.99	0.89	1.11	-0.01	-0.43	-0.74	-1.81
+YDR341C	1.12	0.97	0.75	-0.03	0.08	-1.60	-1.29
+YDR361C	0.97	0.83	1.25	0.02	-0.39	-1.18	-1.50
+YDR398W	1.03	0.95	0.92	-0.01	-0.09	-1.00	-1.79
+YDR492W	0.78	1.00	1.29	-0.09	-0.30	-1.22	-1.47
+YDR502C	1.01	0.82	1.33	-0.09	-0.53	-1.18	-1.36
+YDR527W	1.01	0.95	0.74	0.12	0.15	-1.68	-1.29
+YEL033w	0.93	0.90	1.31	-0.05	-0.50	-1.23	-1.36
+YEL040w	0.80	1.00	1.17	-0.08	-0.34	-0.74	-1.81
+YEL046c	1.04	1.11	0.98	0.03	-0.56	-1.12	-1.47
+YER002w	1.21	0.95	1.01	-0.38	-0.18	-1.45	-1.16
+YER006w	1.18	0.75	1.25	-0.31	-0.31	-1.26	-1.30
+YER025w	1.29	0.65	1.11	-0.11	-0.27	-1.42	-1.26
+YER036c	1.19	1.26	0.58	-0.06	-0.28	-1.34	-1.33
+YER043c	1.04	0.85	1.24	-0.40	-0.19	-0.93	-1.61
+YER049w	0.87	1.28	0.88	0.02	-0.54	-0.80	-1.70
+YER052c	0.99	0.73	1.27	0.15	-0.45	-1.22	-1.47
+YER070w	0.98	0.84	1.01	0.33	-0.32	-1.58	-1.26
+YER110c	0.93	0.77	1.31	0.00	-0.31	-1.50	-1.22
+YGR103W	1.01	0.80	1.18	-0.08	-0.29	-0.83	-1.78
+YGR123C	1.06	0.82	1.05	-0.30	-0.06	-0.71	-1.87
+YGR124W	0.93	1.11	1.00	-0.06	-0.23	-1.20	-1.55
+YGR145W	1.00	0.71	1.30	-0.08	-0.29	-1.03	-1.63
+YGR155W	1.07	1.03	0.81	0.04	-0.42	-0.64	-1.89
+YGR160W	1.23	1.07	0.78	-0.22	-0.21	-1.04	-1.60
+YGR162W	0.98	1.05	1.01	-0.11	-0.28	-0.93	-1.72
+YGR264C	1.08	1.09	0.70	0.04	-0.05	-1.64	-1.21
+YHR046C	0.46	0.43	1.68	0.56	-0.89	-1.41	-0.83
+YHR052W	1.25	0.91	0.84	-0.27	0.02	-1.22	-1.53
+YHR064C	1.05	1.07	0.73	0.12	-0.15	-1.10	-1.72
+YHR070W	1.38	1.09	0.63	-0.58	-0.01	-1.27	-1.25
+YHR215W	1.11	1.18	0.89	-0.24	-0.45	-1.56	-0.95
+YIL053W	1.19	0.94	0.74	0.11	-0.16	-1.13	-1.69
+YIL066C	1.10	0.90	0.84	0.21	-0.15	-1.29	-1.60
+YIL091C	1.12	1.00	0.91	-0.12	-0.17	-1.18	-1.57
+YJL050W	1.10	1.03	0.99	-0.33	-0.18	-0.99	-1.62
+YJL109C	0.91	1.01	0.88	-0.07	0.00	-1.93	-0.81
+YJL122W	1.03	0.86	1.09	-0.18	-0.06	-1.03	-1.71
+YJR003C	0.83	1.00	1.08	0.06	-0.14	-1.66	-1.17
+YJR016C	1.05	1.21	0.80	-0.20	-0.15	-1.52	-1.19
+YJR041C	1.30	0.54	0.94	0.08	0.00	-1.41	-1.46
+YJR054W	1.37	0.98	0.49	0.20	-0.39	-0.99	-1.66
+YKL076C	0.93	0.77	1.05	0.53	-0.50	-1.33	-1.45
+YKL082C	1.22	0.92	0.91	-0.27	-0.09	-1.06	-1.62
+YKL181W	1.12	0.91	0.84	0.15	-0.13	-1.39	-1.49
+YKL191W	1.28	1.00	0.82	-0.43	-0.46	-1.76	-0.45
+YLL008w	1.12	1.14	0.91	-0.47	-0.12	-1.15	-1.43
+YLL021w	1.36	0.84	0.55	0.12	0.00	-1.53	-1.34
+YLR068W	0.73	0.48	1.74	-0.21	-0.26	-1.15	-1.34
+YLR084C	1.25	1.11	0.37	-0.01	0.13	-1.47	-1.38
+YLR180W	0.93	1.00	0.96	0.05	-0.06	-1.23	-1.64
+YLR196W	1.01	0.83	1.02	-0.07	-0.14	-0.73	-1.92
+YLR221C	1.39	0.85	0.97	-0.32	-0.41	-1.46	-1.00
+YLR223C	1.49	0.75	0.33	0.33	-0.14	-1.11	-1.65
+YLR243W	1.21	0.73	0.99	-0.08	-0.02	-1.52	-1.31
+YLR244C	1.42	0.73	0.55	0.15	-0.07	-1.05	-1.74
+YLR280C	1.32	1.07	0.62	-0.16	-0.19	-1.53	-1.14
+YLR355C	1.40	1.10	0.56	-0.25	-0.22	-1.43	-1.16
+YLR409C	0.98	1.16	1.05	-0.26	-0.30	-1.29	-1.34
+YLR435W	0.75	0.79	1.25	-0.63	0.47	-1.60	-1.03
+YLR449W	0.93	0.94	1.11	-0.20	0.02	-1.59	-1.20
+YML123C	0.97	0.96	1.02	-0.03	-0.13	-1.68	-1.12
+YMR011W	0.81	1.09	1.22	0.07	-0.66	-1.17	-1.36
+YMR014W	1.35	0.83	0.91	-0.24	-0.18	-1.30	-1.38
+YMR037C	1.63	0.98	0.21	-0.05	-0.22	-1.41	-1.13
+YMR049C	1.28	0.79	0.92	-0.06	-0.22	-1.08	-1.63
+YMR058W	1.30	0.84	0.81	-0.04	-0.15	-1.12	-1.63
+YMR080C	1.18	1.20	0.33	0.31	-0.25	-1.33	-1.46
+YMR128W	0.97	1.16	0.99	-0.48	-0.09	-0.91	-1.63
+YMR129W	1.31	1.05	0.32	0.32	-0.23	-1.54	-1.24
+YMR146C	1.04	0.93	0.86	-0.21	0.25	-1.21	-1.65
+YMR217W	1.02	0.98	1.05	-0.18	-0.37	-0.71	-1.79
+YMR229C	0.99	0.95	1.07	0.02	-0.24	-1.27	-1.52
+YMR239C	1.14	0.74	1.14	-0.05	-0.20	-1.33	-1.43
+YMR241W	1.24	0.98	0.67	-0.06	-0.02	-1.18	-1.63
+YMR246W	0.88	1.17	1.18	-0.22	-0.51	-1.13	-1.37
+YMR290C	1.19	0.88	0.86	0.06	-0.16	-1.27	-1.56
+YNL002C	1.05	0.78	0.90	-0.04	0.26	-1.68	-1.26
+YNL013C	0.91	0.80	1.05	0.22	-0.13	-1.79	-1.07
+YNL060C	1.19	0.97	0.96	-0.15	-0.29	-1.28	-1.40
+YNL062C	0.84	1.11	1.11	0.01	-0.35	-1.45	-1.27
+YNL075W	1.06	0.80	0.94	0.22	-0.09	-1.54	-1.39
+YNL110C	1.03	0.85	1.08	-0.04	-0.10	-1.19	-1.62
+YNL112W	0.93	0.93	1.17	-0.11	-0.35	-0.82	-1.75
+YNL120C	1.08	1.01	0.80	0.02	-0.08	-1.69	-1.14
+YNL123W	1.34	1.00	0.48	0.06	-0.11	-1.22	-1.57
+YNL132W	1.04	1.02	0.96	-0.07	-0.18	-1.20	-1.57
+YNL141W	0.90	1.00	0.97	-0.02	0.04	-1.32	-1.58
+YNL174W	1.06	0.73	1.02	-0.21	-0.11	-2.00	-0.50
+YNL182C	1.07	0.90	1.17	-0.26	-0.20	-1.30	-1.37
+YNL207W	1.15	1.10	0.84	-0.18	-0.26	-1.56	-1.10
+YNL216W	0.90	0.95	0.51	0.01	0.18	-2.21	-0.33
+YNL221C	0.90	0.86	1.04	0.29	-0.18	-1.46	-1.46
+YNL256W	1.18	0.69	1.11	0.03	-0.26	-1.46	-1.30
+YNL308C	0.95	1.09	1.26	-0.67	-0.27	-1.26	-1.10
+YNL313C	1.42	0.97	0.57	-0.03	-0.30	-1.00	-1.62
+YNL327W	1.10	0.84	0.87	0.22	-0.11	-1.39	-1.53
+YNR025C	0.76	0.69	1.28	0.07	0.07	-1.74	-1.13
+YNR043W	1.20	0.86	0.90	-0.05	-0.23	-0.93	-1.76
+YNR046W	1.77	0.54	0.70	-0.24	-0.35	-1.22	-1.20
+YNR054C	1.27	0.84	0.90	0.00	-0.27	-1.20	-1.54
+YNR075W	0.96	1.18	0.85	0.04	-0.31	-1.10	-1.63
+YOL021C	1.23	1.01	0.66	-0.07	-0.03	-1.23	-1.58
+YOL080C	0.85	1.09	1.28	-0.18	-0.58	-1.07	-1.39
+YOR116C	1.06	1.18	0.59	0.23	-0.27	-1.63	-1.17
+YOR146W	1.29	0.75	0.87	-0.04	-0.36	-0.65	-1.86
+YOR206W	0.80	0.86	1.28	-0.01	-0.35	-0.77	-1.81
+YOR233W	1.14	0.91	1.14	-0.56	-0.13	-1.50	-1.00
+YOR335C	1.17	1.18	0.71	-0.17	-0.20	-1.41	-1.28
+YOR341W	1.17	1.10	0.83	0.07	-0.60	-1.46	-1.11
+YOR355W	1.05	1.15	0.99	-0.35	-0.24	-1.45	-1.16
+YOR361C	1.50	0.98	0.56	-0.21	-0.22	-1.24	-1.36
+YPL012W	1.15	0.85	0.95	0.10	-0.23	-1.36	-1.46
+YPL019C	1.09	0.89	1.13	-0.28	-0.16	-1.51	-1.16
+YPL030W	1.12	0.85	1.12	-0.07	-0.38	-1.07	-1.57
+YPL032C	1.27	0.57	1.03	-0.21	-0.03	-0.81	-1.82
+YPL093W	1.25	0.93	0.84	0.07	-0.41	-1.14	-1.55
+YPL183C	0.94	0.96	0.66	0.18	0.03	-2.04	-0.73
+YPL211W	1.06	0.90	0.98	0.01	-0.14	-1.16	-1.65
+YPL226W	1.02	1.07	0.87	0.07	-0.30	-1.06	-1.68
+YPR009W	0.97	1.19	0.60	0.06	0.06	-1.19	-1.69
+YPR034W	0.95	1.03	0.98	-0.03	-0.10	-1.58	-1.25
+YPR110C	1.12	1.14	0.89	-0.29	-0.24	-1.11	-1.51
+YPR136C	1.31	0.84	0.27	-0.09	0.30	-2.01	-0.62
+YPR143W	1.38	0.73	1.08	-0.23	-0.45	-1.33	-1.17
+YPR145W	1.22	0.71	0.73	0.24	0.07	-1.60	-1.37
+YHR007C	0.73	0.87	1.09	0.19	0.10	-1.63	-1.35
+YAL023C	0.82	0.82	0.77	0.03	0.62	-1.69	-1.36
+YAL036C	0.90	0.76	1.22	-0.14	0.02	-1.01	-1.76
+YAR073W	0.77	0.91	0.94	0.36	-0.01	-1.23	-1.75
+YBL076C	0.87	0.98	0.76	0.31	0.11	-1.45	-1.58
+YBL087C	0.63	0.74	1.21	0.34	0.04	-1.25	-1.71
+YBR048W	0.89	0.98	0.85	0.33	-0.30	-0.86	-1.89
+YBR092C	0.88	0.87	1.09	0.23	-0.30	-1.02	-1.75
+YBR121C	1.14	0.76	0.91	-0.03	-0.02	-0.87	-1.88
+YBR143C	1.00	0.69	1.03	0.10	-0.02	-0.89	-1.91
+YBR156C	0.96	0.79	0.87	0.12	0.24	-1.15	-1.82
+YBR249C	0.90	0.79	0.89	0.30	0.14	-1.34	-1.69
+YCL053C	1.06	0.97	0.75	-0.06	0.21	-1.30	-1.63
+YDL014W	0.94	0.52	1.18	0.16	0.14	-1.26	-1.68
+YDL060w	0.89	0.88	1.00	0.14	0.00	-1.12	-1.78
+YDL082w	1.02	0.81	0.63	0.37	0.21	-1.33	-1.72
+YDL145C	0.88	1.16	0.56	0.25	0.14	-1.51	-1.49
+YDL208W	0.87	0.69	0.87	0.26	0.36	-1.28	-1.78
+YDR023W	1.14	0.35	1.25	0.07	-0.07	-1.00	-1.74
+YDR037W	0.86	1.17	0.65	0.12	0.17	-1.50	-1.48
+YDR060w	0.92	0.88	0.96	0.13	0.08	-1.41	-1.56
+YDR062W	0.59	0.79	1.00	0.50	0.19	-1.38	-1.69
+YDR064W	0.86	0.78	0.83	0.31	0.30	-1.39	-1.69
+YDR321W	0.75	0.85	1.04	0.12	0.24	-1.36	-1.64
+YDR365C	0.82	0.83	1.04	0.29	-0.02	-1.31	-1.66
+YDR399W	0.74	0.82	0.99	0.25	0.23	-1.28	-1.74
+YDR447C	0.99	0.69	0.60	0.27	0.53	-1.38	-1.71
+YDR449C	0.98	0.70	0.82	0.24	0.29	-1.26	-1.77
+YDR450W	1.08	0.66	0.69	0.11	0.43	-1.09	-1.88
+YDR471W	1.03	0.79	0.78	-0.06	0.40	-1.10	-1.83
+YEL026w	0.93	0.60	1.20	0.32	-0.15	-1.33	-1.57
+YEL054c	0.83	0.73	0.97	0.30	0.13	-1.06	-1.90
+YER056c	0.54	0.97	1.16	0.06	0.21	-1.33	-1.61
+YER060w	0.61	1.07	1.17	-0.13	0.06	-1.04	-1.73
+YER129w	1.11	0.60	1.00	0.30	-0.07	-1.32	-1.61
+YFL045C	0.60	0.67	1.42	0.30	-0.27	-0.95	-1.77
+YGL008C	0.85	0.85	0.70	0.53	0.13	-1.48	-1.59
+YGL029W	0.59	0.69	1.06	0.18	0.48	-1.89	-1.11
+YGL078C	0.89	0.62	1.27	-0.05	-0.05	-0.78	-1.90
+YGL092W	1.42	0.34	0.82	0.28	0.01	-1.51	-1.36
+YGL103W	0.85	0.83	0.68	0.44	0.25	-1.17	-1.87
+YGL225W	0.51	0.72	1.24	0.41	0.04	-1.15	-1.78
+YGR034W	1.04	0.70	0.85	0.02	0.39	-1.47	-1.54
+YGR060W	0.84	0.69	1.23	0.08	0.08	-1.30	-1.62
+YGR061C	0.82	0.87	0.69	0.32	0.40	-1.45	-1.66
+YGR214W	0.81	0.70	1.00	0.19	0.27	-1.10	-1.88
+YHL033C	0.92	0.80	0.76	0.39	0.06	-1.00	-1.94
+YHR019C	0.65	1.03	1.08	0.22	-0.09	-1.21	-1.68
+YHR049W	1.03	0.95	0.47	0.26	0.31	-1.69	-1.34
+YHR089C	0.80	0.66	0.86	0.25	0.52	-1.29	-1.79
+YHR128W	1.00	0.84	1.00	0.00	0.06	-1.20	-1.70
+YHR203C	0.80	0.98	0.80	0.13	0.31	-1.22	-1.78
+YHR216W	0.88	0.87	0.92	0.11	0.21	-1.29	-1.70
+YIL052C	1.02	0.46	0.85	0.46	0.21	-1.16	-1.85
+YIL069C	1.10	0.56	0.67	0.38	0.31	-1.21	-1.82
+YIL133C	0.94	0.86	0.80	0.18	0.20	-1.15	-1.83
+YJL111W	1.06	0.90	0.72	0.18	0.13	-1.59	-1.40
+YJL138C	0.86	0.74	1.04	0.37	-0.06	-1.17	-1.77
+YJL177W	1.02	0.82	0.83	0.26	0.06	-1.26	-1.72
+YJL183W	0.99	0.82	0.76	0.30	0.12	-1.14	-1.83
+YJR071W	1.10	0.81	0.60	0.29	0.20	-1.24	-1.77
+YJR105W	0.45	0.68	1.54	0.24	-0.15	-1.15	-1.60
+YJR123W	0.80	0.79	0.87	0.31	0.28	-1.20	-1.84
+YKL009W	1.00	0.66	1.06	0.26	-0.07	-1.18	-1.73
+YKL057C	0.72	0.65	0.87	0.46	0.41	-1.76	-1.35
+YKL081W	1.04	0.79	0.94	-0.02	0.19	-1.33	-1.61
+YKL156W	0.98	0.81	0.59	0.40	0.25	-1.17	-1.85
+YKR013W	0.61	0.56	1.15	0.45	0.30	-1.60	-1.47
+YKR025W	1.16	0.60	0.85	0.27	-0.03	-0.95	-1.90
+YKR094C	0.86	0.65	0.77	0.37	0.44	-1.32	-1.78
+YLL004w	1.18	1.00	0.41	0.21	0.14	-1.39	-1.57
+YLL044W	1.09	0.82	0.64	0.37	0.10	-1.28	-1.72
+YLR009W	1.23	0.73	0.81	0.11	0.00	-1.18	-1.70
+YLR048w	0.80	0.72	0.92	0.40	0.20	-1.22	-1.82
+YLR056w	0.83	0.66	0.98	0.33	0.26	-1.74	-1.31
+YLR061W	1.04	0.64	0.80	0.23	0.32	-1.29	-1.74
+YLR083c	0.71	0.57	0.96	0.48	0.39	-1.49	-1.63
+YLR129w	0.83	0.78	0.89	0.23	0.25	-1.89	-1.10
+YLR134w	0.82	1.08	0.84	0.25	-0.12	-1.10	-1.78
+YLR175W	0.72	0.87	1.15	0.08	-0.01	-0.93	-1.88
+YLR179C	0.91	1.09	0.57	0.26	0.18	-1.34	-1.66
+YLR185W	0.94	0.68	0.72	0.40	0.30	-1.18	-1.87
+YLR186W	1.11	0.96	0.64	-0.22	0.16	-0.70	-1.97
+YLR212C	0.91	0.59	1.01	0.41	0.07	-1.24	-1.76
+YLR339C	0.84	0.98	0.82	0.35	-0.07	-1.10	-1.82
+YLR384C	0.98	0.77	0.75	0.48	0.01	-1.79	-1.20
+YLR413W	0.80	0.91	1.05	0.10	0.09	-1.30	-1.65
+YLR432W	0.89	0.79	0.93	0.24	0.17	-1.33	-1.69
+YLR448W	1.20	0.88	0.60	0.17	0.08	-1.22	-1.70
+YML059C	0.73	0.61	1.15	0.57	-0.17	-1.78	-1.11
+YMR199W	0.64	0.97	0.28	0.07	0.85	-2.08	-0.73
+YMR202W	0.91	0.50	0.91	0.27	0.50	-1.44	-1.64
+YMR205C	0.67	0.64	1.09	0.31	0.33	-1.24	-1.79
+YMR242C	0.84	0.76	0.87	0.33	0.24	-1.20	-1.83
+YMR308C	1.11	0.78	0.91	0.19	-0.13	-1.14	-1.73
+YMR318C	0.94	0.83	0.71	0.29	0.21	-1.06	-1.92
+YMR321C	0.97	0.77	0.67	0.24	0.40	-1.23	-1.81
+YNL065W	0.82	1.10	0.59	-0.17	0.60	-1.37	-1.58
+YNL087W	0.91	0.64	0.81	0.24	0.51	-1.47	-1.62
+YNL096C	0.94	0.79	0.52	0.37	0.45	-1.26	-1.82
+YNL111C	1.20	0.62	0.73	0.23	0.20	-1.24	-1.73
+YNL175C	1.06	0.67	0.99	0.18	-0.08	-0.92	-1.89
+YNL235C	1.17	0.45	0.68	0.36	0.36	-1.28	-1.75
+YNL247W	0.95	0.77	0.69	0.40	0.19	-1.08	-1.91
+YNL301C	0.93	0.57	0.96	0.40	0.15	-1.21	-1.80
+YNL303W	0.90	0.49	0.94	0.65	0.08	-1.56	-1.48
+YNR009W	1.56	0.35	0.43	0.18	0.35	-1.49	-1.37
+YNR051C	0.87	0.68	0.88	0.46	0.14	-1.20	-1.82
+YNR053C	0.82	1.03	0.91	0.12	0.03	-1.12	-1.78
+YNR067C	0.89	0.97	0.72	0.44	-0.03	-1.73	-1.26
+YOL010W	1.22	0.81	0.61	0.17	0.11	-1.20	-1.73
+YOL014W	0.53	0.71	1.49	-0.06	0.08	-1.03	-1.72
+YOL120C	0.89	0.55	1.03	0.46	0.03	-1.18	-1.79
+YOL061W	0.72	0.90	1.07	-0.02	0.30	-1.39	-1.58
+YOL077C	1.06	0.79	0.85	-0.18	0.28	-0.92	-1.88
+YOR063W	0.78	0.70	0.92	0.35	0.31	-1.23	-1.82
+YOR096W	1.03	0.49	0.92	0.39	0.20	-1.41	-1.63
+YOR153W	0.98	0.86	0.90	0.33	-0.10	-1.42	-1.54
+YOR234C	0.89	0.89	0.65	0.37	0.23	-1.17	-1.86
+YOR277C	0.94	0.54	0.94	-0.01	0.61	-1.44	-1.58
+YOR293W	1.15	0.52	0.78	0.29	0.22	-1.10	-1.86
+YOR309C	0.87	0.72	0.90	0.14	0.37	-1.12	-1.87
+YPL034W	1.00	0.30	1.15	0.24	0.30	-1.58	-1.39
+YPL143W	0.92	0.47	1.22	0.12	0.21	-1.59	-1.36
+YPL160W	0.88	0.98	0.53	0.50	0.17	-1.43	-1.63
+YPL198W	1.05	0.65	0.93	0.20	0.15	-1.25	-1.73
+YPL243W	0.65	1.00	0.78	0.24	0.35	-1.17	-1.85
+YPL245W	0.84	0.80	0.84	0.21	0.39	-1.40	-1.68
+YPL266W	0.75	0.71	1.22	0.11	0.17	-1.43	-1.53
+YPR033C	0.99	1.16	0.54	0.05	0.11	-1.05	-1.81
+YPR044C	0.72	0.52	0.97	0.49	0.42	-1.41	-1.70
+YPR074C	0.78	0.75	0.82	0.33	0.42	-1.33	-1.76
+YPR112C	0.96	0.80	0.94	0.20	-0.03	-1.00	-1.87
+YPR125W	1.09	1.00	0.49	0.18	0.09	-0.94	-1.91
+YHR098C	0.74	0.90	0.96	0.35	0.08	-1.33	-1.68
+YAL012W	0.78	0.66	1.25	0.06	-0.10	-0.65	-1.99
+YAL038W	0.73	0.84	0.95	0.20	0.17	-0.90	-1.99
+YBL027W	0.61	0.58	1.00	0.38	0.26	-0.67	-2.15
+YBR106W	0.68	0.76	0.66	0.47	0.42	-0.93	-2.07
+YBR189W	0.82	0.53	0.86	0.56	0.28	-1.18	-1.87
+YBR191W	0.86	0.53	0.85	0.54	0.21	-1.01	-1.97
+YDL075W	0.86	0.66	0.89	0.41	0.04	-0.79	-2.06
+YDL083C	1.13	0.64	0.75	0.14	-0.04	-0.52	-2.11
+YDL136w	0.67	0.74	0.72	0.35	0.52	-0.94	-2.05
+YDL191W	0.85	0.48	0.87	0.38	0.48	-1.21	-1.86
+YDL210W	0.80	0.53	1.09	0.09	0.27	-0.71	-2.07
+YDR366C	0.76	0.65	0.56	0.54	0.56	-1.12	-1.95
+YDR417C	0.93	0.74	0.70	0.27	0.36	-1.05	-1.95
+YDR418W	0.73	0.70	0.81	0.38	0.37	-0.96	-2.03
+YDR500C	0.82	0.64	1.06	0.23	0.20	-1.05	-1.90
+YER074w	0.77	0.58	1.02	0.37	0.11	-0.80	-2.05
+YER117w	0.66	0.66	0.72	0.61	0.33	-0.92	-2.07
+YER131w	0.77	0.53	0.85	0.44	0.39	-0.94	-2.04
+YFR031BC	0.61	0.61	1.13	0.35	0.29	-1.07	-1.91
+YGL030W	0.74	0.67	0.92	0.28	0.40	-1.08	-1.94
+YGL076C	1.06	0.55	0.96	0.14	0.09	-0.82	-1.99
+YGL123W	0.66	0.69	1.02	0.40	0.25	-1.19	-1.84
+YGL135W	0.56	0.76	1.10	0.43	0.14	-1.11	-1.86
+YGL147C	0.71	0.77	0.95	0.33	0.20	-1.00	-1.96
+YGR118W	0.74	0.67	0.70	0.43	0.57	-1.22	-1.88
+YGR148C	0.84	0.75	0.71	0.36	0.38	-1.13	-1.91
+YGR285C	0.82	0.69	1.00	-0.16	0.52	-0.98	-1.90
+YHL001W	0.82	0.43	0.82	0.70	0.32	-1.25	-1.83
+YHL015W	0.69	0.84	0.63	0.48	0.40	-1.05	-1.99
+YHR010W	0.86	0.69	0.92	0.25	0.25	-1.00	-1.96
+YHR141C	0.87	0.62	0.59	0.49	0.39	-0.86	-2.09
+YHR208W	0.93	0.91	0.81	-0.26	0.27	-0.63	-2.03
+YIL018W	0.86	0.63	0.83	0.30	0.35	-0.96	-2.01
+YIL039W	0.92	0.82	0.49	0.29	0.51	-1.10	-1.92
+YIL148W	0.93	0.77	0.45	0.27	0.47	-0.79	-2.10
+YJL080C	1.09	0.82	0.44	0.34	0.22	-0.93	-1.98
+YJL136C	0.82	0.51	0.98	0.54	0.09	-0.98	-1.96
+YJL148W	0.98	0.62	1.07	-0.03	0.05	-0.68	-2.01
+YJL188C?1	0.74		0.81	0.70	0.43	-0.85	-1.84
+YJL189W	1.13	0.34	0.63	0.29	0.63	-1.20	-1.81
+YJR063W	1.11	0.53	0.91	0.26	-0.20	-0.56	-2.06
+YJR145C	0.90	0.88	0.55	0.20	0.36	-0.86	-2.05
+YKL006W	0.77	0.65	0.76	0.49	0.23	-0.77	-2.13
+YKR043C	1.10	0.43	0.60	0.53	0.21	-0.82	-2.06
+YKR057W	0.94	0.49	0.85	0.53	0.19	-1.13	-1.88
+YKR059W	0.81	0.67	1.09	0.29	0.04	-0.98	-1.92
+YLL045c	0.82	0.51	0.58	0.56	0.56	-1.03	-2.01
+YLL047W	1.18	0.61	0.58	0.33	0.05	-0.67	-2.08
+YLR029c	0.74	0.49	0.76	0.65	0.38	-1.04	-1.99
+YLR044c	0.93	0.62	0.68	0.55	0.09	-0.78	-2.09
+YLR060w	0.63	1.00	0.77	0.18	0.21	-0.67	-2.12
+YLR062C	0.83	0.61	0.71	0.33	0.56	-1.08	-1.96
+YLR076C	0.83	0.55	0.71	0.67	0.26	-1.05	-1.97
+YLR198C	0.82	0.52	0.97	0.35	0.27	-0.89	-2.03
+YLR249W	0.76	0.72	0.81	-0.07	0.63	-0.78	-2.06
+YLR325C	0.66	0.63	0.75	0.65	0.31	-0.96	-2.04
+YLR340W	0.70	0.79	0.93	0.44	0.13	-1.07	-1.92
+YLR344W	0.95	0.83	0.60	0.14	0.41	-0.95	-1.99
+YLR367W	0.80	0.75	0.77	0.43	0.27	-1.07	-1.95
+YLR388W	0.84	0.30	1.07	0.56	0.22	-1.14	-1.85
+YML063W	0.66	0.66	0.83	0.46	0.43	-1.09	-1.96
+YMR121C	0.77	0.38	0.76	0.74	0.31	-0.94	-2.04
+YMR131C	0.88	0.77	1.00	0.25	-0.19	-0.70	-2.01
+YNL119W	0.69	0.53	0.87	0.34	0.36	-0.59	-2.21
+YNL162W	0.67	0.61	0.66	0.32	0.71	-0.88	-2.09
+YNL302C	0.96	0.61	0.65	0.33	0.40	-0.90	-2.05
+YNR050C	1.16	0.92	0.28	-0.15	0.46	-0.66	-2.02
+YOL121C	0.96	0.53	0.65	0.37	0.53	-1.10	-1.93
+YOL127W	0.91	0.38	0.85	0.42	0.50	-1.18	-1.87
+YOL040C	0.90	0.84	0.64	0.34	0.19	-0.85	-2.05
+YOR224C	1.05	0.59	0.83	0.21	0.09	-0.68	-2.09
+YOR254C	0.79	0.83	0.48	0.51	0.45	-1.15	-1.92
+YOR310C	0.85	0.69	1.00	0.18	0.14	-0.88	-1.99
+YOR312C	0.91	0.65	0.93	0.22	0.18	-0.93	-1.98
+YPL079W	0.54	0.50	1.31	0.10	0.40	-0.92	-1.93
+YPL131W	0.80	0.83	0.89	-0.13	0.50	-0.99	-1.90
+YPL142C	0.85	0.36	0.91	0.63	0.28	-1.12	-1.90
+YPL220W	0.63	0.58	0.96	0.25	0.55	-0.93	-2.03
+YPL244C	0.58	0.82	1.16	0.05	0.30	-1.03	-1.87
+YPR102C	0.79	0.50	0.71	0.51	0.52	-1.01	-2.02
+YPR137W	1.06	0.80	0.77	0.09	0.05	-0.74	-2.02
+YBR032W	0.43	0.62	0.87	0.60	0.38	-0.74	-2.15
+YBR181C	0.63	0.66	0.66	0.54	0.57	-1.06	-2.00
+YBR187W	0.30	0.63	1.17	0.68	0.22	-1.19	-1.80
+YDR012W	0.57	0.59	0.77	0.58	0.45	-0.84	-2.12
+YGL102C	0.61	0.48	0.75	0.59	0.55	-0.89	-2.10
+YGR027C	0.59	0.51	0.77	0.57	0.61	-1.07	-1.99
+YJL157C	0.59	0.77	0.56	0.55	0.66	-1.36	-1.78
+YJL190C	0.67	0.34	0.91	0.65	0.45	-1.04	-1.98
+YLR058c	0.06	0.26	0.93	0.22	1.36	-1.13	-1.70
+YLR264W	0.59	0.38	1.11	0.72	0.16	-1.05	-1.91
+YLR300W	0.08	0.59	1.22	0.44	0.54	-0.90	-1.96
+YLR342W	0.26	0.74	0.84	0.82	0.44	-1.50	-1.60
+YLR359W	0.08	0.70	1.14	0.28	0.72	-1.05	-1.87
+YLR372W	0.46	0.73	1.05	0.28	0.44	-0.97	-1.98
+YMR300C	0.27	0.32	0.69	0.56	1.11	-1.02	-1.94
+YMR305C	0.59	0.41	0.94	0.44	0.72	-1.39	-1.71
+YNL069C	0.49	0.54	0.89	0.38	0.50	-0.56	-2.23
+YOR133W	0.56	0.53	0.98	0.57	0.43	-1.25	-1.84
+YOR167C	0.59	0.37	1.19	0.57	0.26	-1.13	-1.85
+YOR182C	0.79	0.26	0.69	0.80	0.44	-0.99	-2.00
+YOR326W	0.43	0.67	0.72	0.53	0.79	-1.47	-1.67
+YPL080C	0.17	0.27	1.63	0.23	0.32	-0.74	-1.88
+YPL081W	0.74	0.41	0.70	0.48	0.71	-1.06	-1.98
+YPL090C	0.63	0.52	1.03	0.52	0.39	-1.35	-1.74
+YOR298W	0.29	-0.06	0.26	1.66	0.55	-1.07	-1.62
+YDR019C	-1.24	-0.50	0.22	0.88	1.87	-0.34	-0.87
+YKL096W	-1.12	-0.15	0.98	1.33	0.91	-0.61	-1.34
+YKL108W	-1.13	-0.27	1.06	0.51	1.08	0.46	-1.70
+YPR113W	-0.45	-0.39	0.57	0.42	0.50	1.36	-2.01
diff --git a/examples/clustering/diauxic.nw b/examples/clustering/diauxic.nw
new file mode 100644
index 0000000..1a14545
--- /dev/null
+++ b/examples/clustering/diauxic.nw
@@ -0,0 +1,935 @@
+(
+(
+(
+(
+(
+(
+(
+(
+YGR138C:0.038472,
+YPR156C:0.033397)
+:0.050097,
+YOR230W:0.220261)
+:0.114267,
+(
+YAL018C:0.035830,
+YBR287W:0.024912,
+YCL075W:0.030383,
+YDR055w:0.044474,
+YOR358W:0.045875)
+:0.030762)
+:0.061899,
+(
+YBR006W:0.012167,
+YBR241C:0.045848,
+YCR021c:0.011703,
+YCR061W:0.034785,
+YDL024c:0.030633,
+YDR298C:0.011081,
+YER141w:0.052598,
+YER158c:0.088493,
+YGR028W:0.015282,
+YGR149W:0.025905,
+YIR038C:0.021086,
+YJL155C:0.011531,
+YLR297W:0.052342,
+YLR423C:0.023426,
+YOL083W:0.046727,
+YOR049C:0.029090,
+YPL087W:0.015005)
+:0.010338)
+:0.022530,
+(
+YBR052C:0.044257,
+YBR054W:0.022772,
+YBR056W:0.033843,
+YBR183W:0.027453,
+YCL040w:0.076683,
+YCL042W:0.186523,
+YDL021W:0.007351,
+YDR032c:0.034443,
+YDR342C:0.024799,
+YDR343C:0.077931,
+YER053c:0.042805,
+YER150w:0.028763,
+YGR194C:0.019262,
+YGR244C:0.019371,
+YHR092C:0.064983,
+YIL111W:0.085602,
+YIR039C:0.061777,
+YJL079C:0.068661,
+YJL164C:0.066530,
+YJR073C:0.004770,
+YKL035W:0.114557,
+YMR250W:0.026205,
+YMR297W:0.057263,
+YNL160W:0.020050,
+YOR136W:0.031351,
+YOR273C:0.045478,
+YOR347C:0.017452,
+Ydr021w:0.029241,
+YPL154C:0.026716)
+:0.014156)
+:0.036360,
+(
+(
+YBL078C:0.018348,
+YBR072W:0.008034,
+YBR139W:0.030263,
+YBR149W:0.017972,
+YBR169C:0.001920,
+YBR204C:0.017318,
+YDL022w:0.025509,
+YDL023c:0.042978,
+YDL091c:0.013934,
+YDR001C:0.014137,
+YDR077W:0.044424,
+YDR171W:0.011951,
+YDR178W:0.013526,
+YDR231C:0.005223,
+YDR258C:0.019661,
+YDR513W:0.016566,
+YDR529C:0.019541,
+YEL024w:0.020349,
+YFL014W:0.019925,
+YFR015C:0.027107,
+YFR033C:0.019186,
+YGL006W:0.019943,
+YGL187C:0.011290,
+YGL191W:0.030190,
+YGR008C:0.017479,
+YGR019W:0.017015,
+YGR088W:0.015580,
+YGR174C:0.011180,
+YHL021C:0.023666,
+YIL087C:0.011636,
+YIL107C:0.005697,
+YKL085W:0.003164,
+YKL103C:0.039112,
+YKL148C:0.022439,
+YKL150W?1:0.015616,
+YKR016W:0.017934,
+YKR067W:0.024008,
+YLL026w:0.019043,
+YLL041c:0.014446,
+YLR178C:0.029435,
+YLR258W:0.052186,
+YLR294C:0.024676,
+YLR299W:0.032933,
+YLR304C:0.045758,
+YLR327C:0.007435,
+YLR345W:0.005768,
+YLR395C:0.045549,
+YML100W:0.043110,
+YML120C:0.018385,
+YML128C:0.016054,
+YMR105C:0.024179,
+YMR110C:0.017258,
+YMR133W:0.023707,
+YMR196W:0.036526,
+YNL015W:0.019308,
+YNL055C:0.025667,
+YNL100W:0.004518,
+YNL144C:0.004901,
+YOL048C:0.026640,
+YOL053C:0.019814,
+YOR215C:0.010501,
+YOR317W:0.018442,
+YOR374W:0.011387,
+YPL078C:0.070312,
+YPL230W:0.020924,
+YPR149W:0.010801,
+YDR258C:0.014695)
+:0.008367,
+(
+YAL060W:0.015064,
+YBL038W:0.014364,
+YBL064C:0.028571,
+YBR269C:0.016747,
+YCL035C:0.025807,
+YDL004W:0.007085,
+YDR031w:0.003761,
+YDR074W:0.069217,
+YDR272W:0.011113,
+YDR272W:0.013582,
+YDR277C:0.032421,
+YDR516C:0.040793,
+YEL039c:0.016632,
+YER035w:0.024800,
+YER067w:0.038474,
+YER182w:0.011733,
+YFR053C:0.252371,
+YGL037C:0.047136,
+YGL121C:0.022573,
+YGL199C:0.011657,
+YGR248W:0.012191,
+YHR104W:0.015812,
+YIL113W:0.013517,
+YIL136W:0.039322,
+YIL162W:0.067884,
+YJL144W:0.022571,
+YJL151C:0.017277,
+YJR096W:0.019693,
+YKL026C:0.016814,
+YKL142W:0.033154,
+YKL151C:0.027220,
+YKL193C:0.017688,
+YLL023C:0.013887,
+YLR080W?1:0.010144,
+YLR270W:0.017368,
+YLR356W?1:0.007843,
+YML004C:0.047041,
+YMR030W:0.012315,
+YMR090W:0.048551,
+YMR170C:0.010852,
+YMR195W:0.035760,
+YNL045W:0.020669,
+YNL115C:0.048069,
+YNL173C:0.025198,
+YNL200C:0.026012,
+YNL274C:0.005603,
+YNL305C:0.034282,
+YNR073C:0.022308,
+YOL071W:0.026411,
+YOR052C:0.024637,
+YOR161C:0.021991,
+YOR220W:0.040045,
+YPL004C:0.024521)
+:0.013616)
+:0.006005)
+:0.021741,
+(
+(
+(
+(
+YAL034C:0.018415,
+YBL043W:0.024425,
+YBL049W:0.022513,
+YBR046C:0.031770,
+YCR039c:0.006232,
+YCR091w:0.026004,
+YDL079C:0.094125,
+YDL085w:0.032467,
+YDL204w:0.022855,
+YDL218w:0.016136,
+YDL223c:0.074370,
+YDR003W:0.073250,
+YDR018c:0.053591,
+YDR313C:0.025321,
+YIL097W:0.012089,
+YJL141C:0.035049,
+YKL093W:0.014752,
+YLR164W?1:0.011162,
+YLR168C:0.017070,
+YMR139W:0.035376,
+YNL093W:0.025831)
+:0.015975,
+(
+(
+YBL048W:0.007604,
+YBL075C:0.014956,
+YBR067C:0.016580,
+YBR101C:0.007598,
+YBR147W:0.006150,
+YDR070c:0.010301,
+YGR236C:0.008648,
+YGR238C:0.010611,
+YGR243W:0.004473,
+YJL067W:0.007740,
+YKL016C:0.009956,
+YKL217W:0.009919,
+YLR216C:0.041156,
+YLR217W:0.018315,
+YLR219W:0.006671,
+YLR295C:0.017458,
+YMR107W:0.003236,
+YNL037C:0.011856,
+YNL134C:0.001122,
+YNL194C:0.003001,
+YNL202W:0.013719,
+YOR031W:0.014812)
+:0.006651,
+(
+YBR116C:0.033659,
+YDL020C:0.022419,
+YDR043C:0.056132,
+YDR262w:0.008193,
+YEL065w:0.266647,
+YGR146C:0.007376,
+YGR256W:0.035848,
+YJR155W:0.008535,
+YKL163W:0.036797,
+YNL036W:0.057108,
+YOR027W:0.016952,
+YPL135W:0.014251)
+:0.024637)
+:0.005255)
+:0.007999,
+(
+YOL109W:0.104113,
+YAL067C:0.023929,
+YBR053C:0.029405,
+YBR203W:0.013784,
+YBR214W:0.010883,
+YBR280C:0.017570,
+YDL169C:0.023945,
+YDL245C:0.040120,
+YDR148C:0.019495,
+YDR255C:0.031336,
+YDR329C:0.018032,
+YDR533C:0.001250,
+YER098w:0.018484,
+YER142c:0.030633,
+YER175c:0.004409,
+YGL045W:0.032391,
+YGL059W:0.050804,
+YGR043C:0.016315,
+YGR052W:0.044183,
+YGR066C:0.008994,
+YGR130C:0.022106,
+YGR201C:0.026083,
+YGR289C:0.013920,
+YHR195W:0.038417,
+YJL153C:0.033018,
+YJL161W:0.025820,
+YJR008W:0.027243,
+YJR080C:0.030356,
+YKR058W:0.010740,
+YLL001w:0.008319,
+YLR271W:0.028940,
+YMR271C:0.020724,
+YMR311C:0.031845,
+YMR322C:0.021606,
+YNR007C:0.020500,
+YOL032W:0.017985,
+YOL053W:0.040060,
+YOR178C:0.004028,
+YOR289W:0.017451,
+YOR386W:0.025749,
+YPL185W:0.017283,
+YPL186C:0.009140,
+YPR150W:0.025491)
+:0.011110)
+:0.012866,
+(
+(
+YBL015W:0.018473,
+YBL099W:0.046953,
+YBL100C:0.046467,
+YBR039W:0.027280,
+YBR132C:0.057252,
+YDL181W:0.052427,
+YDR059C:0.028415,
+YDR085C:0.055567,
+YEL011w:0.020230,
+YER079w:0.013469,
+YFL030W:0.019404,
+YGL259W:0.019404,
+YGR070W:0.028021,
+YGR142W:0.002517,
+YGR250C:0.017097,
+YHL024W:0.016718,
+YHR051W:0.020669,
+YIL101C:0.040969,
+YJL103C:0.015318,
+YJR048W:0.013049,
+YJR121W:0.018256,
+YKL109W:0.013086,
+YKL141W:0.018280,
+YLR038c:0.046595,
+YLR149C:0.034217,
+YLR312C:0.025271,
+YML054C:0.014777,
+YMR031C:0.041817,
+YMR056C:0.024105,
+YMR081C:0.019086,
+YMR136W:0.078413,
+YMR181C:0.059683,
+YMR191W:0.007052,
+YNL052W:0.018461,
+YNR001C:0.008023,
+YOL117W:0.037811,
+YOL126C:0.058282,
+YOL153C:0.019880,
+YOR035C:0.045863,
+YOR065W:0.023359,
+YOR100C:0.021039,
+YPL165C:0.012048,
+YPL201C?1:0.009305,
+YPL223C:0.013347,
+YPR020W:0.014464,
+YPR098C:0.027269,
+YPR184W:0.035196)
+:0.007269,
+(
+(
+YAL054C:0.010770,
+YDR125C:0.021905,
+YDR216W:0.027122,
+YEL012w:0.014583,
+YER024w:0.016562,
+YGL062W:0.266984,
+YIL125W:0.016436,
+YJL089W:0.010550,
+YJL163C:0.007033,
+YKL187C:0.012379,
+YLR259C:0.059779,
+YLR311C:0.011440,
+YNL009W:0.025277,
+YOL084W?1:0.005872,
+YPL262W:0.002576,
+YPR030W:0.011058)
+:0.010088,
+(
+YBL045C:0.015491,
+YBR001C:0.059987,
+YBR117C:0.033327,
+YBR298C:0.021627,
+YCR005c:0.008913,
+YDL199c:0.022880,
+YGL153W:0.006091,
+YGR110W:0.019326,
+YHL032C:0.008845,
+YHR096C:0.012855,
+YJL045W:0.007726,
+YJL137C:0.016000,
+YJR095W:0.035130,
+YKR076W:0.013664,
+YLR174W:0.025886,
+YLR267W:0.009587,
+YML042W:0.009641,
+YMR114C:0.242923,
+YMR206W:0.019201,
+YOR019W:0.035474,
+YOR391C:0.009738)
+:0.005262)
+:0.013775)
+:0.014916)
+:0.021186)
+:1.753931,
+(
+(
+(
+(
+(
+(
+YCR054C:0.153934,
+YKL061W:0.133755,
+YLR109W:0.142228)
+:0.198112,
+(
+YBL054W:0.050037,
+YBR034C:0.038518,
+YGR177C:0.059524,
+YKL078W:0.026939,
+YKL106W:0.046488,
+YKR024C:0.035324,
+YLR380W:0.028761,
+YMR310C:0.034731,
+YOR271C:0.006213,
+YPL256C:0.059639)
+:0.012497)
+:0.065443,
+(
+YBR247C:0.050191,
+YBR267W:0.034203,
+YCLX02C:0.011558,
+YCR058C:0.051217,
+YDL151c:0.037685,
+YDR384C:0.011912,
+YDR465C:0.012999,
+YFL022C:0.009532,
+YGR159C:0.012299,
+YGR280C:0.013983,
+YHR206W:0.043975,
+YIL019W:0.086266,
+YIL065C:0.027422,
+YJL194W:0.096096,
+YKR056W:0.007362,
+YLL012W:0.031657,
+YLR073C:0.016216,
+YLR214W:0.039115,
+YLR293C:0.015673,
+YMR093W:0.009965,
+YMR259C:0.016481,
+YNR038W:0.015690,
+YOL019W:0.028424,
+YOL101C:0.023597,
+YOR272W:0.033415,
+YOR294W:0.033731,
+YPL043W:0.024688,
+YPL126W:0.011288,
+YPR144C:0.013358)
+:0.010101)
+:0.019870,
+(
+(
+YBL068W:0.038979,
+YBR158W:0.008382,
+YBR186W:0.116086,
+YCR055C:0.061205,
+YCR065w:0.003695,
+YDL037c:0.048015,
+YDL042C:0.022897,
+YDL182w:0.039913,
+YDR508C:0.030289,
+YER145c:0.024536,
+YER165w:0.005328,
+YGR245C:0.009444,
+YJL069C:0.017205,
+YLR397C:0.033973,
+YMR108W:0.024272,
+YMR309C:0.017863,
+YNL124W:0.016342,
+YNL189W:0.033389,
+YOL007C:0.062976,
+YOL130W?1:0.068678)
+:0.017449,
+(
+(
+YAL043C:0.085408,
+YDR006C:0.131879,
+YHR205W:0.038850,
+YJL195C:0.040006,
+YPL061W:0.070549)
+:0.031474,
+(
+YDR101C:0.068051,
+YKL185W:0.029377,
+YNL061W:0.047111,
+YOR091W:0.057478)
+:0.047015)
+:0.102596)
+:0.046055)
+:0.039969,
+(
+YAL003W:0.027682,
+YAL025C:0.008438,
+YAL046C:0.016620,
+YAL059W:0.051270,
+YAR071W:0.027037,
+YAR074C:0.005698,
+YBL024W:0.008170,
+YBL039C:0.039903,
+YBR069C:0.243928,
+YBR079C:0.025916,
+YBR089W:0.031468,
+YBR093C:0.043355,
+YBR142W:0.051410,
+YBR238C:0.051070,
+YBR266C:0.043018,
+YCL046W:0.019256,
+YCL054W:0.041245,
+YCR053w:0.025386,
+YDL050c:0.008063,
+YDL051W:0.022365,
+YDL052C:0.053016,
+YDL063c:0.018176,
+YDL084w:0.016863,
+YDL111c:0.008781,
+YDL122W:0.043325,
+YDL131w:0.108001,
+YDL140C:0.024567,
+YDL148c:0.046571,
+YDL152w:0.055074,
+YDL153c:0.017418,
+YDL167C:0.009333,
+YDL213c:0.017884,
+YDR024w:0.148026,
+YDR144C:0.010083,
+YDR165W:0.015923,
+YDR206W:0.005912,
+YDR324C:0.042943,
+YDR341C:0.015004,
+YDR361C:0.015177,
+YDR398W:0.018739,
+YDR492W:0.019353,
+YDR502C:0.023435,
+YDR527W:0.025343,
+YEL033w:0.020575,
+YEL040w:0.048325,
+YEL046c:0.015069,
+YER002w:0.014535,
+YER006w:0.017578,
+YER025w:0.014587,
+YER036c:0.016587,
+YER043c:0.030110,
+YER049w:0.045735,
+YER052c:0.022026,
+YER070w:0.021812,
+YER110c:0.022076,
+YGR103W:0.034426,
+YGR123C:0.049640,
+YGR124W:0.006737,
+YGR145W:0.025280,
+YGR155W:0.054731,
+YGR160W:0.013018,
+YGR162W:0.020365,
+YGR264C:0.018057,
+YHR046C:0.180512,
+YHR052W:0.010195,
+YHR064C:0.016477,
+YHR070W:0.036840,
+YHR215W:0.030425,
+YIL053W:0.012927,
+YIL066C:0.008671,
+YIL091C:0.003393,
+YJL050W:0.016488,
+YJL109C:0.060257,
+YJL122W:0.017642,
+YJR003C:0.022002,
+YJR016C:0.014266,
+YJR041C:0.020306,
+YJR054W:0.037849,
+YKL076C:0.038156,
+YKL082C:0.012586,
+YKL181W:0.005029,
+YKL191W:0.099536,
+YLL008w:0.016875,
+YLL021w:0.024558,
+YLR068W:0.079458,
+YLR084C:0.035147,
+YLR180W:0.009062,
+YLR196W:0.046001,
+YLR221C:0.028516,
+YLR223C:0.057444,
+YLR243W:0.010906,
+YLR244C:0.037764,
+YLR280C:0.020274,
+YLR355C:0.025286,
+YLR409C:0.009258,
+YLR435W:0.092123,
+YLR449W:0.018710,
+YML123C:0.018546,
+YMR011W:0.032472,
+YMR014W:0.007539,
+YMR037C:0.063027,
+YMR049C:0.011294,
+YMR058W:0.010664,
+YMR080C:0.040422,
+YMR128W:0.033444,
+YMR129W:0.046421,
+YMR146C:0.021802,
+YMR217W:0.041486,
+YMR229C:0.004043,
+YMR239C:0.006788,
+YMR241W:0.012776,
+YMR246W:0.023201,
+YMR290C:0.003882,
+YNL002C:0.029441,
+YNL013C:0.037125,
+YNL060C:0.001669,
+YNL062C:0.014338,
+YNL075W:0.012303,
+YNL110C:0.007903,
+YNL112W:0.034459,
+YNL120C:0.018624,
+YNL123W:0.022098,
+YNL132W:0.003370,
+YNL141W:0.009783,
+YNL174W:0.101658,
+YNL182C:0.007662,
+YNL207W:0.014884,
+YNL216W:0.170324,
+YNL221C:0.015522,
+YNL256W:0.011304,
+YNL308C:0.045905,
+YNL313C:0.026778,
+YNL327W:0.008828,
+YNR025C:0.048977,
+YNR043W:0.020504,
+YNR046W:0.055271,
+YNR054C:0.005370,
+YNR075W:0.013830,
+YOL021C:0.010752,
+YOL080C:0.031182,
+YOR116C:0.029862,
+YOR146W:0.053670,
+YOR206W:0.051387,
+YOR233W:0.036870,
+YOR335C:0.009945,
+YOR341W:0.023363,
+YOR355W:0.015312,
+YOR361C:0.022609,
+YPL012W:0.003133,
+YPL019C:0.014463,
+YPL030W:0.011898,
+YPL032C:0.047324,
+YPL093W:0.009715,
+YPL183C:0.087818,
+YPL211W:0.006930,
+YPL226W:0.013388,
+YPR009W:0.025512,
+YPR034W:0.010374,
+YPR110C:0.009930,
+YPR136C:0.133899,
+YPR143W:0.021514,
+YPR145W:0.025839)
+:0.005840)
+:0.024107,
+(
+(
+YHR007C:0.024321,
+YAL023C:0.037896,
+YAL036C:0.027457,
+YAR073W:0.007629,
+YBL076C:0.007966,
+YBL087C:0.016367,
+YBR048W:0.037560,
+YBR092C:0.027230,
+YBR121C:0.027699,
+YBR143C:0.022332,
+YBR156C:0.004017,
+YBR249C:0.000577,
+YCL053C:0.012758,
+YDL014W:0.011777,
+YDL060w:0.008162,
+YDL082w:0.006478,
+YDL145C:0.025230,
+YDL208W:0.003093,
+YDR023W:0.039428,
+YDR037W:0.023439,
+YDR060w:0.005655,
+YDR062W:0.013960,
+YDR064W:0.002168,
+YDR321W:0.006361,
+YDR365C:0.006326,
+YDR399W:0.003641,
+YDR447C:0.015148,
+YDR449C:0.001937,
+YDR450W:0.016031,
+YDR471W:0.015488,
+YEL026w:0.019446,
+YEL054c:0.008555,
+YER056c:0.022337,
+YER060w:0.036023,
+YER129w:0.011346,
+YFL045C:0.053502,
+YGL008C:0.012515,
+YGL029W:0.067475,
+YGL078C:0.045179,
+YGL092W:0.045425,
+YGL103W:0.009550,
+YGL225W:0.027201,
+YGR034W:0.012058,
+YGR060W:0.013105,
+YGR061C:0.009325,
+YGR214W:0.007962,
+YHL033C:0.014192,
+YHR019C:0.019476,
+YHR049W:0.036925,
+YHR089C:0.010167,
+YHR128W:0.008165,
+YHR203C:0.007600,
+YHR216W:0.002384,
+YIL052C:0.013691,
+YIL069C:0.012335,
+YIL133C:0.004129,
+YJL111W:0.017878,
+YJL138C:0.009234,
+YJL177W:0.002417,
+YJL183W:0.005059,
+YJR071W:0.008702,
+YJR105W:0.058597,
+YJR123W:0.003913,
+YKL009W:0.009543,
+YKL057C:0.034921,
+YKL081W:0.007191,
+YKL156W:0.011042,
+YKR013W:0.029496,
+YKR025W:0.021172,
+YKR094C:0.008062,
+YLL004w:0.026716,
+YLL044W:0.008058,
+YLR009W:0.012315,
+YLR048w:0.004366,
+YLR056w:0.028151,
+YLR061W:0.003944,
+YLR083c:0.016167,
+YLR129w:0.052379,
+YLR134w:0.018072,
+YLR175W:0.025815,
+YLR179C:0.014679,
+YLR185W:0.007868,
+YLR186W:0.055986,
+YLR212C:0.006866,
+YLR339C:0.013427,
+YLR384C:0.043396,
+YLR413W:0.007107,
+YLR432W:0.000390,
+YLR448W:0.013913,
+YML059C:0.068679,
+YMR199W:0.180049,
+YMR202W:0.013830,
+YMR205C:0.011290,
+YMR242C:0.002943,
+YMR308C:0.012121,
+YMR318C:0.009922,
+YMR321C:0.007602,
+YNL065W:0.040820,
+YNL087W:0.011444,
+YNL096C:0.016268,
+YNL111C:0.009092,
+YNL175C:0.021305,
+YNL235C:0.017678,
+YNL247W:0.010779,
+YNL301C:0.006244,
+YNL303W:0.026882,
+YNR009W:0.069305,
+YNR051C:0.005803,
+YNR053C:0.011495,
+YNR067C:0.038533,
+YOL010W:0.013445,
+YOL014W:0.050775,
+YOL120C:0.011740,
+YOL061W:0.014505,
+YOL077C:0.027831,
+YOR063W:0.004912,
+YOR096W:0.009238,
+YOR153W:0.010446,
+YOR234C:0.008998,
+YOR277C:0.023939,
+YOR293W:0.013614,
+YOR309C:0.007759,
+YPL034W:0.035088,
+YPL143W:0.030537,
+YPL160W:0.018401,
+YPL198W:0.002841,
+YPL243W:0.014395,
+YPL245W:0.004341,
+YPL266W:0.015510,
+YPR033C:0.028234,
+YPR044C:0.016689,
+YPR074C:0.006226,
+YPR112C:0.012512,
+YPR125W:0.030210,
+YHR098C:0.005812)
+:0.005387,
+(
+(
+YAL012W:0.037345,
+YAL038W:0.007617,
+YBL027W:0.013554,
+YBR106W:0.006914,
+YBR189W:0.010072,
+YBR191W:0.005150,
+YDL075W:0.007897,
+YDL083C:0.031836,
+YDL136w:0.006651,
+YDL191W:0.011001,
+YDL210W:0.015110,
+YDR366C:0.015185,
+YDR417C:0.003784,
+YDR418W:0.001455,
+YDR500C:0.007442,
+YER074w:0.008117,
+YER117w:0.008649,
+YER131w:0.002672,
+YFR031BC:0.012496,
+YGL030W:0.003864,
+YGL076C:0.013045,
+YGL123W:0.012111,
+YGL135W:0.018213,
+YGL147C:0.004678,
+YGR118W:0.013782,
+YGR148C:0.005154,
+YGR285C:0.024308,
+YHL001W:0.021713,
+YHL015W:0.009606,
+YHR010W:0.002032,
+YHR141C:0.007074,
+YHR208W:0.038459,
+YIL018W:0.000289,
+YIL039W:0.015756,
+YIL148W:0.016059,
+YJL080C:0.017726,
+YJL136C:0.009858,
+YJL148W:0.025592,
+YJL188C?1:0.009377,
+YJL189W:0.030581,
+YJR063W:0.036817,
+YJR145C:0.011576,
+YKL006W:0.005959,
+YKR043C:0.016532,
+YKR057W:0.009924,
+YKR059W:0.011284,
+YLL045c:0.014089,
+YLL047W:0.023354,
+YLR029c:0.010768,
+YLR044c:0.011219,
+YLR060w:0.020979,
+YLR062C:0.006945,
+YLR076C:0.010549,
+YLR198C:0.003174,
+YLR249W:0.022251,
+YLR325C:0.009715,
+YLR340W:0.008365,
+YLR344W:0.010317,
+YLR367W:0.003094,
+YLR388W:0.021736,
+YML063W:0.006051,
+YMR121C:0.017411,
+YMR131C:0.026306,
+YNL119W:0.014916,
+YNL162W:0.016264,
+YNL302C:0.004123,
+YNR050C:0.058206,
+YOL121C:0.009887,
+YOL127W:0.013974,
+YOL040C:0.007057,
+YOR224C:0.013626,
+YOR254C:0.017923,
+YOR310C:0.006634,
+YOR312C:0.003510,
+YPL079W:0.030247,
+YPL131W:0.022146,
+YPL142C:0.015716,
+YPL220W:0.009552,
+YPL244C:0.022966,
+YPR102C:0.008204,
+YPR137W:0.017679)
+:0.002907,
+(
+(
+YBR032W:0.016097,
+YBR181C:0.009522,
+YBR187W:0.018681,
+YDR012W:0.011279,
+YGL102C:0.009205,
+YGR027C:0.003690,
+YJL157C:0.024018,
+YJL190C:0.007303,
+YLR058c:0.073551,
+YLR264W:0.018569,
+YLR300W:0.020115,
+YLR342W:0.034792,
+YLR359W:0.022991,
+YLR372W:0.011058,
+YMR300C:0.032100,
+YMR305C:0.014402,
+YNL069C:0.028621,
+YOR133W:0.004537,
+YOR167C:0.014198,
+YOR182C:0.023853,
+YOR326W:0.024632,
+YPL080C:0.064427,
+YPL081W:0.012279,
+YPL090C:0.012152)
+:0.006473,
+(
+YOR298W:0.233587,
+(
+(
+YDR019C:0.040149,
+YKL096W:0.037806)
+:0.064948,
+(
+YKL108W:0.033111,
+YPR113W:0.038607)
+:0.063282)
+:0.016535)
+:0.229462)
+:0.024472)
+:0.008239)
+:0.017711)
+:0.082401);
diff --git a/examples/evol/1_freeratio.py b/examples/evol/1_freeratio.py
new file mode 100644
index 0000000..f1f345e
--- /dev/null
+++ b/examples/evol/1_freeratio.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+first example, load a tree and compute free ratios model,
+to find omega value of each branch.
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+from ete3 import EvolTree
+
+try:
+    input = raw_input
+except NameError:
+    pass
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+
+print (tree)
+
+input ('\n   tree loaded, hit some key.\n')
+
+print ('Now, it is necessary to link this tree to an alignment:')
+
+tree.link_to_alignment ('data/S_example/alignment_S_measuring_evol.fasta')
+
+input ('\n   alignment loaded, hit some key to see.\n')
+
+tree.show()
+
+print ('''
+we will run free-ratio model that is one of models available through
+function run_model:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+''')
+print (tree.run_model.__doc__ +'\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++')
+
+tree.run_model ('fb.example')
+
+input ('free-ratio model runned, all results are store in a Model object.')
+
+fb = tree.get_evol_model('fb.example')
+
+print ('Have a look to the parameters used to run this model on codeml: ')
+print (fb.get_ctrl_string())
+input ('hit some key...')
+
+
+print ('Have a look to run message of codeml: ')
+print (fb.run)
+input ('hit some key...')
+
+print ('Have a look to log likelihood value of this model, and number of parameters:')
+print ('lnL: %s and np: %s' % (fb.lnL, fb.np))
+input ('hit some key...')
+
+input ('finally have a look to two layouts available to display free-ratio:')
+tree.show()
+
+# have to import layou
+from ete3.treeview.layouts import evol_clean_layout
+
+print ('(omega in dark red, 100*(dN)/100*(dS), in grey)')
+tree.show (layout=evol_clean_layout)
+
+
+print ('The End.')
diff --git a/examples/evol/2_sites_model.py b/examples/evol/2_sites_model.py
new file mode 100644
index 0000000..2e65a6d
--- /dev/null
+++ b/examples/evol/2_sites_model.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+example to illustrate use of sites model, displaying and comparison
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+
+from ete3 import EvolTree
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+tree.link_to_alignment ('data/S_example/alignment_S_measuring_evol.fasta')
+
+print (tree)
+
+try:
+    input = raw_input
+except NameError:
+    pass
+
+input ('\n   tree and alignment loaded\n Hit some key, to start computation of site models M1 and M2.\n')
+
+print ('running model M1')
+tree.run_model ('M1')
+print ('running model M2')
+tree.run_model ('M2')
+
+print ('\n\n comparison of models M1 and M2, p-value: ' + str(tree.get_most_likely ('M2','M1')))
+
+#tree.show()
+
+print ('by default the hist represented is this one:')
+
+tree.show (histfaces=['M2'])
+
+print ('but we can choose between many others...')
+
+model2 = tree.get_evol_model ('M2')
+
+col2 = {'NS' : 'black', 'RX' : 'black',
+        'RX+': 'black', 'CN' : 'black',
+        'CN+': 'black', 'PS' : 'black', 'PS+': 'black'}
+
+
+model2.set_histface (up=False, kind='curve', colors=col2, ylim=[0,4], hlines = [2.5, 1.0, 4.0, 0.5], header = 'Many lines, error boxes, background black',
+                     hlines_col=['orange', 'yellow', 'red', 'cyan'], errors=True)
+
+tree.show(histfaces=['M2'])
+
+model2.set_histface (up=False, kind='stick', hlines = [1.0,0.3], hlines_col=['black','grey'])
+tree.show(histfaces=['M2'])
+
+col = {'NS' : 'grey', 'RX' : 'black',
+       'RX+': 'grey', 'CN' : 'black',
+       'CN+': 'grey', 'PS' : 'black', 'PS+': 'black'}
+model2.set_histface (up=False, kind='bar', colors=col, hlines=[1.0,0.3], hlines_col=['black','grey'])
+
+tree.show(histfaces=['M2'])
+
+
+print ('running model M7')
+tree.run_model ('M7')
+print ('running positive selection model M8')
+tree.run_model ('M8')
+print ('running relaxation model M8a')
+tree.run_model ('M8a')
+print ('running model M3')
+tree.run_model ('M3')
+
+print ('\n\n comparison of models M7 and M8, p-value: ' + str(tree.get_most_likely ('M8','M7')))
+print ('\n\n comparison of models M8a and M8, p-value: ' + str(tree.get_most_likely ('M8','M8a')))
+
+
+print ('The End.')
diff --git a/examples/evol/3_branchsite_test.py b/examples/evol/3_branchsite_test.py
new file mode 100644
index 0000000..3291761
--- /dev/null
+++ b/examples/evol/3_branchsite_test.py
@@ -0,0 +1,67 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+simple example to mark a tree and compute branch-site test of positive selection
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+from ete3 import EvolTree
+
+
+try:
+    input = raw_input
+except NameError:
+    pass
+
+tree = EvolTree("data/L_example/measuring_L_tree.nw")
+tree.link_to_alignment('data/L_example/alignment_L_measuring_evol.fasta')
+
+print (tree)
+
+# input('\n   tree and alignment loaded\nHit some key, to start computation of branch site models A and A1 on each branch.\n')
+
+print ('running model M0, for comparison with branch-site models...')
+tree.run_model('M0')
+
+# each node/leaf has two kind of identifiers node_id and paml_id, to mark nodes we have to specify
+# the node_id of the nodes we want to mark, and the kind of mark in this way:
+
+for leaf in tree:
+    leaf.node_id
+    print ('\n---------\nNow working with leaf ' + leaf.name)
+    tree.mark_tree([leaf.node_id], marks=['#1'])
+    print (tree.write())
+    # to organize a bit, we name model with the name of the marked node
+    # any character after the dot, in model name, is not taken into account
+    # for computation. (have a look in /tmp/ete3.../bsA.. directory)
+    print ('running model bsA and bsA1')
+    tree.run_model('bsA.'+ leaf.name)
+    tree.run_model('bsA1.' + leaf.name)
+    print ('p-value of positive selection for sites on this branch is: ')
+    ps = tree.get_most_likely('bsA.' + leaf.name, 'bsA1.'+ leaf.name)
+    rx = tree.get_most_likely('bsA1.'+ leaf.name, 'M0')
+    print (str(ps))
+    print ('p-value of relaxation for sites on this branch is: ')
+    print (str(rx))
+    model = tree.get_evol_model("bsA." + leaf.name)
+    if ps < 0.05 and float(model.classes['foreground w'][2]) > 1:
+        print ('we have positive selection on sites on this branch')
+        tree.show(histfaces=['bsA.' + leaf.name])
+    elif rx<0.05 and ps>=0.05:
+        print ('we have relaxation on sites on this branch')
+    else:
+        print ('no signal detected on this branch, best fit for M0')
+    print ('\nclean tree, remove marks')
+    tree.mark_tree(map(lambda x: x.node_id, tree.get_descendants()),
+                    marks=[''] * len(tree.get_descendants()), verbose=True)
+
+# nothing working yet to get which sites are under positive selection/relaxation,
+# have to look at the main outfile or rst outfile
+
+print ('The End.')
diff --git a/examples/evol/4_branch_models.py b/examples/evol/4_branch_models.py
new file mode 100644
index 0000000..2b95af0
--- /dev/null
+++ b/examples/evol/4_branch_models.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+run branches models, contrasting groups of branches over
+the rest of the phylogeny.
+Test of positive selection and relaxation over them.
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+try:
+    input = raw_input
+except NameError:
+    pass
+
+
+from ete3 import EvolTree
+from ete3 import NodeStyle
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+tree.link_to_alignment ('data/S_example/alignment_S_measuring_evol.fasta')
+
+print (tree)
+
+print ('Tree and alignment loaded.')
+input ('Tree will be mark in order to contrast Gorilla and Chimpanzee as foreground \nspecies.')
+
+marks = ['1', '3', '7']
+
+tree.mark_tree (marks, ['#1'] * 3)
+print (tree.write ())
+
+print ('we can easily colorize marked branches')
+# display marked branches in orange
+for node in tree.traverse ():
+    if not hasattr (node, 'mark'):
+        continue
+    if node.mark == '':
+        continue
+    node.img_style = NodeStyle ()
+    node.img_style ['bgcolor'] = '#ffaa00'
+tree.show()
+
+print ('''now running branch models
+free branch models, 2 groups of branches, one with Gorilla and
+chimp, the other with the rest of the phylogeny
+''')
+print ('running branch free...')
+tree.run_model ('b_free.137')
+print ('running branch neut...')
+tree.run_model ('b_neut.137')
+print ('running M0 (all branches have the save value of omega)...')
+tree.run_model ('M0')
+
+input ('''Now we can do comparisons...
+Compare first if we have one or 2 rates of evolution among phylogeny.
+LRT between b_free and M0 (that is one or two rates of omega value)
+p-value ofthis comparison is:''')
+print (tree.get_most_likely ('b_free.137', 'M0'))
+
+input ('''
+Now test if foreground rate is significantly different of 1.
+(b_free with significantly better likelihood than b_neut)
+if significantly different, and higher than one, we will be under
+positive selection, if different and lower than 1 we will be under
+negative selection. And finally if models are not significantly different
+we should accept null hypothesis that omega value on marked branches is
+equal to 1, what would be a signal of relaxation.
+p-value for difference in rates between marked branches and the rest:''')
+print (tree.get_most_likely ('b_free.137', 'M0'))
+print ('p-value representing significance that omega is different of 1:')
+print (tree.get_most_likely ('b_free.137', 'b_neut.137'))
+
+print ('value of omega in marked branch (frg branch):')
+b_free = tree.get_evol_model ('b_free.137')
+print (b_free.branches[1]['w'])
+
+print ('and value of omega for background: ')
+print (b_free.branches[2]['w'])
+
+print ('we will now run 2 branch models over this tree, one letting the omega \nvalue of foreground species to be free, and the other fixing it at one.\n')
+
+print ("The End.")
+
+
+
diff --git a/examples/evol/5_branchsite_cladetest.py b/examples/evol/5_branchsite_cladetest.py
new file mode 100644
index 0000000..faa2d04
--- /dev/null
+++ b/examples/evol/5_branchsite_cladetest.py
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+example of tests for different rates among sites in clades
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+
+try:
+    input = raw_input
+except NameError:
+    pass
+
+
+from ete3 import EvolTree
+from ete3 import NodeStyle
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+tree.link_to_alignment ('data/S_example/alignment_S_measuring_evol.fasta')
+
+print (tree)
+
+print ('Tree and alignment loaded.')
+input ('Tree will be mark in order to contrast Gorilla and Chimpanzee as foreground \nspecies.')
+
+marks = ['1', 3, '7']
+
+tree.mark_tree (marks, ['#1'] * 3)
+print (tree.write ())
+
+# display marked branches in orange
+for node in tree.traverse ():
+    if not hasattr (node, 'mark'):
+        continue
+    if node.mark == '':
+        continue
+    node.img_style = NodeStyle()
+    node.img_style ['bgcolor'] = '#ffaa00'
+tree.show()
+
+
+print ('''now running branch-site models C and D that represents
+the addition of one class of sites in on specific branch.
+These models must be compared to null models M1 and M3.
+if branch-site models are detected to be significantly better,
+than, one class of site is evolving at different rate in the marked
+clade.
+''')
+
+# TODO: re-enable model M3
+
+print ('running branch-site C...')
+tree.run_model ('bsC.137')
+#print ('running branch-site D...')
+#tree.run_model ('bsD.137')
+print ('running M1 (all branches have the save value of omega)...')
+tree.run_model ('M1')
+#print ('running M3 (all branches have the save value of omega)...')
+#tree.run_model ('M3')
+
+print ('''p-value that, in marked clade, we have one class of site
+specifically evolving at a different rate:''')
+print (tree.get_most_likely ('bsC.137', 'M1'))
+#print ('p-value representing significance that omega is different of 1:')
+#print (tree.get_most_likely ('bsD.137', 'M3'))
+
+
+print ('The End.')
diff --git a/examples/evol/6_ancestral_sequence.py b/examples/evol/6_ancestral_sequence.py
new file mode 100644
index 0000000..2a0fb3d
--- /dev/null
+++ b/examples/evol/6_ancestral_sequence.py
@@ -0,0 +1,45 @@
+#!/usr/bin/python
+"""
+15 Nov 2010
+
+example of computation and display of an ancestral sequence
+computed under free'ratio model.
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+from ete3 import TreeStyle
+from ete3 import EvolTree
+from ete3 import faces
+
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+tree.link_to_alignment ('data/S_example/alignment_S_measuring_evol.fasta')
+
+print(tree)
+
+print('\n Running free-ratio model with calculation of ancestral sequences...')
+
+tree.run_model ('fb_anc')
+#tree.link_to_evol_model('/tmp/ete3-codeml/fb_anc/out', 'fb_anc')
+
+I = TreeStyle()
+I.force_topology             = False
+I.draw_aligned_faces_as_table = True
+I.draw_guiding_lines = True
+I.guiding_lines_type = 2
+I.guiding_lines_color = "#CCCCCC"
+for n in sorted (tree.get_descendants()+[tree],
+                 key=lambda x: x.node_id):
+    if n.is_leaf(): continue
+    anc_face = faces.SequenceFace (n.sequence, 'aa', fsize=10, bg_colors={})
+    I.aligned_foot.add_face(anc_face, 1)
+    I.aligned_foot.add_face(faces.TextFace('node_id: #%d '%(n.node_id),
+                                           fsize=8), 0)
+print('display result of bs_anc model, with ancestral amino acid sequences.')
+tree.show(tree_style=I)
+
+print('\nThe End.')
diff --git a/examples/evol/7_slr.py b/examples/evol/7_slr.py
new file mode 100644
index 0000000..2ad109a
--- /dev/null
+++ b/examples/evol/7_slr.py
@@ -0,0 +1,32 @@
+#!/usr/bin/python
+"""
+06 Feb 2011
+
+use slr to compute evolutionary rates
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+from ete3 import EvolTree
+
+
+tree = EvolTree ("data/S_example/measuring_S_tree.nw")
+tree.link_to_alignment ("data/S_example/alignment_S_measuring_evol.fasta")
+
+
+tree.run_model ('SLR')
+
+slr = tree.get_evol_model ('SLR')
+
+slr.set_histface (up=False, kind='curve',errors=True,
+                  hlines = [1.0,0.3], hlines_col=['black','grey'])
+
+tree.show (histfaces=['SLR'])
+
+
+
+
+
diff --git a/examples/evol/README b/examples/evol/README
new file mode 100644
index 0000000..b9967b2
--- /dev/null
+++ b/examples/evol/README
@@ -0,0 +1,9 @@
+
+BEFORE ALL:
+
+you should have codeml and slr in your path:
+
+ * CodeML, you can downalod it from http://abacus.gene.ucl.ac.uk/software/paml.html
+ * SLR, from here: http://www.ebi.ac.uk/goldman-srv/SLR/
+
+download, compile and install both of the programs, in order to be able to run the examples.
diff --git a/examples/evol/data/CladeModelCD/ECP_EDN_15.fasta b/examples/evol/data/CladeModelCD/ECP_EDN_15.fasta
new file mode 100644
index 0000000..343eb3a
--- /dev/null
+++ b/examples/evol/data/CladeModelCD/ECP_EDN_15.fasta
@@ -0,0 +1,32 @@
+>Human_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGCAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCCTCATAACAGAACTCTCAACAATTGTCATCGGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCACGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATACCACCATC
+>Goril_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCTTCATAACAGAACTCTCAACAATTGTCATCGGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCAGGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CAGGATTCTCCACGGTATCCTGTGGTTCCTGTTCACCTGGATACCACCATC
+>Chimp_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACATCAGTCTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATTAACAATTATCGATGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCAAAGTATACGCTGCCCTCATAACAGAACTCTCAACAATTGTCATCAGAGTAGATTCCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAAACTGCAGGTATGCAGACAGACCAGGAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATGCCACCATC
+>Orang_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTAGTGGTGTGGGGGGCTCACTCCATGCCAAACCCCGACAGTTTACGAGGGCTCAGTGGTTTGCCATCCAGCACGTCAGTCTGAACCCTCCTCAATGCACCACTGCAATGCGGGTAATTAACAATTATCAACGGCGTTGCAAAGACCAAAATACTTTTCTTCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATAACCTGTCCTCGTAACAGAACTCTCCACAATTGTCATCGGAGTAGATTCCAGGTGCCTTTACTCCACTGTAACCTCACAAATCCAGGTGCACAGAATATTTCAAACTGCAAGTATGCAGACAGAACAGAAAGGAGGTTCTATGTAGTTGCATGTGACAACAGAGATCCA---CGGGATTCTCCACGGTATCCTGTGGTTCCAGTTCACCTGGATACCACCATC
+>Macaq_ECP                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACAAAGGCTCAGTGGTTTGCCATCCAGCACATCAATGTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATAAATAATTATCAACGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCATATACAGCTAATGTTTGTCGTAACGAACGTATACGCTGCCCTCGTAACAGAACTCTCCACAATTGTCATCGTAGTAGATACCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAACCTGCAGGTATGCAGACAGACCAGGACGGAGGTTCTATGTAGTTGCATGTGAAAGCAGAGATCCA---CGGGATTCTCCACGGTATCCAGTGGTTCCAGTTCACCTGGATACCACCATC
+>Macaq2_ECP                     
+ATGGTTCCAAAACTGTTCACTCCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAGACCCCCACAGTTTACGAAGGCTCAGTGGTTTGCCATCCAGCACATCAATGTGAACCCCCCTCGATGCACCATTGCAATGCGGGTAATAAATAATTATCAACGGCGTTGCAAAAACCAAAATACTTTTCTTCGTACAACTTTTGCAAATACAGTTAATGTTTGTCGTAACCGAAGTATACGCTGCCCTCGTAACAGAACTCTCCACAATTGTCATCGTAGTAGCTACCGGGTGCCTTTACTCCACTGTGACCTCATAAATCCAGGTGCACAGAATATTTCAACCTGCAGGTATGCAGACAGACCAGGACGGAGGTTCTATGTAGTTGCATGTGAAAGCAGAGATCCA---CGGGATTCTCCACGGTATCCAGTGGTTCCAGTTCACCTGGATACCATCATC
+>Orang_EDN                      
+ATGGTTCCAAAACTGTTCACTTCTCAAATTTCCCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGACGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCAACAATGCAATGCAGGTCATTAACAATTTTCAACGGCGTTGCAAAAACCAAAATACTTTTCTGCGTACAACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATAACCTGTCCTAGTAACAGAAGTCGCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGGGATCCACGACGGGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Chimp_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCAGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCGGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTCGCAAAAATTGTCATCACAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Gorilla_EDN                    
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACATCCCAGCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTTGCAAAAATTGTCATCAAAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Human_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTCTGGCTGTGGAGGGCTCACTCCATGTCAAACCTCCACAGTTTACCTGGGCTCAATGGTTTGAAACCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTCCTTCTTACAACTTTTGCTAACGTAGTTAATGTTTGTGGTAACCCAAATATGACCTGTCCTAGTAACAAAACTCGCAAAAATTGTCACCACAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCAGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGAGACCCTCCACAGTATCCGGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Hylobates_EDN                  
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAAACCCCAACAGTTTACCTGGGCTCAGTGGTTTGAAATCCAGCACATCAATATGACCTCCCAGCAATGCACCAATGCAATGCGGGTCATTAACAATTATCAACGGCGATGCAAAAACCAAAATACTTTTCTTCGTACCACTTTTGCTAATGTAGTTAATGTTTGTGGTAACCCAAATATGACATGTCCTAGTAACAAAACTCGCAAAAATTGTCATCAAAGTGGAAGCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCCACAGAATATTTCAAACTGCGGGTATGCGCAGACACCAGCAAACATGTTCTATATAGTTGCATGTGACAACAGAGATCAACGACGGGACCCTCCACAGTATCCAGTAGTTCCGGTTCACCTGGATAGAATCATC
+>Macaq_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCAAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCAGGTCATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAATCATC
+>Macaq2_EDN                     
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCAGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACTTGGATAGAGTCATC
+>Papio_EDN                      
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAAGGCTCACTTCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCGAAGG---ATTTCAAATTGCAGGTATACACAGACAACAGCAAACAAGTACTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACTTGGATAGAGTCATC
+>Cercopith_EDN                  
+ATGGTTCCAAAACTGTTCACTTCCCCAATTTGTCTGCTTCTTCTGTTGGGGCTTATGGGTGTGGAGGGCTCACTCCATGCCAAACCCGGACAATTTACCTGGGCTCAGTGGTTTGAAATCCAGCATATAAATATGACCTCTGGCCAATGCACCAATGCAATGCTGGTAATTAACAATTATCAACGGCGATGCAAAAATCAAAATACTTTTCTTCTTACAACTTTTGCTGATGTAGTTCATGTCTGTGGTAACCCAAGCATGCCCTGCCCTAGCAACACAAGTCTCAACAATTGTCATCATAGTGGAGTCCAGGTGCCTTTAATCCACTGTAACCTCACAACTCCAAGTCAAAAT---ATTTCAAATTGCAAGTATACACAGACAACAGCAAACAAGTTCTACATAGTTGCATGTAACAACAGCGATCCAGTACGGGACCCTCCACAGTATCCAGTGGTTCCAGTTCACCTGGATAGAGTCATC
+
+
diff --git a/examples/evol/data/CladeModelCD/ECP_EDN_15.nw b/examples/evol/data/CladeModelCD/ECP_EDN_15.nw
new file mode 100644
index 0000000..0e98798
--- /dev/null
+++ b/examples/evol/data/CladeModelCD/ECP_EDN_15.nw
@@ -0,0 +1 @@
+(((Hylobates_EDN , (Orang_EDN , (Gorilla_EDN , (Chimp_EDN , Human_EDN )))), (Macaq_EDN , (Cercopith_EDN , (Macaq2_EDN , Papio_EDN )))), (Orang_ECP, ((Macaq_ECP, Macaq2_ECP), (Goril_ECP, Chimp_ECP, Human_ECP))));
diff --git a/examples/evol/data/L_example/alignment_L_measuring_evol.fasta b/examples/evol/data/L_example/alignment_L_measuring_evol.fasta
new file mode 100644
index 0000000..b67852a
--- /dev/null
+++ b/examples/evol/data/L_example/alignment_L_measuring_evol.fasta
@@ -0,0 +1,28 @@
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCGGGGACAA
+AGAAGTCGCAGACGAAGGAGGCGGAGCTGCCAGACACGAAGGAGAGCCATGAGGTGC---
+CGCCCCAGGTACAGGCTGAGACGTAGAAGACCATACCAC
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGCTACCGCCAAAGACGA
+AGAGGTCGCAGACGAAGGAGGCGGACGTGCCGG---AGACGGAGAGCCAGCAGGTGCTGC
+CGCCGCAGGTACAAGCTGACGTGTAGAAGACCATACTAC
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGCTGCCGCCGGAGACGA
+AGATGTCGCAGACGAAGGAGGCGGAGATGCCGGGCACGCAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTACAGGCTGAGGTGTAGAAGACCCTATTAC
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAA
+ACAAGTCGCAGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT
+CGCCGCAGGAACAGACTGAGACGTAGAAAACCCTATCAC
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAGAGCCGGAGCAGATGCTGCCGCCGGAGACGA
+AGATGTCGCAGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTACAGGCTGAGGTGTAGAAGAAGGTTTTAC
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGA---
+CGAAGTCGCAGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTCCAGACTGAGACGTAGAAGAAGGTTCCAC
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAA
+AGAAGTCGCAGACGAAAGAGGCAGAGCTGCCAGACACCGCGGAGAGCCATGAGGTGCTGC
+CGCCGCAGGTCCAGAATGAGACGTAGAAGATGGTTTCAC
diff --git a/examples/evol/data/L_example/measuring_L_tree.nw b/examples/evol/data/L_example/measuring_L_tree.nw
new file mode 100644
index 0000000..179a30a
--- /dev/null
+++ b/examples/evol/data/L_example/measuring_L_tree.nw
@@ -0,0 +1 @@
+(Saguinus_imperator,((Hylobates_lar,(Gorilla_gorilla,(Pan_paniscus,Pan_troglodytes))),(Macaca_fascicularis,Papio_cynocephalus)));
diff --git a/examples/evol/data/S_example/alignment_S_measuring_evol.fasta b/examples/evol/data/S_example/alignment_S_measuring_evol.fasta
new file mode 100644
index 0000000..2affceb
--- /dev/null
+++ b/examples/evol/data/S_example/alignment_S_measuring_evol.fasta
@@ -0,0 +1,8 @@
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Papio_cynocephalus	                                                                                          
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
+>Gorilla_gorilla	                                                                                          
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Pan_troglodytes	                                                                                          
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
diff --git a/examples/evol/data/S_example/measuring_S_tree.nw b/examples/evol/data/S_example/measuring_S_tree.nw
new file mode 100644
index 0000000..687f6ed
--- /dev/null
+++ b/examples/evol/data/S_example/measuring_S_tree.nw
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
diff --git a/examples/evol/data/S_example/paml/M1/2NG.dN b/examples/evol/data/S_example/paml/M1/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/examples/evol/data/S_example/paml/M1/2NG.dS b/examples/evol/data/S_example/paml/M1/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/examples/evol/data/S_example/paml/M1/2NG.t b/examples/evol/data/S_example/paml/M1/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/examples/evol/data/S_example/paml/M1/4fold.nuc b/examples/evol/data/S_example/paml/M1/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/examples/evol/data/S_example/paml/M1/algn b/examples/evol/data/S_example/paml/M1/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/examples/evol/data/S_example/paml/M1/lnf b/examples/evol/data/S_example/paml/M1/lnf
new file mode 100644
index 0000000..b4f376a
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928048284   0.004116282501       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523353881   0.000031918161       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721442607   0.015419161949       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387625110   0.000481423840       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797513117   0.010257446886       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857484648   0.000034115850       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202715159   0.005405861150       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412168618   0.002152302969       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803210867   0.000139099495       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780128265   0.000690556457       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009811484   0.060750428189       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2114998226   0.000738049382       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828163804   0.002521714175       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849948739   0.005067058162       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762192223   0.030924107467       2.6285  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307512599   0.000397326872       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413518211   0.008726841080       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776243898   0.007615083026       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635738743   0.000190935693       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144586842   0.001809945247       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226418546   0.000080872085       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632682604   0.000057526304       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094795492   0.000448554867       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837285549   0.016844542617       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774682262   0.000511855486       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326581430   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160570563   0.032841672851       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317775829   0.000217833928       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900201970   0.000413844525       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7700992278   0.000155308169       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432664633   0.001758548610       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761256899   0.016973097475       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653681115   0.000257274201       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552277716   0.005769165873       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420502367   0.005289401187       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991348811   0.000676123449       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673094715   0.000002113195       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916575004   0.000068296127       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704125529   0.012646022338       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386100569   0.000481497241       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265290365   0.000007308087       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052527864   0.001224463137       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299930145   0.032387167013       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144721446   0.000735858918       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688983219   0.000382455473       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917296709   0.001371665381       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056730988   0.003010427756       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081283027   0.008163124305       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/M1/out b/examples/evol/data/S_example/paml/M1/out
new file mode 100644
index 0000000..aba9830
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/out
@@ -0,0 +1,191 @@
+
+seed used = 861385637
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+Site-class models:  NearlyNeutral
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np:  9):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.223828 0.032940 0.166566 0.156609 0.096748 0.230835 3.542367 0.938133 0.060763
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90753
+
+((2: 0.032940, (1: 0.156609, 3: 0.096748): 0.166566): 0.223828, 4: 0.230835);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096748): 0.166566): 0.223828, Papio_cynocephalus: 0.230835);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=2)
+
+p:   0.93813  0.06187
+w:   0.06076  1.00000
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6       0.224    159.3     95.7   0.1189   0.0197   0.1659    3.1   15.9
+   6..2       0.033    159.3     95.7   0.1189   0.0029   0.0244    0.5    2.3
+   6..7       0.167    159.3     95.7   0.1189   0.0147   0.1235    2.3   11.8
+   7..1       0.157    159.3     95.7   0.1189   0.0138   0.1161    2.2   11.1
+   7..3       0.097    159.3     95.7   0.1189   0.0085   0.0717    1.4    6.9
+   5..4       0.231    159.3     95.7   0.1189   0.0203   0.1711    3.2   16.4
+
+
+Time used:  0:03
diff --git a/examples/evol/data/S_example/paml/M1/rst b/examples/evol/data/S_example/paml/M1/rst
new file mode 100644
index 0000000..8445682
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/rst
@@ -0,0 +1,100 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=2)
+
+p:   0.93813  0.06187
+w:   0.06076  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 2 classes & postmean_w
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 ( 1)  0.090
+   2 A   0.94915 0.05085 ( 1)  0.109
+   3 R   0.97797 0.02203 ( 1)  0.081
+   4 Y   0.97934 0.02066 ( 1)  0.080
+   5 R   0.97239 0.02761 ( 1)  0.087
+   6 C   0.98905 0.01095 ( 1)  0.071
+   7 C   0.98333 0.01667 ( 1)  0.076
+   8 R   0.98115 0.01885 ( 1)  0.078
+   9 S   0.98512 0.01488 ( 1)  0.075
+  10 Q   0.98131 0.01869 ( 1)  0.078
+  11 S   0.98512 0.01488 ( 1)  0.075
+  12 R   0.96886 0.03114 ( 1)  0.090
+  13 S   0.98512 0.01488 ( 1)  0.075
+  14 R   0.97239 0.02761 ( 1)  0.087
+  15 C   0.97638 0.02362 ( 1)  0.083
+  16 Y   0.97524 0.02476 ( 1)  0.084
+  17 R   0.97723 0.02277 ( 1)  0.082
+  18 Q   0.98131 0.01869 ( 1)  0.078
+  19 S   0.76817 0.23183 ( 1)  0.279
+  20 R   0.96995 0.03005 ( 1)  0.089
+  21 S   0.98512 0.01488 ( 1)  0.075
+  22 R   0.97474 0.02526 ( 1)  0.084
+  23 C   0.97078 0.02922 ( 1)  0.088
+  24 Y   0.74652 0.25348 ( 1)  0.299
+  25 R   0.97723 0.02277 ( 1)  0.082
+  26 Q   0.98071 0.01929 ( 1)  0.079
+  27 R   0.97549 0.02451 ( 1)  0.084
+  28 Q   0.97521 0.02479 ( 1)  0.084
+  29 S   0.98512 0.01488 ( 1)  0.075
+  30 Q   0.97802 0.02198 ( 1)  0.081
+  31 S   0.97876 0.02124 ( 1)  0.081
+  32 R   0.96995 0.03005 ( 1)  0.089
+  33 S   0.78537 0.21463 ( 1)  0.262
+  34 R   0.72010 0.27990 ( 1)  0.324
+  35 C   0.97867 0.02133 ( 1)  0.081
+  36 Y   0.97524 0.02476 ( 1)  0.084
+  37 R   0.97723 0.02277 ( 1)  0.082
+  38 Q   0.98131 0.01869 ( 1)  0.078
+  39 S   0.98512 0.01488 ( 1)  0.075
+  40 Q   0.97812 0.02188 ( 1)  0.081
+  41 S   0.76817 0.23183 ( 1)  0.279
+  42 R   0.96995 0.03005 ( 1)  0.089
+  43 S   0.98512 0.01488 ( 1)  0.075
+  44 R   0.97474 0.02526 ( 1)  0.084
+  45 C   0.97078 0.02922 ( 1)  0.088
+  46 Y   0.97934 0.02066 ( 1)  0.080
+  47 R   0.97723 0.02277 ( 1)  0.082
+  48 Q   0.98071 0.01929 ( 1)  0.079
+  49 R   0.97239 0.02761 ( 1)  0.087
+  50 Q   0.97521 0.02479 ( 1)  0.084
+  51 R   0.97239 0.02761 ( 1)  0.087
+  52 S   0.97540 0.02460 ( 1)  0.084
+  53 R   0.97551 0.02449 ( 1)  0.084
+  54 R   0.97239 0.02761 ( 1)  0.087
+  55 R   0.95266 0.04734 ( 1)  0.105
+  56 R   0.97797 0.02203 ( 1)  0.081
+  57 R   0.97187 0.02813 ( 1)  0.087
+  58 R   0.96616 0.03384 ( 1)  0.093
+  59 S   0.77337 0.22663 ( 1)  0.274
+  60 C   0.98905 0.01095 ( 1)  0.071
+  61 Q   0.98131 0.01869 ( 1)  0.078
+  62 T   0.95838 0.04162 ( 1)  0.100
+  63 R   0.96995 0.03005 ( 1)  0.089
+  64 R   0.97797 0.02203 ( 1)  0.081
+  65 R   0.97239 0.02761 ( 1)  0.087
+  66 A   0.94915 0.05085 ( 1)  0.109
+  67 M   0.96921 0.03079 ( 1)  0.090
+  68 R   0.97797 0.02203 ( 1)  0.081
+  69 C   0.98569 0.01431 ( 1)  0.074
+  70 R   0.98115 0.01885 ( 1)  0.078
+  71 R   0.98115 0.01885 ( 1)  0.078
+  72 R   0.97797 0.02203 ( 1)  0.081
+  73 Y   0.97934 0.02066 ( 1)  0.080
+  74 R   0.97524 0.02476 ( 1)  0.084
+  75 L   0.96072 0.03928 ( 1)  0.098
+  76 R   0.97328 0.02672 ( 1)  0.086
+  77 R   0.96189 0.03811 ( 1)  0.097
+  78 R   0.63028 0.36972 ( 1)  0.408
+  79 R   0.48815 0.51185 ( 2)  0.542
+  80 P   0.00047 0.99953 ( 2)  1.000
+  81 Y   0.97211 0.02789 ( 1)  0.087
+  82 H   0.98099 0.01901 ( 1)  0.079
+  83 I   0.95719 0.04281 ( 1)  0.101
+  84 V   0.94612 0.05388 ( 1)  0.111
+  85 S   0.94623 0.05377 ( 1)  0.111
+
+
+lnL =  -511.919210
+
diff --git a/examples/evol/data/S_example/paml/M1/rst1 b/examples/evol/data/S_example/paml/M1/rst1
new file mode 100644
index 0000000..2b5ad3c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.224	0.033	0.167	0.157	0.097	0.231	3.542	0.938	0.061	-511.919
diff --git a/examples/evol/data/S_example/paml/M1/rub b/examples/evol/data/S_example/paml/M1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/S_example/paml/M1/tmp.ctl b/examples/evol/data/S_example/paml/M1/tmp.ctl
new file mode 100644
index 0000000..b538fe8
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+ *    fix_alpha = 
+ *        alpha = 
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+ *       Malpha = 
+ *       method = 
+          Mgene = 0
+          model = 0
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 1
+      fix_omega = 0
+          omega = 0.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/examples/evol/data/S_example/paml/M1/tree b/examples/evol/data/S_example/paml/M1/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M1/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/M2/2NG.dN b/examples/evol/data/S_example/paml/M2/2NG.dN
new file mode 100644
index 0000000..c7cb2b7
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0254  0.0204
+Papio_cynocephalus     0.0253  0.0360  0.0516
diff --git a/examples/evol/data/S_example/paml/M2/2NG.dS b/examples/evol/data/S_example/paml/M2/2NG.dS
new file mode 100644
index 0000000..e145570
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2681  0.3547
+Papio_cynocephalus     0.7047  0.4864  1.0128
diff --git a/examples/evol/data/S_example/paml/M2/2NG.t b/examples/evol/data/S_example/paml/M2/2NG.t
new file mode 100644
index 0000000..292cce8
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2389  0.2840
+Papio_cynocephalus     0.5254  0.4041  0.7986
diff --git a/examples/evol/data/S_example/paml/M2/4fold.nuc b/examples/evol/data/S_example/paml/M2/4fold.nuc
new file mode 100644
index 0000000..12be85d
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 71 72 76 78 85 86
diff --git a/examples/evol/data/S_example/paml/M2/algn b/examples/evol/data/S_example/paml/M2/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/examples/evol/data/S_example/paml/M2/lnf b/examples/evol/data/S_example/paml/M2/lnf
new file mode 100644
index 0000000..c639347
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/lnf
@@ -0,0 +1,54 @@
+    -1     86     49
+
+
+ 1
+
+     1      1    -5.5058442799   0.004062956860       0.3494  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3275159244   0.000032720266       0.0028  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.0512038317   0.017401413652       1.4965  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.4674885443   0.000571361445       0.0491  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.6452991773   0.009606655136       0.8262  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.0740502197   0.000042159512       0.0036  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.1827105972   0.005612771813       0.4827  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.5498550828   0.001430322862       0.1230  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.4390036367   0.000216265522       0.0186  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.0757153502   0.000845387589       0.0727  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.7668331623   0.062860759687       5.4060  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -6.9687904138   0.000940790185       0.0809  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -6.4583496105   0.001567380365       0.1348  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2513820910   0.005240270861       0.4507  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4156544816   0.032854896737       2.8255  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -8.2591239572   0.000258885687       0.0223  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.6131161462   0.009920855255       0.8532  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8590173078   0.007758103975       0.6672  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.6778231243   0.000170321433       0.0146  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.5087924265   0.001490278257       0.1282  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.9995723626   0.000045419349       0.0039  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.9727269235   0.000046655165       0.0040  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7123964953   0.000447248363       0.0385  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0796546490   0.016913305671       1.4545  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5988458066   0.000501029385       0.0431  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -22.4889972730   0.000000000171       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.3651998797   0.034555108563       2.9717  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.2757795220   0.000254609509       0.0219  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -8.2139928367   0.000270837151       0.0233  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.6709574770   0.000171494823       0.0147  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.1870547741   0.002055872855       0.1768  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0095926111   0.018140784085       1.5601  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.5472024382   0.000194087312       0.0167  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.0302903103   0.006536912562       0.5622  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2135486958   0.005442326219       0.4680  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.3061050106   0.000671427167       0.0577  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.2179909653   0.000001817605       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.3899536211   0.000083559332       0.0072  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3225565712   0.013265924871       1.1409  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.7537780885   0.000429118227       0.0369  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -12.2005715746   0.000005027581       0.0004  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.6889351717   0.001244607361       0.1070  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      1    -9.9315570242   0.000048616041       0.0042  TGC (C) --- (-) TGC (C) TTC (F) 
+    44      2    -3.3761463188   0.034178915912       2.9394  TGC (C) TGC (C) TGC (C) TGC (C) 
+    45      1    -7.1012035008   0.000824112506       0.0709  TGC (C) TGT (C) TGC (C) TGC (C) 
+    46      1    -8.3110092943   0.000245795838       0.0211  TGC (C) TGT (C) TGT (C) TGC (C) 
+    47      1    -6.5040991664   0.001497288960       0.1288  TGT (C) TGC (C) TGT (C) TGC (C) 
+    48      1    -5.8718334986   0.002817702342       0.2423  TGT (C) TGT (C) TGT (C) TGC (C) 
+    49      2    -4.7274756227   0.008848780530       0.7610  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/M2/out b/examples/evol/data/S_example/paml/M2/out
new file mode 100644
index 0000000..6fa1361
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/out
@@ -0,0 +1,229 @@
+
+seed used = 861676029
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        147  P
+
+Gorilla_gorilla                             ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGC TGT TGT TGT
+Hylobates_lar                               ACA AGA AGA AGA AGA AGC AGG AGG AGC AGC AGC AGC AGT AGA AGG CGG AGT ATG ATT CAA CAG CAG CAG CAG CAC TGT CGC CGG CGG AGG CGC CGG CGA CGT CTG GCC GTA TAC TAC TAC TAC TCT --- TGC TGT TGT TGC TGT TGT
+Pan_troglodytes                             ACA AAA AGA AGA AGA AGA AGA AGG AGA AGC AGC AGC AGT AGG AGG CGG AGT ATG ATT CAA CAG CAA CAA CAG CAT TGT CGC CGC CGG CGA CGG CGG CGA CGT CTG GCC GTA TAC TAC TAC TAC TCT TGC TGC TGC TGT TGT TGT TGT
+Papio_cynocephalus                          ACA AGG AGA AGC AGG AGG AGG AGA AGC AGA AGC CGC AGC AGA AGG CGA AGT ATG ATC CAG CAA CAA CAG CAG CAC CCC CGC CGT CGA AGG CGC CGG CGA CGT CTG GCC GTG AAC TAC TAT TAT TCT TTC TGC TGC TGC TGC TGC TGT
+
+
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    1    2    1
+    1    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  86
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  1 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  5  3  4  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.19767    C:0.33721    A:0.43023    G:0.03488
+position  2:    T:0.05814    C:0.05814    A:0.20930    G:0.67442
+position  3:    T:0.12791    C:0.36047    A:0.19767    G:0.31395
+Average         T:0.12791    C:0.25194    A:0.27907    G:0.34109
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20930    C:0.33721    A:0.41860    G:0.03488
+position  2:    T:0.05814    C:0.04651    A:0.22093    G:0.67442
+position  3:    T:0.13953    C:0.30233    A:0.25581    G:0.30233
+Average         T:0.13566    C:0.22868    A:0.29845    G:0.33721
+
+#4: Papio_cynocephalus
+position  1:    T:0.18605    C:0.34884    A:0.43023    G:0.03488
+position  2:    T:0.06977    C:0.05814    A:0.20930    G:0.66279
+position  3:    T:0.10465    C:0.40698    A:0.18605    G:0.30233
+Average         T:0.12016    C:0.27132    A:0.27519    G:0.33333
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       1 |       TCC       0 |       TAC      23 |       TGC      18
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19825    C:0.33819    A:0.42857    G:0.03499
+position  2:    T:0.06122    C:0.05248    A:0.21283    G:0.67347
+position  3:    T:0.12536    C:0.36152    A:0.20700    G:0.30612
+Average         T:0.12828    C:0.25073    A:0.28280    G:0.33819
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00160053  0.00461550  0.00264274  0.00390828
+  0.00137189  0.00395614  0.00226521  0.00334996
+  0.00556376  0.01604434  0.00000000  0.00000000
+  0.01760588  0.05077045  0.00000000  0.04299111
+  0.00273032  0.00787349  0.00450821  0.00666707
+  0.00234028  0.00674871  0.00386418  0.00571463
+  0.00949113  0.02736976  0.01567140  0.02317601
+  0.03003357  0.08660842  0.04959031  0.07333778
+  0.00345998  0.00997762  0.00571299  0.00844879
+  0.00296570  0.00855224  0.00489685  0.00724182
+  0.01202755  0.03468409  0.01985944  0.02936960
+  0.03805978  0.10975378  0.06284289  0.09293667
+  0.00028245  0.00081450  0.00046637  0.00068970
+  0.00024210  0.00069814  0.00039974  0.00059117
+  0.00098184  0.00283135  0.00162118  0.00239752
+  0.00310692  0.00895949  0.00513003  0.00758667
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Pairwise deletion)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0947 (0.0254 0.2681) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0359 (0.0253 0.7047) 0.0740 (0.0360 0.4864) 0.0510 (0.0516 1.0128)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: -1
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 11):   -517.824749      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.816965 0.181213 0.680999 0.410712 0.428524 0.753283 3.120348 0.987937 0.000000 0.098875 178.861466
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   3.27170
+
+((2: 0.181213, (1: 0.410712, 3: 0.428524): 0.680999): 0.816965, 4: 0.753283);
+
+((Hylobates_lar: 0.181213, (Gorilla_gorilla: 0.410712, Pan_troglodytes: 0.428524): 0.680999): 0.816965, Papio_cynocephalus: 0.753283);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.12035
+
+
+dN/dS (w) for site classes (K=3)
+
+p:   0.98794  0.00000  0.01206
+w:   0.09887  1.00000178.86147
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6       0.817    163.8     94.2   2.2553   0.3417   0.1515   56.0   14.3
+   6..2       0.181    163.8     94.2   2.2553   0.0758   0.0336   12.4    3.2
+   6..7       0.681    163.8     94.2   2.2553   0.2849   0.1263   46.7   11.9
+   7..1       0.411    163.8     94.2   2.2553   0.1718   0.0762   28.1    7.2
+   7..3       0.429    163.8     94.2   2.2553   0.1793   0.0795   29.4    7.5
+   5..4       0.753    163.8     94.2   2.2553   0.3151   0.1397   51.6   13.2
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+            Pr(w>1)     post mean +- SE for w
+
+    81 P      1.000**       178.855
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+            Pr(w>1)     post mean +- SE for w
+
+    81 P      0.963*        6.614 +- 2.783
+
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.754  0.243  0.002  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.045  0.063  0.081  0.096  0.106  0.114  0.119  0.123  0.125  0.128
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.012
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.160
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.008 0.106 0.700
+
+sum of density on p0-p1 =   1.000000
+
+Time used:  0:12
diff --git a/examples/evol/data/S_example/paml/M2/rst b/examples/evol/data/S_example/paml/M2/rst
new file mode 100644
index 0000000..16b78ce
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/rst
@@ -0,0 +1,203 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=3)
+
+p:   0.98794  0.00000  0.01206
+w:   0.09887  1.00000178.86147
+
+Naive Empirical Bayes (NEB) probabilities for 3 classes & postmean_w & P(w>1)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   2 A   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   3 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+   4 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   5 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+   6 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+   7 C   0.99999 0.00000 0.00001 ( 1)  0.100  0.000
+   8 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+   9 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  10 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  11 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  12 R   0.99896 0.00000 0.00104 ( 1)  0.284  0.001
+  13 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  14 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  15 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  16 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  17 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  18 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  19 S   0.99534 0.00000 0.00466 ( 1)  0.932  0.005
+  20 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  21 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  22 R   0.99992 0.00000 0.00008 ( 1)  0.113  0.000
+  23 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  24 Y   0.99998 0.00000 0.00002 ( 1)  0.103  0.000
+  25 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  26 Q   1.00000 0.00000 0.00000 ( 1)  0.100  0.000
+  27 R   0.99971 0.00000 0.00029 ( 1)  0.151  0.000
+  28 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  29 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  30 Q   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  31 S   0.99986 0.00000 0.00014 ( 1)  0.123  0.000
+  32 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  33 S   0.99880 0.00000 0.00120 ( 1)  0.313  0.001
+  34 R   0.99942 0.00000 0.00058 ( 1)  0.202  0.001
+  35 C   0.99996 0.00000 0.00004 ( 1)  0.106  0.000
+  36 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  37 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  38 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  39 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  40 Q   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  41 S   0.99534 0.00000 0.00466 ( 1)  0.932  0.005
+  42 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  43 S   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  44 R   0.99992 0.00000 0.00008 ( 1)  0.113  0.000
+  45 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  46 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  47 R   0.99976 0.00000 0.00024 ( 1)  0.142  0.000
+  48 Q   1.00000 0.00000 0.00000 ( 1)  0.100  0.000
+  49 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  50 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  51 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  52 S   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  53 R   0.99921 0.00000 0.00079 ( 1)  0.240  0.001
+  54 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  55 R   0.99975 0.00000 0.00025 ( 1)  0.143  0.000
+  56 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  57 R   0.99800 0.00000 0.00200 ( 1)  0.456  0.002
+  58 R   0.99883 0.00000 0.00117 ( 1)  0.307  0.001
+  59 S   0.99852 0.00000 0.00148 ( 1)  0.364  0.001
+  60 C   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  61 Q   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  62 T   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  63 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  64 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  65 R   0.99999 0.00000 0.00001 ( 1)  0.101  0.000
+  66 A   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  67 M   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  68 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  69 C   0.99997 0.00000 0.00003 ( 1)  0.105  0.000
+  70 C   0.99703 0.00000 0.00297 ( 1)  0.631  0.003
+  71 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  72 R   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  73 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  74 Y   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  75 R   0.99993 0.00000 0.00007 ( 1)  0.112  0.000
+  76 L   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  77 R   0.99997 0.00000 0.00003 ( 1)  0.104  0.000
+  78 R   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  79 R   0.99731 0.00000 0.00269 ( 1)  0.580  0.003
+  80 R   0.98844 0.00000 0.01156 ( 1)  2.166  0.012
+  81 P   0.00004 0.00000 0.99996 ( 3) 178.855  1.000
+  82 Y   0.99998 0.00000 0.00002 ( 1)  0.102  0.000
+  83 H   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  84 I   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  85 V   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+  86 S   1.00000 0.00000 0.00000 ( 1)  0.099  0.000
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    81 P      1.000**       178.855
+
+
+lnL =  -517.824749
+
+Bayes Empirical Bayes (BEB) probabilities for 3 classes (class) & postmean_w
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96652 0.03140 0.00208 ( 1)  0.110 +-  0.219
+   2 A   0.93808 0.04936 0.01255 ( 1)  0.183 +-  0.657
+   3 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+   4 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+   5 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+   6 C   0.98706 0.01251 0.00043 ( 1)  0.088 +-  0.131
+   7 C   0.98074 0.01825 0.00102 ( 1)  0.095 +-  0.182
+   8 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+   9 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  10 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  11 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  12 R   0.96174 0.03249 0.00577 ( 1)  0.135 +-  0.484
+  13 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  14 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  15 C   0.97271 0.02545 0.00184 ( 1)  0.105 +-  0.228
+  16 Y   0.97217 0.02641 0.00142 ( 1)  0.103 +-  0.190
+  17 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  18 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  19 S   0.74208 0.19856 0.05935 ( 1)  0.594 +-  1.498
+  20 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  21 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  22 R   0.97123 0.02616 0.00262 ( 1)  0.110 +-  0.296
+  23 C   0.96712 0.03068 0.00219 ( 1)  0.110 +-  0.233
+  24 Y   0.73374 0.23721 0.02905 ( 1)  0.399 +-  0.757
+  25 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  26 Q   0.97703 0.02193 0.00105 ( 1)  0.098 +-  0.175
+  27 R   0.97113 0.02559 0.00329 ( 1)  0.114 +-  0.355
+  28 Q   0.97092 0.02715 0.00193 ( 1)  0.106 +-  0.231
+  29 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  30 Q   0.97404 0.02445 0.00152 ( 1)  0.102 +-  0.210
+  31 S   0.97567 0.02227 0.00206 ( 1)  0.104 +-  0.271
+  32 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  33 S   0.77054 0.19899 0.03047 ( 1)  0.402 +-  0.971
+  34 R   0.70058 0.24616 0.05327 ( 1)  0.557 +-  1.238
+  35 C   0.97507 0.02335 0.00158 ( 1)  0.102 +-  0.216
+  36 Y   0.97217 0.02641 0.00142 ( 1)  0.103 +-  0.190
+  37 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  38 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  39 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  40 Q   0.97401 0.02447 0.00152 ( 1)  0.102 +-  0.210
+  41 S   0.74208 0.19856 0.05935 ( 1)  0.594 +-  1.498
+  42 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  43 S   0.98350 0.01555 0.00094 ( 1)  0.093 +-  0.185
+  44 R   0.97123 0.02616 0.00262 ( 1)  0.110 +-  0.296
+  45 C   0.96712 0.03068 0.00219 ( 1)  0.110 +-  0.233
+  46 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+  47 R   0.97290 0.02368 0.00342 ( 1)  0.115 +-  0.379
+  48 Q   0.97703 0.02193 0.00105 ( 1)  0.098 +-  0.175
+  49 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  50 Q   0.97092 0.02715 0.00193 ( 1)  0.106 +-  0.231
+  51 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  52 S   0.97298 0.02548 0.00154 ( 1)  0.103 +-  0.205
+  53 R   0.97073 0.02569 0.00359 ( 1)  0.118 +-  0.393
+  54 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  55 R   0.93815 0.04692 0.01493 ( 1)  0.203 +-  0.786
+  56 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  57 R   0.96427 0.02869 0.00704 ( 1)  0.141 +-  0.554
+  58 R   0.95417 0.03437 0.01145 ( 1)  0.175 +-  0.721
+  59 S   0.75845 0.20578 0.03576 ( 1)  0.439 +-  1.066
+  60 C   0.98706 0.01251 0.00043 ( 1)  0.088 +-  0.131
+  61 Q   0.97775 0.02131 0.00093 ( 1)  0.097 +-  0.165
+  62 T   0.95364 0.04119 0.00517 ( 1)  0.132 +-  0.362
+  63 R   0.96411 0.03114 0.00475 ( 1)  0.126 +-  0.407
+  64 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  65 R   0.96923 0.02829 0.00248 ( 1)  0.110 +-  0.268
+  66 A   0.93808 0.04936 0.01255 ( 1)  0.183 +-  0.657
+  67 M   0.96652 0.03140 0.00208 ( 1)  0.110 +-  0.219
+  68 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  69 C   0.98364 0.01565 0.00071 ( 1)  0.092 +-  0.158
+  70 C   0.70111 0.23643 0.06246 ( 1)  0.621 +-  1.436
+  71 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+  72 R   0.97875 0.01974 0.00151 ( 1)  0.099 +-  0.224
+  73 R   0.97548 0.02272 0.00180 ( 1)  0.103 +-  0.238
+  74 Y   0.97644 0.02259 0.00097 ( 1)  0.098 +-  0.164
+  75 R   0.97178 0.02547 0.00274 ( 1)  0.110 +-  0.307
+  76 L   0.95663 0.03912 0.00425 ( 1)  0.126 +-  0.321
+  77 R   0.96948 0.02761 0.00291 ( 1)  0.112 +-  0.305
+  78 R   0.95579 0.03866 0.00555 ( 1)  0.134 +-  0.411
+  79 R   0.58948 0.26683 0.14369 ( 1)  1.151 +-  2.197
+  80 R   0.47719 0.33503 0.18778 ( 1)  1.483 +-  2.457
+  81 P   0.00015 0.03692 0.96293 ( 3)  6.614 +-  2.783
+  82 Y   0.96693 0.03068 0.00239 ( 1)  0.111 +-  0.245
+  83 H   0.97787 0.02106 0.00107 ( 1)  0.097 +-  0.179
+  84 I   0.95125 0.04219 0.00657 ( 1)  0.142 +-  0.442
+  85 V   0.93085 0.05164 0.01751 ( 1)  0.219 +-  0.830
+  86 S   0.93237 0.05137 0.01626 ( 1)  0.210 +-  0.784
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    81 P      0.963*        6.614 +- 2.783
+
diff --git a/examples/evol/data/S_example/paml/M2/rst1 b/examples/evol/data/S_example/paml/M2/rst1
new file mode 100644
index 0000000..a5bea37
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/rst1
@@ -0,0 +1 @@
+	4	86	49	0.5889	0.817	0.181	0.681	0.411	0.429	0.753	3.120	0.988	0.000	0.099	178.861	-517.825
diff --git a/examples/evol/data/S_example/paml/M2/rub b/examples/evol/data/S_example/paml/M2/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/S_example/paml/M2/tmp.ctl b/examples/evol/data/S_example/paml/M2/tmp.ctl
new file mode 100644
index 0000000..8fa5eeb
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+ *    fix_alpha = 
+ *        alpha = 
+    fix_blength = 0
+      cleandata = 0
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+ *       Malpha = 
+ *       method = 
+          Mgene = 0
+          model = 0
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 0
+          omega = 1.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/examples/evol/data/S_example/paml/M2/tree b/examples/evol/data/S_example/paml/M2/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/examples/evol/data/S_example/paml/M2/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/bsA/2NG.dN b/examples/evol/data/S_example/paml/bsA/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/examples/evol/data/S_example/paml/bsA/2NG.dS b/examples/evol/data/S_example/paml/bsA/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/examples/evol/data/S_example/paml/bsA/2NG.t b/examples/evol/data/S_example/paml/bsA/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/examples/evol/data/S_example/paml/bsA/4fold.nuc b/examples/evol/data/S_example/paml/bsA/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/examples/evol/data/S_example/paml/bsA/algn b/examples/evol/data/S_example/paml/bsA/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/examples/evol/data/S_example/paml/bsA/lnf b/examples/evol/data/S_example/paml/bsA/lnf
new file mode 100644
index 0000000..9a88746
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928044538   0.004116284044       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523436893   0.000031917896       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721434789   0.015419174003       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387674193   0.000481421477       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797497253   0.010257463158       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857551298   0.000034115623       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202709488   0.005405864215       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412154622   0.002152305981       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803296792   0.000139098300       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780174030   0.000690553296       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009800283   0.060750496235       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2115046146   0.000738045845       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828145393   0.002521718818       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849946172   0.005067059463       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762182184   0.030924138511       2.6286  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307499682   0.000397327386       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413511005   0.008726847368       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776237903   0.007615087591       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635726635   0.000190935924       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144571124   0.001809948092       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226401219   0.000080872225       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632687835   0.000057526274       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094813420   0.000448554063       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837276800   0.016844557356       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774677857   0.000511855712       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326667805   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160559153   0.032841710322       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317764601   0.000217834173       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900189244   0.000413845052       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7701014140   0.000155307829       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432663441   0.001758548820       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761247274   0.016973113812       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653678639   0.000257274265       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552272129   0.005769169097       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420498168   0.005289403408       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991346893   0.000676123579       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673084744   0.000002113197       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916626823   0.000068295773       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704117319   0.012646032720       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386085002   0.000481497990       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265275121   0.000007308098       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052526450   0.001224463310       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299918277   0.032387205449       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144703587   0.000735860233       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688963930   0.000382456211       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917290379   0.001371666249       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056714669   0.003010432669       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081277413   0.008163128888       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/bsA/out b/examples/evol/data/S_example/paml/bsA/out
new file mode 100644
index 0000000..b6f11e9
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/out
@@ -0,0 +1,212 @@
+
+seed used = 861649221
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: several dN/dS ratios for branches for branches
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 11):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.212603 0.032940 0.166565 0.156609 0.096747 0.242060 3.542369 0.938134 0.061866 0.060763 1.000000
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90752
+
+((2: 0.032940, (1: 0.156609, 3: 0.096747): 0.166565): 0.212603, 4: 0.242060);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096747): 0.166565): 0.212603, Papio_cynocephalus: 0.242060);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positive sites for foreground lineages Prob(w>1):
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.906  0.093  0.001  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.187  0.128  0.105  0.093  0.087  0.083  0.081  0.079  0.079  0.078
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.022
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.011 0.043 0.280
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.002 0.012 0.022 0.188 0.412
+
+sum of density on p0-p1 =   1.000000
+
+Time used:  0:11
diff --git a/examples/evol/data/S_example/paml/bsA/rst b/examples/evol/data/S_example/paml/bsA/rst
new file mode 100644
index 0000000..7c20516
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/rst
@@ -0,0 +1,191 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 4 classes
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+   2 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+   3 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+   4 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+   5 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+   6 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+   7 C   0.98333 0.01667 0.00000 0.00000 ( 1)
+   8 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+   9 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  10 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  11 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  12 R   0.96886 0.03114 0.00000 0.00000 ( 1)
+  13 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  14 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  15 C   0.97638 0.02362 0.00000 0.00000 ( 1)
+  16 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  17 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  18 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  19 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  20 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  21 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  22 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  23 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  24 Y   0.74652 0.25348 0.00000 0.00000 ( 1)
+  25 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  26 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  27 R   0.97549 0.02451 0.00000 0.00000 ( 1)
+  28 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  29 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  30 Q   0.97802 0.02198 0.00000 0.00000 ( 1)
+  31 S   0.97876 0.02124 0.00000 0.00000 ( 1)
+  32 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  33 S   0.78537 0.21463 0.00000 0.00000 ( 1)
+  34 R   0.72010 0.27990 0.00000 0.00000 ( 1)
+  35 C   0.97867 0.02133 0.00000 0.00000 ( 1)
+  36 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  37 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  38 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  39 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  40 Q   0.97812 0.02188 0.00000 0.00000 ( 1)
+  41 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  42 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  43 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  44 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  45 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  46 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  47 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  48 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  49 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  50 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  51 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  52 S   0.97540 0.02460 0.00000 0.00000 ( 1)
+  53 R   0.97551 0.02449 0.00000 0.00000 ( 1)
+  54 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  55 R   0.95266 0.04734 0.00000 0.00000 ( 1)
+  56 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  57 R   0.97187 0.02813 0.00000 0.00000 ( 1)
+  58 R   0.96616 0.03384 0.00000 0.00000 ( 1)
+  59 S   0.77337 0.22663 0.00000 0.00000 ( 1)
+  60 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+  61 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  62 T   0.95838 0.04162 0.00000 0.00000 ( 1)
+  63 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  64 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  65 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  66 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+  67 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+  68 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  69 C   0.98569 0.01431 0.00000 0.00000 ( 1)
+  70 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  71 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  72 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  73 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  74 R   0.97524 0.02476 0.00000 0.00000 ( 1)
+  75 L   0.96072 0.03928 0.00000 0.00000 ( 1)
+  76 R   0.97328 0.02672 0.00000 0.00000 ( 1)
+  77 R   0.96189 0.03811 0.00000 0.00000 ( 1)
+  78 R   0.63028 0.36972 0.00000 0.00000 ( 1)
+  79 R   0.48815 0.51185 0.00000 0.00000 ( 2)
+  80 P   0.00047 0.99953 0.00000 0.00000 ( 2)
+  81 Y   0.97211 0.02789 0.00000 0.00000 ( 1)
+  82 H   0.98099 0.01901 0.00000 0.00000 ( 1)
+  83 I   0.95719 0.04281 0.00000 0.00000 ( 1)
+  84 V   0.94612 0.05388 0.00000 0.00000 ( 1)
+  85 S   0.94623 0.05377 0.00000 0.00000 ( 1)
+
+
+lnL =  -511.919210
+
+Bayes Empirical Bayes (BEB) probabilities for 4 classes (class)
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.92992 0.04202 0.02666 0.00140 ( 1)
+   2 A   0.89251 0.06723 0.03729 0.00298 ( 1)
+   3 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+   4 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+   5 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+   6 C   0.96697 0.01537 0.01727 0.00039 ( 1)
+   7 C   0.94935 0.02304 0.02683 0.00077 ( 1)
+   8 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+   9 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  10 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  11 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  12 R   0.92654 0.04232 0.02945 0.00169 ( 1)
+  13 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  14 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  15 C   0.93982 0.03245 0.02665 0.00108 ( 1)
+  16 Y   0.94349 0.03419 0.02135 0.00097 ( 1)
+  17 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  18 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  19 S   0.67821 0.28764 0.02237 0.01178 ( 1)
+  20 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  21 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  22 R   0.93929 0.03471 0.02485 0.00116 ( 1)
+  23 C   0.93229 0.03995 0.02644 0.00133 ( 1)
+  24 Y   0.66349 0.31280 0.01479 0.00892 ( 1)
+  25 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  26 Q   0.95104 0.02676 0.02143 0.00077 ( 1)
+  27 R   0.93544 0.03352 0.02975 0.00129 ( 1)
+  28 Q   0.93985 0.03408 0.02498 0.00109 ( 1)
+  29 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  30 Q   0.94683 0.03041 0.02186 0.00090 ( 1)
+  31 S   0.94315 0.02924 0.02655 0.00105 ( 1)
+  32 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  33 S   0.70349 0.27337 0.01502 0.00812 ( 1)
+  34 R   0.63397 0.33661 0.01784 0.01158 ( 1)
+  35 C   0.94711 0.02950 0.02248 0.00091 ( 1)
+  36 Y   0.94349 0.03419 0.02135 0.00097 ( 1)
+  37 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  38 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  39 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  40 Q   0.94348 0.03016 0.02537 0.00100 ( 1)
+  41 S   0.67821 0.28764 0.02237 0.01178 ( 1)
+  42 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  43 S   0.95796 0.02072 0.02070 0.00061 ( 1)
+  44 R   0.93929 0.03471 0.02485 0.00116 ( 1)
+  45 C   0.93229 0.03995 0.02644 0.00133 ( 1)
+  46 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+  47 R   0.93798 0.03119 0.02965 0.00118 ( 1)
+  48 Q   0.95104 0.02676 0.02143 0.00077 ( 1)
+  49 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  50 Q   0.93985 0.03408 0.02498 0.00109 ( 1)
+  51 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  52 S   0.94075 0.03386 0.02432 0.00107 ( 1)
+  53 R   0.94204 0.03373 0.02314 0.00108 ( 1)
+  54 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  55 R   0.90035 0.06302 0.03400 0.00263 ( 1)
+  56 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  57 R   0.92956 0.03828 0.03067 0.00149 ( 1)
+  58 R   0.90393 0.04491 0.04837 0.00279 ( 1)
+  59 S   0.69102 0.28575 0.01474 0.00849 ( 1)
+  60 C   0.96697 0.01537 0.01727 0.00039 ( 1)
+  61 Q   0.95228 0.02595 0.02103 0.00073 ( 1)
+  62 T   0.90960 0.05584 0.03237 0.00219 ( 1)
+  63 R   0.92829 0.04089 0.02928 0.00154 ( 1)
+  64 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  65 R   0.93423 0.03778 0.02669 0.00129 ( 1)
+  66 A   0.89251 0.06723 0.03729 0.00298 ( 1)
+  67 M   0.92992 0.04202 0.02666 0.00140 ( 1)
+  68 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  69 C   0.96207 0.02001 0.01740 0.00052 ( 1)
+  70 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+  71 R   0.94993 0.02609 0.02314 0.00083 ( 1)
+  72 R   0.94426 0.03037 0.02437 0.00099 ( 1)
+  73 Y   0.94908 0.02863 0.02148 0.00081 ( 1)
+  74 R   0.93780 0.03395 0.02708 0.00118 ( 1)
+  75 L   0.91397 0.05289 0.03114 0.00201 ( 1)
+  76 R   0.93543 0.03658 0.02673 0.00125 ( 1)
+  77 R   0.91493 0.05133 0.03174 0.00200 ( 1)
+  78 R   0.53868 0.40960 0.03013 0.02159 ( 1)
+  79 R   0.42890 0.53975 0.01203 0.01932 ( 2)
+  80 P   0.00131 0.63015 0.04520 0.32334 ( 2)
+  81 Y   0.93289 0.03812 0.02767 0.00133 ( 1)
+  82 H   0.94481 0.02619 0.02810 0.00090 ( 1)
+  83 I   0.90475 0.05715 0.03568 0.00242 ( 1)
+  84 V   0.88645 0.07084 0.03941 0.00329 ( 1)
+  85 S   0.88711 0.07075 0.03889 0.00325 ( 1)
+
diff --git a/examples/evol/data/S_example/paml/bsA/rst1 b/examples/evol/data/S_example/paml/bsA/rst1
new file mode 100644
index 0000000..e1c739c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.213	0.033	0.167	0.157	0.097	0.242	3.542	0.938	0.062	0.061	1.000	-511.919
diff --git a/examples/evol/data/S_example/paml/bsA/rub b/examples/evol/data/S_example/paml/bsA/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/S_example/paml/bsA/tmp.ctl b/examples/evol/data/S_example/paml/bsA/tmp.ctl
new file mode 100644
index 0000000..474299a
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 2
+ *        ncatG = 
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 0
+          omega = 1.7
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/examples/evol/data/S_example/paml/bsA/tree b/examples/evol/data/S_example/paml/bsA/tree
new file mode 100644
index 0000000..7b35f77
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/bsA1/2NG.dN b/examples/evol/data/S_example/paml/bsA1/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/examples/evol/data/S_example/paml/bsA1/2NG.dS b/examples/evol/data/S_example/paml/bsA1/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/examples/evol/data/S_example/paml/bsA1/2NG.t b/examples/evol/data/S_example/paml/bsA1/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/examples/evol/data/S_example/paml/bsA1/4fold.nuc b/examples/evol/data/S_example/paml/bsA1/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/examples/evol/data/S_example/paml/bsA1/algn b/examples/evol/data/S_example/paml/bsA1/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/examples/evol/data/S_example/paml/bsA1/lnf b/examples/evol/data/S_example/paml/bsA1/lnf
new file mode 100644
index 0000000..e09e39d
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4928046223   0.004116283350       0.3499  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1   -10.3523379601   0.000031918079       0.0027  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1721442209   0.015419162561       1.3106  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.6387646266   0.000481422822       0.0409  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.5797501941   0.010257458350       0.8719  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1   -10.2857537472   0.000034115670       0.0029  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.2202710402   0.005405863722       0.4595  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.1412157384   0.002152305387       0.1829  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -8.8803240149   0.000139099088       0.0118  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -7.2780141785   0.000690555523       0.0587  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8009807648   0.060750451491       5.1638  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -7.2115014536   0.000738048178       0.0627  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -5.9828153512   0.002521716771       0.2143  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.2849946001   0.005067059550       0.4307  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4762188596   0.030924118684       2.6286  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8307512095   0.000397326892       0.0338  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7413520397   0.008726839172       0.7418  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8776240263   0.007615085794       0.6473  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.5635725089   0.000190935953       0.0162  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3144572904   0.001809947770       0.1538  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.4226405119   0.000080872193       0.0069  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1    -9.7632669080   0.000057526381       0.0049  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -7.7094792552   0.000448554999       0.0381  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.0837282415   0.016844547896       1.4318  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.5774677707   0.000511855719       0.0435  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -25.6326686161   0.000000000007       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4160564712   0.032841692065       2.7915  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.4317776203   0.000217833920       0.0185  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7900201188   0.000413844558       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.7700999237   0.000155308061       0.0132  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.3432669511   0.001758547753       0.1495  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0761251377   0.016973106847       1.4427  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2653693210   0.000257273890       0.0219  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1552277949   0.005769165739       0.4904  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2420500093   0.005289402390       0.4496  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.2991347608   0.000676123531       0.0575  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.0673081990   0.000002113198       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.5916596235   0.000068295982       0.0058  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3704121918   0.012646026905       1.0749  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6386085794   0.000481497952       0.0409  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.8265276976   0.000007308097       0.0006  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7052527125   0.001224463228       0.1041  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4299926152   0.032387179945       2.7529  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.2144707985   0.000735859909       0.0625  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.8688970655   0.000382455954       0.0325  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.5917291852   0.001371666047       0.1166  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8056717961   0.003010431677       0.2559  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8081283232   0.008163124138       0.6939  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/bsA1/out b/examples/evol/data/S_example/paml/bsA1/out
new file mode 100644
index 0000000..0db95cf
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/out
@@ -0,0 +1,183 @@
+
+seed used = 861649265
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: several dN/dS ratios for branches for branches omega = 1.000 fixed
+
+Codon frequency model: F3x4
+Site-class models:  PositiveSelection
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 10):   -511.919210      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.241306 0.032940 0.166565 0.156609 0.096747 0.213357 3.542372 0.938134 0.061866 0.060763
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.90752
+
+((2: 0.032940, (1: 0.156609, 3: 0.096747): 0.166565): 0.241306, 4: 0.213357);
+
+((Hylobates_lar: 0.032940, (Gorilla_gorilla: 0.156609, Pan_troglodytes: 0.096747): 0.166565): 0.241306, Papio_cynocephalus: 0.213357);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54237
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+
+Time used:  0:10
diff --git a/examples/evol/data/S_example/paml/bsA1/rst b/examples/evol/data/S_example/paml/bsA1/rst
new file mode 100644
index 0000000..a464e96
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/rst
@@ -0,0 +1,102 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS (w) for site classes (K=4)
+
+site class             0        1       2a       2b
+proportion       0.93813  0.06187  0.00000  0.00000
+background w     0.06076  1.00000  0.06076  1.00000
+foreground w     0.06076  1.00000  1.00000  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 4 classes
+(amino acids refer to 1st sequence: Gorilla_gorilla)
+
+   1 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+   2 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+   3 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+   4 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+   5 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+   6 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+   7 C   0.98333 0.01667 0.00000 0.00000 ( 1)
+   8 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+   9 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  10 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  11 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  12 R   0.96886 0.03114 0.00000 0.00000 ( 1)
+  13 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  14 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  15 C   0.97638 0.02362 0.00000 0.00000 ( 1)
+  16 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  17 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  18 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  19 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  20 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  21 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  22 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  23 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  24 Y   0.74653 0.25347 0.00000 0.00000 ( 1)
+  25 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  26 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  27 R   0.97549 0.02451 0.00000 0.00000 ( 1)
+  28 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  29 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  30 Q   0.97802 0.02198 0.00000 0.00000 ( 1)
+  31 S   0.97876 0.02124 0.00000 0.00000 ( 1)
+  32 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  33 S   0.78537 0.21463 0.00000 0.00000 ( 1)
+  34 R   0.72010 0.27990 0.00000 0.00000 ( 1)
+  35 C   0.97867 0.02133 0.00000 0.00000 ( 1)
+  36 Y   0.97524 0.02476 0.00000 0.00000 ( 1)
+  37 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  38 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  39 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  40 Q   0.97812 0.02188 0.00000 0.00000 ( 1)
+  41 S   0.76818 0.23182 0.00000 0.00000 ( 1)
+  42 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  43 S   0.98512 0.01488 0.00000 0.00000 ( 1)
+  44 R   0.97474 0.02526 0.00000 0.00000 ( 1)
+  45 C   0.97078 0.02922 0.00000 0.00000 ( 1)
+  46 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  47 R   0.97723 0.02277 0.00000 0.00000 ( 1)
+  48 Q   0.98071 0.01929 0.00000 0.00000 ( 1)
+  49 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  50 Q   0.97521 0.02479 0.00000 0.00000 ( 1)
+  51 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  52 S   0.97540 0.02460 0.00000 0.00000 ( 1)
+  53 R   0.97551 0.02449 0.00000 0.00000 ( 1)
+  54 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  55 R   0.95266 0.04734 0.00000 0.00000 ( 1)
+  56 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  57 R   0.97187 0.02813 0.00000 0.00000 ( 1)
+  58 R   0.96616 0.03384 0.00000 0.00000 ( 1)
+  59 S   0.77337 0.22663 0.00000 0.00000 ( 1)
+  60 C   0.98905 0.01095 0.00000 0.00000 ( 1)
+  61 Q   0.98131 0.01869 0.00000 0.00000 ( 1)
+  62 T   0.95838 0.04162 0.00000 0.00000 ( 1)
+  63 R   0.96995 0.03005 0.00000 0.00000 ( 1)
+  64 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  65 R   0.97239 0.02761 0.00000 0.00000 ( 1)
+  66 A   0.94915 0.05085 0.00000 0.00000 ( 1)
+  67 M   0.96921 0.03079 0.00000 0.00000 ( 1)
+  68 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  69 C   0.98569 0.01431 0.00000 0.00000 ( 1)
+  70 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  71 R   0.98115 0.01885 0.00000 0.00000 ( 1)
+  72 R   0.97797 0.02203 0.00000 0.00000 ( 1)
+  73 Y   0.97934 0.02066 0.00000 0.00000 ( 1)
+  74 R   0.97524 0.02476 0.00000 0.00000 ( 1)
+  75 L   0.96072 0.03928 0.00000 0.00000 ( 1)
+  76 R   0.97328 0.02672 0.00000 0.00000 ( 1)
+  77 R   0.96189 0.03811 0.00000 0.00000 ( 1)
+  78 R   0.63028 0.36972 0.00000 0.00000 ( 1)
+  79 R   0.48815 0.51185 0.00000 0.00000 ( 2)
+  80 P   0.00047 0.99953 0.00000 0.00000 ( 2)
+  81 Y   0.97211 0.02789 0.00000 0.00000 ( 1)
+  82 H   0.98099 0.01901 0.00000 0.00000 ( 1)
+  83 I   0.95719 0.04281 0.00000 0.00000 ( 1)
+  84 V   0.94612 0.05388 0.00000 0.00000 ( 1)
+  85 S   0.94623 0.05377 0.00000 0.00000 ( 1)
+
+
+lnL =  -511.919210
+
diff --git a/examples/evol/data/S_example/paml/bsA1/rst1 b/examples/evol/data/S_example/paml/bsA1/rst1
new file mode 100644
index 0000000..418c5fb
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/rst1
@@ -0,0 +1 @@
+	4	85	48	0.5892	0.241	0.033	0.167	0.157	0.097	0.213	3.542	0.938	0.062	0.061	-511.919
diff --git a/examples/evol/data/S_example/paml/bsA1/rub b/examples/evol/data/S_example/paml/bsA1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/S_example/paml/bsA1/tmp.ctl b/examples/evol/data/S_example/paml/bsA1/tmp.ctl
new file mode 100644
index 0000000..17dcb3c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 2
+ *        ncatG = 
+ *        ndata = 10
+          noisy = 0
+        NSsites = 2
+      fix_omega = 1
+          omega = 1
+   RateAncestor = 0
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/examples/evol/data/S_example/paml/bsA1/tree b/examples/evol/data/S_example/paml/bsA1/tree
new file mode 100644
index 0000000..7b35f77
--- /dev/null
+++ b/examples/evol/data/S_example/paml/bsA1/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla #1,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/fb/2NG.dN b/examples/evol/data/S_example/paml/fb/2NG.dN
new file mode 100644
index 0000000..4b3f92e
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/2NG.dN
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.0152
+Pan_troglodytes        0.0257  0.0204
+Papio_cynocephalus     0.0204  0.0360  0.0469
diff --git a/examples/evol/data/S_example/paml/fb/2NG.dS b/examples/evol/data/S_example/paml/fb/2NG.dS
new file mode 100644
index 0000000..059ae6c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/2NG.dS
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.5209
+Pan_troglodytes        0.2703  0.3547
+Papio_cynocephalus     0.7121  0.4864  1.0261
diff --git a/examples/evol/data/S_example/paml/fb/2NG.t b/examples/evol/data/S_example/paml/fb/2NG.t
new file mode 100644
index 0000000..54798be
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/2NG.t
@@ -0,0 +1,5 @@
+     4
+Gorilla_gorilla      
+Hylobates_lar          0.3784
+Pan_troglodytes        0.2420  0.2840
+Papio_cynocephalus     0.5214  0.4041  0.8002
diff --git a/examples/evol/data/S_example/paml/fb/4fold.nuc b/examples/evol/data/S_example/paml/fb/4fold.nuc
new file mode 100644
index 0000000..e18ff02
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/4fold.nuc
@@ -0,0 +1,17 @@
+     4      21
+
+Gorilla_gorilla
+CCCGGGGGGGCTAGCCCGTAT
+
+Hylobates_lar
+CCGCGCGCGCGAAGCCCGTAT
+
+Pan_troglodytes
+CCGGGGGGGGCAAGCCCGTAT
+
+Papio_cynocephalus
+CCACGCGCGCTAAGCCCGTGT
+
+
+codons included
+  2  8 12 17 20 25 32 37 42 47 53 55 62 63 66 70 71 75 77 84 85
diff --git a/examples/evol/data/S_example/paml/fb/algn b/examples/evol/data/S_example/paml/fb/algn
new file mode 100644
index 0000000..ffa138c
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/algn
@@ -0,0 +1,9 @@
+ 4 258
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGCAGCAGATGTTACCGGCAGAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGCCAGAGCCGGAGCAGATGCTACCGGCAGAGCCAAAGCCGGAGCAGGTGTTACCGGCAGAGACAAAGAAGTCGCAGACGTAGGCGGAGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAGAAGACCCTATCATATTGTATCT
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGCCGGAGCAGATGTTACCGCCAGAGGCAAAGCCAGAGTCGGAGCAGATGTTACCGCCAGAGCCAGAGCCGGAGCAGATGTTACCGCCAGAGACAAAGAAGTCGGAGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGT---CGCCGCAGGTACAGGCTGAGACGTAGAAGCTGTTACCACATTGTATCT
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAGAGCCGGAGCAGATGTTACCGGCAGAGACGGAGCAGGTGTTACCGGCAAAGGCAAAGCCAAAGTCGGAGCAGATGTTACCGGCAGAGCCAGAGACGGAGCAGGTGTTACCGGCAAAGACAAAGAAGTCGCAGACGAAGGCGACGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGCCGCCGCAGGTACAGACTGAGACGTAAAAGATGTTACCATATTGTATCT
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAGAGCCGAAGCAGATGCTATCGCCAGAGCCGGAGCAGATGTAACCGCCAGAGACAGAGCCAAAGCCGGAGAAGCTGCTATCGCCAGAGCCAAAGCCGGAGCAGATGTTACCGCCAGAGACAGAGAAGTCGTAGACGAAGGAGGCGACGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTTCCGCCGCAGGTACAGGCTGAGGCGTAGGAGGCCCTATCACATCGTGTCT
diff --git a/examples/evol/data/S_example/paml/fb/lnf b/examples/evol/data/S_example/paml/fb/lnf
new file mode 100644
index 0000000..145a958
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/lnf
@@ -0,0 +1,53 @@
+    -1     85     48
+
+
+ 1
+
+     1      1    -5.4934388248   0.004113673620       0.3497  ACA (T) ACA (T) ACA (T) ACA (T) 
+     2      1    -9.2638026873   0.000094794166       0.0081  AGA (R) AGA (R) AAA (K) AGG (R) 
+     3      6    -4.1494495889   0.015773095784       1.3407  AGA (R) AGA (R) AGA (R) AGA (R) 
+     4      1    -7.3507634429   0.000642101965       0.0546  AGA (R) AGA (R) AGA (R) AGC (S) 
+     5      1    -4.6196525169   0.009856220336       0.8378  AGA (R) AGA (R) AGA (R) AGG (R) 
+     6      1    -9.4656015663   0.000077471412       0.0066  AGA (R) AGC (S) AGA (R) AGG (R) 
+     7      1    -5.0411794459   0.006466117383       0.5496  AGA (R) AGG (R) AGA (R) AGG (R) 
+     8      1    -6.2352563701   0.001959126888       0.1665  AGA (R) AGG (R) AGG (R) AGA (R) 
+     9      2    -7.5737661665   0.000513753918       0.0437  AGC (S) AGC (S) AGA (R) AGC (S) 
+    10      1    -6.8430931580   0.001066798515       0.0907  AGC (S) AGC (S) AGC (S) AGA (R) 
+    11      7    -2.8462253457   0.058063075790       4.9354  AGC (S) AGC (S) AGC (S) AGC (S) 
+    12      1    -6.7264391064   0.001198794145       0.1019  AGC (S) AGC (S) AGC (S) CGC (R) 
+    13      1    -6.0661347894   0.002320123668       0.1972  AGC (S) AGT (S) AGT (S) AGC (S) 
+    14      2    -5.1000967944   0.006096156463       0.5182  AGG (R) AGA (R) AGG (R) AGA (R) 
+    15      5    -3.4802533124   0.030799608121       2.6180  AGG (R) AGG (R) AGG (R) AGG (R) 
+    16      1    -7.8191627329   0.000401958088       0.0342  AGG (R) CGG (R) CGG (R) CGA (R) 
+    17      1    -4.7190447175   0.008923699131       0.7585  AGT (S) AGT (S) AGT (S) AGT (S) 
+    18      2    -4.8918180869   0.007507760299       0.6382  ATG (M) ATG (M) ATG (M) ATG (M) 
+    19      1    -8.6201934634   0.000180425346       0.0153  ATT (I) ATT (I) ATT (I) ATC (I) 
+    20      2    -6.3856436436   0.001685583231       0.1433  CAA (Q) CAA (Q) CAA (Q) CAG (Q) 
+    21      1    -9.5273854027   0.000072829796       0.0062  CAA (Q) CAG (Q) CAG (Q) CAA (Q) 
+    22      1   -10.4386114379   0.000029279837       0.0025  CAG (Q) CAG (Q) CAA (Q) CAA (Q) 
+    23      2    -8.2183555957   0.000269658128       0.0229  CAG (Q) CAG (Q) CAA (Q) CAG (Q) 
+    24      4    -4.1137885944   0.016345729729       1.3894  CAG (Q) CAG (Q) CAG (Q) CAG (Q) 
+    25      1    -7.3179575502   0.000663516026       0.0564  CAT (H) CAC (H) CAT (H) CAC (H) 
+    26      1   -30.1471504834   0.000000000000       0.0000  CCC (P) TGT (C) TGT (C) CCC (P) 
+    27      3    -3.4371261911   0.032156965642       2.7333  CGC (R) CGC (R) CGC (R) CGC (R) 
+    28      1    -8.6504880429   0.000175041400       0.0149  CGC (R) CGG (R) CGC (R) CGT (R) 
+    29      1    -7.7902648997   0.000413743269       0.0352  CGC (R) CGG (R) CGG (R) CGA (R) 
+    30      1    -8.8128650352   0.000148806309       0.0126  CGG (R) AGG (R) CGA (R) AGG (R) 
+    31      4    -6.0545424590   0.002347175804       0.1995  CGG (R) CGC (R) CGG (R) CGC (R) 
+    32      4    -4.0556127396   0.017324861303       1.4726  CGG (R) CGG (R) CGG (R) CGG (R) 
+    33      1    -8.2014603141   0.000274252782       0.0233  CGT (R) CGA (R) CGA (R) CGA (R) 
+    34      1    -5.1110235560   0.006029907815       0.5125  CGT (R) CGT (R) CGT (R) CGT (R) 
+    35      1    -5.2440411580   0.005278880882       0.4487  CTG (L) CTG (L) CTG (L) CTG (L) 
+    36      2    -7.3004519182   0.000675233556       0.0574  GCC (A) GCC (A) GCC (A) GCC (A) 
+    37      1   -13.1110206397   0.000002022815       0.0002  GTA (V) GTA (V) GTA (V) GTG (V) 
+    38      1    -9.2252653917   0.000098518581       0.0084  TAC (Y) TAC (Y) TAC (Y) AAC (N) 
+    39      3    -4.3994748917   0.012283788529       1.0441  TAC (Y) TAC (Y) TAC (Y) TAC (Y) 
+    40      2    -7.6798550011   0.000462041889       0.0393  TAC (Y) TAC (Y) TAC (Y) TAT (Y) 
+    41      1   -11.9615253748   0.000006385215       0.0005  TAT (Y) TAC (Y) TAC (Y) TAT (Y) 
+    42      1    -6.7038106360   0.001226230271       0.1042  TCT (S) TCT (S) TCT (S) TCT (S) 
+    43      2    -3.4937345751   0.030387176809       2.5829  TGC (C) TGC (C) TGC (C) TGC (C) 
+    44      1    -7.5274148970   0.000538127575       0.0457  TGC (C) TGT (C) TGC (C) TGC (C) 
+    45      1    -7.9651690984   0.000347352967       0.0295  TGC (C) TGT (C) TGT (C) TGC (C) 
+    46      1    -6.3655140429   0.001719857152       0.1462  TGT (C) TGC (C) TGT (C) TGC (C) 
+    47      1    -5.8955365601   0.002751699495       0.2339  TGT (C) TGT (C) TGT (C) TGC (C) 
+    48      2    -4.8036021893   0.008200155272       0.6970  TGT (C) TGT (C) TGT (C) TGT (C) 
\ No newline at end of file
diff --git a/examples/evol/data/S_example/paml/fb/out b/examples/evol/data/S_example/paml/fb/out
new file mode 100644
index 0000000..b357019
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/out
@@ -0,0 +1,197 @@
+
+seed used = 863360473
+
+Before deleting alignment gaps
+      4    258
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT --- CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TTC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+After deleting gaps. 255 sites
+      4    255
+
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+
+
+
+Printing out site pattern counts
+
+
+         4        144  P
+
+Gorilla_gorilla       ACA AGA AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGC AGG AGG AGG AGT ATG ATT CAA CAA CAG CAG CAG CAT CCC CGC CGC CGC CGG CGG CGG CGT CGT CTG GCC GTA TAC TAC TAC TAT TCT TGC TGC TGC TGT TGT TGT 
+Hylobates_lar         ... ... ... ... ... ..C ..G ..G ... ... ... ... ..T ..A ... C.. ... ... ... ... ..G ... ... ... ..C TGT ... ..G ..G A.. ..C ... ..A ... ... ... ... ... ... ... ..C ... ... ..T ..T ..C ... ... 
+Pan_troglodytes       ... .A. ... ... ... ... ... ..G ..A ... ... ... ..T ... ... C.. ... ... ... ... ..G ..A ..A ... ... TGT ... ... ..G ..A ... ... ..A ... ... ... ... ... ... ... ..C ... ... ... ..T ... ... ... 
+Papio_cynocephalus    ... ..G ... ..C ..G ..G ..G ... ... ..A ... C.. ... ..A ... C.A ... ... ..C ..G ... ..A ... ... ..C ... ... ..T ..A A.. ..C ... ..A ... ... ... ..G A.. ... ..T ... ... ... ... ... ..C ..C ... 
+
+    1    1    6    1    1    1    1    1    2    1    7    1    1    2    5
+    1    1    2    1    2    1    1    2    4    1    1    3    1    1    1
+    4    4    1    1    1    2    1    1    3    2    1    1    2    1    1
+    1    1    2
+
+CODONML (in paml version 4.4b, July 2010)  algn
+Model: free dN/dS Ratios for branches for branches
+Codon frequency model: F3x4
+ns =   4  ls =  85
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0 | Ser TCT  1  1  1  1 | Tyr TAT  1  0  0  3 | Cys TGT  4  6  6  2
+    TTC  0  0  0  0 |     TCC  0  0  0  0 |     TAC  6  7  7  3 |     TGC  4  3  3  6
+Leu TTA  0  0  0  0 |     TCA  0  0  0  0 | *** TAA  0  0  0  0 | *** TGA  0  0  0  0
+    TTG  0  0  0  0 |     TCG  0  0  0  0 |     TAG  0  0  0  0 | Trp TGG  0  0  0  0
+--------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0 | Pro CCT  0  0  0  0 | His CAT  1  0  1  0 | Arg CGT  2  1  1  2
+    CTC  0  0  0  0 |     CCC  1  0  0  1 |     CAC  0  1  0  1 |     CGC  5  7  4  8
+    CTA  0  0  0  0 |     CCA  0  0  0  0 | Gln CAA  3  2  5  2 |     CGA  0  1  2  3
+    CTG  1  1  1  1 |     CCG  0  0  0  0 |     CAG  7  8  5  8 |     CGG  9  7 10  4
+--------------------------------------------------------------------------------------
+Ile ATT  1  1  1  0 | Thr ACT  0  0  0  0 | Asn AAT  0  0  0  0 | Ser AGT  1  2  2  1
+    ATC  0  0  0  1 |     ACC  0  0  0  0 |     AAC  0  0  0  1 |     AGC 12 12  9 11
+    ATA  0  0  0  0 |     ACA  1  1  1  1 | Lys AAA  0  0  1  0 | Arg AGA 12 11 12 10
+Met ATG  2  2  2  2 |     ACG  0  0  0  0 |     AAG  0  0  0  0 |     AGG  8  8  8 10
+--------------------------------------------------------------------------------------
+Val GTT  0  0  0  0 | Ala GCT  0  0  0  0 | Asp GAT  0  0  0  0 | Gly GGT  0  0  0  0
+    GTC  0  0  0  0 |     GCC  2  2  2  2 |     GAC  0  0  0  0 |     GGC  0  0  0  0
+    GTA  1  1  1  0 |     GCA  0  0  0  0 | Glu GAA  0  0  0  0 |     GGA  0  0  0  0
+    GTG  0  0  0  1 |     GCG  0  0  0  0 |     GAG  0  0  0  0 |     GGG  0  0  0  0
+--------------------------------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Gorilla_gorilla
+position  1:    T:0.18824    C:0.34118    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.12941    C:0.35294    A:0.20000    G:0.31765
+Average         T:0.12549    C:0.25098    A:0.28235    G:0.34118
+
+#2: Hylobates_lar  
+position  1:    T:0.20000    C:0.32941    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.21176    G:0.68235
+position  3:    T:0.12941    C:0.37647    A:0.18824    G:0.30588
+Average         T:0.12941    C:0.25098    A:0.27843    G:0.34118
+
+#3: Pan_troglodytes
+position  1:    T:0.20000    C:0.34118    A:0.42353    G:0.03529
+position  2:    T:0.05882    C:0.04706    A:0.22353    G:0.67059
+position  3:    T:0.14118    C:0.29412    A:0.25882    G:0.30588
+Average         T:0.13333    C:0.22745    A:0.30196    G:0.33725
+
+#4: Papio_cynocephalus
+position  1:    T:0.17647    C:0.35294    A:0.43529    G:0.03529
+position  2:    T:0.05882    C:0.05882    A:0.21176    G:0.67059
+position  3:    T:0.10588    C:0.40000    A:0.18824    G:0.30588
+Average         T:0.11373    C:0.27059    A:0.27843    G:0.33725
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       0 | Ser S TCT       4 | Tyr Y TAT       4 | Cys C TGT      18
+      TTC       0 |       TCC       0 |       TAC      23 |       TGC      16
+Leu L TTA       0 |       TCA       0 | *** * TAA       0 | *** * TGA       0
+      TTG       0 |       TCG       0 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       0 | His H CAT       2 | Arg R CGT       6
+      CTC       0 |       CCC       2 |       CAC       2 |       CGC      24
+      CTA       0 |       CCA       0 | Gln Q CAA      12 |       CGA       6
+      CTG       4 |       CCG       0 |       CAG      28 |       CGG      30
+------------------------------------------------------------------------------
+Ile I ATT       3 | Thr T ACT       0 | Asn N AAT       0 | Ser S AGT       6
+      ATC       1 |       ACC       0 |       AAC       1 |       AGC      44
+      ATA       0 |       ACA       4 | Lys K AAA       1 | Arg R AGA      45
+Met M ATG       8 |       ACG       0 |       AAG       0 |       AGG      34
+------------------------------------------------------------------------------
+Val V GTT       0 | Ala A GCT       0 | Asp D GAT       0 | Gly G GGT       0
+      GTC       0 |       GCC       8 |       GAC       0 |       GGC       0
+      GTA       3 |       GCA       0 | Glu E GAA       0 |       GGA       0
+      GTG       1 |       GCG       0 |       GAG       0 |       GGG       0
+------------------------------------------------------------------------------
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.19118    C:0.34118    A:0.43235    G:0.03529
+position  2:    T:0.05882    C:0.05294    A:0.21471    G:0.67353
+position  3:    T:0.12647    C:0.35588    A:0.20882    G:0.30882
+Average         T:0.12549    C:0.25000    A:0.28529    G:0.33922
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00149417  0.00420453  0.00246712  0.00364856
+  0.00134475  0.00378408  0.00222041  0.00328370
+  0.00545372  0.01534653  0.00000000  0.00000000
+  0.01710826  0.04814185  0.00000000  0.04177598
+  0.00266652  0.00750347  0.00440286  0.00651127
+  0.00239987  0.00675312  0.00396257  0.00586014
+  0.00973280  0.02738765  0.01607044  0.02376614
+  0.03053166  0.08591468  0.05041275  0.07455406
+  0.00337913  0.00950870  0.00557949  0.00825135
+  0.00304121  0.00855783  0.00502154  0.00742622
+  0.01233381  0.03470676  0.02036513  0.03011744
+  0.03869099  0.10887464  0.06388512  0.09447799
+  0.00027585  0.00077622  0.00045547  0.00067358
+  0.00024826  0.00069860  0.00040992  0.00060622
+  0.00100684  0.00283321  0.00166246  0.00245857
+  0.00315845  0.00888773  0.00521511  0.00771249
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Gorilla_gorilla     
+Hylobates_lar        0.0292 (0.0152 0.5209)
+Pan_troglodytes      0.0952 (0.0257 0.2703) 0.0576 (0.0204 0.3547)
+Papio_cynocephalus   0.0287 (0.0204 0.7121) 0.0740 (0.0360 0.4864) 0.0458 (0.0469 1.0261)
+
+
+TREE #  1:  ((2, (1, 3)), 4);   MP score: 53
+This is a rooted tree.  Please check!
+lnL(ntime:  6  np: 13):   -511.782035      +0.000000
+   5..6     6..2     6..7     7..1     7..3     5..4  
+ 0.364226 0.013782 0.193136 0.157436 0.084266 0.073477 3.544248 0.000100 999.000000 0.000100 0.106621 0.566150 999.000000
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =   0.88632
+
+((2: 0.013782, (1: 0.157436, 3: 0.084266): 0.193136): 0.364226, 4: 0.073477);
+
+((Hylobates_lar: 0.013782, (Gorilla_gorilla: 0.157436, Pan_troglodytes: 0.084266): 0.193136): 0.364226, Papio_cynocephalus: 0.073477);
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  3.54425
+
+w (dN/dS) for branches:  0.00010 999.00000 0.00010 0.10662 0.56615 999.00000
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+   5..6      0.364   159.3    95.7  0.0001  0.0000  0.3233   0.0  31.0
+   6..2      0.014   159.3    95.7 999.0000  0.0074  0.0000   1.2   0.0
+   6..7      0.193   159.3    95.7  0.0001  0.0000  0.1714   0.0  16.4
+   7..1      0.157   159.3    95.7  0.1066  0.0127  0.1187   2.0  11.4
+   7..3      0.084   159.3    95.7  0.5662  0.0218  0.0385   3.5   3.7
+   5..4      0.073   159.3    95.7 999.0000  0.0392  0.0000   6.2   0.0
+
+tree length for dN:       0.0811
+tree length for dS:       0.6520
+
+dS tree:
+((Hylobates_lar: 0.000007, (Gorilla_gorilla: 0.118718, Pan_troglodytes: 0.038528): 0.171440): 0.323311, Papio_cynocephalus: 0.000039);
+dN tree:
+((Hylobates_lar: 0.007351, (Gorilla_gorilla: 0.012658, Pan_troglodytes: 0.021813): 0.000017): 0.000032, Papio_cynocephalus: 0.039193);
+
+w ratios as labels for TreeView:
+((Hylobates_lar '#999.0000' , (Gorilla_gorilla '#0.1066' , Pan_troglodytes '#0.5662' ) '#0.0001' ) '#0.0001' , Papio_cynocephalus '#999.0000' );
+
+
+Time used:  0:18
diff --git a/examples/evol/data/S_example/paml/fb/rst b/examples/evol/data/S_example/paml/fb/rst
new file mode 100644
index 0000000..2784b87
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/rst
@@ -0,0 +1,656 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+TREE #  1
+
+Ancestral reconstruction by CODONML.
+
+((Hylobates_lar: 0.013782, (Gorilla_gorilla: 0.157436, Pan_troglodytes: 0.084266): 0.193136): 0.364226, Papio_cynocephalus: 0.073477);
+
+((2, (1, 3)), 4);
+
+   5..6     6..2     6..7     7..1     7..3     5..4  
+
+tree with node labels for Rod Page's TreeView
+((2_Hylobates_lar, (1_Gorilla_gorilla, 3_Pan_troglodytes) 7 ) 6 , 4_Papio_cynocephalus) 5 ;
+
+Nodes 5 to 7 are ancestral
+
+(1) Marginal reconstruction of ancestral sequences
+(eqn. 4 in Yang et al. 1995 Genetics 141:1641-1650).
+
+Prob distribs at nodes, those with p < 0.001 not listed
+
+Prob distribution at node 5, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.999) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.001) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.008) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.001) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.874) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.001) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.125) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(1.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(1.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(1.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob distribution at node 6, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(1.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(1.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(1.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(1.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.875) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.001) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.124) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(1.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(1.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob distribution at node 7, by site
+
+   site  Freq   Data
+
+      1      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      2      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      3      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      5      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      6      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      7      1   TGT (C) TGC (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.990) TGC(0.010) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      8      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+      9      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     11      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     12      1   CGC (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.002) CGC(0.029) CGA(0.011) CGG(0.959) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     13      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     14      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     15      1   TGT (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     17      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     19      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     20      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     21      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     22      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     23      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     25      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     27      1   AGA (R) AGG (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     29      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     31      1   AGC (S) AGT (S) AGT (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     32      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     33      1   AGC (S) AGC (S) AGC (S) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     34      1   AGA (R) AGA (R) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     35      1   TGC (C) TGT (C) TGT (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.979) TGC(0.021) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     37      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     39      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.027) CAG(0.973) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     41      2   AGC (S) AGC (S) AGA (R) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     42      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     43      7   AGC (S) AGC (S) AGC (S) AGC (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     44      2   AGG (R) AGA (R) AGG (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     45      2   TGT (C) TGT (C) TGT (C) TGT (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(1.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     47      4   CGG (R) CGC (R) CGG (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.013) CGA(0.008) CGG(0.978) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.206) CAG(0.794) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     49      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(1.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     51      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     52      1   AGT (S) AGT (S) AGT (S) AGT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     53      1   CGC (R) CGG (R) CGC (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.005) CGC(0.981) CGA(0.002) CGG(0.012) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     54      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     55      1   CGT (R) CGA (R) CGA (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.019) CGC(0.004) CGA(0.966) CGG(0.011) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     56      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     57      1   CGG (R) AGG (R) CGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.001) CGA(0.417) CGG(0.570) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     58      1   AGG (R) CGG (R) CGG (R) CGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.972) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     59      1   AGC (S) AGC (S) AGC (S) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     60      2   TGC (C) TGC (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(1.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(1.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     62      1   ACA (T) ACA (T) ACA (T) ACA (T) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(1.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     63      4   CGG (R) CGG (R) CGG (R) CGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.002) CGG(0.998) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     64      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     65      6   AGA (R) AGA (R) AGA (R) AGA (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     66      2   GCC (A) GCC (A) GCC (A) GCC (A) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     67      2   ATG (M) ATG (M) ATG (M) ATG (M) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(1.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     68      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     69      1   TGC (C) TGT (C) TGC (C) TGC (C) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.025) TGC(0.975) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     70      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     71      3   CGC (R) CGC (R) CGC (R) CGC (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.001) CGC(0.998) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     72      5   AGG (R) AGG (R) AGG (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(1.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     74      1   AGA (R) AGG (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     75      1   CTG (L) CTG (L) CTG (L) CTG (L) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(1.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     76      1   AGA (R) AGA (R) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     77      1   CGT (R) CGT (R) CGT (R) CGT (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.999) CGC(0.001) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     78      1   AGA (R) AGA (R) AAA (K) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     79      1   AGA (R) AGC (S) AGA (R) AGG (R) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     80      1   CCC (P) TGT (C) TGT (C) CCC (P) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.841) TGC(0.034) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.001) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.112) CGC(0.012) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.017) TAC(0.983) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     82      1   CAT (H) CAC (H) CAT (H) CAC (H) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.994) CAC(0.006) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     83      1   ATT (I) ATT (I) ATT (I) ATC (I) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(1.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     84      1   GTA (V) GTA (V) GTA (V) GTG (V) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(0.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+     85      1   TCT (S) TCT (S) TCT (S) TCT (S) : TTT(0.000) TTC(0.000) TTA(0.000) TTG(0.000) TCT(1.000) TCC(0.000) TCA(0.000) TCG(0.000) TAT(0.000) TAC(0.000) TGT(0.000) TGC(0.000) TGG(0.000) CTT(0.000) CTC(0.000) CTA(0.000) CTG(0.000) CCT(0.000) CCC(0.000) CCA(0.000) CCG(0.000) CAT(0.000) CAC(0.000) CAA(0.000) CAG(0.000) CGT(0.000) CGC(0.000) CGA(0.000) CGG(0.000) ATT(0.000) ATC(0.000) ATA(0.000) ATG(0.000) ACT(0.000) ACC(0.000) ACA(0.000) ACG(0.000) AAT(0.000) AAC(0.000) AAA(0.000) A [...]
+
+Prob of best state at each node, listed by site
+
+   site   Freq   Data: 
+
+   1      2   ATG (M) ATG (M) ATG (M) ATG (M) :  ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000)
+   2      2   GCC (A) GCC (A) GCC (A) GCC (A) :  GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000)
+   3      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+   4      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+   5      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+   6      2   TGC (C) TGC (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000)
+   7      1   TGT (C) TGC (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGT C 0.990 (C 1.000)
+   8      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+   9      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  10      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  11      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  12      1   CGC (R) CGG (R) CGG (R) CGA (R) :  CGA R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.959 (R 1.000)
+  13      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  14      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  15      1   TGT (C) TGT (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  16      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  17      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  18      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  19      2   AGC (S) AGC (S) AGA (R) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.970 (S 1.000)
+  20      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  21      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  22      2   AGG (R) AGA (R) AGG (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGG R 0.952 (R 1.000)
+  23      2   TGT (C) TGT (C) TGT (C) TGT (C) :  TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  24      1   TAC (Y) TAC (Y) TAC (Y) AAC (N) :  TAC Y 0.999 (Y 0.999) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  25      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  26      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  27      1   AGA (R) AGG (R) AGG (R) AGA (R) :  AGA R 0.999 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.908 (R 1.000)
+  28      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000)
+  29      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  30      1   CAG (Q) CAG (Q) CAA (Q) CAA (Q) :  CAA Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  31      1   AGC (S) AGT (S) AGT (S) AGC (S) :  AGC S 0.999 (S 1.000) AGT S 1.000 (S 1.000) AGT S 0.947 (S 1.000)
+  32      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  33      1   AGC (S) AGC (S) AGC (S) AGA (R) :  AGC S 0.830 (S 0.999) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  34      1   AGA (R) AGA (R) AGA (R) AGC (S) :  AGA R 0.608 (R 0.999) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  35      1   TGC (C) TGT (C) TGT (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 0.979 (C 1.000)
+  36      2   TAC (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  37      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  38      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  39      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  40      1   CAA (Q) CAG (Q) CAG (Q) CAA (Q) :  CAA Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.973 (Q 1.000)
+  41      2   AGC (S) AGC (S) AGA (R) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.970 (S 1.000)
+  42      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  43      7   AGC (S) AGC (S) AGC (S) AGC (S) :  AGC S 1.000 (S 1.000) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  44      2   AGG (R) AGA (R) AGG (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGG R 0.952 (R 1.000)
+  45      2   TGT (C) TGT (C) TGT (C) TGT (C) :  TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGT C 1.000 (C 1.000)
+  46      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  47      4   CGG (R) CGC (R) CGG (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGG R 0.978 (R 1.000)
+  48      2   CAG (Q) CAG (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 0.794 (Q 1.000)
+  49      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  50      2   CAA (Q) CAA (Q) CAA (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000) CAA Q 1.000 (Q 1.000)
+  51      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  52      1   AGT (S) AGT (S) AGT (S) AGT (S) :  AGT S 1.000 (S 1.000) AGT S 1.000 (S 1.000) AGT S 0.999 (S 1.000)
+  53      1   CGC (R) CGG (R) CGC (R) CGT (R) :  CGT R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGC R 0.981 (R 1.000)
+  54      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  55      1   CGT (R) CGA (R) CGA (R) CGA (R) :  CGA R 1.000 (R 1.000) CGA R 1.000 (R 1.000) CGA R 0.966 (R 1.000)
+  56      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  57      1   CGG (R) AGG (R) CGA (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) CGG R 0.570 (R 1.000)
+  58      1   AGG (R) CGG (R) CGG (R) CGA (R) :  CGA R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.972 (R 1.000)
+  59      1   AGC (S) AGC (S) AGC (S) CGC (R) :  AGC S 0.999 (S 0.999) AGC S 1.000 (S 1.000) AGC S 0.997 (S 1.000)
+  60      2   TGC (C) TGC (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000) TGC C 1.000 (C 1.000)
+  61      4   CAG (Q) CAG (Q) CAG (Q) CAG (Q) :  CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000) CAG Q 1.000 (Q 1.000)
+  62      1   ACA (T) ACA (T) ACA (T) ACA (T) :  ACA T 1.000 (T 1.000) ACA T 1.000 (T 1.000) ACA T 1.000 (T 1.000)
+  63      4   CGG (R) CGG (R) CGG (R) CGG (R) :  CGG R 1.000 (R 1.000) CGG R 1.000 (R 1.000) CGG R 0.998 (R 1.000)
+  64      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  65      6   AGA (R) AGA (R) AGA (R) AGA (R) :  AGA R 1.000 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  66      2   GCC (A) GCC (A) GCC (A) GCC (A) :  GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000) GCC A 1.000 (A 1.000)
+  67      2   ATG (M) ATG (M) ATG (M) ATG (M) :  ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000) ATG M 1.000 (M 1.000)
+  68      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  69      1   TGC (C) TGT (C) TGC (C) TGC (C) :  TGC C 1.000 (C 1.000) TGT C 1.000 (C 1.000) TGC C 0.975 (C 1.000)
+  70      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+  71      3   CGC (R) CGC (R) CGC (R) CGC (R) :  CGC R 1.000 (R 1.000) CGC R 1.000 (R 1.000) CGC R 0.998 (R 1.000)
+  72      5   AGG (R) AGG (R) AGG (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGG R 0.996 (R 1.000)
+  73      3   TAC (Y) TAC (Y) TAC (Y) TAC (Y) :  TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000)
+  74      1   AGA (R) AGG (R) AGA (R) AGG (R) :  AGG R 1.000 (R 1.000) AGG R 1.000 (R 1.000) AGA R 0.962 (R 1.000)
+  75      1   CTG (L) CTG (L) CTG (L) CTG (L) :  CTG L 1.000 (L 1.000) CTG L 1.000 (L 1.000) CTG L 1.000 (L 1.000)
+  76      1   AGA (R) AGA (R) AGA (R) AGG (R) :  AGG R 0.999 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.997 (R 1.000)
+  77      1   CGT (R) CGT (R) CGT (R) CGT (R) :  CGT R 1.000 (R 1.000) CGT R 1.000 (R 1.000) CGT R 0.999 (R 1.000)
+  78      1   AGA (R) AGA (R) AAA (K) AGG (R) :  AGG R 0.999 (R 1.000) AGA R 1.000 (R 1.000) AGA R 0.998 (R 1.000)
+  79      1   AGA (R) AGC (S) AGA (R) AGG (R) :  AGG R 0.998 (R 0.999) AGA R 0.603 (R 0.999) AGA R 0.982 (R 0.999)
+  80      1   CCC (P) TGT (C) TGT (C) CCC (P) :  TGC C 0.874 (C 0.874) TGT C 0.875 (C 0.875) TGT C 0.841 (C 0.875)
+  81      1   TAT (Y) TAC (Y) TAC (Y) TAT (Y) :  TAT Y 1.000 (Y 1.000) TAC Y 1.000 (Y 1.000) TAC Y 0.983 (Y 1.000)
+  82      1   CAT (H) CAC (H) CAT (H) CAC (H) :  CAC H 1.000 (H 1.000) CAC H 1.000 (H 1.000) CAT H 0.994 (H 1.000)
+  83      1   ATT (I) ATT (I) ATT (I) ATC (I) :  ATC I 1.000 (I 1.000) ATT I 1.000 (I 1.000) ATT I 1.000 (I 1.000)
+  84      1   GTA (V) GTA (V) GTA (V) GTG (V) :  GTG V 1.000 (V 1.000) GTA V 1.000 (V 1.000) GTA V 1.000 (V 1.000)
+  85      1   TCT (S) TCT (S) TCT (S) TCT (S) :  TCT S 1.000 (S 1.000) TCT S 1.000 (S 1.000) TCT S 1.000 (S 1.000)
+
+Summary of changes along branches.
+Check root of tree for directions of change.
+
+Branch 1:    5..6  (n= 0.0 s=21.0)
+
+	  12 CGA (R) 1.000 -> CGG (R) 1.000
+	  15 TGC (C) 1.000 -> TGT (C) 1.000
+	  16 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  27 AGA (R) 1.000 -> AGG (R) 1.000
+	  28 CAG (Q) 1.000 -> CAA (Q) 1.000
+	  30 CAA (Q) 1.000 -> CAG (Q) 1.000
+	  31 AGC (S) 1.000 -> AGT (S) 1.000
+	  35 TGC (C) 1.000 -> TGT (C) 1.000
+	  36 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  40 CAA (Q) 1.000 -> CAG (Q) 1.000
+	  50 CAG (Q) 1.000 -> CAA (Q) 1.000
+	  53 CGT (R) 1.000 -> CGG (R) 1.000
+	  58 CGA (R) 1.000 -> CGG (R) 1.000
+	  69 TGC (C) 1.000 -> TGT (C) 1.000
+	  76 AGG (R) 1.000 -> AGA (R) 1.000
+	  78 AGG (R) 1.000 -> AGA (R) 1.000
+	  79 AGG (R) 0.999 -> AGA (R) 0.999
+	  80 TGC (C) 0.874 -> TGT (C) 0.875
+	  81 TAT (Y) 1.000 -> TAC (Y) 1.000
+	  83 ATC (I) 1.000 -> ATT (I) 1.000
+	  84 GTG (V) 1.000 -> GTA (V) 1.000
+
+
+Branch 2:    6..2  (Hylobates_lar)  (n= 1.0 s= 0.0)
+
+	  79 AGA (R) 0.999 -> AGC (S)
+
+
+Branch 3:    6..7  (n= 0.0 s=12.0)
+
+	   7 TGC (C) 1.000 -> TGT (C) 1.000
+	  17 CGC (R) 1.000 -> CGG (R) 1.000
+	  22 AGA (R) 1.000 -> AGG (R) 1.000
+	  25 CGC (R) 1.000 -> CGG (R) 1.000
+	  37 CGC (R) 1.000 -> CGG (R) 1.000
+	  44 AGA (R) 1.000 -> AGG (R) 1.000
+	  47 CGC (R) 1.000 -> CGG (R) 1.000
+	  53 CGG (R) 1.000 -> CGC (R) 1.000
+	  57 AGG (R) 1.000 -> CGG (R) 1.000
+	  69 TGT (C) 1.000 -> TGC (C) 1.000
+	  74 AGG (R) 1.000 -> AGA (R) 1.000
+	  82 CAC (H) 1.000 -> CAT (H) 1.000
+
+
+Branch 4:    7..1  (Gorilla_gorilla)  (n= 2.0 s= 9.0)
+
+	  12 CGG (R) 1.000 -> CGC (R)
+	  27 AGG (R) 1.000 -> AGA (R)
+	  31 AGT (S) 1.000 -> AGC (S)
+	  35 TGT (C) 1.000 -> TGC (C)
+	  40 CAG (Q) 1.000 -> CAA (Q)
+	  55 CGA (R) 1.000 -> CGT (R)
+	  58 CGG (R) 1.000 -> AGG (R)
+	  80 TGT (C) 0.875 -> CCC (P)
+	  81 TAC (Y) 1.000 -> TAT (Y)
+
+
+Branch 5:    7..3  (Pan_troglodytes)  (n= 3.0 s= 4.0)
+
+	  19 AGC (S) 1.000 -> AGA (R)
+	  26 CAG (Q) 1.000 -> CAA (Q)
+	  30 CAG (Q) 1.000 -> CAA (Q)
+	  41 AGC (S) 1.000 -> AGA (R)
+	  48 CAG (Q) 1.000 -> CAA (Q)
+	  57 CGG (R) 1.000 -> CGA (R)
+	  78 AGA (R) 1.000 -> AAA (K)
+
+
+Branch 6:    5..4  (Papio_cynocephalus)  (n= 6.0 s= 0.0)
+
+	  24 TAC (Y) 0.999 -> AAC (N)
+	  33 AGC (S) 0.999 -> AGA (R)
+	  34 AGA (R) 0.999 -> AGC (S)
+	  59 AGC (S) 0.999 -> CGC (R)
+	  80 TGC (C) 0.874 -> CCC (P)
+
+
+
+
+List of extant and reconstructed sequences
+
+     7    255
+
+Gorilla_gorilla   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar     ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus   ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+node #5           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGC CAA AGC CGG AGC AGA TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG TGC TAT CAC ATC GTG TCT 
+node #6           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGA TGT TAC CAC ATT GTA TCT 
+node #7           ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGA AGG CGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA TGT TAC CAT ATT GTA TCT 
+
+
+Overall accuracy of the 3 ancestral sequences:
+  0.99172  0.99384  0.97688
+for a site.
+
+  0.43428  0.52657  0.11086
+for the sequence.
+
+
+Amino acid sequences inferred by codonml.
+
+Node #5           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+Node #6           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+Node #7           MARYRCCRSQ SRSRCYRQSR SRCYRQRQSQ SRSRCYRQSQ SRSRCYRQRQ RSRRRRRRSC QTRRRAMRCR RRYRLRRRRC YHIVS
+
+
+Counts of changes at sites, listed by site
+
+   1 (S N:   0.000  3.000 Sd Nd:    0.0   0.0)
+   2 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+   3 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+   4 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+   5 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+   6 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+   7  TGC.TGT (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+   8 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+   9 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  10 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  11 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  12  CGG.CGC  CGA.CGG (S N:   1.347  1.653 Sd Nd:    2.0   0.0)
+  13 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  14 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  15  TGC.TGT (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  16  TAT.TAC (S N:   0.429  2.571 Sd Nd:    1.0   0.0)
+  17  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  18 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  19  AGC.AGA (S N:   0.351  2.649 Sd Nd:    0.0   1.0)
+  20 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  21 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  22  AGA.AGG (S N:   0.716  2.284 Sd Nd:    1.0   0.0)
+  23 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  24  TAC.AAC (S N:   0.424  2.576 Sd Nd:    0.0   1.0)
+  25  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  26  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  27  AGG.AGA  AGA.AGG (S N:   0.696  2.304 Sd Nd:    2.0   0.0)
+  28  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  29 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  30  CAG.CAA  CAA.CAG (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  31  AGT.AGC  AGC.AGT (S N:   0.333  2.667 Sd Nd:    2.0   0.0)
+  32 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  33  AGC.AGA (S N:   0.349  2.651 Sd Nd:    0.0   1.0)
+  34  AGA.AGC (S N:   0.731  2.269 Sd Nd:    0.0   1.0)
+  35  TGT.TGC  TGC.TGT (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  36  TAT.TAC (S N:   0.429  2.571 Sd Nd:    1.0   0.0)
+  37  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  38 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  39 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  40  CAG.CAA  CAA.CAG (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  41  AGC.AGA (S N:   0.351  2.649 Sd Nd:    0.0   1.0)
+  42 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  43 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  44  AGA.AGG (S N:   0.716  2.284 Sd Nd:    1.0   0.0)
+  45 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  46 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+  47  CGC.CGG (S N:   1.127  1.873 Sd Nd:    1.0   0.0)
+  48  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  49 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  50  CAG.CAA (S N:   0.375  2.625 Sd Nd:    1.0   0.0)
+  51 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  52 (S N:   0.333  2.667 Sd Nd:    0.0   0.0)
+  53  CGT.CGG  CGG.CGC (S N:   1.110  1.890 Sd Nd:    2.0   0.0)
+  54 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  55  CGA.CGT (S N:   1.451  1.549 Sd Nd:    1.0   0.0)
+  56 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  57  CGG.CGA  AGG.CGG (S N:   0.926  2.074 Sd Nd:    2.0   0.0)
+  58  CGG.AGG  CGA.CGG (S N:   1.316  1.684 Sd Nd:    2.0   0.0)
+  59  AGC.CGC (S N:   0.361  2.639 Sd Nd:    0.0   1.0)
+  60 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  61 (S N:   0.375  2.625 Sd Nd:    0.0   0.0)
+  62 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  63 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  64 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  65 (S N:   0.750  2.250 Sd Nd:    0.0   0.0)
+  66 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  67 (S N:   0.000  3.000 Sd Nd:    0.0   0.0)
+  68 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  69  TGC.TGT  TGT.TGC (S N:   0.375  2.625 Sd Nd:    2.0   0.0)
+  70 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  71 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  72 (S N:   0.667  2.333 Sd Nd:    0.0   0.0)
+  73 (S N:   0.429  2.571 Sd Nd:    0.0   0.0)
+  74  AGG.AGA (S N:   0.696  2.304 Sd Nd:    1.0   0.0)
+  75 (S N:   1.333  1.667 Sd Nd:    0.0   0.0)
+  76  AGG.AGA (S N:   0.724  2.276 Sd Nd:    1.0   0.0)
+  77 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+  78  AGA.AAA  AGG.AGA (S N:   0.707  2.293 Sd Nd:    1.0   1.0)
+  79  AGA.AGC  AGG.AGA (S N:   0.720  2.280 Sd Nd:    1.0   1.0)
+  80  TGT.CCC  TGC.CCC  TGC.TGT (S N:   0.465  2.535 Sd Nd:    2.0   4.0)
+  81  TAC.TAT  TAT.TAC (S N:   0.429  2.571 Sd Nd:    2.0   0.0)
+  82  CAC.CAT (S N:   0.333  2.667 Sd Nd:    1.0   0.0)
+  83  ATC.ATT (S N:   0.667  2.333 Sd Nd:    1.0   0.0)
+  84  GTG.GTA (S N:   1.000  2.000 Sd Nd:    1.0   0.0)
+  85 (S N:   1.000  2.000 Sd Nd:    0.0   0.0)
+
+
+(2) Joint reconstruction of ancestral sequences
+(eqn. 2 in Yang et al. 1995 Genetics 141:1641-1650), using the algorithm of Pupko et al. (2000 Mol Biol Evol 17:890-896),
+modified to generate sub-optimal reconstructions.
+
+Reconstruction (prob.), listed by pattern (use the observed data to find the right site).
+
+Pattern Freq   Data:
+
+   1       1  ACA (T) ACA (T) ACA (T) ACA (T) : ACA ACA ACA  (1.000) ACA ACA ACG  (0.000) ACG ACA ACA  (0.000) ACA ACA ACC  (0.000) ACC ACA ACA  (0.000) ATA ACA ACA  (0.000)  (total  1.000)
+   2       1  AGA (R) AGA (R) AAA (K) AGG (R) : AGG AGA AGA  (0.997) AGG AGA AGG  (0.002) AGA AGA AGA  (0.001) AAG AAA AAA  (0.000) CGG AGA AGA  (0.000) AGG AGA CGA  (0.000)  (total  1.000)
+   3       6  AGA (R) AGA (R) AGA (R) AGA (R) : AGA AGA AGA  (0.997) AGA AGA AGG  (0.003) AGG AGA AGA  (0.000) AGA AGA CGA  (0.000) CGA AGA AGA  (0.000) AGA AGG AGA  (0.000)  (total  1.000)
+   4       1  AGA (R) AGA (R) AGA (R) AGC (S) : AGA AGA AGA  (0.606) AGG AGA AGA  (0.382) CGC AGA AGA  (0.008) AGA AGA AGG  (0.002) AGG AGA AGG  (0.001) AGC AGA AGA  (0.001)  (total  1.000)
+   5       1  AGA (R) AGA (R) AGA (R) AGG (R) : AGG AGA AGA  (0.996) AGG AGA AGG  (0.003) AGA AGA AGA  (0.001) CGG AGA AGA  (0.000) AGG AGA CGA  (0.000) AGG AGG AGA  (0.000)  (total  1.000)
+   6       1  AGA (R) AGC (S) AGA (R) AGG (R) : AGG AGA AGA  (0.600) AGG AGG AGA  (0.381) AGG AGG AGG  (0.015) AGG AGA AGG  (0.002) AGC AGC AGC  (0.001) AGA AGA AGA  (0.000)  (total  0.999)
+   7       1  AGA (R) AGG (R) AGA (R) AGG (R) : AGG AGG AGA  (0.962) AGG AGG AGG  (0.038) AGA AGG AGA  (0.000) CGG AGG AGA  (0.000) AGG AGA AGA  (0.000) AGG AGG CGA  (0.000)  (total  1.000)
+   8       1  AGA (R) AGG (R) AGG (R) AGA (R) : AGA AGG AGG  (0.907) AGA AGG AGA  (0.092) AGG AGG AGG  (0.001) AGG AGG AGA  (0.000) AGA AGG CGG  (0.000) AGA AGA AGA  (0.000)  (total  1.000)
+   9       2  AGC (S) AGC (S) AGA (R) AGC (S) : AGC AGC AGC  (0.970) AGC AGC AGT  (0.030) AGT AGC AGC  (0.000) AGA AGA AGA  (0.000) AGG AGA AGA  (0.000) AGG AGG AGA  (0.000)  (total  1.000)
+  10       1  AGC (S) AGC (S) AGC (S) AGA (R) : AGC AGC AGC  (0.828) AGT AGC AGC  (0.169) AGC AGC AGT  (0.002) AGA AGC AGC  (0.001) AGT AGC AGT  (0.000) AGA AGA AGA  (0.000)  (total  1.000)
+  11       7  AGC (S) AGC (S) AGC (S) AGC (S) : AGC AGC AGC  (0.997) AGC AGC AGT  (0.003) AGT AGC AGC  (0.000) AGC AGT AGC  (0.000) AAC AGC AGC  (0.000) AAC AAC AAC  (0.000)  (total  1.000)
+  12       1  AGC (S) AGC (S) AGC (S) CGC (R) : AGC AGC AGC  (0.997) AGC AGC AGT  (0.003) CGC AGC AGC  (0.001) AGT AGC AGC  (0.000) TGC AGC AGC  (0.000) CGC CGC CGC  (0.000)  (total  1.000)
+  13       1  AGC (S) AGT (S) AGT (S) AGC (S) : AGC AGT AGT  (0.946) AGC AGT AGC  (0.053) AGT AGT AGT  (0.001) AGT AGT AGC  (0.000) AGC AGC AGC  (0.000) AGC AGC AGT  (0.000)  (total  1.000)
+  14       2  AGG (R) AGA (R) AGG (R) AGA (R) : AGA AGA AGG  (0.952) AGA AGA AGA  (0.048) AGG AGA AGG  (0.000) AGA AGA CGG  (0.000) AGA AGG AGG  (0.000) AGG AGA AGA  (0.000)  (total  1.000)
+  15       5  AGG (R) AGG (R) AGG (R) AGG (R) : AGG AGG AGG  (0.996) AGG AGG AGA  (0.004) AGA AGG AGG  (0.000) AGG AGG CGG  (0.000) CGG AGG AGG  (0.000) CGC AGG AGG  (0.000)  (total  1.000)
+  16       1  AGG (R) CGG (R) CGG (R) CGA (R) : CGA CGG CGG  (0.972) CGA CGG AGG  (0.026) CGA CGG CGA  (0.002) CGG CGG CGG  (0.000) CGA CGG AGA  (0.000) CGC CGG CGG  (0.000)  (total  1.000)
+  17       1  AGT (S) AGT (S) AGT (S) AGT (S) : AGT AGT AGT  (0.998) AGT AGT AGC  (0.001) AGC AGT AGT  (0.000) AGT AGC AGT  (0.000) AAT AGT AGT  (0.000) AGG AGT AGT  (0.000)  (total  1.000)
+  18       2  ATG (M) ATG (M) ATG (M) ATG (M) : ATG ATG ATG  (1.000) ACG ATG ATG  (0.000) AGG ATG ATG  (0.000) ATA ATG ATG  (0.000) AAG ATG ATG  (0.000) ATC ATG ATG  (0.000)  (total  1.000)
+  19       1  ATT (I) ATT (I) ATT (I) ATC (I) : ATC ATT ATT  (1.000) ATT ATT ATT  (0.000) ATA ATT ATT  (0.000) ATC ATT ATC  (0.000) ATC ATC ATT  (0.000) AGC ATT ATT  (0.000)  (total  1.000)
+  20       2  CAA (Q) CAA (Q) CAA (Q) CAG (Q) : CAG CAA CAA  (1.000) CAA CAA CAA  (0.000) CAG CAA CAG  (0.000) CAG CAG CAA  (0.000) CGG CAA CAA  (0.000) CAC CAA CAA  (0.000)  (total  1.000)
+  21       1  CAA (Q) CAG (Q) CAG (Q) CAA (Q) : CAA CAG CAG  (0.973) CAA CAG CAA  (0.027) CAG CAG CAG  (0.000) CAA CAA CAA  (0.000) CAG CAG CAA  (0.000) CAA CAA CAG  (0.000)  (total  1.000)
+  22       1  CAG (Q) CAG (Q) CAA (Q) CAA (Q) : CAA CAG CAG  (0.794) CAA CAG CAA  (0.206) CAG CAG CAG  (0.000) CAA CAA CAA  (0.000) CAG CAG CAA  (0.000) CAA CAA CAG  (0.000)  (total  1.000)
+  23       2  CAG (Q) CAG (Q) CAA (Q) CAG (Q) : CAG CAG CAG  (0.794) CAG CAG CAA  (0.206) CAA CAG CAG  (0.000) CAG CAA CAA  (0.000) CAA CAG CAA  (0.000) CGG CAG CAG  (0.000)  (total  1.000)
+  24       4  CAG (Q) CAG (Q) CAG (Q) CAG (Q) : CAG CAG CAG  (1.000) CAG CAG CAA  (0.000) CAA CAG CAG  (0.000) CGG CAG CAG  (0.000) CAG CAA CAG  (0.000) CAC CAG CAG  (0.000)  (total  1.000)
+  25       1  CAT (H) CAC (H) CAT (H) CAC (H) : CAC CAC CAT  (0.994) CAC CAC CAC  (0.006) CAC CAT CAT  (0.000) CAT CAC CAT  (0.000) CGC CAC CAT  (0.000) TAC CAC CAT  (0.000)  (total  1.000)
+  26       1  CCC (P) TGT (C) TGT (C) CCC (P) : TGC TGT TGT  (0.840) CGC CGT CGT  (0.112) TGC TGT TGC  (0.034) CGC CGT CGC  (0.012) CGC TGT TGT  (0.001) CCC CCT CCT  (0.001)  (total  1.000)
+  27       3  CGC (R) CGC (R) CGC (R) CGC (R) : CGC CGC CGC  (0.998) CGC CGC CGT  (0.001) CGC CGC CGG  (0.000) CGC CGC CGA  (0.000) CGT CGC CGC  (0.000) CGG CGC CGC  (0.000)  (total  1.000)
+  28       1  CGC (R) CGG (R) CGC (R) CGT (R) : CGT CGG CGC  (0.981) CGT CGG CGG  (0.012) CGT CGG CGT  (0.005) CGT CGG CGA  (0.002) CGG CGG CGC  (0.000) AGG CGG CGC  (0.000)  (total  1.000)
+  29       1  CGC (R) CGG (R) CGG (R) CGA (R) : CGA CGG CGG  (0.958) CGA CGG CGC  (0.029) CGA CGG CGA  (0.011) CGA CGG CGT  (0.002) CGG CGG CGG  (0.000) CGC CGG CGG  (0.000)  (total  1.000)
+  30       1  CGG (R) AGG (R) CGA (R) AGG (R) : AGG AGG CGG  (0.570) AGG AGG CGA  (0.417) AGG AGG AGG  (0.007) AGG AGG AGA  (0.005) AGA AGG CGG  (0.000) AGA AGG CGA  (0.000)  (total  0.999)
+  31       4  CGG (R) CGC (R) CGG (R) CGC (R) : CGC CGC CGG  (0.978) CGC CGC CGC  (0.013) CGC CGC CGA  (0.008) CGC CGC CGT  (0.001) CGT CGC CGG  (0.000) CGG CGC CGG  (0.000)  (total  1.000)
+  32       4  CGG (R) CGG (R) CGG (R) CGG (R) : CGG CGG CGG  (0.998) CGG CGG CGA  (0.002) CGG CGG CGC  (0.000) CGG CGG AGG  (0.000) AGG CGG CGG  (0.000) CGA CGG CGG  (0.000)  (total  1.000)
+  33       1  CGT (R) CGA (R) CGA (R) CGA (R) : CGA CGA CGA  (0.966) CGA CGA CGT  (0.019) CGA CGA CGG  (0.011) CGA CGA CGC  (0.004) CGG CGA CGA  (0.000) AGA CGA CGA  (0.000)  (total  1.000)
+  34       1  CGT (R) CGT (R) CGT (R) CGT (R) : CGT CGT CGT  (0.999) CGT CGT CGC  (0.001) CGT CGT CGG  (0.000) CGC CGT CGT  (0.000) CGT CGT CGA  (0.000) CGG CGT CGT  (0.000)  (total  1.000)
+  35       1  CTG (L) CTG (L) CTG (L) CTG (L) : CTG CTG CTG  (1.000) CTG CTG CTA  (0.000) CTG CTG TTG  (0.000) TTG CTG CTG  (0.000) CTA CTG CTG  (0.000) CTG CTG CTC  (0.000)  (total  1.000)
+  36       2  GCC (A) GCC (A) GCC (A) GCC (A) : GCC GCC GCC  (1.000) ACC GCC GCC  (0.000) GCT GCC GCC  (0.000) GCC GCC GCT  (0.000) GTC GCC GCC  (0.000) GGC GCC GCC  (0.000)  (total  1.000)
+  37       1  GTA (V) GTA (V) GTA (V) GTG (V) : GTG GTA GTA  (1.000) GTA GTA GTA  (0.000) GTC GTA GTA  (0.000) GTG GTG GTA  (0.000) GTT GTA GTA  (0.000) ATG GTA GTA  (0.000)  (total  1.000)
+  38       1  TAC (Y) TAC (Y) TAC (Y) AAC (N) : TAC TAC TAC  (0.999) AAC TAC TAC  (0.001) CAC TAC TAC  (0.000) TAC TAC TAT  (0.000) GAC TAC TAC  (0.000) TGC TAC TAC  (0.000)  (total  1.000)
+  39       3  TAC (Y) TAC (Y) TAC (Y) TAC (Y) : TAC TAC TAC  (1.000) TAC TAC TAT  (0.000) TAT TAC TAC  (0.000) TGC TAC TAC  (0.000) CAC TAC TAC  (0.000) AAC TAC TAC  (0.000)  (total  1.000)
+  40       2  TAC (Y) TAC (Y) TAC (Y) TAT (Y) : TAT TAC TAC  (1.000) TAC TAC TAC  (0.000) TAT TAC TAT  (0.000) TAT TAT TAC  (0.000) TGT TAC TAC  (0.000) CAT TAC TAC  (0.000)  (total  1.000)
+  41       1  TAT (Y) TAC (Y) TAC (Y) TAT (Y) : TAT TAC TAC  (0.982) TAT TAC TAT  (0.017) TAC TAC TAC  (0.000) TAT TAT TAT  (0.000) TAC TAC TAT  (0.000) TAT TAT TAC  (0.000)  (total  1.000)
+  42       1  TCT (S) TCT (S) TCT (S) TCT (S) : TCT TCT TCT  (1.000) TCT TCT TCC  (0.000) TCC TCT TCT  (0.000) TCG TCT TCT  (0.000) CCT TCT TCT  (0.000) TCA TCT TCT  (0.000)  (total  1.000)
+  43       2  TGC (C) TGC (C) TGC (C) TGC (C) : TGC TGC TGC  (1.000) TGC TGC TGT  (0.000) TGT TGC TGC  (0.000) CGC TGC TGC  (0.000) TAC TGC TGC  (0.000) AGC TGC TGC  (0.000)  (total  1.000)
+  44       1  TGC (C) TGT (C) TGC (C) TGC (C) : TGC TGT TGC  (0.975) TGC TGT TGT  (0.025) TGT TGT TGC  (0.000) TGC TGC TGC  (0.000) TGT TGT TGT  (0.000) CGC TGT TGC  (0.000)  (total  1.000)
+  45       1  TGC (C) TGT (C) TGT (C) TGC (C) : TGC TGT TGT  (0.979) TGC TGT TGC  (0.021) TGT TGT TGT  (0.000) TGT TGT TGC  (0.000) TGC TGC TGC  (0.000) TGC TGC TGT  (0.000)  (total  1.000)
+  46       1  TGT (C) TGC (C) TGT (C) TGC (C) : TGC TGC TGT  (0.990) TGC TGC TGC  (0.010) TGC TGT TGT  (0.000) TGT TGC TGT  (0.000) CGC TGC TGT  (0.000) TAC TGC TGT  (0.000)  (total  1.000)
+  47       1  TGT (C) TGT (C) TGT (C) TGC (C) : TGC TGT TGT  (1.000) TGT TGT TGT  (0.000) TGC TGT TGC  (0.000) TGC TGC TGT  (0.000) CGC TGT TGT  (0.000) TGG TGT TGT  (0.000)  (total  1.000)
+  48       2  TGT (C) TGT (C) TGT (C) TGT (C) : TGT TGT TGT  (1.000) TGT TGT TGC  (0.000) TGC TGT TGT  (0.000) CGT TGT TGT  (0.000) TGT TGC TGT  (0.000) TAT TGT TGT  (0.000)  (total  1.000)
+
+
+
+List of extant and reconstructed sequences
+
+     7    255
+
+Gorilla_gorilla   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGC AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGC CAG AGC CGG AGC AGA TGC TAC CGG CAG AGC CAA AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGT AGG CGG AGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA CCC TAT CAT ATT GTA TCT 
+Hylobates_lar     ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGC TGT TAC CAC ATT GTA TCT 
+Pan_troglodytes   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGA CGG AGC AGG TGT TAC CGG CAA AGG CAA AGC CAA AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGA CGG AGC AGG TGT TAC CGG CAA AGA CAA AGA AGT CGC AGA CGA AGG CGA CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AAA AGA TGT TAC CAT ATT GTA TCT 
+Papio_cynocephalus   ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT AAC CGC CAG AGA CAG AGC CAA AGC CGG AGA AGC TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA CGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG CCC TAT CAC ATC GTG TCT 
+node #5           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGA AGC AGA TGC TAT CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGC CAA AGC CGG AGC AGA TGC TAT CGC CAG AGC CAA AGC CGG AGC AGA TGT TAC CGC CAG AGA CAG AGA AGT CGT AGA CGA AGG AGG CGA AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGG CTG AGG CGT AGG AGG TGC TAT CAC ATC GTG TCT 
+node #6           ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGC CAG AGC CAG AGC CGG AGC AGA TGT TAC CGC CAG AGA CAA AGA AGT CGG AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGT CGC CGC AGG TAC AGG CTG AGA CGT AGA AGA TGT TAC CAC ATT GTA TCT 
+node #7           ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG AGC CGG AGC AGA TGT TAC CGG CAG AGC CGG AGC AGG TGT TAC CGG CAG AGG CAA AGC CAG AGT CGG AGC AGA TGT TAC CGG CAG AGC CAG AGC CGG AGC AGG TGT TAC CGG CAG AGA CAA AGA AGT CGC AGA CGA AGG CGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC CGC CGC AGG TAC AGA CTG AGA CGT AGA AGA TGT TAC CAT ATT GTA TCT 
+
+
diff --git a/examples/evol/data/S_example/paml/fb/rst1 b/examples/evol/data/S_example/paml/fb/rst1
new file mode 100644
index 0000000..d94c81e
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/rst1
@@ -0,0 +1,89 @@
+	4	85	48	0.5892	0.364	0.014	0.193	0.157	0.084	0.073	3.544	0.000	999.000	0.000	0.107	0.566	999.000	-511.782	0.0811	0.6520
+List of sites with changes according to ancestral reconstruction
+Suzuki-Gojobori (1999) style test
+   1 S N:   0.000  3.000 Sd Nd:    0.0   0.0 
+   2 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+   3 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+   4 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+   5 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+   6 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+   7 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+   8 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+   9 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  10 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  11 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  12 S N:   1.347  1.653 Sd Nd:    2.0   0.0  - p = 0.202 
+  13 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  14 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  15 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  16 S N:   0.429  2.571 Sd Nd:    1.0   0.0  - p = 0.143 
+  17 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  18 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  19 S N:   0.351  2.649 Sd Nd:    0.0   1.0  + p = 0.883 
+  20 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  21 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  22 S N:   0.716  2.284 Sd Nd:    1.0   0.0  - p = 0.239 
+  23 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  24 S N:   0.424  2.576 Sd Nd:    0.0   1.0  + p = 0.859 
+  25 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  26 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  27 S N:   0.696  2.304 Sd Nd:    2.0   0.0  - p = 0.054 
+  28 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  29 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  30 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  31 S N:   0.333  2.667 Sd Nd:    2.0   0.0  - p = 0.012 *
+  32 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  33 S N:   0.349  2.651 Sd Nd:    0.0   1.0  + p = 0.884 
+  34 S N:   0.731  2.269 Sd Nd:    0.0   1.0  + p = 0.756 
+  35 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  36 S N:   0.429  2.571 Sd Nd:    1.0   0.0  - p = 0.143 
+  37 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  38 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  39 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  40 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  41 S N:   0.351  2.649 Sd Nd:    0.0   1.0  + p = 0.883 
+  42 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  43 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  44 S N:   0.716  2.284 Sd Nd:    1.0   0.0  - p = 0.239 
+  45 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  46 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+  47 S N:   1.127  1.873 Sd Nd:    1.0   0.0  - p = 0.376 
+  48 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  49 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  50 S N:   0.375  2.625 Sd Nd:    1.0   0.0  - p = 0.125 
+  51 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  52 S N:   0.333  2.667 Sd Nd:    0.0   0.0 
+  53 S N:   1.110  1.890 Sd Nd:    2.0   0.0  - p = 0.137 
+  54 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  55 S N:   1.451  1.549 Sd Nd:    1.0   0.0  - p = 0.484 
+  56 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  57 S N:   0.926  2.074 Sd Nd:    2.0   0.0  - p = 0.095 
+  58 S N:   1.316  1.684 Sd Nd:    2.0   0.0  - p = 0.193 
+  59 S N:   0.361  2.639 Sd Nd:    0.0   1.0  + p = 0.880 
+  60 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  61 S N:   0.375  2.625 Sd Nd:    0.0   0.0 
+  62 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  63 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  64 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  65 S N:   0.750  2.250 Sd Nd:    0.0   0.0 
+  66 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  67 S N:   0.000  3.000 Sd Nd:    0.0   0.0 
+  68 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  69 S N:   0.375  2.625 Sd Nd:    2.0   0.0  - p = 0.016 *
+  70 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  71 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  72 S N:   0.667  2.333 Sd Nd:    0.0   0.0 
+  73 S N:   0.429  2.571 Sd Nd:    0.0   0.0 
+  74 S N:   0.696  2.304 Sd Nd:    1.0   0.0  - p = 0.232 
+  75 S N:   1.333  1.667 Sd Nd:    0.0   0.0 
+  76 S N:   0.724  2.276 Sd Nd:    1.0   0.0  - p = 0.241 
+  77 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+  78 S N:   0.707  2.293 Sd Nd:    1.0   1.0  - p = 0.416 
+  79 S N:   0.720  2.280 Sd Nd:    1.0   1.0  - p = 0.423 
+  80 S N:   0.465  2.535 Sd Nd:    2.0   4.0  - p = 0.235 
+  81 S N:   0.429  2.571 Sd Nd:    2.0   0.0  - p = 0.020 *
+  82 S N:   0.333  2.667 Sd Nd:    1.0   0.0  - p = 0.111 
+  83 S N:   0.667  2.333 Sd Nd:    1.0   0.0  - p = 0.222 
+  84 S N:   1.000  2.000 Sd Nd:    1.0   0.0  - p = 0.333 
+  85 S N:   1.000  2.000 Sd Nd:    0.0   0.0 
+
diff --git a/examples/evol/data/S_example/paml/fb/rub b/examples/evol/data/S_example/paml/fb/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/S_example/paml/fb/tmp.ctl b/examples/evol/data/S_example/paml/fb/tmp.ctl
new file mode 100644
index 0000000..4e54a60
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/tmp.ctl
@@ -0,0 +1,30 @@
+        seqfile = algn
+       treefile = tree
+        outfile = out
+
+         aaDist = 0
+      fix_alpha = 1
+          alpha = 0.0
+    fix_blength = 0
+      cleandata = False
+          clock = 0
+      CodonFreq = 2
+          getSE = 0
+          icode = 0
+      fix_kappa = 0
+          kappa = 2
+         Malpha = 0
+         method = 0
+          Mgene = 0
+          model = 1
+          ncatG = 8
+ *        ndata = 10
+          noisy = 0
+        NSsites = 0
+      fix_omega = 0
+          omega = 0.7
+   RateAncestor = 1
+        runmode = 0
+        seqtype = 1
+     Small_Diff = 1e-6
+        verbose = 2
diff --git a/examples/evol/data/S_example/paml/fb/tree b/examples/evol/data/S_example/paml/fb/tree
new file mode 100644
index 0000000..99fdeb2
--- /dev/null
+++ b/examples/evol/data/S_example/paml/fb/tree
@@ -0,0 +1 @@
+((Hylobates_lar,(Gorilla_gorilla,Pan_troglodytes)),Papio_cynocephalus);
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/alignments.fasta_ali b/examples/evol/data/protamine/PRM1/alignments.fasta_ali
new file mode 100644
index 0000000..18ac95b
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/alignments.fasta_ali
@@ -0,0 +1,196 @@
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/2NG.dN b/examples/evol/data/protamine/PRM1/paml/M0/2NG.dN
new file mode 100644
index 0000000..7be5b67
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/2NG.dN
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      0.2269
+Erinaceus_europaeus    0.2465  0.2841
+Oryctolagus_cuniculus   0.2261  0.2279  0.2187
+Cynocephalus_variegatus   0.1932  0.2121  0.2081  0.1414
+Tupaia_belangeri       0.1350  0.2199  0.2487  0.1305  0.1244
+Otolemur_garnettii     0.1176  0.1630  0.1272  0.0759  0.0744  0.0834
+Cavia_porcellus        0.1662  0.2294  0.1989  0.1312  0.1101  0.0856  0.0933
+Dipodomys_ordii        0.1426  0.1885  0.1475  0.1227  0.1113  0.0974  0.0483  0.1026
+Felis_catus            0.1784  0.2869  0.2543  0.1899  0.2458  0.1980  0.1189  0.2097  0.1742
+Rhinopoma_hardwickei   0.1544  0.2710  0.2156  0.1694  0.1573  0.1577  0.1259  0.1579  0.1142  0.0988
+Pteropus_hypomelanus   0.1601  0.2497  0.1887  0.1236  0.1452  0.1286  0.0828  0.1341  0.0970  0.0624  0.0374
+Pteropus_vampyrus      0.1473  0.2564  0.1889  0.1098  0.1157  0.1071  0.0575  0.1116  0.0788  0.1061  0.0683  0.0284
+Desmodus_rotundus      0.1538  0.2566  0.2062  0.1347  0.1570  0.1123  0.0933  0.1230  0.0917  0.0675  0.0383  0.0093  0.0381
+Equus_asinus           0.2349  0.2837  0.2404  0.1508  0.2139  0.1719  0.1394  0.1663  0.1514  0.1037  0.0946  0.0530  0.0852  0.0643
+Equus_caballus         0.2444  0.2899  0.2752  0.1798  0.2401  0.2020  0.1680  0.1965  0.1816  0.1304  0.1213  0.0783  0.1120  0.0905  0.0181
+Antilocapra_americana   0.2216  0.3388  0.3027  0.2123  0.2537  0.1984  0.1685  0.1979  0.2050  0.1257  0.1239  0.1067  0.1311  0.1123  0.1600  0.1771
+Hylobates_lar          0.2054  0.2468  0.1760  0.1750  0.2258  0.1902  0.1056  0.2166  0.1563  0.2511  0.2362  0.1863  0.1660  0.1984  0.2692  0.2890  0.2997
+Callithrix_jacchus     0.2187  0.2711  0.1744  0.1349  0.1810  0.1725  0.0943  0.1938  0.1445  0.2287  0.2295  0.1798  0.1689  0.1978  0.1858  0.2161  0.2730  0.1527
+Saguinus_imperator     0.2059  0.2530  0.1935  0.1461  0.1943  0.1848  0.1050  0.2068  0.1563  0.2482  0.2432  0.1924  0.1810  0.2108  0.2175  0.2171  0.2742  0.1641  0.0224
+Saimiri_sciureus       0.1868  0.1930  0.1765  0.0997  0.1338  0.1294  0.0697  0.1486  0.0865  0.1833  0.1763  0.1522  0.1317  0.1524  0.1813  0.2116  0.2240  0.1487  0.0696  0.0797
+Hipposideros_commersoni   0.2102  0.3216  0.2216  0.2188  0.2306  0.2109  0.1721  0.2139  0.1732  0.1563  0.1280  0.0895  0.1218  0.0949  0.1847  0.2148  0.2215  0.2419  0.2611  0.2756  0.2501
+Rhinolophus_ferrumequinum   0.2336  0.2972  0.2171  0.2191  0.2440  0.1992  0.1731  0.2270  0.1591  0.1706  0.1340  0.0964  0.1199  0.1039  0.1897  0.2190  0.2293  0.2091  0.2565  0.2708  0.2457  0.0470
+Chilonatalus_micropus   0.1866  0.2824  0.2422  0.1552  0.2021  0.1588  0.1144  0.1687  0.1637  0.0743  0.0683  0.0284  0.0712  0.0381  0.0578  0.0831  0.1124  0.2488  0.2043  0.2232  0.1598  0.1518  0.1605
+Otonycteris_hemprichi   0.1988  0.2744  0.3354  0.2005  0.2198  0.1495  0.1586  0.1551  0.1812  0.1549  0.0879  0.0671  0.1108  0.0773  0.1030  0.1081  0.1651  0.2965  0.2753  0.2786  0.2057  0.1956  0.2041  0.0739
+Monophyllus_redmani    0.1533  0.2558  0.2189  0.1343  0.1565  0.1120  0.0931  0.1227  0.0915  0.0674  0.0382  0.0093  0.0380  0.0000  0.0642  0.0902  0.1120  0.1979  0.1973  0.2102  0.1520  0.0946  0.1037  0.0380  0.0771
+Elaphodus_cephalophus   0.2014  0.2885  0.2997  0.2281  0.2445  0.1963  0.1845  0.1895  0.2300  0.1358  0.1573  0.1173  0.1550  0.1229  0.1347  0.1511  0.0754  0.3063  0.2801  0.2902  0.2526  0.2316  0.2338  0.1104  0.1512  0.1226
+Hippopotamus_amphibius   0.2024  0.2958  0.2904  0.2016  0.2360  0.1596  0.1481  0.1636  0.1851  0.1396  0.1221  0.0948  0.1316  0.0845  0.1142  0.1140  0.1367  0.2764  0.2146  0.2357  0.2008  0.2106  0.2130  0.0841  0.1233  0.0843  0.1148
+Hexaprotodon_liberiensis   0.2024  0.2958  0.2904  0.2016  0.2360  0.1596  0.1481  0.1636  0.1851  0.1396  0.1221  0.0948  0.1316  0.0845  0.1142  0.1140  0.1367  0.2764  0.2146  0.2357  0.2008  0.2106  0.2130  0.0841  0.1233  0.0843  0.1148  0.0000
+Potamochoerus_porcus   0.1801  0.3025  0.2073  0.1588  0.1892  0.1588  0.1088  0.1567  0.1057  0.1282  0.0784  0.0627  0.0711  0.0679  0.0935  0.1199  0.1179  0.2343  0.2201  0.2333  0.1943  0.1685  0.1658  0.0896  0.1293  0.0677  0.1447  0.1326  0.1326
+Sus_scrofa             0.1930  0.3013  0.2065  0.1583  0.1885  0.1582  0.1085  0.1561  0.1053  0.1277  0.0885  0.0726  0.0809  0.0778  0.0932  0.1195  0.1281  0.2335  0.2193  0.2324  0.1936  0.1794  0.1765  0.0994  0.1394  0.0776  0.1551  0.1321  0.1321  0.0000
+Pongo_pygmaeus         0.1641  0.2315  0.2156  0.1322  0.1503  0.1441  0.0695  0.1446  0.1325  0.2061  0.1849  0.1389  0.1220  0.1501  0.1903  0.2080  0.2436  0.0706  0.1615  0.1729  0.1260  0.2344  0.2063  0.1865  0.2070  0.1497  0.2262  0.2119  0.2119  0.1845  0.1952
+Papio_cynocephalus     0.1661  0.2370  0.1494  0.1333  0.1300  0.1419  0.0466  0.1479  0.0980  0.1876  0.1833  0.1366  0.1041  0.1479  0.1928  0.1985  0.2398  0.0912  0.1224  0.1177  0.1080  0.2087  0.2093  0.1831  0.2178  0.1475  0.2557  0.2011  0.2011  0.1830  0.1824  0.0712
+Ateles_sp              0.1803  0.1986  0.1821  0.1560  0.1639  0.1609  0.0856  0.1815  0.1134  0.2181  0.2002  0.1813  0.1704  0.1815  0.2287  0.2607  0.2723  0.1228  0.0737  0.0838  0.0743  0.2178  0.2021  0.2298  0.2598  0.1810  0.2904  0.2121  0.2121  0.2216  0.2208  0.1418  0.1136
+Alouatta_seniculus     0.2045  0.2262  0.2044  0.1667  0.1920  0.1834  0.1042  0.2050  0.1330  0.2060  0.2244  0.2048  0.1930  0.2051  0.2498  0.2827  0.2719  0.1416  0.0736  0.0837  0.0742  0.2406  0.2241  0.2607  0.2872  0.2045  0.3171  0.2421  0.2421  0.2458  0.2449  0.1609  0.1324  0.0177
+Sigmodon_hispidus      0.1691  0.2383  0.1877  0.0811  0.1074  0.1119  0.0514  0.0988  0.0809  0.1948  0.1505  0.1112  0.0848  0.1221  0.1702  0.1999  0.2014  0.1763  0.1440  0.1556  0.1074  0.2027  0.2033  0.1441  0.1918  0.1218  0.2175  0.1791  0.1791  0.1382  0.1377  0.1253  0.1017  0.1436  0.1712
+Micromys_minutus       0.1829  0.2387  0.1823  0.0864  0.1076  0.0943  0.0515  0.1017  0.0811  0.1833  0.1395  0.1007  0.0746  0.1115  0.1646  0.1881  0.1935  0.1824  0.1442  0.1559  0.1076  0.1909  0.1917  0.1387  0.1922  0.1112  0.2117  0.1621  0.1621  0.1329  0.1324  0.1308  0.1019  0.1439  0.1715  0.0177
+Meriones_unguiculatus   0.1594  0.2038  0.1721  0.1117  0.0956  0.0975  0.0423  0.0715  0.0820  0.1776  0.1392  0.1000  0.0738  0.1110  0.1652  0.1953  0.2064  0.1673  0.1385  0.1502  0.1017  0.1932  0.1940  0.1385  0.1675  0.1216  0.2007  0.1679  0.1679  0.1326  0.1321  0.1063  0.0926  0.1400  0.1659  0.0270  0.0271
+Natalus_micropus       0.1866  0.2824  0.2422  0.1552  0.2021  0.1588  0.1144  0.1687  0.1637  0.0743  0.0683  0.0284  0.0712  0.0381  0.0578  0.0831  0.1124  0.2488  0.2043  0.2232  0.1598  0.1518  0.1605  0.0000  0.0739  0.0380  0.1104  0.0841  0.0841  0.0896  0.0994  0.1865  0.1831  0.2298  0.2607  0.1441  0.1387  0.1385
+Natalus_stramineus     0.2004  0.2958  0.2558  0.1664  0.2148  0.1702  0.1252  0.1807  0.1755  0.0841  0.0581  0.0380  0.0812  0.0479  0.0679  0.0935  0.1230  0.2614  0.2162  0.2355  0.1712  0.1631  0.1718  0.0089  0.0837  0.0478  0.1208  0.0941  0.0941  0.0797  0.0893  0.1979  0.1947  0.2422  0.2735  0.1554  0.1500  0.1498  0.0089
+Pteronotus_parnellii   0.1539  0.2568  0.2064  0.1348  0.1571  0.1124  0.0934  0.1231  0.0918  0.0676  0.0383  0.0094  0.0381  0.0000  0.0644  0.0905  0.1124  0.1986  0.1980  0.2110  0.1525  0.0950  0.1040  0.0381  0.0774  0.0000  0.1231  0.0846  0.0846  0.0679  0.0779  0.1502  0.1481  0.1817  0.2053  0.1222  0.1116  0.1111  0.0381  0.0480
+Mormoops_megalophylla   0.1406  0.2315  0.2247  0.1388  0.1615  0.1163  0.0971  0.1271  0.0920  0.0779  0.0483  0.0189  0.0382  0.0094  0.0802  0.0854  0.1122  0.1990  0.2024  0.1852  0.1566  0.1059  0.1149  0.0481  0.0878  0.0094  0.1178  0.0900  0.0900  0.0681  0.0780  0.1561  0.1465  0.1860  0.2097  0.1261  0.1154  0.1149  0.0481  0.0580  0.0094
+Moschus_sp             0.2102  0.3154  0.2731  0.2154  0.2567  0.2077  0.1720  0.2138  0.2168  0.1260  0.1449  0.1054  0.1431  0.1110  0.1467  0.1634  0.0709  0.2973  0.2690  0.2768  0.2395  0.2186  0.2211  0.1008  0.1576  0.1107  0.0456  0.1052  0.1052  0.1403  0.1506  0.2421  0.2427  0.2771  0.3034  0.2046  0.1989  0.1993  0.1008  0.1111  0.1111  0.1058
+Gorilla_gorilla        0.2236  0.2941  0.2529  0.2125  0.2558  0.2227  0.1358  0.2577  0.1944  0.2861  0.2718  0.2199  0.1975  0.2388  0.2998  0.3201  0.3306  0.0662  0.1618  0.1733  0.1797  0.2847  0.2434  0.2775  0.3195  0.2381  0.3509  0.2796  0.2796  0.2689  0.2678  0.0980  0.1197  0.1318  0.1402  0.1858  0.2152  0.1999  0.2775  0.2904  0.2390  0.2394  0.3417
+Nasalis_larvatus       0.2248  0.2915  0.1948  0.1754  0.1821  0.1848  0.0854  0.1928  0.1399  0.2393  0.2304  0.1808  0.1447  0.1928  0.2412  0.2537  0.2932  0.1101  0.1530  0.1644  0.1490  0.2575  0.2320  0.2288  0.2776  0.1923  0.3091  0.2352  0.2352  0.2287  0.2278  0.0895  0.0535  0.1333  0.1525  0.1433  0.1435  0.1342  0.2288  0.2410  0.1930  0.1974  0.2956  0.1288
+Procolobus_badius      0.1985  0.2735  0.1778  0.1506  0.1647  0.1800  0.0757  0.1644  0.1350  0.2102  0.2128  0.1758  0.1400  0.1878  0.2228  0.2287  0.2712  0.1205  0.1289  0.1242  0.1145  0.2522  0.2521  0.2237  0.2598  0.1873  0.3005  0.2301  0.2301  0.2176  0.2228  0.1043  0.0264  0.1462  0.1442  0.1385  0.1414  0.1266  0.2237  0.2360  0.1880  0.1863  0.2870  0.1498  0.0815
+Colobus_guereza        0.2664  0.3045  0.2307  0.1970  0.1956  0.1904  0.1054  0.2100  0.1672  0.2515  0.2493  0.1984  0.1608  0.2169  0.2346  0.2406  0.3102  0.1501  0.1631  0.1584  0.1701  0.2772  0.2768  0.2471  0.2774  0.2163  0.3261  0.2411  0.2411  0.2408  0.2461  0.1331  0.0533  0.1538  0.1734  0.1703  0.1706  0.1612  0.2471  0.2597  0.2171  0.2155  0.2855  0.1589  0.1000  0.0623
+Macaca_fascicularis    0.1786  0.2485  0.1603  0.1435  0.1411  0.1523  0.0561  0.1588  0.1082  0.1985  0.1946  0.1473  0.1140  0.1588  0.2044  0.2102  0.2518  0.1007  0.1325  0.1277  0.1180  0.2204  0.2208  0.1941  0.2291  0.1584  0.2676  0.2122  0.2122  0.1940  0.1933  0.0804  0.0087  0.1235  0.1425  0.1118  0.1120  0.1027  0.1941  0.2059  0.1589  0.1573  0.2546  0.1294  0.0533  0.0353  0.0624
+Macaca_mulatta         0.1661  0.2370  0.1494  0.1333  0.1300  0.1419  0.0466  0.1479  0.0980  0.1876  0.1833  0.1366  0.1041  0.1479  0.1928  0.1985  0.2398  0.0912  0.1224  0.1177  0.1080  0.2087  0.2093  0.1831  0.2178  0.1475  0.2557  0.2011  0.2011  0.1830  0.1824  0.0712  0.0000  0.1136  0.1324  0.1017  0.1019  0.0926  0.1831  0.1947  0.1481  0.1465  0.2427  0.1197  0.0535  0.0264  0.0533  0.0087
+Arvicola_terrestris    0.1745  0.2309  0.1745  0.0808  0.1014  0.1061  0.0464  0.0880  0.0771  0.1630  0.1424  0.1036  0.0776  0.1144  0.1452  0.1681  0.1923  0.1756  0.1272  0.1385  0.0915  0.1957  0.1964  0.1361  0.1930  0.1141  0.2084  0.1592  0.1592  0.1303  0.1299  0.1248  0.0962  0.1377  0.1538  0.0271  0.0271  0.0228  0.1361  0.1472  0.1145  0.1183  0.1956  0.2081  0.1373  0.1219  0.1640  0.1062  0.0962
+Phodopus_sungorus      0.1560  0.2259  0.1572  0.0914  0.0747  0.0995  0.0419  0.0885  0.0724  0.1697  0.1047  0.0884  0.0628  0.0990  0.1452  0.1740  0.1753  0.1653  0.1333  0.1447  0.0971  0.1788  0.1798  0.1203  0.1707  0.0987  0.1914  0.1488  0.1488  0.1147  0.1143  0.1150  0.0915  0.1330  0.1602  0.0319  0.0273  0.0183  0.1203  0.1313  0.0991  0.1028  0.1787  0.1975  0.1326  0.1278  0.1594  0.1015  0.0915  0.0180
+Phodopus_roborovskii   0.1685  0.2253  0.1688  0.0861  0.0962  0.1064  0.0418  0.0883  0.0722  0.1808  0.1372  0.0986  0.0727  0.1094  0.1563  0.1795  0.1868  0.1705  0.1329  0.1443  0.0917  0.1903  0.1910  0.1254  0.1877  0.1091  0.2029  0.1540  0.1540  0.1252  0.1248  0.1199  0.0913  0.1326  0.1598  0.0272  0.0272  0.0091  0.1254  0.1364  0.1095  0.1132  0.1902  0.2028  0.1323  0.1275  0.1589  0.1013  0.0913  0.0179  0.0180
+Peromyscus_californicus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090
+Rattus_norvegicus      0.1960  0.2505  0.1820  0.0911  0.1146  0.1153  0.0610  0.1128  0.1011  0.1865  0.1408  0.1038  0.0778  0.1146  0.1561  0.1793  0.1866  0.1990  0.1546  0.1665  0.1177  0.1961  0.1968  0.1308  0.1875  0.1143  0.2027  0.1767  0.1767  0.1306  0.1301  0.1463  0.1119  0.1543  0.1822  0.0267  0.0088  0.0362  0.1308  0.1419  0.1147  0.1186  0.1900  0.2323  0.1539  0.1527  0.1869  0.1221  0.1119  0.0363  0.0365  0.0364  0.0272
+Acomys_cahirinus       0.1560  0.2140  0.1636  0.0916  0.0966  0.0997  0.0420  0.1099  0.0625  0.1306  0.0890  0.0529  0.0529  0.0630  0.1064  0.1339  0.1636  0.1545  0.1336  0.1451  0.0973  0.1387  0.1514  0.0834  0.1318  0.0628  0.1898  0.1529  0.1529  0.1042  0.1039  0.1050  0.0917  0.1333  0.1606  0.0508  0.0461  0.0371  0.0834  0.0938  0.0630  0.0768  0.1772  0.1865  0.1329  0.1281  0.1597  0.1018  0.0917  0.0365  0.0366  0.0366  0.0273  0.0555
+Acomys_cilicicus       0.1560  0.2140  0.1636  0.0916  0.0966  0.0997  0.0420  0.1099  0.0625  0.1306  0.0890  0.0529  0.0529  0.0630  0.1064  0.1339  0.1636  0.1545  0.1336  0.1451  0.0973  0.1387  0.1514  0.0834  0.1318  0.0628  0.1898  0.1529  0.1529  0.1042  0.1039  0.1050  0.0917  0.1333  0.1606  0.0508  0.0461  0.0371  0.0834  0.0938  0.0630  0.0768  0.1772  0.1865  0.1329  0.1281  0.1597  0.1018  0.0917  0.0365  0.0366  0.0366  0.0273  0.0555  0.0000
+Eptesicus_fuscus       0.1611  0.2546  0.2700  0.1662  0.1819  0.1309  0.1252  0.1223  0.1588  0.1016  0.0656  0.0346  0.0794  0.0345  0.0761  0.1031  0.1007  0.2652  0.2264  0.2403  0.1842  0.1530  0.1679  0.0428  0.0373  0.0345  0.0936  0.0925  0.0925  0.0779  0.0880  0.1753  0.1977  0.2336  0.2657  0.1448  0.1393  0.1162  0.0428  0.0527  0.0346  0.0448  0.1102  0.2955  0.2526  0.2408  0.2656  0.2093  0.1977  0.1365  0.1201  0.1311  0.1200  0.1310  0.0816  0.0816
+Eptesicus_bruneus      0.1474  0.2609  0.2771  0.1638  0.1636  0.1434  0.0847  0.1280  0.1537  0.0772  0.0686  0.0468  0.1178  0.0467  0.0929  0.1224  0.1255  0.2555  0.1914  0.2114  0.1556  0.1156  0.1313  0.0562  0.0767  0.0466  0.1170  0.0993  0.0993  0.1114  0.1225  0.1653  0.1815  0.1871  0.2165  0.1373  0.1260  0.1160  0.0562  0.0669  0.0468  0.0577  0.1296  0.2861  0.2364  0.2118  0.2494  0.1931  0.1815  0.1307  0.1137  0.1252  0.1137  0.1258  0.0741  0.0741  0.0453
+Eptesicus_brasiliensis   0.1611  0.2546  0.2700  0.1662  0.1819  0.1309  0.1252  0.1223  0.1588  0.1016  0.0656  0.0346  0.0794  0.0345  0.0761  0.1031  0.1007  0.2652  0.2264  0.2403  0.1842  0.1530  0.1679  0.0428  0.0373  0.0345  0.0936  0.0925  0.0925  0.0779  0.0880  0.1753  0.1977  0.2336  0.2657  0.1448  0.1393  0.1162  0.0428  0.0527  0.0346  0.0448  0.1102  0.2955  0.2526  0.2408  0.2656  0.2093  0.1977  0.1365  0.1201  0.1311  0.1200  0.1310  0.0816  0.0816  0.0000  0.0453
+Bos_taurus             0.2087  0.3060  0.2713  0.2077  0.2477  0.2001  0.1649  0.1934  0.2088  0.1500  0.1382  0.0993  0.1365  0.1048  0.1292  0.1454  0.0558  0.2860  0.2733  0.2745  0.2314  0.2108  0.2193  0.1155  0.1674  0.1045  0.0360  0.1199  0.1199  0.1233  0.1334  0.2321  0.2345  0.2814  0.3076  0.1969  0.1913  0.1916  0.1155  0.1260  0.1049  0.0997  0.0503  0.3365  0.2932  0.2781  0.3098  0.2462  0.2345  0.1881  0.1715  0.1827  0.1714  0.1826  0.1699  0.1699  0.0935  0.1288  0.0935
+Homo_sapiens           0.2180  0.2765  0.2048  0.1852  0.2309  0.2006  0.1154  0.2215  0.1666  0.2685  0.2224  0.1970  0.1761  0.2154  0.2587  0.2782  0.2912  0.0436  0.1361  0.1579  0.1587  0.2796  0.2448  0.2454  0.3057  0.2148  0.3180  0.2497  0.2497  0.2515  0.2505  0.0796  0.1005  0.1376  0.1567  0.1811  0.1929  0.1777  0.2454  0.2578  0.2156  0.2160  0.3067  0.0704  0.1095  0.1199  0.1391  0.1100  0.1005  0.1803  0.1700  0.1752  0.1643  0.2057  0.1592  0.1592  0.2702  0.2404  0.270 [...]
+Clethrionomys_glareolus   0.2359  0.2611  0.2169  0.1381  0.1620  0.1258  0.0943  0.1194  0.1269  0.2127  0.1904  0.1474  0.1189  0.1594  0.2060  0.2382  0.2652  0.2317  0.1961  0.2092  0.1561  0.2234  0.2111  0.1893  0.2206  0.1708  0.2445  0.1899  0.1899  0.1707  0.1701  0.1752  0.1496  0.1956  0.2261  0.0513  0.0323  0.0415  0.1893  0.2017  0.1595  0.1638  0.2431  0.2674  0.1951  0.1900  0.2311  0.1606  0.1496  0.0570  0.0573  0.0473  0.0474  0.0369  0.0828  0.0828  0.1673  0.1568  0. [...]
+Microtus_agrestis      0.2291  0.2824  0.1990  0.1245  0.1621  0.1531  0.0926  0.1390  0.1034  0.2206  0.1864  0.1445  0.1165  0.1561  0.2142  0.2462  0.2458  0.2147  0.1804  0.1929  0.1417  0.2187  0.2067  0.1854  0.2405  0.1557  0.2513  0.1980  0.1980  0.1791  0.1784  0.1599  0.1356  0.1800  0.2093  0.0504  0.0505  0.0607  0.1854  0.1975  0.1563  0.1605  0.2378  0.2491  0.1795  0.1687  0.2081  0.1462  0.1356  0.0560  0.0612  0.0561  0.0466  0.0551  0.0863  0.0863  0.1880  0.1654  0.188 [...]
+Peromyscus_leucopus    0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.120 [...]
+Apodemus_sylvaticus    0.1827  0.2576  0.1821  0.0862  0.1186  0.1101  0.0661  0.1077  0.0962  0.1869  0.1411  0.1040  0.0779  0.1149  0.1565  0.1797  0.1871  0.1994  0.1606  0.1725  0.1233  0.1966  0.1973  0.1311  0.1879  0.1146  0.2032  0.1542  0.1542  0.1254  0.1249  0.1466  0.1174  0.1602  0.1884  0.0267  0.0088  0.0363  0.1311  0.1422  0.1150  0.1188  0.1904  0.2328  0.1598  0.1476  0.1874  0.1277  0.1174  0.0410  0.0412  0.0411  0.0319  0.0132  0.0556  0.0556  0.1313  0.1258  0.131 [...]
+Murina_cyclotis        0.1607  0.2808  0.2839  0.1676  0.1939  0.1194  0.1248  0.1454  0.1583  0.1119  0.0654  0.0345  0.0792  0.0446  0.0654  0.0920  0.1004  0.2645  0.2321  0.2461  0.1836  0.1525  0.1674  0.0427  0.0372  0.0445  0.0933  0.0975  0.0975  0.0777  0.0877  0.1749  0.1971  0.2393  0.2716  0.1562  0.1506  0.1392  0.0427  0.0526  0.0446  0.0550  0.1099  0.3015  0.2584  0.2401  0.2582  0.2087  0.1971  0.1477  0.1311  0.1423  0.1311  0.1422  0.0923  0.0923  0.0185  0.0452  0.018 [...]
+Ovis_dalli             0.1959  0.3038  0.2589  0.2052  0.2407  0.1975  0.1622  0.1908  0.2062  0.1260  0.1354  0.0964  0.1338  0.1019  0.1139  0.1299  0.0561  0.2882  0.2624  0.2723  0.2290  0.2083  0.2169  0.0905  0.1631  0.1017  0.0179  0.1000  0.1000  0.1241  0.1343  0.2338  0.2322  0.2791  0.3055  0.1944  0.1887  0.1890  0.0905  0.1007  0.1020  0.0968  0.0272  0.3392  0.2910  0.2759  0.3146  0.2439  0.2322  0.1856  0.1688  0.1801  0.1687  0.1800  0.1673  0.1673  0.0941  0.1178  0.094 [...]
+Ovis_aries             0.1951  0.3026  0.2578  0.2045  0.2442  0.1968  0.1617  0.1901  0.2054  0.1255  0.1349  0.0961  0.1334  0.1016  0.1135  0.1294  0.0559  0.2871  0.2614  0.2712  0.2281  0.2075  0.2161  0.0902  0.1625  0.1013  0.0179  0.0997  0.0997  0.1237  0.1339  0.2329  0.2313  0.2781  0.3043  0.1936  0.1880  0.1883  0.0902  0.1004  0.1017  0.0965  0.0271  0.3378  0.2899  0.2748  0.3065  0.2430  0.2313  0.1849  0.1682  0.1795  0.1681  0.1793  0.1666  0.1666  0.0938  0.1174  0.093 [...]
+Pan_paniscus           0.2433  0.2822  0.2333  0.1999  0.2554  0.2158  0.1279  0.2511  0.1812  0.2676  0.2719  0.2189  0.1961  0.2381  0.3004  0.3212  0.3319  0.0678  0.1544  0.1660  0.1724  0.2782  0.2572  0.2776  0.3357  0.2374  0.3525  0.2733  0.2733  0.2624  0.2678  0.1053  0.1121  0.1244  0.1329  0.2018  0.2081  0.1986  0.2776  0.2908  0.2383  0.2388  0.3432  0.0578  0.1321  0.1218  0.1310  0.1218  0.1121  0.2009  0.1903  0.1957  0.1844  0.2254  0.1791  0.1791  0.2903  0.2806  0.290 [...]
+Pan_troglodytes        0.2645  0.3041  0.2522  0.2220  0.2799  0.2324  0.1451  0.2615  0.1984  0.2769  0.2756  0.2238  0.2013  0.2426  0.3104  0.3308  0.3388  0.0748  0.1711  0.1826  0.1891  0.2817  0.2472  0.2875  0.3433  0.2419  0.3613  0.2643  0.2643  0.2725  0.2778  0.1115  0.1286  0.1409  0.1493  0.2246  0.2309  0.2216  0.2875  0.3005  0.2428  0.2433  0.3521  0.0605  0.1377  0.1332  0.1473  0.1383  0.1286  0.2178  0.2072  0.2125  0.2013  0.2421  0.2019  0.2019  0.3060  0.2922  0.306 [...]
+Trachypithecus_cristatus   0.1719  0.2433  0.1611  0.1441  0.1468  0.1529  0.0560  0.1586  0.1193  0.1935  0.1944  0.1471  0.1248  0.1586  0.2041  0.2161  0.2497  0.1011  0.1174  0.1282  0.1184  0.1956  0.1963  0.1891  0.2300  0.1581  0.2656  0.1954  0.1954  0.1832  0.1825  0.0902  0.0355  0.0985  0.1170  0.1117  0.1119  0.1026  0.1891  0.2008  0.1587  0.1628  0.2524  0.1198  0.0535  0.0631  0.0815  0.0445  0.0355  0.1061  0.1014  0.1012  0.0911  0.1220  0.1016  0.1016  0.2040  0.1878  0 [...]
+Peromyscus_maniculatus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.1 [...]
+Peromyscus_polionotus   0.1560  0.2134  0.1571  0.0762  0.0854  0.0959  0.0323  0.0781  0.0623  0.1696  0.1264  0.0883  0.0627  0.0990  0.1451  0.1680  0.1752  0.1596  0.1225  0.1337  0.0868  0.1787  0.1797  0.1203  0.1764  0.0987  0.1913  0.1431  0.1431  0.1146  0.1142  0.1098  0.0813  0.1222  0.1491  0.0180  0.0181  0.0091  0.1203  0.1312  0.0990  0.1028  0.1786  0.1917  0.1219  0.1171  0.1483  0.0912  0.0813  0.0089  0.0090  0.0090  0.0000  0.0272  0.0273  0.0273  0.1200  0.1137  0.12 [...]
+Myotis_lucifugus       0.1611  0.2540  0.2840  0.1538  0.1230  0.1362  0.1048  0.0958  0.1437  0.0970  0.0295  0.0295  0.0987  0.0301  0.0892  0.1173  0.1224  0.2754  0.2181  0.2320  0.1635  0.1185  0.1500  0.0602  0.0490  0.0300  0.1219  0.1045  0.1045  0.1087  0.1195  0.1845  0.2011  0.2070  0.2387  0.1300  0.1189  0.0958  0.0602  0.0707  0.0301  0.0405  0.1324  0.3059  0.2560  0.2314  0.2691  0.2127  0.2011  0.1217  0.0830  0.1163  0.1052  0.1169  0.0669  0.0669  0.0243  0.0494  0.024 [...]
+Myotis_daubentoni      0.1611  0.2751  0.2906  0.1800  0.1434  0.1597  0.1222  0.0961  0.1626  0.1079  0.0510  0.0510  0.1207  0.0509  0.1022  0.1313  0.1323  0.2966  0.2184  0.2389  0.1823  0.1424  0.1579  0.0654  0.0646  0.0508  0.1257  0.0912  0.0912  0.1201  0.1310  0.2029  0.2204  0.2326  0.2653  0.1502  0.1455  0.1218  0.0654  0.0760  0.0510  0.0617  0.1381  0.3279  0.2769  0.2322  0.2903  0.2323  0.2204  0.1396  0.1000  0.1341  0.1228  0.1518  0.0853  0.0853  0.0342  0.0493  0.034 [...]
+Chalinolobus_beatrix   0.1236  0.2339  0.2845  0.1655  0.1470  0.1052  0.1051  0.1190  0.1560  0.0862  0.0509  0.0301  0.0756  0.0301  0.0909  0.1196  0.1339  0.2252  0.2064  0.2201  0.1643  0.1184  0.1337  0.0601  0.0489  0.0300  0.1218  0.1204  0.1204  0.1086  0.1194  0.1615  0.1775  0.2070  0.2386  0.1419  0.1303  0.1070  0.0601  0.0706  0.0301  0.0405  0.1322  0.2548  0.2321  0.2204  0.2451  0.1891  0.1775  0.1334  0.1054  0.1280  0.1167  0.1337  0.0778  0.0778  0.0242  0.0410  0.024 [...]
+Pipistrellus_savii     0.1475  0.2610  0.2772  0.1639  0.1637  0.1435  0.0847  0.1281  0.1538  0.0772  0.0686  0.0468  0.1179  0.0467  0.0930  0.1224  0.1256  0.2556  0.1914  0.2115  0.1557  0.1156  0.1314  0.0562  0.0768  0.0466  0.1171  0.0994  0.0994  0.1115  0.1225  0.1653  0.1816  0.1872  0.2166  0.1374  0.1260  0.1161  0.0562  0.0669  0.0468  0.0577  0.1296  0.2862  0.2365  0.2119  0.2495  0.1932  0.1816  0.1308  0.1138  0.1252  0.1137  0.1258  0.0741  0.0741  0.0453  0.0000  0.045 [...]
+Corynorhinus_townsendii   0.1713  0.2662  0.2534  0.1703  0.1682  0.1438  0.1212  0.1022  0.1717  0.1182  0.0795  0.0484  0.0924  0.0586  0.0967  0.1241  0.1481  0.2625  0.2124  0.2317  0.1908  0.1460  0.1608  0.0621  0.0717  0.0584  0.1414  0.1023  0.1023  0.1245  0.1350  0.1754  0.1912  0.2452  0.2770  0.1534  0.1489  0.1264  0.0621  0.0721  0.0586  0.0690  0.1536  0.2918  0.2441  0.2023  0.2566  0.2024  0.1912  0.1433  0.1273  0.1381  0.1272  0.1550  0.0914  0.0914  0.0342  0.0557  0. [...]
+Trachypithecus_geei    0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0.191 [...]
+Trachypithecus_pileatus   0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0. [...]
+Semnopithecus_entellus   0.1912  0.2498  0.1916  0.1700  0.1594  0.1573  0.0674  0.1515  0.1467  0.2106  0.2120  0.1625  0.1441  0.1745  0.2226  0.2352  0.2837  0.1291  0.1308  0.1422  0.1321  0.2391  0.2392  0.2061  0.2244  0.1860  0.2740  0.2126  0.2126  0.1999  0.1992  0.0975  0.0504  0.1217  0.1412  0.1253  0.1255  0.0926  0.2061  0.2183  0.1747  0.1790  0.2727  0.1487  0.0691  0.0791  0.0982  0.0597  0.0504  0.1194  0.1146  0.1036  0.1039  0.1359  0.1148  0.1148  0.1976  0.1687  0.1 [...]
+Trachypithecus_francoisi   0.1719  0.2435  0.1611  0.1335  0.1352  0.1421  0.0464  0.1473  0.1087  0.1821  0.1826  0.1360  0.1145  0.1473  0.1920  0.2038  0.2370  0.1011  0.1072  0.1179  0.1081  0.2078  0.2084  0.1776  0.2181  0.1469  0.2529  0.1840  0.1840  0.1718  0.1712  0.0807  0.0265  0.0986  0.1170  0.1013  0.1015  0.0922  0.1776  0.1892  0.1475  0.1515  0.2399  0.1199  0.0443  0.0537  0.0720  0.0354  0.0265  0.0958  0.0912  0.0910  0.0810  0.1115  0.0914  0.0914  0.1919  0.1757  0 [...]
+Mus_famulus            0.2019  0.2823  0.2190  0.0908  0.1466  0.1367  0.0856  0.1286  0.1215  0.2176  0.1647  0.1266  0.0999  0.1378  0.1809  0.2047  0.2124  0.1981  0.1821  0.1945  0.1442  0.2198  0.2202  0.1544  0.2084  0.1374  0.2285  0.1838  0.1838  0.1374  0.1369  0.1457  0.1381  0.1817  0.2105  0.0266  0.0266  0.0548  0.1544  0.1657  0.1379  0.1419  0.2156  0.2076  0.1812  0.1688  0.2094  0.1485  0.1381  0.0597  0.0600  0.0598  0.0504  0.0356  0.0746  0.0746  0.1556  0.1490  0.155 [...]
+Mus_pahari             0.2017  0.2888  0.2188  0.1061  0.1464  0.1310  0.0906  0.1284  0.1214  0.1934  0.1704  0.1320  0.1051  0.1432  0.1698  0.1934  0.2185  0.2276  0.1763  0.1885  0.1386  0.2258  0.2261  0.1599  0.2142  0.1428  0.2346  0.1836  0.1836  0.1539  0.1534  0.1728  0.1434  0.1873  0.2044  0.0265  0.0266  0.0595  0.1599  0.1714  0.1433  0.1473  0.2216  0.2371  0.1868  0.1631  0.2151  0.1539  0.1434  0.0408  0.0599  0.0598  0.0503  0.0310  0.0746  0.0746  0.1613  0.1550  0.161 [...]
+Mus_cookii             0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Plecotus_townsemdii    0.1713  0.2662  0.2534  0.1703  0.1682  0.1438  0.1212  0.1022  0.1717  0.1182  0.0795  0.0484  0.0924  0.0586  0.0967  0.1241  0.1481  0.2625  0.2124  0.2317  0.1908  0.1460  0.1608  0.0621  0.0717  0.0584  0.1414  0.1023  0.1023  0.1245  0.1350  0.1754  0.1912  0.2452  0.2770  0.1534  0.1489  0.1264  0.0621  0.0721  0.0586  0.0690  0.1536  0.2918  0.2441  0.2023  0.2566  0.2024  0.1912  0.1433  0.1273  0.1381  0.1272  0.1550  0.0914  0.0914  0.0342  0.0557  0.034 [...]
+Plecotus_auritus       0.1713  0.2690  0.2534  0.1669  0.1904  0.1482  0.1260  0.1348  0.1759  0.0933  0.0796  0.0394  0.0822  0.0492  0.0673  0.0928  0.1273  0.2633  0.2143  0.2354  0.1946  0.1636  0.1778  0.0270  0.0497  0.0491  0.0993  0.0933  0.0933  0.0939  0.1036  0.1775  0.1950  0.2482  0.2796  0.1559  0.1505  0.1284  0.0270  0.0362  0.0492  0.0592  0.1102  0.2921  0.2471  0.2359  0.2594  0.2060  0.1950  0.1478  0.1320  0.1426  0.1319  0.1425  0.0948  0.0948  0.0092  0.0453  0.009 [...]
+Trachypithecus_johnii   0.2047  0.2680  0.1923  0.1547  0.1584  0.1637  0.0657  0.1698  0.1373  0.2049  0.2123  0.1638  0.1458  0.1756  0.2225  0.2348  0.2688  0.1259  0.1276  0.1386  0.1287  0.2387  0.2388  0.2064  0.2481  0.1751  0.2848  0.2069  0.2069  0.1946  0.1997  0.1095  0.0492  0.1187  0.1376  0.1221  0.1223  0.1130  0.2064  0.2184  0.1758  0.1800  0.2715  0.1450  0.0674  0.0583  0.0766  0.0583  0.0492  0.1163  0.1117  0.1114  0.1012  0.1325  0.1119  0.1119  0.2224  0.1814  0.22 [...]
+Trachypithecus_vetulus   0.1912  0.2498  0.1916  0.1700  0.1594  0.1573  0.0674  0.1515  0.1467  0.2106  0.2120  0.1625  0.1441  0.1745  0.2226  0.2352  0.2837  0.1291  0.1308  0.1422  0.1321  0.2391  0.2392  0.2061  0.2244  0.1860  0.2740  0.2126  0.2126  0.1999  0.1992  0.0975  0.0504  0.1217  0.1412  0.1253  0.1255  0.0926  0.2061  0.2183  0.1747  0.1790  0.2727  0.1487  0.0691  0.0791  0.0982  0.0597  0.0504  0.1194  0.1146  0.1036  0.1039  0.1359  0.1148  0.1148  0.1976  0.1687  0.1 [...]
+Trachypithecus_obscurus   0.1719  0.2433  0.1611  0.1441  0.1468  0.1529  0.0560  0.1586  0.1193  0.1935  0.1944  0.1471  0.1248  0.1586  0.2041  0.2161  0.2497  0.1011  0.1174  0.1282  0.1184  0.1956  0.1963  0.1891  0.2300  0.1581  0.2656  0.1954  0.1954  0.1832  0.1825  0.0902  0.0355  0.0985  0.1170  0.1117  0.1119  0.1026  0.1891  0.2008  0.1587  0.1628  0.2524  0.1198  0.0535  0.0631  0.0815  0.0445  0.0355  0.1061  0.1014  0.1012  0.0911  0.1220  0.1016  0.1016  0.2040  0.1878  0. [...]
+Trachypithecus_phayrei   0.1719  0.2495  0.1611  0.1474  0.1505  0.1565  0.0573  0.1625  0.1222  0.1861  0.1993  0.1507  0.1277  0.1625  0.1898  0.2019  0.2366  0.1032  0.1042  0.1203  0.1211  0.2005  0.2012  0.1699  0.2243  0.1620  0.2437  0.1744  0.1744  0.1701  0.1695  0.0921  0.0363  0.1007  0.1196  0.1143  0.1145  0.1050  0.1699  0.1815  0.1626  0.1669  0.2327  0.1224  0.0547  0.0644  0.0832  0.0455  0.0363  0.1085  0.1038  0.1035  0.0932  0.1248  0.1040  0.1040  0.1905  0.1878  0.1 [...]
+Mus_spretus            0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Mus_spicilegus         0.1820  0.2694  0.2000  0.1011  0.1294  0.1204  0.0757  0.1179  0.1060  0.1998  0.1535  0.1160  0.0896  0.1270  0.1693  0.1989  0.2003  0.2043  0.1710  0.1831  0.1334  0.2077  0.2083  0.1433  0.1909  0.1266  0.2164  0.1724  0.1724  0.1375  0.1370  0.1513  0.1275  0.1706  0.1990  0.0176  0.0177  0.0454  0.1433  0.1546  0.1271  0.1310  0.2036  0.2137  0.1702  0.1579  0.1980  0.1378  0.1275  0.0502  0.0505  0.0503  0.0410  0.0221  0.0650  0.0650  0.1441  0.1371  0.144 [...]
+Mus_macedonicus        0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.144 [...]
+Mus_musculus_domesticus   0.1820  0.2694  0.2000  0.1011  0.1294  0.1204  0.0757  0.1179  0.1060  0.1998  0.1535  0.1160  0.0896  0.1270  0.1693  0.1989  0.2003  0.2043  0.1710  0.1831  0.1334  0.2077  0.2083  0.1433  0.1909  0.1266  0.2164  0.1724  0.1724  0.1375  0.1370  0.1513  0.1275  0.1706  0.1990  0.0176  0.0177  0.0454  0.1433  0.1546  0.1271  0.1310  0.2036  0.2137  0.1702  0.1579  0.1980  0.1378  0.1275  0.0502  0.0505  0.0503  0.0410  0.0221  0.0650  0.0650  0.1441  0.1371  0. [...]
+Mus_musculus_musculus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.14 [...]
+Mus_musculus_bactrianus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0. [...]
+Mus_musculus_castaneus   0.1828  0.2704  0.2008  0.1015  0.1299  0.1208  0.0759  0.1183  0.1064  0.2005  0.1541  0.1164  0.0899  0.1274  0.1699  0.1935  0.2011  0.2109  0.1716  0.1838  0.1339  0.2085  0.2090  0.1439  0.1975  0.1271  0.2172  0.1673  0.1673  0.1380  0.1375  0.1572  0.1279  0.1712  0.1998  0.0177  0.0177  0.0456  0.1439  0.1551  0.1275  0.1314  0.2043  0.2205  0.1708  0.1584  0.1987  0.1383  0.1279  0.0504  0.0506  0.0505  0.0412  0.0221  0.0652  0.0652  0.1446  0.1376  0.1 [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/2NG.dS b/examples/evol/data/protamine/PRM1/paml/M0/2NG.dS
new file mode 100644
index 0000000..6465493
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/2NG.dS
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      2.7574
+Erinaceus_europaeus    1.5057  2.4618
+Oryctolagus_cuniculus   1.0248  0.9066  1.0834
+Cynocephalus_variegatus   1.7047  0.5557  3.0000  0.8590
+Tupaia_belangeri       1.0358  1.0317  3.0000  0.6324  0.6795
+Otolemur_garnettii     1.9079  1.0360  3.0000  0.9039  0.5655  0.4615
+Cavia_porcellus        1.8460  1.0556  3.1450  0.5482  0.7126  0.5797  0.4711
+Dipodomys_ordii        0.7942  0.8086  1.0331  0.4404  0.8832  0.8031  0.7386  0.6735
+Felis_catus            2.0076  0.7763  3.2199  0.9585  0.8464  1.0520  0.6385  0.7648  0.9635
+Rhinopoma_hardwickei   0.9829  0.6879  3.0000  0.7863  0.8866  0.6883  0.5171  0.6175  0.6609  0.7449
+Pteropus_hypomelanus   0.8555  0.6060  3.0000  0.6588  0.7963  0.4434  0.3747  0.6321  0.6420  0.6554  0.1152
+Pteropus_vampyrus      0.8469  0.6609  3.0000  0.6499  0.8401  0.4952  0.3983  0.6372  0.6623  0.6788  0.1177  0.0000
+Desmodus_rotundus      1.1330  0.6338  3.0000  0.7249  0.8038  0.6347  0.5841  0.6284  0.9313  0.6187  0.1497  0.1521  0.1521
+Equus_asinus           1.3346  1.0393  2.6016  0.6742  0.6842  0.6035  0.6729  0.8667  0.8776  0.7231  0.4986  0.5090  0.4768  0.3303
+Equus_caballus         1.2353  0.9967  2.2998  0.6450  0.6901  0.5771  0.6437  0.8293  0.8383  0.6927  0.4760  0.4858  0.4537  0.3107  0.0000
+Antilocapra_americana   1.0259  0.5273  2.3472  0.5522  0.6202  0.6684  0.5131  0.6501  0.7701  0.6807  0.3046  0.2104  0.2254  0.3088  0.3642  0.3443
+Hylobates_lar          1.1383  0.7342  1.1242  0.6248  0.5835  0.7150  0.5636  0.7418  0.5626  1.1085  0.6236  0.5742  0.5512  0.7044  0.7223  0.6908  0.4633
+Callithrix_jacchus     1.1011  0.6507  1.3457  0.5348  0.6091  0.5328  0.4493  0.4719  0.6832  0.6929  0.5273  0.4833  0.5079  0.5078  0.6117  0.5843  0.3169  0.1622
+Saguinus_imperator     1.3829  0.6083  1.6139  0.4246  0.4804  0.4232  0.4426  0.3682  0.6708  0.6465  0.4661  0.4251  0.4478  0.3532  0.5112  0.5150  0.3560  0.2328  0.0715
+Saimiri_sciureus       1.2393  0.7241  1.4031  0.3937  0.5401  0.4152  0.4128  0.3636  0.6222  0.8114  0.4854  0.4440  0.4639  0.3939  0.5039  0.4802  0.4425  0.2103  0.0704  0.0134
+Hipposideros_commersoni   0.9596  0.6393  2.0001  0.7649  0.8142  0.6503  0.5610  0.7750  0.5830  0.4971  0.1296  0.1478  0.1478  0.1976  0.4473  0.4259  0.3554  0.6511  0.4975  0.4398  0.4834
+Rhinolophus_ferrumequinum   0.8570  0.7083  3.0000  0.7997  0.8555  0.7449  0.5790  0.8112  0.6152  0.6870  0.1328  0.1515  0.1551  0.2077  0.5073  0.4842  0.3350  0.6528  0.5303  0.4672  0.5143  0.1478
+Chilonatalus_micropus   1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438
+Otonycteris_hemprichi   1.5172  0.7069  3.0000  0.8874  0.6244  0.6630  0.5456  0.6681  1.0319  0.6830  0.3531  0.3600  0.3785  0.3582  0.3377  0.3176  0.2870  0.6882  0.5248  0.5648  0.6131  0.3832  0.4063  0.1518
+Monophyllus_redmani    1.3159  0.5791  3.0000  0.8127  0.9094  0.7090  0.5907  0.7829  0.8473  0.6259  0.2210  0.2248  0.2248  0.1196  0.4275  0.4055  0.3116  0.7133  0.5133  0.4523  0.4981  0.2730  0.2878  0.3464  0.3617
+Elaphodus_cephalophus   1.0603  0.5648  2.3956  0.6072  0.6713  0.6934  0.5676  0.7124  0.7937  0.8535  0.4153  0.3119  0.2782  0.4214  0.4896  0.4675  0.0265  0.4995  0.3484  0.4030  0.4920  0.4688  0.4221  0.3448  0.4044  0.4255
+Hippopotamus_amphibius   0.9590  0.6578  3.0000  0.7053  0.4235  0.4855  0.5344  0.9295  0.9729  0.8589  0.5979  0.3688  0.3309  0.6404  0.5919  0.5964  0.2674  0.5227  0.5143  0.5832  0.6985  0.5701  0.5199  0.4762  0.4988  0.6480  0.2913
+Hexaprotodon_liberiensis   0.9590  0.6578  3.0000  0.7053  0.4235  0.4855  0.5344  0.9295  0.9729  0.8589  0.5979  0.3688  0.3309  0.6404  0.5919  0.5964  0.2674  0.5227  0.5143  0.5832  0.6985  0.5701  0.5199  0.4762  0.4988  0.6480  0.2913  0.0000
+Potamochoerus_porcus   1.3060  0.6826  3.8101  0.6729  0.7802  0.5344  0.3542  0.6372  0.8481  0.6278  0.3406  0.1708  0.1683  0.3453  0.4679  0.4453  0.2182  0.5371  0.3841  0.4255  0.4332  0.3919  0.4149  0.3937  0.4601  0.3486  0.2568  0.3922  0.3922
+Sus_scrofa             1.3458  0.7651  2.4833  0.7561  0.8847  0.5995  0.4063  0.7195  0.7770  0.7044  0.3448  0.1727  0.1701  0.3497  0.4232  0.4015  0.2207  0.6069  0.4377  0.4821  0.4896  0.3968  0.4204  0.3986  0.4664  0.3530  0.2597  0.4453  0.4453  0.0274
+Pongo_pygmaeus         1.4182  1.1987  1.5008  0.7232  0.6814  0.6189  0.5046  0.7112  0.6656  1.0153  0.6613  0.6082  0.5822  0.7505  0.6896  0.6581  0.4883  0.1267  0.2068  0.2842  0.2586  0.6437  0.6219  0.4968  0.6571  0.7606  0.5266  0.6184  0.6184  0.5676  0.5766
+Papio_cynocephalus     1.2032  0.7028  1.0901  0.4872  0.4464  0.5361  0.3881  0.5199  0.5103  0.7247  0.3641  0.3267  0.3370  0.4162  0.5103  0.5430  0.4349  0.0869  0.1242  0.1390  0.1053  0.3569  0.3623  0.3893  0.5611  0.4204  0.4853  0.5209  0.5209  0.3900  0.4439  0.1571
+Ateles_sp              1.2265  0.6460  1.6713  0.4344  0.5801  0.4329  0.4447  0.3766  0.6783  0.6880  0.4952  0.4268  0.4500  0.3766  0.5246  0.4996  0.4116  0.2708  0.1201  0.0570  0.0562  0.5199  0.5550  0.2648  0.4825  0.4810  0.4531  0.5884  0.5884  0.4783  0.5409  0.3276  0.1528
+Alouatta_seniculus     1.4575  0.6281  2.1547  0.4366  0.5624  0.4351  0.5663  0.4275  0.7714  0.8519  0.6152  0.5371  0.5636  0.4785  0.6105  0.5829  0.4648  0.3214  0.1891  0.1192  0.1173  0.6532  0.7026  0.3283  0.4760  0.6010  0.5080  0.5611  0.5611  0.5956  0.6710  0.4361  0.2311  0.0583
+Sigmodon_hispidus      2.1525  0.9995  1.7245  0.8455  1.3378  0.6456  0.8513  0.9123  0.7012  0.9883  0.8332  0.7356  0.7737  0.8947  0.8620  0.8256  0.7199  0.7974  0.7719  0.7573  0.7822  0.9557  0.8201  0.7356  0.6787  0.8193  0.6423  1.0247  1.0247  0.7052  0.7944  0.8998  0.6233  0.7802  0.7467
+Micromys_minutus       1.6972  1.0998  3.3559  0.8809  0.9364  0.6844  0.7638  0.9761  0.6957  0.9782  0.9126  0.7295  0.7670  0.8863  0.6586  0.6640  0.6899  1.0236  0.8456  0.8287  0.8551  0.9462  0.8128  0.6937  0.6060  0.8120  0.6059  0.7811  0.7811  0.6648  0.7483  1.1774  0.7541  0.7000  0.6697  0.1411
+Meriones_unguiculatus   1.6997  0.9916  1.8849  0.8475  1.2423  1.2335  0.8388  1.0718  0.6842  0.9440  0.8344  0.6585  0.6945  0.8084  0.7205  0.6884  0.5540  0.9722  0.8118  0.7952  0.8222  0.8526  0.7239  0.6241  0.6762  0.7370  0.5322  0.9272  0.9272  0.5960  0.6754  1.0939  0.7453  0.6532  0.7844  0.2939  0.2535
+Natalus_micropus       1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438  0.0000  0.1518  0.3464  0.3448  0.4762  0.4762  0.3937  0.3986  0.4968  0.3893  0.2648  0.3283  0.7356  0.6937  0.6241
+Natalus_stramineus     1.0926  0.7885  3.0000  0.6280  0.5043  0.5335  0.3747  0.4561  0.6735  0.7150  0.2969  0.3023  0.3194  0.2609  0.2241  0.2069  0.2375  0.5265  0.3991  0.3269  0.3420  0.3256  0.3438  0.0000  0.1518  0.3464  0.3448  0.4762  0.4762  0.3937  0.3986  0.4968  0.3893  0.2648  0.3283  0.7356  0.6937  0.6241  0.0000
+Pteronotus_parnellii   1.2824  0.6314  3.0000  0.6524  0.5788  0.5163  0.4190  0.5057  0.7467  0.6164  0.1831  0.1861  0.1861  0.1184  0.3741  0.3536  0.2667  0.6323  0.4531  0.3092  0.3478  0.2326  0.2448  0.2222  0.3127  0.1869  0.3739  0.5171  0.5171  0.3018  0.3055  0.6712  0.3682  0.3303  0.4254  0.7280  0.5900  0.6517  0.2222  0.2222
+Mormoops_megalophylla   1.1404  0.6268  2.7097  0.9373  0.9485  0.8145  0.5016  0.7370  1.0242  0.4951  0.1821  0.1851  0.1851  0.1178  0.4438  0.4218  0.3097  0.6956  0.5396  0.5036  0.5235  0.2314  0.1704  0.3844  0.4015  0.1859  0.3941  0.6012  0.6012  0.3868  0.3918  0.7018  0.4701  0.5069  0.6295  0.6984  0.6927  0.6238  0.3844  0.3844  0.1839
+Moschus_sp             0.9596  0.4594  2.1144  0.5435  0.6068  0.5657  0.5064  0.6352  0.6351  0.6824  0.3687  0.2722  0.2411  0.3738  0.4299  0.4095  0.0669  0.5319  0.3841  0.3571  0.4396  0.3758  0.3315  0.2978  0.3727  0.3773  0.0517  0.2852  0.2852  0.3080  0.3115  0.5609  0.4324  0.3575  0.4043  0.5742  0.5417  0.4793  0.2978  0.2978  0.3300  0.3490
+Gorilla_gorilla        1.5199  1.0555  1.3058  0.5583  0.8101  0.7512  0.6573  0.7418  0.6968  1.1932  0.6543  0.6018  0.5764  0.7032  0.8053  0.7695  0.5738  0.0761  0.2052  0.2819  0.2566  0.6484  0.6866  0.5817  0.7254  0.7123  0.6140  0.6463  0.6463  0.5619  0.6368  0.0961  0.1221  0.3248  0.4320  0.8425  1.0941  1.0397  0.5817  0.5817  0.6292  0.6941  0.6505
+Nasalis_larvatus       1.1990  0.6933  1.1508  0.5026  0.4888  0.5531  0.3996  0.5370  0.5273  0.7934  0.4225  0.3821  0.3918  0.4810  0.5274  0.5314  0.4886  0.0889  0.1273  0.1257  0.1078  0.4135  0.4222  0.4009  0.5198  0.4861  0.5425  0.5998  0.5998  0.4514  0.5122  0.1611  0.0000  0.1566  0.2372  0.6452  0.7837  0.7757  0.4009  0.4009  0.4275  0.5123  0.4834  0.1251
+Procolobus_badius      1.1601  0.7139  1.0531  0.5119  0.4528  0.5165  0.3932  0.4995  0.4896  0.7371  0.3464  0.3093  0.3199  0.3976  0.4923  0.5246  0.4157  0.0878  0.1366  0.1516  0.1169  0.3395  0.3441  0.3712  0.5395  0.4015  0.4658  0.5579  0.5579  0.3950  0.4247  0.1414  0.0000  0.1488  0.2274  0.6015  0.7118  0.7390  0.3712  0.3712  0.3503  0.4507  0.4141  0.1234  0.0000
+Colobus_guereza        1.0883  0.6947  1.0499  0.5108  0.4324  0.5264  0.4057  0.5170  0.5069  0.7165  0.3525  0.3146  0.3253  0.3809  0.4996  0.5325  0.4235  0.0900  0.1289  0.1441  0.1091  0.3453  0.3503  0.3779  0.5210  0.3847  0.4747  0.5104  0.5104  0.4023  0.4327  0.1452  0.0000  0.1586  0.2405  0.6238  0.7599  0.7509  0.3779  0.3779  0.3340  0.4337  0.4215  0.1267  0.0000  0.0000
+Macaca_fascicularis    1.2319  0.7125  1.1131  0.4931  0.4520  0.5426  0.3925  0.5264  0.5168  0.7355  0.3682  0.3303  0.3407  0.4211  0.5169  0.5502  0.4401  0.0877  0.1254  0.1403  0.1063  0.3608  0.3665  0.3938  0.5686  0.4253  0.4911  0.5276  0.5276  0.3944  0.4492  0.1587  0.0000  0.1543  0.2335  0.6317  0.7654  0.7570  0.3938  0.3938  0.3723  0.4758  0.4373  0.1232  0.0000  0.0000  0.0000
+Macaca_mulatta         1.2032  0.7028  1.0901  0.4872  0.4464  0.5361  0.3881  0.5199  0.5103  0.7247  0.3641  0.3267  0.3370  0.4162  0.5103  0.5430  0.4349  0.0869  0.1242  0.1390  0.1053  0.3569  0.3623  0.3893  0.5611  0.4204  0.4853  0.5209  0.5209  0.3900  0.4439  0.1571  0.0000  0.1528  0.2311  0.6233  0.7541  0.7453  0.3893  0.3893  0.3682  0.4701  0.4324  0.1221  0.0000  0.0000  0.0000  0.0000
+Arvicola_terrestris    1.4624  0.7142  1.8118  0.7056  0.9174  0.6245  0.6095  0.7577  0.5168  0.7118  0.6721  0.5302  0.5594  0.6502  0.5731  0.5775  0.5741  0.6621  0.5503  0.5414  0.5621  0.6887  0.5812  0.5896  0.6106  0.5930  0.5125  0.6641  0.6641  0.5635  0.6361  0.7424  0.4884  0.5553  0.6530  0.1478  0.1152  0.2474  0.5896  0.5896  0.5255  0.5033  0.4562  0.6959  0.5040  0.4688  0.4846  0.4944  0.4884
+Phodopus_sungorus      1.4974  0.7327  1.8610  0.6888  1.1725  0.5327  0.6269  0.7387  0.5341  0.6593  0.6243  0.4917  0.5189  0.6036  0.6372  0.6092  0.5321  0.7158  0.5672  0.5580  0.5787  0.6404  0.5388  0.5472  0.5963  0.5502  0.4755  0.7185  0.7185  0.5227  0.5896  0.8032  0.5600  0.5724  0.6709  0.1296  0.1447  0.2624  0.5472  0.5472  0.4875  0.4669  0.4232  0.7534  0.5787  0.5395  0.5585  0.5672  0.5600  0.0555
+Phodopus_roborovskii   1.8201  0.7418  1.3820  0.6630  1.0645  0.6827  0.7013  0.6761  0.4835  0.7401  0.7717  0.6140  0.6464  0.7481  0.5797  0.5842  0.6646  0.7626  0.6353  0.6245  0.6793  0.7889  0.6721  0.7157  0.7071  0.6843  0.5934  0.7662  0.7662  0.6515  0.7339  0.8588  0.5661  0.6414  0.7514  0.1797  0.1459  0.3055  0.7157  0.7157  0.6082  0.5833  0.5300  0.8045  0.5852  0.5453  0.5647  0.5734  0.5661  0.0274  0.0842
+Peromyscus_californicus   1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000
+Rattus_norvegicus      1.2847  1.1281  1.5357  0.7735  0.9940  0.6969  0.9539  0.8900  0.7083  0.8688  0.9169  0.7187  0.7561  0.8750  0.7990  0.8064  0.7401  0.8063  0.7056  0.6929  0.7164  0.8323  0.7107  0.6830  0.7103  0.8008  0.6596  0.5620  0.5620  0.6886  0.7762  1.0170  0.6292  0.5809  0.6818  0.2435  0.1420  0.2961  0.6830  0.6830  0.7113  0.6822  0.5893  0.8525  0.6516  0.5867  0.5978  0.6378  0.6292  0.1165  0.1464  0.1476  0.1466
+Acomys_cahirinus       1.7703  0.7253  1.6550  0.7526  0.9273  0.5281  0.7573  0.8931  0.6527  0.8428  0.7922  0.6328  0.6328  0.7685  0.7370  0.7058  0.5885  0.7083  0.5620  0.5531  0.5736  0.8094  0.6918  0.6328  0.6909  0.7040  0.5337  0.8429  0.8429  0.5755  0.6477  0.7938  0.5551  0.5671  0.6643  0.1288  0.1438  0.2605  0.6328  0.6328  0.6267  0.6016  0.4767  0.7449  0.5733  0.5347  0.5532  0.5620  0.5551  0.1146  0.0543  0.1451  0.1442  0.1783
+Acomys_cilicicus       1.7703  0.7253  1.6550  0.7526  0.9273  0.5281  0.7573  0.8931  0.6527  0.8428  0.7922  0.6328  0.6328  0.7685  0.7370  0.7058  0.5885  0.7083  0.5620  0.5531  0.5736  0.8094  0.6918  0.6328  0.6909  0.7040  0.5337  0.8429  0.8429  0.5755  0.6477  0.7938  0.5551  0.5671  0.6643  0.1288  0.1438  0.2605  0.6328  0.6328  0.6267  0.6016  0.4767  0.7449  0.5733  0.5347  0.5532  0.5620  0.5551  0.1146  0.0543  0.1451  0.1442  0.1783  0.0000
+Eptesicus_fuscus       0.9101  0.6394  3.0000  0.6538  0.7620  0.6416  0.5366  0.7334  0.6649  0.7466  0.2987  0.2170  0.2338  0.3454  0.2996  0.2800  0.1956  0.4308  0.3757  0.4707  0.4972  0.3227  0.3191  0.1713  0.1273  0.3488  0.2835  0.3847  0.3847  0.2643  0.2675  0.5137  0.3898  0.4000  0.4823  0.6128  0.5759  0.5015  0.1713  0.1713  0.2996  0.3891  0.2973  0.4788  0.3771  0.3708  0.3778  0.3945  0.3898  0.4803  0.4432  0.5628  0.5575  0.5651  0.5216  0.5216
+Eptesicus_bruneus      1.5816  0.7401  3.0000  0.6230  0.6481  0.6825  0.5183  0.6428  0.9295  0.7485  0.3657  0.3177  0.3567  0.4201  0.3310  0.3090  0.2325  0.5812  0.4340  0.5124  0.5379  0.3984  0.3980  0.1860  0.1547  0.4247  0.3328  0.4705  0.4705  0.4576  0.4644  0.6185  0.4952  0.4534  0.5577  0.8534  0.8322  0.6414  0.1860  0.1860  0.3670  0.4704  0.3247  0.5764  0.4828  0.4739  0.4838  0.5018  0.4952  0.6573  0.6050  0.7681  0.7590  0.8384  0.7081  0.7081  0.1159
+Eptesicus_brasiliensis   0.9101  0.6394  3.0000  0.6538  0.7620  0.6416  0.5366  0.7334  0.6649  0.7466  0.2987  0.2170  0.2338  0.3454  0.2996  0.2800  0.1956  0.4308  0.3757  0.4707  0.4972  0.3227  0.3191  0.1713  0.1273  0.3488  0.2835  0.3847  0.3847  0.2643  0.2675  0.5137  0.3898  0.4000  0.4823  0.6128  0.5759  0.5015  0.1713  0.1713  0.2996  0.3891  0.2973  0.4788  0.3771  0.3708  0.3778  0.3945  0.3898  0.4803  0.4432  0.5628  0.5575  0.5651  0.5216  0.5216  0.0000  0.1159
+Bos_taurus             1.7092  0.5486  4.2543  0.7940  0.8167  0.8996  0.6761  0.8487  1.0633  0.8296  0.5541  0.4329  0.3922  0.5631  0.6323  0.6063  0.1433  0.5884  0.5208  0.5686  0.7125  0.6142  0.5356  0.4585  0.3826  0.5692  0.1094  0.3986  0.3986  0.4236  0.4289  0.6928  0.6415  0.6036  0.6721  0.6896  0.6506  0.5831  0.4585  0.4585  0.4539  0.4267  0.1521  0.7612  0.6815  0.6193  0.6006  0.6503  0.6415  0.5522  0.5126  0.6377  0.6316  0.7083  0.5738  0.5738  0.3262  0.3796  0.3262
+Homo_sapiens           1.3447  1.0789  1.2382  0.7097  0.7873  0.7328  0.6416  0.7228  0.7171  1.0848  0.6387  0.5879  0.5637  0.6858  0.7158  0.6841  0.5608  0.0908  0.1474  0.2567  0.2521  0.6011  0.6007  0.5484  0.7197  0.6944  0.5689  0.5975  0.5975  0.5200  0.5892  0.0946  0.1201  0.2970  0.3983  0.8634  1.0580  1.0055  0.5484  0.5484  0.6143  0.6771  0.6141  0.0613  0.1231  0.1214  0.1247  0.1213  0.1201  0.7154  0.7731  0.8250  0.8157  0.8585  0.7644  0.7644  0.4682  0.6749  0.468 [...]
+Clethrionomys_glareolus   2.2448  1.0445  1.3944  0.9719  2.6311  1.2602  0.9799  0.9819  0.5672  1.1899  0.8732  0.6141  0.6489  0.8455  0.8579  0.8189  0.8038  1.3080  0.9824  0.9591  0.9918  0.8025  0.6765  0.9000  0.9890  0.9589  0.8472  1.3272  1.3272  0.8604  0.7858  1.3228  0.9640  0.8911  1.0637  0.4136  0.4109  0.1735  0.9000  0.9000  0.8415  0.6483  0.7631  1.4356  1.0123  0.9318  0.9267  0.9824  0.9640  0.3176  0.2699  0.2724  0.2703  0.4416  0.3308  0.3308  0.7365  0.9513  0. [...]
+Microtus_agrestis      1.9861  0.7916  1.4632  0.6687  1.4151  0.6545  0.6729  0.7581  0.4784  0.7911  0.6700  0.5853  0.6176  0.7989  0.8083  0.7726  0.6826  0.8602  0.6742  0.6620  0.6858  0.7610  0.6428  0.6869  0.7553  0.7286  0.6625  0.8659  0.8659  0.5899  0.6679  0.9803  0.6646  0.6128  0.7226  0.1645  0.1976  0.2879  0.6869  0.6869  0.6449  0.6176  0.5896  0.9135  0.6897  0.6756  0.6666  0.6742  0.6646  0.1209  0.1030  0.0881  0.0875  0.2179  0.1509  0.1509  0.5644  0.8087  0.564 [...]
+Peromyscus_leucopus    1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000  0.0000  0.1466  0.1442  0.1442  0.5575  0.7590  0.557 [...]
+Apodemus_sylvaticus    2.0896  0.9489  3.5492  0.8891  0.9462  0.8007  0.8097  1.0278  0.6669  0.9537  0.9060  0.7113  0.7481  0.8648  0.7118  0.7180  0.7323  0.8834  0.7343  0.7208  0.7448  0.9089  0.7791  0.7481  0.7802  0.7920  0.6532  0.8441  0.8441  0.7172  0.8081  1.0033  0.6553  0.6709  0.7854  0.1737  0.1107  0.2550  0.7481  0.7481  0.7040  0.6754  0.5839  0.9372  0.6790  0.6769  0.6570  0.6643  0.6553  0.0703  0.0988  0.0995  0.0989  0.1586  0.1133  0.1133  0.5596  0.7485  0.559 [...]
+Murina_cyclotis        1.3780  0.7965  3.0000  0.8923  0.7688  0.7978  0.6764  0.8301  0.8435  0.8389  0.5004  0.3944  0.4138  0.5041  0.4463  0.4231  0.2765  0.6880  0.5119  0.6263  0.6947  0.5208  0.4173  0.2469  0.1283  0.5097  0.3729  0.4649  0.4649  0.4468  0.4529  0.6559  0.6226  0.5437  0.6461  0.6907  0.6493  0.5679  0.2469  0.2469  0.4471  0.5574  0.3869  0.7259  0.5784  0.5993  0.5797  0.6315  0.6226  0.5447  0.5031  0.6353  0.6289  0.6380  0.5887  0.5887  0.1253  0.1929  0.125 [...]
+Ovis_dalli             1.2189  0.5518  2.9753  0.8740  0.7610  0.7422  0.7480  0.8465  1.0556  0.9123  0.5573  0.4378  0.3975  0.5662  0.7091  0.6812  0.1720  0.5712  0.5067  0.5716  0.7130  0.6164  0.5391  0.4239  0.3516  0.5723  0.1367  0.3051  0.3051  0.3695  0.3740  0.6701  0.6434  0.6061  0.6735  0.7618  0.7194  0.6506  0.4239  0.4239  0.4585  0.4805  0.1956  0.7353  0.6827  0.6215  0.5731  0.6519  0.6434  0.6152  0.5722  0.7063  0.6993  0.5805  0.6370  0.6370  0.2777  0.3719  0.277 [...]
+Ovis_aries             1.4342  0.5069  2.2685  0.8065  0.7481  0.8291  0.6882  0.7787  0.9670  0.8424  0.5103  0.3960  0.3578  0.5183  0.6541  0.6277  0.1419  0.5217  0.4615  0.5236  0.6576  0.5677  0.4925  0.3842  0.3137  0.5237  0.1083  0.3500  0.3500  0.3321  0.3360  0.6128  0.5911  0.5554  0.6187  0.7016  0.6623  0.5950  0.3842  0.3842  0.4160  0.4372  0.1659  0.6740  0.6269  0.5699  0.5520  0.5987  0.5911  0.5635  0.5236  0.6494  0.6432  0.6519  0.5851  0.5851  0.2420  0.3295  0.242 [...]
+Pan_paniscus           1.2338  1.0357  1.0655  0.6791  0.8006  0.7813  0.6829  0.6915  0.6113  0.9803  0.6436  0.5905  0.5652  0.6929  0.7959  0.7596  0.5622  0.0767  0.2108  0.2901  0.2637  0.5414  0.6585  0.5704  0.6277  0.7020  0.6030  0.6719  0.6719  0.5822  0.6259  0.0799  0.1251  0.3319  0.4423  0.8803  1.1548  1.0337  0.5704  0.5704  0.6181  0.6838  0.6400  0.0466  0.1261  0.1265  0.1300  0.1264  0.1251  0.7239  0.7846  0.7521  0.7438  0.8913  0.7754  0.7754  0.4306  0.6632  0.430 [...]
+Pan_troglodytes        1.1769  1.0020  1.1641  0.6491  0.6797  0.7091  0.6161  0.7372  0.6165  1.2026  0.5801  0.5301  0.5082  0.6247  0.6771  0.6453  0.4837  0.0460  0.1732  0.2491  0.2247  0.6080  0.6078  0.4828  0.6072  0.6324  0.5128  0.6045  0.6045  0.4932  0.5311  0.0479  0.0922  0.2476  0.3462  0.7544  0.8792  0.7810  0.4828  0.4828  0.5560  0.6167  0.5474  0.0314  0.0945  0.1100  0.0958  0.0931  0.0922  0.6536  0.7099  0.7591  0.7506  0.7226  0.6653  0.6653  0.3850  0.6185  0.385 [...]
+Trachypithecus_cristatus   1.3257  0.6671  1.2161  0.5393  0.5393  0.5901  0.4431  0.5885  0.5666  0.9324  0.4671  0.4253  0.4259  0.5292  0.5797  0.5842  0.5552  0.1179  0.1740  0.1719  0.1364  0.4570  0.4681  0.4608  0.6214  0.4275  0.6106  0.6743  0.6743  0.4875  0.5502  0.1923  0.0271  0.2048  0.2891  0.7027  0.8513  0.8465  0.4608  0.4608  0.4727  0.5619  0.5464  0.1555  0.0276  0.0273  0.0280  0.0273  0.0271  0.5532  0.6316  0.6389  0.6328  0.7099  0.6256  0.6256  0.4650  0.5847  0 [...]
+Peromyscus_maniculatus   1.7703  0.7342  1.5704  0.6566  1.0496  0.6760  0.6943  0.6695  0.4793  0.7323  0.7636  0.6082  0.6401  0.7403  0.6385  0.6436  0.6580  0.7545  0.6292  0.6186  0.6404  0.7806  0.6654  0.6735  0.6997  0.6775  0.5879  0.7579  0.7579  0.6451  0.7262  0.8487  0.5610  0.6353  0.7435  0.1785  0.1449  0.3032  0.6735  0.6735  0.6025  0.5780  0.5254  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0273  0.0837  0.0000  0.0000  0.1466  0.1442  0.1442  0.5575  0.7590  0.5 [...]
+Peromyscus_polionotus   2.1873  0.7342  1.5704  0.7252  1.0496  0.7464  0.6943  0.7403  0.5350  0.7323  0.6914  0.6735  0.7083  0.6695  0.5742  0.5786  0.7292  0.7545  0.6292  0.6186  0.6404  0.7079  0.6000  0.6082  0.6300  0.6117  0.6507  0.8401  0.8401  0.7142  0.8044  0.8487  0.5610  0.6353  0.7435  0.2129  0.1776  0.3459  0.6082  0.6082  0.5432  0.5208  0.5819  0.7955  0.5798  0.5404  0.5595  0.5682  0.5610  0.0555  0.1138  0.0271  0.0269  0.1797  0.1767  0.1767  0.6214  0.7590  0.62 [...]
+Myotis_lucifugus       1.3497  0.6459  3.0000  0.5718  0.7060  0.6176  0.5035  0.5871  0.6670  0.6434  0.3237  0.2800  0.3255  0.3835  0.3511  0.3301  0.2271  0.6297  0.5029  0.4944  0.5227  0.3645  0.3449  0.1624  0.1345  0.3876  0.3377  0.4728  0.4728  0.4455  0.4520  0.5316  0.4818  0.4411  0.5310  0.7642  0.7468  0.6603  0.1624  0.1624  0.3340  0.4307  0.2936  0.6264  0.4696  0.4612  0.4706  0.4881  0.4818  0.6015  0.5545  0.5611  0.5556  0.7656  0.6487  0.6487  0.1134  0.1307  0.113 [...]
+Myotis_daubentoni      1.5892  0.6707  3.0000  0.6938  0.9032  0.6754  0.5904  0.7263  0.6939  0.7187  0.3789  0.3312  0.3695  0.4330  0.3696  0.3473  0.2749  0.6567  0.5000  0.5825  0.6092  0.3175  0.3607  0.2193  0.1886  0.4377  0.3695  0.4940  0.4940  0.4976  0.5051  0.5569  0.5624  0.4978  0.5955  0.9719  0.9012  0.8040  0.2193  0.2193  0.3802  0.4828  0.3604  0.6542  0.5510  0.5712  0.5522  0.5701  0.5624  0.7005  0.6460  0.6543  0.6474  0.8646  0.8222  0.8222  0.1486  0.1676  0.148 [...]
+Chalinolobus_beatrix   0.9802  0.7417  3.0000  0.5740  0.6285  0.6400  0.4976  0.7348  0.6639  0.5739  0.3339  0.2886  0.3069  0.3849  0.3193  0.2982  0.2278  0.4759  0.3873  0.3813  0.4055  0.3658  0.3639  0.1629  0.1349  0.3889  0.3388  0.4570  0.4570  0.4471  0.4536  0.4447  0.3547  0.3397  0.4173  0.5451  0.5409  0.4657  0.1629  0.1629  0.3351  0.4322  0.2945  0.5311  0.3414  0.3357  0.3421  0.3590  0.3547  0.4741  0.4361  0.5588  0.5533  0.5939  0.4593  0.4593  0.1137  0.1013  0.113 [...]
+Pipistrellus_savii     1.5737  0.5971  3.0000  0.7746  0.6467  0.6811  0.5173  0.5698  0.9269  0.6685  0.3651  0.3171  0.3561  0.3676  0.3304  0.3085  0.1528  0.5801  0.3306  0.3997  0.4223  0.3977  0.3973  0.1857  0.1545  0.3715  0.2447  0.4696  0.4696  0.3547  0.3595  0.6173  0.4943  0.3474  0.4365  0.7609  0.7433  0.5686  0.1857  0.1857  0.3182  0.4148  0.2391  0.7260  0.4819  0.4730  0.4830  0.5009  0.4943  0.5845  0.5380  0.6848  0.6773  0.7485  0.6321  0.6321  0.1157  0.0624  0.115 [...]
+Corynorhinus_townsendii   1.1615  0.7403  3.0000  0.7439  0.7196  0.6047  0.4814  0.5513  0.7789  0.6584  0.3161  0.2377  0.2549  0.3665  0.3590  0.3374  0.1862  0.5811  0.4572  0.5337  0.5469  0.3536  0.3512  0.1767  0.1444  0.3701  0.2695  0.3946  0.3946  0.3822  0.3873  0.5498  0.4970  0.4227  0.5074  0.7504  0.6993  0.5510  0.1767  0.1767  0.3196  0.4110  0.2635  0.6464  0.4850  0.5045  0.4861  0.5036  0.4970  0.5419  0.5006  0.6317  0.6253  0.6696  0.6401  0.6401  0.0788  0.0475  0. [...]
+Trachypithecus_geei    1.1639  0.7331  1.0806  0.4847  0.4808  0.5334  0.3938  0.5283  0.5075  0.8390  0.4162  0.3766  0.3790  0.4735  0.5187  0.5226  0.4977  0.0865  0.1401  0.1384  0.1049  0.4076  0.4158  0.4109  0.5579  0.4785  0.5505  0.6071  0.6071  0.4358  0.4935  0.1564  0.0000  0.1692  0.2491  0.6341  0.7686  0.7602  0.4109  0.4109  0.4211  0.5042  0.4921  0.1215  0.0000  0.0000  0.0000  0.0000  0.0000  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4124  0.5216  0.412 [...]
+Trachypithecus_pileatus   1.3257  0.6658  1.0806  0.5384  0.5383  0.5890  0.4424  0.5283  0.5655  0.8390  0.4663  0.4246  0.4253  0.4735  0.5786  0.5831  0.4453  0.1178  0.1078  0.1065  0.0748  0.4562  0.4673  0.4600  0.6202  0.4785  0.4959  0.6729  0.6729  0.3881  0.4416  0.1920  0.0270  0.1355  0.2115  0.6341  0.7686  0.7602  0.4600  0.4600  0.4211  0.5042  0.4423  0.1553  0.0276  0.0273  0.0279  0.0273  0.0270  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4642  0.5835  0. [...]
+Semnopithecus_entellus   1.3516  0.9158  1.2435  0.6755  0.6549  0.7942  0.5635  0.6606  0.7039  1.0712  0.5918  0.5440  0.5682  0.6687  0.6609  0.6664  0.5677  0.2057  0.2509  0.2476  0.2434  0.5776  0.5971  0.5245  0.6981  0.6092  0.6801  0.7662  0.7662  0.6816  0.7676  0.2914  0.1008  0.2861  0.3825  0.8832  1.0799  0.5421  0.5245  0.5245  0.5998  0.7076  0.6175  0.2517  0.1032  0.1019  0.1044  0.1017  0.1008  0.6971  0.7920  0.8026  0.7937  0.8938  0.7834  0.7834  0.5264  0.5893  0.5 [...]
+Trachypithecus_francoisi   1.1639  0.7331  1.0806  0.4847  0.4808  0.5334  0.3938  0.5283  0.5075  0.8390  0.4162  0.3766  0.3790  0.4735  0.5187  0.5226  0.4977  0.0865  0.1401  0.1384  0.1049  0.4076  0.4158  0.4109  0.5579  0.4785  0.5505  0.6071  0.6071  0.4358  0.4935  0.1564  0.0000  0.1692  0.2491  0.6341  0.7686  0.7602  0.4109  0.4109  0.4211  0.5042  0.4921  0.1215  0.0000  0.0000  0.0000  0.0000  0.0000  0.4961  0.5692  0.5755  0.5703  0.6402  0.5641  0.5641  0.4124  0.5216  0 [...]
+Mus_famulus            1.4211  0.9829  2.6049  0.9685  0.9293  0.6414  0.7549  1.0705  0.7217  1.0261  0.8315  0.6495  0.6840  0.7927  0.8017  0.8092  0.8236  1.0175  0.8376  0.8206  0.8475  0.8491  0.7245  0.8403  0.7375  0.8913  0.7310  0.8136  0.8136  0.8053  0.9115  1.1737  0.7452  0.7647  0.7313  0.1769  0.0542  0.3423  0.8403  0.8403  0.6431  0.6164  0.6519  1.0888  0.7747  0.7710  0.7506  0.7565  0.7452  0.1021  0.1320  0.1330  0.1321  0.2124  0.1472  0.1472  0.7030  0.9729  0.703 [...]
+Mus_pahari             1.6730  0.7626  1.6476  0.9238  0.9341  0.6117  0.8837  1.0764  0.8026  1.0316  0.7938  0.6189  0.6521  0.7563  0.7834  0.7906  0.7850  0.7850  0.6518  0.6403  0.6631  0.8113  0.6904  0.8016  0.7022  0.8499  0.6975  0.9088  0.9088  0.7680  0.8685  0.8874  0.5799  0.5932  0.5659  0.1774  0.1129  0.3219  0.8016  0.8016  0.7531  0.5874  0.6221  0.8298  0.6000  0.5990  0.5790  0.5876  0.5799  0.1024  0.1323  0.1333  0.1325  0.2307  0.0850  0.0850  0.6688  0.9229  0.668 [...]
+Mus_cookii             1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Plecotus_townsemdii    1.1615  0.7403  3.0000  0.7439  0.7196  0.6047  0.4814  0.5513  0.7789  0.6584  0.3161  0.2377  0.2549  0.3665  0.3590  0.3374  0.1862  0.5811  0.4572  0.5337  0.5469  0.3536  0.3512  0.1767  0.1444  0.3701  0.2695  0.3946  0.3946  0.3822  0.3873  0.5498  0.4970  0.4227  0.5074  0.7504  0.6993  0.5510  0.1767  0.1767  0.3196  0.4110  0.2635  0.6464  0.4850  0.5045  0.4861  0.5036  0.4970  0.5419  0.5006  0.6317  0.6253  0.6696  0.6401  0.6401  0.0788  0.0475  0.078 [...]
+Plecotus_auritus       1.0246  0.7312  3.0000  0.7098  0.7047  0.6004  0.4807  0.6454  0.7672  0.6722  0.3412  0.2628  0.2798  0.3922  0.3559  0.3356  0.1536  0.5257  0.4118  0.5276  0.5444  0.3710  0.3695  0.1501  0.1056  0.3961  0.2352  0.3465  0.3465  0.2970  0.3005  0.4953  0.4959  0.4236  0.5058  0.6792  0.6397  0.5636  0.1501  0.1501  0.3450  0.4369  0.2672  0.5823  0.4841  0.4756  0.4851  0.5022  0.4959  0.5393  0.4993  0.6262  0.6201  0.6288  0.5816  0.5816  0.0291  0.0810  0.029 [...]
+Trachypithecus_johnii   1.1080  0.6709  1.1367  0.5422  0.4843  0.5932  0.3964  0.5321  0.5302  0.7642  0.3950  0.3559  0.3814  0.4507  0.4941  0.4977  0.4232  0.1025  0.1408  0.1391  0.1370  0.3868  0.3939  0.3449  0.4764  0.4553  0.4731  0.5506  0.5506  0.4901  0.5246  0.1573  0.0135  0.1702  0.2506  0.6390  0.7753  0.7671  0.3449  0.3449  0.3996  0.4807  0.4212  0.1390  0.0137  0.0136  0.0139  0.0136  0.0135  0.4996  0.5734  0.5798  0.5745  0.6452  0.5682  0.5682  0.3432  0.4404  0.34 [...]
+Trachypithecus_vetulus   1.3516  0.9158  1.2435  0.6755  0.6549  0.7942  0.5635  0.6606  0.7039  1.0712  0.5918  0.5440  0.5682  0.6687  0.6609  0.6664  0.5677  0.2057  0.2509  0.2476  0.2434  0.5776  0.5971  0.5245  0.6981  0.6092  0.6801  0.7662  0.7662  0.6816  0.7676  0.2914  0.1008  0.2861  0.3825  0.8832  1.0799  0.5421  0.5245  0.5245  0.5998  0.7076  0.6175  0.2517  0.1032  0.1019  0.1044  0.1017  0.1008  0.6971  0.7920  0.8026  0.7937  0.8938  0.7834  0.7834  0.5264  0.5893  0.5 [...]
+Trachypithecus_obscurus   1.3257  0.6671  1.2161  0.5393  0.5393  0.5901  0.4431  0.5885  0.5666  0.9324  0.4671  0.4253  0.4259  0.5292  0.5797  0.5842  0.5552  0.1179  0.1740  0.1719  0.1364  0.4570  0.4681  0.4608  0.6214  0.4275  0.6106  0.6743  0.6743  0.4875  0.5502  0.1923  0.0271  0.2048  0.2891  0.7027  0.8513  0.8465  0.4608  0.4608  0.4727  0.5619  0.5464  0.1555  0.0276  0.0273  0.0280  0.0273  0.0271  0.5532  0.6316  0.6389  0.6328  0.7099  0.6256  0.6256  0.4650  0.5847  0. [...]
+Trachypithecus_phayrei   1.3257  0.6866  1.2161  0.5539  0.5550  0.6062  0.4546  0.6056  0.5830  0.9784  0.4793  0.4363  0.4365  0.5440  0.5739  0.5785  0.5409  0.0884  0.1271  0.1765  0.1391  0.4686  0.4808  0.4760  0.6300  0.4386  0.5808  0.6425  0.6425  0.4735  0.5361  0.1602  0.0275  0.2092  0.2957  0.7247  0.8812  0.8779  0.4760  0.4760  0.4853  0.5778  0.5651  0.1244  0.0282  0.0278  0.0285  0.0278  0.0275  0.5688  0.6502  0.6580  0.6515  0.7324  0.6439  0.6439  0.4503  0.5847  0.4 [...]
+Mus_spretus            1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Mus_spicilegus         1.3121  0.7937  1.7527  0.7837  1.2259  0.6059  0.7500  0.8595  0.6817  0.8662  0.6748  0.5227  0.5516  0.6417  0.7961  0.7619  0.6639  0.8610  0.6791  0.6670  0.6901  0.6914  0.5835  0.6797  0.6243  0.7200  0.5921  0.8976  0.8976  0.6508  0.7341  0.9781  0.6696  0.6190  0.5910  0.1128  0.1122  0.2591  0.6797  0.6797  0.6392  0.4960  0.5282  0.9133  0.6944  0.6921  0.6719  0.6791  0.6696  0.1017  0.0702  0.1325  0.1316  0.2292  0.0845  0.0845  0.5613  0.7683  0.561 [...]
+Mus_macedonicus        1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.616 [...]
+Mus_musculus_domesticus   1.3121  0.7937  1.7527  0.7837  1.2259  0.6059  0.7500  0.8595  0.6817  0.8662  0.6748  0.5227  0.5516  0.6417  0.7961  0.7619  0.6639  0.8610  0.6791  0.6670  0.6901  0.6914  0.5835  0.6797  0.6243  0.7200  0.5921  0.8976  0.8976  0.6508  0.7341  0.9781  0.6696  0.6190  0.5910  0.1128  0.1122  0.2591  0.6797  0.6797  0.6392  0.4960  0.5282  0.9133  0.6944  0.6921  0.6719  0.6791  0.6696  0.1017  0.0702  0.1325  0.1316  0.2292  0.0845  0.0845  0.5613  0.7683  0. [...]
+Mus_musculus_musculus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.61 [...]
+Mus_musculus_bactrianus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0. [...]
+Mus_musculus_castaneus   1.4603  0.8628  2.0419  0.8513  1.0644  0.6603  0.8151  0.9349  0.7419  0.9442  0.7341  0.5729  0.6036  0.6994  0.7041  0.7101  0.7244  0.8898  0.7389  0.7253  0.7495  0.7509  0.6383  0.7403  0.6479  0.7839  0.6460  0.8355  0.8355  0.7096  0.7998  1.0118  0.6591  0.6750  0.6454  0.1424  0.0817  0.2952  0.7403  0.7403  0.6965  0.5442  0.5773  0.9446  0.6832  0.6810  0.6610  0.6683  0.6591  0.0705  0.0992  0.0999  0.0993  0.1922  0.1138  0.1138  0.6165  0.8426  0.6 [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/2NG.t b/examples/evol/data/protamine/PRM1/paml/M0/2NG.t
new file mode 100644
index 0000000..b0e1f16
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/2NG.t
@@ -0,0 +1,99 @@
+    98
+Loxodonta_africana   
+Procavia_capensis      2.6314
+Erinaceus_europaeus    1.6631  2.4482
+Oryctolagus_cuniculus   1.2822  1.1927  1.2847
+Cynocephalus_variegatus   1.7499  0.8957  2.6598  0.9631
+Tupaia_belangeri       1.1117  1.2922  2.7833  0.7710  0.8011
+Otolemur_garnettii     1.7084  1.1421  2.4546  0.8389  0.5905  0.5358
+Cavia_porcellus        1.7812  1.3142  2.7267  0.7063  0.7862  0.6343  0.5612
+Dipodomys_ordii        0.9145  1.0277  1.0706  0.5999  0.8973  0.8202  0.6450  0.7267
+Felis_catus            1.9070  1.2255  2.8861  1.1302  1.1792  1.2359  0.7345  1.0356  1.0902
+Rhinopoma_hardwickei   1.1115  1.1345  2.7270  0.9743  1.0224  0.8862  0.6721  0.8223  0.7484  0.7811
+Pteropus_hypomelanus   1.0156  1.0199  2.6333  0.7692  0.9270  0.6275  0.4650  0.7744  0.6893  0.6254  0.1717
+Pteropus_vampyrus      0.9833  1.0761  2.5972  0.7267  0.8940  0.6177  0.4252  0.7256  0.6599  0.7370  0.2426  0.0637
+Desmodus_rotundus      1.2193  1.0575  2.6610  0.8451  0.9566  0.7394  0.6453  0.7481  0.8912  0.6114  0.2004  0.1361  0.2006
+Equus_asinus           1.5437  1.4295  2.4568  0.8405  0.9949  0.8443  0.8143  1.0174  0.9845  0.7699  0.5957  0.5061  0.5507  0.3942
+Equus_caballus         1.4849  1.4083  2.3057  0.8826  1.0566  0.8903  0.8554  1.0556  1.0218  0.8057  0.6366  0.5435  0.5922  0.4371  0.0405
+Antilocapra_americana   1.2815  1.1624  2.4091  0.8905  1.0346  0.9567  0.7620  0.9328  1.0318  0.7865  0.5100  0.3983  0.4640  0.4856  0.6347  0.6574
+Hylobates_lar          1.3015  1.0978  1.1860  0.8469  0.9394  0.9577  0.6471  1.0330  0.7575  1.3579  0.9945  0.8409  0.7744  0.9645  1.1367  1.1573  1.0175
+Callithrix_jacchus     1.3196  1.0953  1.3648  0.6975  0.8629  0.7875  0.5436  0.7882  0.8256  1.0212  0.9123  0.7641  0.7536  0.8239  0.8716  0.9186  0.8514  0.4649
+Saguinus_imperator     1.5137  1.0258  1.6132  0.6445  0.7990  0.7349  0.5656  0.7416  0.8477  1.0353  0.8991  0.7514  0.7394  0.7396  0.8717  0.8724  0.8837  0.5416  0.1032
+Saimiri_sciureus       1.3746  0.9836  1.4401  0.5199  0.7073  0.6078  0.4663  0.6090  0.6598  1.0153  0.7661  0.6773  0.6433  0.6405  0.7870  0.8363  0.8376  0.4910  0.2095  0.1893
+Hipposideros_commersoni   1.2238  1.2135  1.9968  1.0755  1.1430  0.9801  0.8137  1.0741  0.8273  0.7273  0.3854  0.3137  0.3856  0.3647  0.7571  0.8069  0.7679  1.0326  0.9639  0.9537  0.9322
+Rhinolophus_ferrumequinum   1.1656  1.1999  2.6571  1.0837  1.1835  1.0110  0.8163  1.1114  0.8079  0.8865  0.4011  0.3302  0.3858  0.3893  0.8064  0.8543  0.7653  0.9454  0.9696  0.9575  0.9376  0.2177
+Chilonatalus_micropus   1.2535  1.2319  2.7329  0.8172  0.8329  0.7636  0.5362  0.7209  0.8654  0.6955  0.3796  0.2915  0.3985  0.2828  0.2986  0.3420  0.4313  0.9462  0.7563  0.7467  0.6172  0.5897  0.6171
+Otonycteris_hemprichi   1.5851  1.1414  2.9055  1.0956  0.9500  0.8295  0.7531  0.8354  1.1463  0.8417  0.4599  0.4148  0.5253  0.4374  0.4799  0.4761  0.5839  1.1617  1.0035  1.0419  0.9148  0.7272  0.7570  0.2785
+Monophyllus_redmani    1.3525  1.0123  2.6732  0.9062  1.0305  0.7927  0.6470  0.8595  0.8246  0.6133  0.2538  0.1897  0.2542  0.0902  0.4653  0.5062  0.4860  0.9669  0.8250  0.8113  0.7168  0.4219  0.4474  0.3456  0.4380
+Elaphodus_cephalophus   1.2708  1.0790  2.4425  0.9693  1.0577  0.9737  0.8409  0.9637  1.1042  0.9425  0.6713  0.5002  0.5579  0.5970  0.6762  0.6945  0.1885  1.0594  0.8912  0.9556  0.9406  0.8799  0.8424  0.5093  0.6398  0.5978
+Hippopotamus_amphibius   1.1841  1.1572  2.8319  0.9720  0.8446  0.7237  0.7251  1.0515  1.1216  0.9393  0.7230  0.4869  0.5404  0.6659  0.6951  0.6962  0.5070  1.0028  0.8602  0.9608  0.9711  0.9043  0.8617  0.5415  0.6379  0.6680  0.4761
+Hexaprotodon_liberiensis   1.1841  1.1572  2.8319  0.9720  0.8446  0.7237  0.7251  1.0515  1.1216  0.9393  0.7230  0.4869  0.5404  0.6659  0.6951  0.6962  0.5070  1.0028  0.8602  0.9608  0.9711  0.9043  0.8617  0.5415  0.6379  0.6680  0.4761  0.0000
+Potamochoerus_porcus   1.4072  1.1959  3.2537  0.8583  1.0092  0.7638  0.5076  0.8273  0.8612  0.7527  0.4347  0.2693  0.2857  0.4125  0.5605  0.6020  0.4293  0.9205  0.7810  0.8428  0.7632  0.6773  0.6809  0.4972  0.6284  0.4130  0.5192  0.5890  0.5890
+Sus_scrofa             1.4569  1.2525  2.2649  0.9145  1.0803  0.8091  0.5430  0.8829  0.8032  0.8040  0.4587  0.2922  0.3084  0.4361  0.5240  0.5664  0.4535  0.9660  0.8170  0.8811  0.8020  0.7038  0.7074  0.5207  0.6535  0.4366  0.5439  0.6248  0.6248  0.0204
+Pongo_pygmaeus         1.3854  1.3789  1.5111  0.8041  0.8292  0.7704  0.5107  0.8320  0.7625  1.1676  0.8934  0.7453  0.6843  0.8723  0.9202  0.9372  0.9014  0.2496  0.5153  0.5956  0.4710  0.9992  0.9057  0.7745  0.9218  0.8752  0.8894  0.9115  0.9115  0.8187  0.8469
+Papio_cynocephalus     1.2900  1.0616  1.1273  0.6600  0.6286  0.7242  0.3928  0.7227  0.5956  0.9519  0.6871  0.5518  0.4839  0.6450  0.8156  0.8517  0.8642  0.2705  0.3686  0.3688  0.3220  0.7403  0.7406  0.7018  0.8987  0.6457  0.9387  0.8350  0.8350  0.7019  0.7383  0.2731
+Ateles_sp              1.3266  0.9260  1.6106  0.6706  0.7977  0.6851  0.5190  0.6887  0.7488  0.9915  0.8210  0.7246  0.7135  0.6887  0.9029  0.9562  0.9192  0.4725  0.2546  0.2318  0.2096  0.8828  0.8624  0.7151  0.9369  0.7632  0.9917  0.9063  0.9063  0.8525  0.8941  0.5514  0.3692
+Alouatta_seniculus     1.5507  0.9743  2.0013  0.6958  0.8473  0.7368  0.6487  0.7786  0.8590  1.0796  0.9642  0.8581  0.8462  0.8166  1.0128  1.0660  0.9569  0.5510  0.3037  0.2767  0.2545  1.0339  1.0183  0.8313  0.9945  0.9033  1.0920  0.9541  0.9541  0.9922  1.0420  0.6686  0.4684  0.0820
+Sigmodon_hispidus      2.0394  1.2892  1.6765  0.8126  1.2509  0.7424  0.7477  0.9066  0.7013  1.1664  0.9698  0.8007  0.7698  0.9465  1.0228  1.0607  0.9934  0.9808  0.8971  0.9176  0.8326  1.1888  1.0651  0.8747  0.9276  0.8853  0.9739  1.1574  1.1574  0.8367  0.8972  0.9188  0.6949  0.8997  0.9359
+Micromys_minutus       1.7278  1.3691  2.8773  0.8535  0.9517  0.7347  0.6855  0.9641  0.6997  1.1359  1.0084  0.7748  0.7445  0.9192  0.8614  0.9167  0.9552  1.1620  0.9548  0.9741  0.8909  1.1581  1.0357  0.8334  0.8773  0.8586  0.9349  0.9424  0.9424  0.7967  0.8535  1.1296  0.7955  0.8432  0.8819  0.1472
+Meriones_unguiculatus   1.6511  1.1904  1.7305  0.8685  1.1358  1.1445  0.7021  0.9514  0.6792  1.0795  0.9318  0.7068  0.6733  0.8428  0.8998  0.9428  0.8732  1.0712  0.9011  0.9211  0.8362  1.0755  0.9624  0.7690  0.8628  0.8112  0.8488  1.0450  1.0450  0.7335  0.7858  0.9981  0.7528  0.7878  0.9392  0.2787  0.2497
+Natalus_micropus       1.2535  1.2319  2.7329  0.8172  0.8329  0.7636  0.5362  0.7209  0.8654  0.6955  0.3796  0.2915  0.3985  0.2828  0.2986  0.3420  0.4313  0.9462  0.7563  0.7467  0.6172  0.5897  0.6171  0.0000  0.2785  0.3456  0.5093  0.5415  0.5415  0.4972  0.5207  0.7745  0.7018  0.7151  0.8313  0.8747  0.8334  0.7690
+Natalus_stramineus     1.2843  1.2619  2.7639  0.8425  0.8616  0.7890  0.5607  0.7478  0.8921  0.7177  0.3570  0.3133  0.4211  0.3049  0.3212  0.3655  0.4552  0.9749  0.7833  0.7744  0.6426  0.6149  0.6426  0.0201  0.3007  0.3677  0.5326  0.5640  0.5640  0.4748  0.4981  0.8008  0.7280  0.7430  0.8604  0.9002  0.8587  0.7948  0.0201
+Pteronotus_parnellii   1.3364  1.0569  2.6669  0.7922  0.7889  0.6492  0.5232  0.6571  0.7571  0.6108  0.2264  0.1621  0.2266  0.0901  0.4280  0.4701  0.4543  0.9131  0.7841  0.7071  0.6062  0.3924  0.4174  0.2540  0.4047  0.1412  0.5614  0.5754  0.5754  0.3803  0.4037  0.8178  0.6097  0.6552  0.7783  0.8227  0.6967  0.7294  0.2540  0.2760
+Mormoops_megalophylla   1.1936  0.9981  2.5057  1.0174  1.0802  0.8905  0.5946  0.8422  0.9652  0.5455  0.2483  0.1833  0.2265  0.1110  0.5177  0.5112  0.4857  0.9621  0.8598  0.7968  0.7505  0.4161  0.3865  0.4004  0.4946  0.1621  0.5662  0.6519  0.6519  0.4459  0.4697  0.8549  0.6839  0.7969  0.9406  0.8112  0.7851  0.7197  0.4004  0.4228  0.1619
+Moschus_sp             1.2238  1.0593  2.2021  0.8973  1.0383  0.9051  0.7715  0.9658  0.9637  0.8003  0.6108  0.4456  0.5044  0.5375  0.6610  0.6812  0.2095  1.0657  0.8943  0.8919  0.8741  0.7807  0.7473  0.4546  0.6340  0.5381  0.1416  0.4522  0.4522  0.5502  0.5749  0.9541  0.8724  0.8918  0.9860  0.8985  0.8621  0.8082  0.4546  0.4777  0.5041  0.5081
+Gorilla_gorilla        1.5967  1.4245  1.4650  0.8775  1.1606  1.0468  0.7720  1.1157  0.9292  1.4783  1.0893  0.9290  0.8562  1.0449  1.2552  1.2750  1.1624  0.2052  0.5153  0.5954  0.5934  1.1188  1.0382  1.0447  1.2318  1.0473  1.2383  1.0894  1.0894  1.0107  1.0580  0.2928  0.3608  0.5271  0.6191  1.0208  1.2688  1.1752  1.0447  1.0745  0.9937  1.0426  1.2472
+Nasalis_larvatus       1.4000  1.1706  1.2585  0.7613  0.7721  0.8274  0.4839  0.8309  0.6968  1.1104  0.8336  0.6895  0.6123  0.7899  0.9325  0.9629  1.0214  0.3154  0.4407  0.4654  0.4169  0.8901  0.8331  0.8107  1.0020  0.7908  1.0980  0.9638  0.9638  0.8468  0.8868  0.3170  0.1219  0.4164  0.5171  0.7968  0.9008  0.8588  0.8107  0.8387  0.7515  0.8248  1.0267  0.3839
+Procolobus_badius      1.3215  1.1489  1.1587  0.7147  0.7091  0.7923  0.4601  0.7422  0.6619  1.0086  0.7387  0.6261  0.5513  0.7192  0.8669  0.9029  0.9198  0.3383  0.3923  0.3926  0.3452  0.8233  0.8235  0.7791  0.9772  0.7197  1.0238  0.9255  0.9255  0.7825  0.8146  0.3383  0.0599  0.4404  0.4921  0.7580  0.8484  0.8210  0.7791  0.8069  0.6847  0.7568  0.9568  0.4312  0.1862
+Colobus_guereza        1.4039  1.2007  1.2628  0.8142  0.7592  0.8199  0.5313  0.8525  0.7418  1.0834  0.8243  0.6801  0.6008  0.7708  0.8970  0.9335  1.0126  0.4086  0.4653  0.4650  0.4663  0.8830  0.8832  0.8357  1.0022  0.7712  1.0869  0.9139  0.9139  0.8388  0.8714  0.4073  0.1219  0.4649  0.5670  0.8387  0.9398  0.8980  0.8357  0.8643  0.7371  0.8074  0.9576  0.4551  0.2304  0.1430
+Macaca_fascicularis    1.3322  1.0918  1.1626  0.6853  0.6557  0.7500  0.4154  0.7497  0.6209  0.9814  0.7144  0.5774  0.5075  0.6714  0.8446  0.8811  0.8938  0.2928  0.3923  0.3924  0.3452  0.7685  0.7688  0.7287  0.9277  0.6721  0.9685  0.8632  0.8632  0.7287  0.7654  0.2949  0.0197  0.3926  0.4925  0.7206  0.8225  0.7800  0.7287  0.7553  0.6359  0.7105  0.9015  0.3839  0.1219  0.0803  0.1430
+Macaca_mulatta         1.2900  1.0616  1.1273  0.6600  0.6286  0.7242  0.3928  0.7227  0.5956  0.9519  0.6871  0.5518  0.4839  0.6450  0.8156  0.8517  0.8642  0.2705  0.3686  0.3688  0.3220  0.7403  0.7406  0.7018  0.8987  0.6457  0.9387  0.8350  0.8350  0.7019  0.7383  0.2731  0.0000  0.3692  0.4684  0.6949  0.7955  0.7528  0.7018  0.7280  0.6097  0.6839  0.8724  0.3608  0.1219  0.0599  0.1219  0.0197
+Arvicola_terrestris    1.5012  1.0534  1.6953  0.7026  0.9131  0.7090  0.5524  0.7614  0.5502  0.8870  0.8249  0.6265  0.5893  0.7412  0.7537  0.8071  0.8605  0.8768  0.6917  0.7140  0.6265  0.9633  0.8701  0.7438  0.8776  0.6953  0.8527  0.8437  0.8437  0.7099  0.7585  0.8024  0.5784  0.7172  0.8236  0.1713  0.1474  0.2315  0.7438  0.7689  0.6495  0.6431  0.7855  0.9645  0.6770  0.6195  0.7212  0.6030  0.5784
+Phodopus_sungorus      1.5029  1.0616  1.7111  0.7206  1.0559  0.6299  0.5611  0.7555  0.5571  0.8695  0.7101  0.5680  0.5308  0.6773  0.8013  0.8440  0.7948  0.8978  0.7225  0.7449  0.6568  0.8937  0.8052  0.6815  0.8211  0.6340  0.7898  0.8658  0.8658  0.6489  0.6945  0.8294  0.6260  0.7237  0.8567  0.1695  0.1711  0.2348  0.6815  0.7061  0.5907  0.5849  0.7252  0.9864  0.7252  0.6892  0.7676  0.6509  0.6260  0.0820
+Phodopus_roborovskii   1.7693  1.0642  1.3821  0.6863  1.0166  0.7567  0.6128  0.7046  0.5172  0.9511  0.8915  0.6800  0.6458  0.8060  0.7812  0.8355  0.9178  0.9406  0.7696  0.7914  0.7179  1.0308  0.9268  0.8163  0.9372  0.7545  0.9030  0.9093  0.9093  0.7660  0.8216  0.8759  0.6274  0.7712  0.9118  0.1960  0.1711  0.2442  0.8163  0.8411  0.7024  0.6940  0.8313  1.0315  0.7267  0.6905  0.7690  0.6524  0.6274  0.0608  0.1039
+Peromyscus_californicus   1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201
+Rattus_norvegicus      1.4324  1.4097  1.5362  0.7783  1.0034  0.7863  0.8414  0.9186  0.7495  1.0568  1.0080  0.7686  0.7377  0.9113  0.9415  0.9970  0.9729  1.0360  0.8697  0.8914  0.8033  1.0760  0.9673  0.8030  0.9381  0.8515  0.9516  0.8110  0.8110  0.8045  0.8635  1.0453  0.7200  0.7752  0.9109  0.2436  0.1273  0.2998  0.8030  0.8280  0.7905  0.7794  0.8757  1.1317  0.8233  0.7774  0.8559  0.7461  0.7200  0.1683  0.1920  0.1921  0.1712
+Acomys_cahirinus       1.7116  1.0315  1.5833  0.7718  0.9233  0.6288  0.6617  0.9236  0.6247  0.9194  0.8061  0.5967  0.5967  0.7239  0.7910  0.8274  0.8123  0.8704  0.7213  0.7438  0.6556  0.9381  0.8570  0.6652  0.8039  0.6711  0.8321  0.9698  0.9698  0.6669  0.7164  0.8029  0.6248  0.7225  0.8549  0.2117  0.2130  0.2769  0.6652  0.6886  0.6176  0.6311  0.7644  0.9576  0.7239  0.6882  0.7665  0.6497  0.6248  0.1682  0.1234  0.1920  0.1710  0.2593
+Acomys_cilicicus       1.7116  1.0315  1.5833  0.7718  0.9233  0.6288  0.6617  0.9236  0.6247  0.9194  0.8061  0.5967  0.5967  0.7239  0.7910  0.8274  0.8123  0.8704  0.7213  0.7438  0.6556  0.9381  0.8570  0.6652  0.8039  0.6711  0.8321  0.9698  0.9698  0.6669  0.7164  0.8029  0.6248  0.7225  0.8549  0.2117  0.2130  0.2769  0.6652  0.6886  0.6176  0.6311  0.7644  0.9576  0.7239  0.6882  0.7665  0.6497  0.6248  0.1682  0.1234  0.1920  0.1710  0.2593  0.0000
+Eptesicus_fuscus       1.0518  1.0525  2.7931  0.8591  0.9718  0.7792  0.6789  0.8168  0.8419  0.7785  0.3716  0.2406  0.3527  0.3356  0.3956  0.4411  0.3724  0.9139  0.7885  0.8915  0.7846  0.5898  0.6151  0.2246  0.1760  0.3361  0.4232  0.4900  0.4900  0.3732  0.3969  0.7583  0.7342  0.8206  0.9526  0.7827  0.7445  0.6296  0.2246  0.2468  0.3020  0.3933  0.4735  1.0132  0.8471  0.8169  0.8772  0.7628  0.7342  0.6624  0.6016  0.7134  0.6865  0.7140  0.5757  0.5757
+Eptesicus_bruneus      1.5305  1.1406  2.8108  0.8291  0.8457  0.8357  0.5700  0.7584  1.0141  0.7198  0.4274  0.3425  0.5303  0.4172  0.4547  0.5043  0.4557  0.9970  0.7486  0.8534  0.7471  0.5651  0.5902  0.2649  0.2860  0.4180  0.5117  0.5694  0.5694  0.5925  0.6198  0.8038  0.7733  0.7526  0.8936  0.9388  0.9047  0.7307  0.2649  0.2890  0.3785  0.4817  0.5368  1.0570  0.8846  0.8245  0.9148  0.8025  0.7733  0.7749  0.7042  0.8467  0.8173  0.9067  0.6939  0.6939  0.1870
+Eptesicus_brasiliensis   1.0518  1.0525  2.7931  0.8591  0.9718  0.7792  0.6789  0.8168  0.8419  0.7785  0.3716  0.2406  0.3527  0.3356  0.3956  0.4411  0.3724  0.9139  0.7885  0.8915  0.7846  0.5898  0.6151  0.2246  0.1760  0.3361  0.4232  0.4900  0.4900  0.3732  0.3969  0.7583  0.7342  0.8206  0.9526  0.7827  0.7445  0.6296  0.2246  0.2468  0.3020  0.3933  0.4735  1.0132  0.8471  0.8169  0.8772  0.7628  0.7342  0.6624  0.6016  0.7134  0.6865  0.7140  0.5757  0.5757  0.0000  0.1870
+Bos_taurus             1.7936  1.1049  3.7547  1.0627  1.1699  1.1406  0.8772  1.0742  1.2529  0.9555  0.7352  0.5515  0.6017  0.6639  0.7721  0.7867  0.2344  1.0775  1.0038  1.0444  1.0605  0.9465  0.8941  0.6065  0.6602  0.6654  0.1646  0.5670  0.5670  0.5972  0.6219  1.0185  1.0070  1.0820  1.1910  0.9625  0.9221  0.8625  0.6065  0.6300  0.5815  0.5503  0.2306  1.3085  1.1628  1.0861  1.1413  1.0373  1.0070  0.8361  0.7728  0.8902  0.8623  0.9420  0.8175  0.8175  0.4546  0.5734  0.4546
+Homo_sapiens           1.4712  1.4093  1.3217  0.9252  1.0938  0.9886  0.7197  1.0246  0.8849  1.3720  0.9698  0.8709  0.8022  0.9841  1.1030  1.1232  1.0656  0.1634  0.4163  0.5433  0.5430  1.0765  0.9855  0.9507  1.2002  0.9863  1.1338  0.9903  0.9903  0.9443  0.9886  0.2486  0.3153  0.5233  0.6370  1.0319  1.2013  1.1093  0.9507  0.9793  0.9339  0.9818  1.1446  0.2052  0.3379  0.3608  0.4074  0.3379  0.3153  0.9199  0.9437  0.9894  0.9609  1.0817  0.9157  0.9157  0.9498  1.0218  0.949 [...]
+Clethrionomys_glareolus   2.2551  1.3575  1.4942  1.0167  2.3087  1.2261  0.9203  0.9917  0.6985  1.3325  1.0747  0.7810  0.7413  0.9782  1.0856  1.1290  1.1879  1.4536  1.1535  1.1730  1.0823  1.1047  0.9662  1.0838  1.2039  1.0823  1.1808  1.3776  1.3776  1.0101  0.9501  1.3114  1.0397  1.0835  1.2741  0.4215  0.3778  0.2201  1.0838  1.1120  0.9769  0.8473  1.1188  1.5990  1.1643  1.1025  1.1801  1.0725  1.0397  0.3598  0.3283  0.3062  0.3060  0.4077  0.4318  0.4318  0.9156  1.0495  0. [...]
+Microtus_agrestis      2.0379  1.2239  1.5124  0.7706  1.4126  0.8340  0.6995  0.8725  0.5864  1.0717  0.9193  0.7565  0.7170  0.9414  1.0734  1.1182  1.0589  1.1039  0.8997  0.9232  0.8287  1.0663  0.9353  0.9238  1.0858  0.8856  1.0588  1.0737  1.0737  0.8368  0.8885  1.0421  0.7943  0.8522  0.9968  0.2362  0.2616  0.3470  0.9238  0.9513  0.8293  0.8204  0.9793  1.2060  0.9038  0.8738  0.9488  0.8220  0.7943  0.2155  0.2146  0.1920  0.1701  0.2858  0.3071  0.3071  0.8382  0.9648  0.838 [...]
+Peromyscus_leucopus    1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201  0.0000  0.1712  0.1710  0.1710  0.6865  0.8173  0.686 [...]
+Apodemus_sylvaticus    2.0288  1.2945  3.0123  0.8564  0.9806  0.8565  0.7499  1.0141  0.7104  1.1231  1.0041  0.7664  0.7352  0.9078  0.8808  0.9357  0.9706  1.0958  0.9068  0.9283  0.8400  1.1391  1.0212  0.8549  0.9920  0.8487  0.9499  0.9686  0.9686  0.8167  0.8783  1.0403  0.7543  0.8567  1.0031  0.1917  0.1041  0.2707  0.8549  0.8799  0.7884  0.7775  0.8744  1.1955  0.8589  0.8344  0.9015  0.7808  0.7543  0.1449  0.1672  0.1672  0.1462  0.1493  0.2107  0.2107  0.7127  0.8407  0.712 [...]
+Murina_cyclotis        1.3991  1.2263  2.8086  1.0348  1.0018  0.8676  0.7781  0.9363  0.9661  0.8656  0.5199  0.3714  0.4839  0.4740  0.4793  0.5208  0.4308  1.0935  0.8996  1.0177  0.9270  0.7394  0.6850  0.2798  0.1761  0.4752  0.4881  0.5576  0.5576  0.5073  0.5317  0.8524  0.9017  0.9356  1.0816  0.8632  0.8218  0.7285  0.2798  0.3020  0.4326  0.5399  0.5397  1.1958  1.0031  0.9796  1.0034  0.9317  0.9017  0.7328  0.6692  0.7895  0.7618  0.7902  0.6472  0.6472  0.1327  0.2417  0.132 [...]
+Ovis_dalli             1.3965  1.1061  2.8139  1.1269  1.1204  1.0211  0.9336  1.0765  1.2541  0.9739  0.7377  0.5538  0.6035  0.6667  0.8052  0.8170  0.2588  1.0742  0.9722  1.0458  1.0626  0.9485  0.8958  0.5290  0.6302  0.6683  0.1469  0.4556  0.4556  0.5617  0.5861  1.0129  1.0090  1.0835  1.1925  1.0197  0.9764  0.9132  0.5290  0.5517  0.5839  0.5909  0.2158  1.3021  1.1644  1.0877  1.1357  1.0391  1.0090  0.8836  0.8179  0.9437  0.9153  0.8461  0.8666  0.8666  0.4225  0.5460  0.422 [...]
+Ovis_aries             1.5545  1.0668  2.2658  1.0692  1.1145  1.0834  0.8828  1.0183  1.1804  0.9149  0.6970  0.5185  0.5705  0.6256  0.7575  0.7709  0.2343  1.0333  0.9343  1.0050  1.0145  0.9056  0.8566  0.4956  0.5995  0.6269  0.1239  0.4871  0.4871  0.5303  0.5546  0.9673  0.9647  1.0410  1.1464  0.9680  0.9272  0.8668  0.4956  0.5183  0.5477  0.5537  0.1910  1.2526  1.1179  1.0444  1.1001  0.9944  0.9647  0.8400  0.7764  0.8952  0.8673  0.8958  0.8218  0.8218  0.3934  0.5112  0.393 [...]
+Pan_paniscus           1.4312  1.3852  1.2565  0.9316  1.1520  1.0517  0.7706  1.0644  0.8391  1.2913  1.0810  0.9179  0.8445  1.0353  1.2489  1.2695  1.1567  0.2095  0.5019  0.5839  0.5815  1.0257  1.0542  1.0364  1.2050  1.0376  1.2339  1.0913  1.0913  1.0093  1.0494  0.2992  0.3452  0.5152  0.6097  1.0828  1.2938  1.1658  1.0364  1.0669  0.9837  1.0330  1.2426  0.1660  0.3923  0.3686  0.3923  0.3686  0.3452  0.9666  0.9907  0.9777  0.9485  1.1417  0.9614  0.9614  0.9685  1.1057  0.968 [...]
+Pan_troglodytes        1.4367  1.3963  1.3639  0.9544  1.1152  1.0297  0.7557  1.1118  0.8748  1.4456  1.0387  0.8813  0.8117  0.9906  1.1819  1.2063  1.1152  0.2054  0.5146  0.5928  0.5918  1.0763  0.9851  0.9950  1.2024  0.9923  1.1880  1.0188  1.0188  0.9670  1.0031  0.2941  0.3612  0.4934  0.5781  1.0374  1.1400  1.0371  0.9950  1.0252  0.9444  0.9889  1.1932  0.1629  0.3846  0.3841  0.4082  0.3846  0.3612  0.9489  0.9681  1.0113  0.9821  1.0540  0.9273  0.9273  0.9710  1.0984  0.971 [...]
+Trachypithecus_cristatus   1.3857  1.0497  1.2479  0.7234  0.7325  0.7905  0.4514  0.7942  0.6860  1.1174  0.7874  0.6466  0.5968  0.7503  0.8894  0.9186  0.9761  0.3153  0.3935  0.4169  0.3687  0.7856  0.7867  0.7686  0.9706  0.6725  1.0552  0.9342  0.9342  0.7749  0.8171  0.3415  0.1003  0.3727  0.4753  0.7714  0.8842  0.8423  0.7686  0.7951  0.7093  0.7863  0.9815  0.3844  0.1419  0.1631  0.2062  0.1209  0.1003  0.6447  0.6971  0.6990  0.6742  0.7973  0.6955  0.6955  0.8043  0.8537  0 [...]
+Peromyscus_maniculatus   1.7116  1.0341  1.4981  0.6617  0.9860  0.7309  0.5893  0.6794  0.4936  0.9225  0.8641  0.6549  0.6212  0.7796  0.8017  0.8554  0.8890  0.9128  0.7439  0.7653  0.6800  1.0014  0.8984  0.7757  0.9087  0.7286  0.8746  0.8814  0.8814  0.7398  0.7949  0.8488  0.6033  0.7454  0.8844  0.1753  0.1505  0.2438  0.7757  0.8003  0.6770  0.6686  0.8037  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0405  0.0835  0.0201  0.0000  0.1712  0.1710  0.1710  0.6865  0.8173  0.6 [...]
+Peromyscus_polionotus   2.0328  1.0341  1.4981  0.7130  0.9860  0.7847  0.5893  0.7327  0.5345  0.9225  0.8092  0.7039  0.6724  0.7263  0.7539  0.8074  0.9426  0.9128  0.7439  0.7653  0.6800  0.9453  0.8500  0.7267  0.8581  0.6794  0.9222  0.9419  0.9419  0.7914  0.8527  0.8488  0.6033  0.7454  0.8844  0.2013  0.1753  0.2753  0.7267  0.7514  0.6323  0.6253  0.8473  1.0023  0.7013  0.6654  0.7428  0.6279  0.6033  0.0616  0.1063  0.0405  0.0204  0.1960  0.1958  0.1958  0.7342  0.8173  0.73 [...]
+Myotis_lucifugus       1.3853  1.0541  2.8305  0.7681  0.7937  0.7695  0.6042  0.6439  0.8035  0.6897  0.3074  0.2749  0.4637  0.3519  0.4647  0.5113  0.4444  1.0767  0.8599  0.8877  0.7534  0.5448  0.5926  0.2566  0.2073  0.3526  0.5268  0.5836  0.5836  0.5768  0.6033  0.7894  0.8077  0.7890  0.9249  0.8555  0.8240  0.6964  0.2566  0.2803  0.3158  0.4126  0.5197  1.1371  0.9200  0.8598  0.9503  0.8368  0.8077  0.7131  0.5965  0.6742  0.6471  0.8314  0.6324  0.6324  0.1372  0.2071  0.137 [...]
+Myotis_daubentoni      1.5653  1.1228  2.8225  0.9185  0.9892  0.8693  0.7104  0.7501  0.8701  0.7689  0.3980  0.3623  0.5465  0.4367  0.5044  0.5528  0.5025  1.1467  0.8594  0.9688  0.8620  0.5625  0.6233  0.3105  0.2827  0.4376  0.5586  0.5639  0.5639  0.6423  0.6696  0.8513  0.9126  0.8879  1.0318  1.0594  0.9994  0.8605  0.3105  0.3344  0.3982  0.5005  0.5832  1.2091  1.0274  0.9432  1.0587  0.9430  0.9126  0.8295  0.7062  0.7863  0.7581  0.9801  0.8079  0.8079  0.1857  0.2336  0.185 [...]
+Chalinolobus_beatrix   1.0133  1.0806  2.8206  0.7955  0.7924  0.7163  0.6030  0.8051  0.8304  0.6156  0.3627  0.2822  0.3966  0.3521  0.4423  0.4908  0.4708  0.8536  0.7513  0.7794  0.6714  0.5450  0.5697  0.2567  0.2073  0.3528  0.5269  0.6035  0.6035  0.5771  0.6036  0.6771  0.6620  0.7159  0.8433  0.7224  0.6948  0.5795  0.2567  0.2804  0.3160  0.4129  0.5198  0.9538  0.7744  0.7445  0.8043  0.6903  0.6620  0.6480  0.5606  0.6998  0.6724  0.7376  0.5172  0.5172  0.1372  0.1663  0.137 [...]
+Pipistrellus_savii     1.5263  1.0344  2.8138  0.9413  0.8453  0.8353  0.5698  0.7059  1.0133  0.6623  0.4273  0.3424  0.5302  0.3786  0.4546  0.5042  0.3969  0.9968  0.6746  0.7718  0.6627  0.5650  0.5901  0.2648  0.2860  0.3793  0.4463  0.5693  0.5693  0.5160  0.5427  0.8035  0.7732  0.6768  0.8073  0.8716  0.8391  0.6783  0.2648  0.2890  0.3425  0.4405  0.4720  1.1602  0.8845  0.8244  0.9147  0.8023  0.7732  0.7226  0.6553  0.7864  0.7576  0.8407  0.6379  0.6379  0.1870  0.0453  0.187 [...]
+Corynorhinus_townsendii   1.2524  1.1486  2.7071  0.9246  0.9108  0.7745  0.6225  0.6316  0.9465  0.7397  0.4141  0.2836  0.3947  0.4017  0.4800  0.5260  0.4722  1.0091  0.8110  0.9121  0.8336  0.5946  0.6195  0.2697  0.2669  0.4023  0.5184  0.5153  0.5153  0.5618  0.5874  0.7763  0.7928  0.8615  0.9937  0.8933  0.8480  0.6807  0.2697  0.2925  0.3679  0.4599  0.5433  1.1142  0.9008  0.8212  0.9301  0.8211  0.7928  0.7157  0.6537  0.7710  0.7440  0.8358  0.6764  0.6764  0.1351  0.1612  0. [...]
+Trachypithecus_geei    1.2636  1.1002  1.1496  0.6596  0.6632  0.7236  0.3938  0.7246  0.6189  1.0241  0.7229  0.5858  0.5390  0.6839  0.8173  0.8457  0.9051  0.2928  0.3456  0.3688  0.3220  0.7757  0.7763  0.7059  0.8980  0.6849  0.9819  0.8597  0.8597  0.7111  0.7501  0.2948  0.0599  0.3470  0.4466  0.6978  0.8000  0.7572  0.7059  0.7320  0.6459  0.7181  0.9122  0.3608  0.1010  0.1219  0.1645  0.0803  0.0599  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7383  0.7804  0.738 [...]
+Trachypithecus_pileatus   1.3857  1.0494  1.1496  0.6991  0.7060  0.7658  0.4294  0.7246  0.6615  1.0241  0.7605  0.6213  0.5732  0.6839  0.8615  0.8902  0.8661  0.3153  0.3220  0.3452  0.2994  0.8127  0.8138  0.7424  0.9428  0.6849  0.9409  0.9076  0.9076  0.6758  0.7121  0.3195  0.0798  0.3225  0.4194  0.6978  0.8000  0.7572  0.7424  0.7685  0.6459  0.7181  0.8742  0.3844  0.1209  0.1419  0.1845  0.1003  0.0798  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7765  0.8258  0. [...]
+Semnopithecus_entellus   1.4633  1.2550  1.3406  0.8844  0.8523  0.9627  0.5673  0.8368  0.8512  1.2607  0.9224  0.7707  0.7473  0.8919  0.9931  1.0240  1.0635  0.4425  0.4806  0.5048  0.4800  0.9766  0.9797  0.8556  1.0171  0.8710  1.1310  1.0423  1.0423  0.9584  1.0165  0.4291  0.1885  0.4850  0.5988  0.9387  1.0887  0.6054  0.8556  0.8832  0.8417  0.9340  1.0827  0.5183  0.2319  0.2540  0.2990  0.2101  0.1885  0.7823  0.8487  0.8280  0.8252  0.9672  0.8460  0.8460  0.8384  0.8190  0.8 [...]
+Trachypithecus_francoisi   1.2636  1.1002  1.1496  0.6596  0.6632  0.7236  0.3938  0.7246  0.6189  1.0241  0.7229  0.5858  0.5390  0.6839  0.8173  0.8457  0.9051  0.2928  0.3456  0.3688  0.3220  0.7757  0.7763  0.7059  0.8980  0.6849  0.9819  0.8597  0.8597  0.7111  0.7501  0.2948  0.0599  0.3470  0.4466  0.6978  0.8000  0.7572  0.7059  0.7320  0.6459  0.7181  0.9122  0.3608  0.1010  0.1219  0.1645  0.0803  0.0599  0.5801  0.6282  0.6297  0.6055  0.7229  0.6269  0.6269  0.7383  0.7804  0 [...]
+Mus_famulus            1.5400  1.3665  2.3715  0.9146  1.0200  0.7881  0.7447  1.0799  0.8007  1.2353  0.9918  0.7643  0.7290  0.8966  0.9941  1.0514  1.0881  1.1800  1.0236  1.0445  0.9555  1.1366  1.0261  0.9673  1.0009  0.9644  1.0591  1.0049  1.0049  0.9006  0.9714  1.1444  0.8602  0.9670  1.0070  0.1919  0.1005  0.3735  0.9673  0.9931  0.7874  0.7784  0.9771  1.2333  0.9699  0.9444  1.0124  0.8883  0.8602  0.2101  0.2334  0.2335  0.2119  0.2379  0.2782  0.2782  0.8667  1.0483  0.866 [...]
+Mus_pahari             1.7295  1.2168  1.6804  0.9151  1.0217  0.7522  0.8485  1.0823  0.8580  1.1825  0.9752  0.7530  0.7163  0.8810  0.9616  1.0180  1.0723  1.0801  0.8742  0.8973  0.8048  1.1204  1.0142  0.9502  0.9883  0.9451  1.0471  1.0718  1.0718  0.9099  0.9767  1.0090  0.7500  0.8549  0.8732  0.1920  0.1444  0.3689  0.9502  0.9762  0.8800  0.7684  0.9673  1.1211  0.8564  0.8055  0.9030  0.7767  0.7500  0.1674  0.2334  0.2335  0.2119  0.2409  0.2316  0.2316  0.8538  1.0238  0.853 [...]
+Mus_cookii             1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Plecotus_townsemdii    1.2524  1.1486  2.7071  0.9246  0.9108  0.7745  0.6225  0.6316  0.9465  0.7397  0.4141  0.2836  0.3947  0.4017  0.4800  0.5260  0.4722  1.0091  0.8110  0.9121  0.8336  0.5946  0.6195  0.2697  0.2669  0.4023  0.5184  0.5153  0.5153  0.5618  0.5874  0.7763  0.7928  0.8615  0.9937  0.8933  0.8480  0.6807  0.2697  0.2925  0.3679  0.4599  0.5433  1.1142  0.9008  0.8212  0.9301  0.8211  0.7928  0.7157  0.6537  0.7710  0.7440  0.8358  0.6764  0.6764  0.1351  0.1612  0.135 [...]
+Plecotus_auritus       1.1503  1.1503  2.7071  0.8950  0.9505  0.7834  0.6347  0.7767  0.9512  0.6972  0.4343  0.2826  0.3905  0.4010  0.4141  0.4559  0.4013  0.9740  0.7850  0.9187  0.8421  0.6475  0.6721  0.1714  0.1887  0.4017  0.3990  0.4625  0.4625  0.4308  0.4540  0.7471  0.8022  0.8701  0.9998  0.8500  0.8107  0.6967  0.1714  0.1923  0.3668  0.4589  0.4494  1.0738  0.9085  0.8790  0.9373  0.8300  0.8022  0.7262  0.6653  0.7799  0.7533  0.7805  0.6436  0.6436  0.0422  0.1617  0.042 [...]
+Trachypithecus_johnii   1.2916  1.1069  1.2578  0.7484  0.7167  0.8159  0.4382  0.7769  0.6990  1.0197  0.7732  0.6327  0.6108  0.7298  0.8672  0.8967  0.9208  0.3610  0.3924  0.4162  0.3923  0.8285  0.8290  0.7215  0.9073  0.7306  0.9949  0.8694  0.8694  0.8016  0.8363  0.3616  0.1213  0.3933  0.4941  0.7464  0.8494  0.8071  0.7215  0.7486  0.6929  0.7636  0.9282  0.4309  0.1637  0.1424  0.1852  0.1424  0.1213  0.6278  0.6759  0.6774  0.6526  0.7722  0.6747  0.6747  0.7559  0.7329  0.75 [...]
+Trachypithecus_vetulus   1.4633  1.2550  1.3406  0.8844  0.8523  0.9627  0.5673  0.8368  0.8512  1.2607  0.9224  0.7707  0.7473  0.8919  0.9931  1.0240  1.0635  0.4425  0.4806  0.5048  0.4800  0.9766  0.9797  0.8556  1.0171  0.8710  1.1310  1.0423  1.0423  0.9584  1.0165  0.4291  0.1885  0.4850  0.5988  0.9387  1.0887  0.6054  0.8556  0.8832  0.8417  0.9340  1.0827  0.5183  0.2319  0.2540  0.2990  0.2101  0.1885  0.7823  0.8487  0.8280  0.8252  0.9672  0.8460  0.8460  0.8384  0.8190  0.8 [...]
+Trachypithecus_obscurus   1.3857  1.0497  1.2479  0.7234  0.7325  0.7905  0.4514  0.7942  0.6860  1.1174  0.7874  0.6466  0.5968  0.7503  0.8894  0.9186  0.9761  0.3153  0.3935  0.4169  0.3687  0.7856  0.7867  0.7686  0.9706  0.6725  1.0552  0.9342  0.9342  0.7749  0.8171  0.3415  0.1003  0.3727  0.4753  0.7714  0.8842  0.8423  0.7686  0.7951  0.7093  0.7863  0.9815  0.3844  0.1419  0.1631  0.2062  0.1209  0.1003  0.6447  0.6971  0.6990  0.6742  0.7973  0.6955  0.6955  0.8043  0.8537  0. [...]
+Trachypithecus_phayrei   1.3857  1.0790  1.2479  0.7423  0.7534  0.8117  0.4632  0.8165  0.7052  1.1321  0.8082  0.6632  0.6116  0.7707  0.8506  0.8798  0.9365  0.2991  0.3292  0.4022  0.3769  0.8062  0.8075  0.7359  0.9670  0.6898  0.9830  0.8622  0.8622  0.7354  0.7777  0.3236  0.1023  0.3810  0.4863  0.7945  0.9135  0.8712  0.7359  0.7622  0.7281  0.8080  0.9510  0.3686  0.1448  0.1665  0.2106  0.1234  0.1023  0.6623  0.7171  0.7192  0.6937  0.8212  0.7154  0.7154  0.7633  0.8537  0.7 [...]
+Mus_spretus            1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Mus_spicilegus         1.4155  1.1985  1.7204  0.8047  1.2042  0.7261  0.7205  0.9023  0.7378  1.0813  0.8511  0.6481  0.6096  0.7622  0.9655  1.0056  0.9442  1.0840  0.8844  0.9070  0.8158  0.9913  0.8979  0.8259  0.8816  0.8161  0.9295  1.0416  1.0416  0.7895  0.8451  1.0251  0.7822  0.8375  0.8808  0.1242  0.1241  0.2923  0.8259  0.8513  0.7616  0.6654  0.8574  1.1278  0.8885  0.8636  0.9317  0.8092  0.7822  0.1886  0.1661  0.2119  0.1906  0.2204  0.2096  0.2096  0.7383  0.8738  0.738 [...]
+Mus_macedonicus        1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.783 [...]
+Mus_musculus_domesticus   1.4155  1.1985  1.7204  0.8047  1.2042  0.7261  0.7205  0.9023  0.7378  1.0813  0.8511  0.6481  0.6096  0.7622  0.9655  1.0056  0.9442  1.0840  0.8844  0.9070  0.8158  0.9913  0.8979  0.8259  0.8816  0.8161  0.9295  1.0416  1.0416  0.7895  0.8451  1.0251  0.7822  0.8375  0.8808  0.1242  0.1241  0.2923  0.8259  0.8513  0.7616  0.6654  0.8574  1.1278  0.8885  0.8636  0.9317  0.8092  0.7822  0.1886  0.1661  0.2119  0.1906  0.2204  0.2096  0.2096  0.7383  0.8738  0. [...]
+Mus_musculus_musculus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.78 [...]
+Mus_musculus_bactrianus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0. [...]
+Mus_musculus_castaneus   1.5417  1.2567  1.9453  0.8606  1.0924  0.7720  0.7741  0.9651  0.7872  1.1449  0.9010  0.6895  0.6525  0.8102  0.9038  0.9597  0.9947  1.1248  0.9336  0.9555  0.8657  1.0424  0.9427  0.8761  0.9169  0.8690  0.9748  0.9900  0.9900  0.8380  0.8989  1.0684  0.7794  0.8833  0.9250  0.1473  0.1018  0.3208  0.8761  0.9016  0.8094  0.7054  0.8992  1.1703  0.8854  0.8605  0.9289  0.8062  0.7794  0.1661  0.1885  0.1885  0.1672  0.1942  0.2324  0.2324  0.7837  0.9353  0.7 [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/M0/4fold.nuc
new file mode 100644
index 0000000..6a000d4
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Cynocephalus_variegatus
+
+
+Tupaia_belangeri
+
+
+Otolemur_garnettii
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Desmodus_rotundus
+
+
+Equus_asinus
+
+
+Equus_caballus
+
+
+Antilocapra_americana
+
+
+Hylobates_lar
+
+
+Callithrix_jacchus
+
+
+Saguinus_imperator
+
+
+Saimiri_sciureus
+
+
+Hipposideros_commersoni
+
+
+Rhinolophus_ferrumequinum
+
+
+Chilonatalus_micropus
+
+
+Otonycteris_hemprichi
+
+
+Monophyllus_redmani
+
+
+Elaphodus_cephalophus
+
+
+Hippopotamus_amphibius
+
+
+Hexaprotodon_liberiensis
+
+
+Potamochoerus_porcus
+
+
+Sus_scrofa
+
+
+Pongo_pygmaeus
+
+
+Papio_cynocephalus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Sigmodon_hispidus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Natalus_micropus
+
+
+Natalus_stramineus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Gorilla_gorilla
+
+
+Nasalis_larvatus
+
+
+Procolobus_badius
+
+
+Colobus_guereza
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Peromyscus_californicus
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Eptesicus_fuscus
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_brasiliensis
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Clethrionomys_glareolus
+
+
+Microtus_agrestis
+
+
+Peromyscus_leucopus
+
+
+Apodemus_sylvaticus
+
+
+Murina_cyclotis
+
+
+Ovis_dalli
+
+
+Ovis_aries
+
+
+Pan_paniscus
+
+
+Pan_troglodytes
+
+
+Trachypithecus_cristatus
+
+
+Peromyscus_maniculatus
+
+
+Peromyscus_polionotus
+
+
+Myotis_lucifugus
+
+
+Myotis_daubentoni
+
+
+Chalinolobus_beatrix
+
+
+Pipistrellus_savii
+
+
+Corynorhinus_townsendii
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_pahari
+
+
+Mus_cookii
+
+
+Plecotus_townsemdii
+
+
+Plecotus_auritus
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_spicilegus
+
+
+Mus_macedonicus
+
+
+Mus_musculus_domesticus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_bactrianus
+
+
+Mus_musculus_castaneus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/algn b/examples/evol/data/protamine/PRM1/paml/M0/algn
new file mode 100644
index 0000000..2e947fb
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/lnf b/examples/evol/data/protamine/PRM1/paml/M0/lnf
new file mode 100644
index 0000000..205361e
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -1.9219973347   0.146314431197       9.5104  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     2      1    -1.9219973347   0.146314431197       9.5104  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGC (S) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     3      1    -4.9346588068   0.007192914701       0.4675  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CTC (L) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     4      1    -2.4255598034   0.088428602553       5.7479  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     5      1    -7.0890327069   0.000834203895       0.0542  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     6      1    -8.6285959930   0.000178915668       0.0116  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R [...]
+     7      1    -6.6982110734   0.001233115884       0.0802  --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     8      1   -29.5814107980   0.000000000000       0.0000  --- (-) --- (-) --- (-) --- (-) TGT (C) --- (-) --- (-) --- (-) --- (-) AGG (R) --- (-) --- (-) --- (-) --- (-) AGG (R) AGG (R) AGG (R) --- (-) --- (-) --- (-) --- (-) TAT (Y) TAT (Y) AGG (R) AGG (R) --- (-) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGG (R) AGG (R) --- (-) --- (-) AGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+     9      2    -2.3062302227   0.099636150572       6.4763  --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    10      1    -9.4390214312   0.000079558224       0.0052  --- (-) --- (-) CGG (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) AGA (R) --- (-) --- (-) CGA (R) CGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) AGA (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    11      1    -4.6546204716   0.009517524728       0.6186  --- (-) --- (-) TAC (Y) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    12      1   -47.8785350665   0.000000000000       0.0000  --- (-) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    13      1   -42.1591944100   0.000000000000       0.0000  --- (-) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    14      1   -82.8807797971   0.000000000000       0.0000  --- (-) AGA (R) GTG (V) AGG (R) --- (-) AGG (R) --- (-) --- (-) GTG (V) AGA (R) --- (-) --- (-) ATG (M) --- (-) --- (-) --- (-) AGA (R) ATG (M) AGC (S) AGC (S) AGG (R) --- (-) --- (-) AGA (R) AGA (R) --- (-) AGA (R) AGA (R) AGA (R) GCG (A) GCG (A) ATG (M) ATG (M) AGC (S) AGC (S) --- (-) --- (-) --- (-) AGA (R) AGA (R) --- (-) --- (-) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    15      1  -136.5614135677   0.000000000000       0.0000  --- (-) AGG (R) --- (-) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) CTG (L) CTG (L) ATA (I) AGA (R) CCA (P) ACG (T) AGG (R) AGG (R) AGG (R) GTG (V) ATG (M) AGG (R) GTA (V) GTA (V) GTA (V) ATA (I) ATA (I) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    16      1   -83.2525169780   0.000000000000       0.0000  --- (-) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) TGC (C) AGA (R) AGA (R) AGA (R) --- (-) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) CAG (Q) CAG (Q) CAG (Q) TGC (C) TGC (C) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    17      1    -6.9821556278   0.000928299976       0.0603  --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CCC (P) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    18      1    -7.3042605144   0.000672666755       0.0437  --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGT (R) CGT (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    19      1   -76.5531449019   0.000000000000       0.0000  --- (-) CGT (R) --- (-) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    20      1  -219.3207032575   0.000000000000       0.0000  --- (-) CTG (L) --- (-) CTC (L) CTA (L) CTG (L) CTG (L) CGG (R) CTG (L) GTG (V) GCG (A) GTG (V) GTG (V) GTG (V) GTC (V) GTC (V) GCC (A) CTG (L) CTG (L) CTG (L) CTG (L) GTG (V) GTG (V) GTT (V) GTT (V) GTG (V) GTC (V) ATG (M) ATG (M) GTT (V) GTT (V) CTG (L) CTG (L) TTG (L) TTG (L) CTA (L) TTA (L) TTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) CTG (L) TTT (F [...]
+    21      1   -44.6680471032   0.000000000000       0.0000  --- (-) TCA (S) GAG (E) --- (-) --- (-) GCA (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) --- (-) --- (-) --- (-) --- (-) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (-) --- (-) --- (-) --- (-) --- (- [...]
+    22      1  -112.4214216042   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) --- (-) --- (-) AGG (R) AGA (R) GCC (A) GCC (A) GCC (A) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GGC (G) GCC (A) CGA (R) CGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    23      1   -74.7302172365   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AAA (K) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R [...]
+    24      1   -34.0470580502   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    25      1   -36.9993465971   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    26      1   -41.3525826969   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    27      1   -60.7859406638   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (-) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGC (S) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    28      1   -24.2429634724   0.000000000030       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) --- (-) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    29      1   -15.5251476278   0.000000180931       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    30      1   -20.3034379029   0.000000001522       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    31      1   -68.6263812582   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) AGT (S) TGT (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) GGT (G) GGT (G) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    32      1   -19.4794449280   0.000000003469       0.0000  AGG (R) --- (-) CGC (R) CGC (R) CGC (R) --- (-) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) --- (-) --- (-) --- (-) --- (-) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    33      1   -86.8957545323   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) ACA (T) TCA (S) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) CGA (R) AGA (R) AGA (R) TCA (S [...]
+    34      1   -99.6128627442   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) CGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CAG (Q) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AAG (K) AGG (R) AGG (R) CAG (Q) CAG (Q) AGG (R) AGG (R) ACA (T) GCA (A) AGA (R) AGA (R) AGG (R) CGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) ACA (T) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R [...]
+    35      1   -67.5328024169   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCT (P) CGT (R) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    36      1    -9.0897115679   0.000112820605       0.0073  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+    37      1  -102.8719178621   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) --- (-) CAC (H) CGC (R) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    38      1   -34.4904677757   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    39      1   -31.9280587497   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    40      1   -71.3757503725   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGA (R [...]
+    41      1   -51.7547667392   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1   -52.2535025664   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGT (S) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    43      1   -82.9959954176   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CCC (P) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    44      1  -128.4586216257   0.000000000000       0.0000  CGC (R) AGG (R) --- (-) ACC (T) TCG (S) ACC (T) AGG (R) ACC (T) ACC (T) AGG (R) TCT (S) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGA (R) AGG (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) ACC (T) TCC (S) ACC (T) ACC (T) ACC (T [...]
+    45      1   -51.0584072084   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (-) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    46      1  -110.9313592820   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) --- (-) CCC (P) CAA (Q) CCA (P) CGC (R) CAC (H) CGA (R) CAA (Q) CAA (Q) CCA (P) CAG (Q) CAG (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAC (H) CAC (H) CAA (Q) CGA (R) CCA (P) CAT (H) CCC (P) CCC (P) CAT (H) CAT (H) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    47      1   -47.8394190512   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    48      1   -81.4481081570   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) AGA (R) CGC (R) CGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CGG (R) CGG (R) CGG (R) CGT (R) CGT (R) CCG (P) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R [...]
+    49      1   -45.3398511584   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1  -101.2390070560   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGG (R) CAA (Q) CAA (Q) CGA (R) CGG (R) CGG (R) CGG (R) AGG (R) CGT (R) CGA (R) CAG (Q) CAG (Q) CGA (R) CGA (R) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CAG (Q) CCG (P) CGG (R) CAG (Q) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -85.4395144146   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (-) AGG (R) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GCG (A) GCG (A) GTG (V) GTA (V) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    52      1   -75.5937716613   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) GCC (A) CGA (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R [...]
+    53      1   -44.8991294704   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    54      1   -60.6498813957   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    55      1   -77.5145774586   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGA (R) AGA (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R [...]
+    56      1   -19.6890768070   0.000000002813       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+    57      1   -48.0334152524   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    58      1   -98.8911481905   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TCC (S) TTT (F) AGC (S) AGC (S) ACG (T) TGC (C) AGT (S) AGT (S) TGC (C) TGC (C) TGT (C) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) AGA (R) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    59      1   -42.9904821711   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    60      1  -103.9378936259   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) CGT (R) TAT (Y) TGT (C) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    61      1   -26.5534837155   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    62      1   -30.2327045780   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    63      1   -41.9459798508   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    64      1   -42.0678372323   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/out b/examples/evol/data/protamine/PRM1/paml/M0/out
new file mode 100644
index 0000000..7a93df9
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/out
@@ -0,0 +1,1569 @@
+
+seed used = 818649917
+     98    195
+
+Loxodonta_africana                         ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                          ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus                        ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus                      ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Cynocephalus_variegatus                    ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                           ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Otolemur_garnettii                         ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                            ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                                ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei                       ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                          ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Desmodus_rotundus                          ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Equus_asinus                               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_caballus                             ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Antilocapra_americana                      ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Hylobates_lar                              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Callithrix_jacchus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Saimiri_sciureus                           ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Hipposideros_commersoni                    ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum                  ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Chilonatalus_micropus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Otonycteris_hemprichi                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani                        ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Elaphodus_cephalophus                      ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius                     ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hexaprotodon_liberiensis                   ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Potamochoerus_porcus                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Sus_scrofa                                 ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Pongo_pygmaeus                             ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Papio_cynocephalus                         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Ateles_sp                                  ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus                         ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Sigmodon_hispidus                          ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Micromys_minutus                           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Natalus_micropus                           ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_stramineus                         ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii                       ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                                 ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Gorilla_gorilla                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Nasalis_larvatus                           ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                            ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis                        ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                             ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Arvicola_terrestris                        ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_californicus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Rattus_norvegicus                          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                           ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                           ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Eptesicus_fuscus                           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                          ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_brasiliensis                     ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Clethrionomys_glareolus                    ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                          ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus                        ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Apodemus_sylvaticus                        ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                            ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_dalli                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_aries                                 ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Pan_paniscus                               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_troglodytes                            ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Trachypithecus_cristatus                   ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Peromyscus_maniculatus                     ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_polionotus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Myotis_lucifugus                           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Myotis_daubentoni                          ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix                       ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Pipistrellus_savii                         ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Corynorhinus_townsendii                    ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_geei                        ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Semnopithecus_entellus                     ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_townsemdii                        ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Plecotus_auritus                           ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii                      ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus                     ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus                    ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei                     ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus                    ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus                     ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana                          --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGA AGA AGA AGC AGC AGC AGC AGG AGG AGT AGT ATG CAC CAT CGA CGA CGA CGC CGC CGC CGC CGC CGC CGC CGC CGG CGG CGG CGG CGG CGT GCC TAC TCC TGC TGC TGC TGC TGC TGC
+Procavia_capensis                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGG CAC CGC CGC CGT CTG TCA AGA AGA AGA AGG CGA GCT AGC AGC AGC TGC --- AGA AGG CGG ATG TCC TAC AGG CGC CGG AGA AGA AGG CAC CGC CGC CGG TAC AGA AGG AGG AGG CGA CGA GTC TTT TCT CGC GGT TGC TGC TGC TGC
+Erinaceus_europaeus                         --- --- --- --- --- --- --- --- CGC CGG TAC CGC CGG GTG --- TAC --- --- --- --- GAG AGA AGG CGC AGG CGC CGC AGC AGC AGC TGC CGC AGG AGG CGG ATG CGC TAC AGG CGG CGC CGC CGC --- TCC CAG CGC AGG TAC CGC ACG AGG AGG AGG AGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Oryctolagus_cuniculus                       --- --- --- --- --- --- --- --- --- --- --- AGA CGA AGG AGG TAC --- --- TGT CTC --- GTC AGA AGA AGA AGA AGA AGC AGC AGC TGC CGC ACA AGG CGC ATG CGC TAC AGG CGG CGG AGA CGA ACC CGC CAG CGC CAG CGC CGG AAG AGA AGG CGC CGG GTC TAC TGC TGT TGC TGC TGC TGC TGC
+Cynocephalus_variegatus                     --- --- --- --- --- --- --- TGT --- --- --- AGA AGA --- AGG TAC --- --- TGT CTA --- AGG AGA AGA AGG AGA AGA --- AGC AGC TGC CGC AGG CGA CGC ATG --- TAC AGG CGA CGG AGT AGA TCG CGC --- CGC AGA CGC AGG AGG GCC AGG CGA CGA GCC TAC TGT TGC CGT AGC TGC TGC TGC
+Tupaia_belangeri                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGG AGG TAC --- --- TGT CTG GCA CGG AGA AGA AGG AGA ATA AGC AGC AGC AGT --- CTG AGG CGC ATG CAC TAC AGG CGA CGG AGA CGG ACC CGC CCC CGC CGC CGC CGG AGA CGA AGG CGG CGA GCC TAC TGC TGC TAT TGC TGC TGT TGC
+Otolemur_garnettii                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA --- AGG TAC --- --- TGT CTG --- AGG AGA AGG AGA AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CGA AGG AGA CGG AGG CGC CAA CGC CGA CGC CGG AGG AGG AGA CGA CGA GCC TAC TGC TGC TGT TGC TGC TGT TGC
+Cavia_porcellus                             --- --- --- --- --- --- --- --- --- --- --- AAA AGA --- AGG TAC --- --- TGC CGG --- CGG AGA AGG AGA AGA AGA AGC AGC AGC TTC CGC AGG AGA CGC ATG TAT TAC AGG CGG CGG AGA CGG ACC CGC CCA CGC CGG CGC CGC --- AGA AGG CGA CGG GCC TAC TGC TGC CAT TGC TGC TGC TGC
+Dipodomys_ordii                             --- --- --- --- --- CGC CGG --- --- --- --- AGA AGA GTG AGG TGC --- --- TGC CTG --- AGA AGA AGA AGA AGG --- AGC AGC AGC TGC CGC AGA AGA CGC ATG CGC TGC AGG CGG CGG AGA CGC ACC --- CGC CGC CGC CGC CGG AGG AGG AGG CGC AGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Felis_catus                                 --- --- --- --- --- --- --- AGG --- --- --- AGG AGA AGA GGG AGA --- --- TGT GTG --- AAG AGA AGG AGA AGA AGA AGC AGC AGC TGC --- CGC AGG CGC ATG CGC TAC AGG CGC AGG CGA CCG AGG CGT CAC CGC AGG CGC CGC GTG AGG AGG CGA CGA GCC TAC TGT TCC TGC TGT TGC TGC TGC
+Rhinopoma_hardwickei                        --- --- --- --- --- --- --- --- --- AGA --- AGA AGA --- AGG AGA --- --- TGC GCG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCT ATG CGC TAC AGG CGA CGG AGA CGG TCT CGC CGA CGT CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Pteropus_hypomelanus                        --- --- --- --- --- --- --- --- --- AGA --- AGA AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Pteropus_vampyrus                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TGC --- --- TGT GTG GCC AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAA CGC CGG CGC CGG CTG AGG AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Desmodus_rotundus                           --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGG CGC CGT GTG AGA AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Equus_asinus                                --- --- --- --- --- --- --- AGG --- CGA --- AGG AGA --- CTG AGA --- CGT TGT GTC --- --- AGG AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CGG CGC ATG CGC TAC AGG CGA CAG AGA AGG ACT CGC CAG CGC CGG CGC CGG GTG AGA AGG CGA AGA GCC TAC TGC TGC GTT TGC TGC TGC TGC
+Equus_caballus                              --- --- --- --- --- --- --- AGG --- CGA --- AGG AGA --- CTG AGA --- CGT TGT GTC --- --- AGG AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CAG AGA AGG ACT CGC CAG CGC CGG CGC CGG GTG AGA AGG CGA AGA GCC TAC TCC TGC GTT TGC TGC TGC TGC
+Antilocapra_americana                       --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA ATA --- CCC CGC TGT GCC --- AGG AAA AGA AGA AGA AGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CCC ACC CGC CAT CTC CGG CGC CGA GTG AGG AGG CTA CGC GCC TAC TTT TGC TGT TGC TGC TGC TGC
+Hylobates_lar                               --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG GGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TAC AGG CAA CGG AGA CGC AGG TAC CAG CGC CAG CCC CGG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Callithrix_jacchus                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC CCA TAC --- --- TGT CTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC GGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CAG CGC CGG CGC CAA AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Saguinus_imperator                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC ACG TAC --- --- TGT CTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC GGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CAG CGC CGG CGC CAA AGG AGA AGG CGA CGG GCC TAC ACG TGC TGC TGC TGC TGC TGC
+Saimiri_sciureus                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGG AGG TAC --- --- TGT CTG --- GCC ACA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CGA CGG AGA CGG AAG TAC CGG CGC CGG CGC CGA AGG AGA AGG CGA CGG GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Hipposideros_commersoni                     --- --- --- --- --- --- --- TAT --- --- --- AGA AGA --- AGG AGA --- --- AGA GTG --- AGA AGA AGA AGA AGA AGG AGC AGC AGC TCT --- CGC AGG CGT ATG CGC TAC AGG CGA CGG CGA CGG ACT CGA CAC CGC GGG CGC CGG GCG AGG AGG CGA CGC GCC TAC AGT TAC TGT GGC TGC TGC TGC
+Rhinolophus_ferrumequinum                   --- --- --- AGA AGA --- --- TAT --- AGA --- AGA AGA --- AGG CGA --- --- AGA GTG --- AGA AGA AGA AGA AGG AGC AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGA CAA CGG AGA CGG ACT CGC CAC CGC GGG CGC CGG GCG AGG AGG CGA CGC GCC TAC AGT TAC TGT TGC AGC TGC TGC
+Chilonatalus_micropus                       --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CGC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Otonycteris_hemprichi                       --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATG AGA --- --- TGT GTT --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AAG CGC ATG TAC TAC AGG AGA CGG AAA AGG ACT CGC CGA CGC CGG CGC AGG GTA AGG AGG CGA CGC GCC TAC TGC TGC TCT TGC TGC TGC TGC
+Monophyllus_redmani                         --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGG CGC CGT GTG AGG AGG CGT CGC GCC TAT TGT TGC TGT TGC TGC TGC TGC
+Elaphodus_cephalophus                       --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTC --- AGG AGA AGA AGA AGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CAC TAC AAG CGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGA GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Hippopotamus_amphibius                      --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- --- TGT ATG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CGG AGA AGA ACC CGC CCC CGC CGT CGC CAG GTG CGG AGG CGA CGG GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Hexaprotodon_liberiensis                    --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- --- TGT ATG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC CAG CGC ATG CGC TAC AGG CGA CGG AGA AGA ACC CGC CCC CGC CGT CGC CAG GTG CGG AGG CGA CGG GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Potamochoerus_porcus                        --- --- --- --- --- --- --- AGG --- --- --- AGA AGA GCG ATA TGC --- --- TGT GTT --- AGA AGA AGG AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCC ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAT CGC CCG CGC CGA GTG AGG AGG CGA CGA GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Sus_scrofa                                  --- --- --- --- --- --- --- AGG --- --- --- AGA AGA GCG ATA TGC --- --- TGT GTT --- AGA AGA AGG AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CCC ATG CGC TAC AGG CGA CGG AGA CGG ACC CGC CAT CGC CCG CGC CGA GTG AGG AGG CGA AGA GCC TAC TGT TGC TGT TGC TGC TGT TGC
+Pongo_pygmaeus                              --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- TGT CTG GCC AGG AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG ACA CGC ATG CAC TAC AGG CAA CAG AGA CGG AGA TGC CAG CGC CAG CGC CGG AGG AGG AGG CGA CGT GCC TAC TGC TGC TGC TGC TGT TGC TGT
+Papio_cynocephalus                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Ateles_sp                                   --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGC AGG TAC --- --- CGT TTG --- GGC AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CCA CGG AGA CGG AGG TAC CGC CGC CGG CGC CAA AGG AGA AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Alouatta_seniculus                          --- AGC CTC --- --- --- --- --- --- --- --- AGA AGA AGC AGG TAC --- --- CGT TTG --- GCC AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG AGA CGC ATG CGC TAC AGG CCA CGG AGA CCA AGG TAC CGC CGC CGG CGC CAA AGA AGA AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGC
+Sigmodon_hispidus                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT CTA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC ACA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGA CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGT
+Micromys_minutus                            --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGA CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Meriones_unguiculatus                       --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTA --- AGA CGC AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA AGG CGC ATG --- TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG CGG AGA CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Natalus_micropus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CGC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Natalus_stramineus                          --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTG AGA --- --- TGT GTT --- AGG ACA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGA CCC ATG CGC TAC AGG CGA CGG AGA AGG ACT CGC CAA CGC CGG CGC CGG GTG AGA AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Pteronotus_parnellii                        --- --- --- --- --- --- --- --- --- --- --- AGA AGA --- AGG AGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGG ACT CGC CCA CGC CGA CGC CGC GTG AGA AGG CGA CGC GCC TAC TGT TGC TGT TGC TGC TGC TGC
+Mormoops_megalophylla                       --- --- --- --- --- --- --- --- --- --- --- AGG AGA --- AGG CGA --- --- TGT GTG --- AGA AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGT ATG CGC TAC AGG CGA AGG AGA CGG ACT CGC CCA CGC CGG CGC CGC GTG AGG AGG CGA CGC GCC TAC TCT TGC TGT TGC TGC TGC TGC
+Moschus_sp                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTG CAG --- CGC TGT GTC --- AGG AGA GGA AGA AGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG CGA CGG AGA CGC ACC CGC CAC CTC CGG CGC CGA GTG AGG AGG CGA CGC GCC TAC TTT TGC TGT TGC TGC TGC CGC
+Gorilla_gorilla                             --- --- --- --- --- --- --- --- --- --- --- AGA AAA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC AAC AGG CAA CGG ACA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AGG CGA CGG GCC TAC AGC TGT TGC TGC TGT TGC TGT
+Nasalis_larvatus                            --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AAG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CAA CGG AGA CGG AGG TGC CAG GGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TCC AGC TGC TGC TGC TGC TGC TGT
+Procolobus_badius                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CGG GCC ACA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CAG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Colobus_guereza                             --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CAC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CAG AGG AAG AGG CGA CAG GCC TAC AGA TGC TTC TGC TGC TGC CGT
+Macaca_fascicularis                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG TGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Macaca_mulatta                              --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CGG AGG AGG AGG CGA CGG GCC TAC AGA TGC TGC TGC TGC TGC TGT
+Arvicola_terrestris                         --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CAA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Phodopus_sungorus                           --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG TCC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Phodopus_roborovskii                        --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGT AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Peromyscus_californicus                     --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Rattus_norvegicus                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT TTT --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC AGG CGC CGC AGG CGG AGG CGG CGG GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Acomys_cahirinus                            --- --- --- --- --- --- CGC --- --- --- --- AGA AGA --- AGG ATC --- --- TGT CTA --- CGA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Acomys_cilicicus                            --- --- --- --- --- --- CGC --- --- --- --- AGA AGA --- AGG ATC --- --- TGT CTA --- CGA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC CGA AGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Eptesicus_fuscus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATA AGA --- --- TGT GTT --- AGA AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Eptesicus_bruneus                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAT TAC AGG AGA CGG AGA AGG AGG CGC --- CGC CGG CGC CGG GCG AGG AGG CGA CGC GCC TAC TGC TGT TGT TGC TGC CGC TGC
+Eptesicus_brasiliensis                      --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA ATA AGA --- --- TGT GTT --- AGA AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Bos_taurus                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA ATA CAG --- CGC TGT GTC --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA GGG AGA CGC ACC CGC CAT CTC CGG CGT CGC GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Homo_sapiens                                --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG CGA CAC --- --- TGT CCG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TAC AGG CAA CGG AGA CGG AGA TAC CAG CGC CAG CCC CAG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TAT TGC TGT
+Clethrionomys_glareolus                     --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATG --- CGA CGC AGA AGA AGG CGC AGC AGC AGC TGT CGC TCA AGG CGT ATG --- TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG CGG AGA AGA GCC TAC TGC TAC TGC TGC TGC --- TGC
+Microtus_agrestis                           --- --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATG --- CGA AGA AGA AGA AGG CGC AGC AGC AGC TGT CGC ACA AGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC AGC AAA CGT CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TAC TGC TGC TGC --- TCC
+Peromyscus_leucopus                         --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Apodemus_sylvaticus                         AGC --- --- --- --- CGC CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGT AGC AGT TGT CGC TCA CGG CGC ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Murina_cyclotis                             --- --- --- --- --- --- --- AGG --- --- --- AGA AGG AGA ATA AGA --- --- TGT GTT --- AGG AGA AGA AGA AGG AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAC TAC AGG AGA CGG AGA AGG ACC CGC --- CGC CGG CGC AGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TCT TGC TGC TGC TGC
+Ovis_dalli                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTT --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGC GTG CGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Ovis_aries                                  --- --- --- --- --- --- --- AGG --- --- --- ACA AGA AGA GTA CAG --- CGC TGT GTT --- AGG AGA AGA AGA CGA CGA ACC AGC AGC TGT --- CGC AGG CGC ATG CGC TAC AGG AGA CGG AGA CGC ACC CGC CAT CTC CGG CGC CGC GTG AGG AGG CGA CGC GCC TAC TTT TGC GGT TGC TGC TGC TGC
+Pan_paniscus                                --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TCC AGG --- CGG CGA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AAG CGA CAG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Pan_troglodytes                             --- --- --- --- --- --- --- --- --- --- --- AGA AGA ATG AGA CAC --- --- CGT ATG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC AGT CGC AGG ACA CGC ATG CGC TCC AGG CAA CGG AGA CAG AGA TAC CAG CGC CAG CGC CAG AGG AGG AAG CGA CAG GCC TAC AGC TGC TGC TGC TGT TGC TGT
+Trachypithecus_cristatus                    --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Peromyscus_maniculatus                      --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Peromyscus_polionotus                       --- --- --- --- --- --- CGC --- --- --- --- AAA AGA --- AGG TAC --- --- TGT CTG --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC AGA CGG CGC ATG CGC TAC AGG CGG AGG AGA AGG ACT CGC AAA CGC CGG CGC CGC AGG AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Myotis_lucifugus                            --- --- --- --- TGC --- --- --- --- AGA --- AGA AGA AGA AGG AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGG CGG AGA AGG TCA CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Myotis_daubentoni                           --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT AGG AGA AGG AGA AGA AGA AGA AGG --- AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGG CGG AGA AGG TCA CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Chalinolobus_beatrix                        --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA AGG AGA --- --- TGT GTA --- AGG AGA AGA AGA AGA AGA --- AGC AGC AGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG --- CGC --- CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Pipistrellus_savii                          --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TGT --- AGA AGG AGA AGA AGA AGA AGA --- AGC AGC TGT --- CGC AGG CGC ATG CAT TAC AGG AGA CGG AGA AGG AGG CGC --- CGC CGG CGC CGA GCG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC CGC TGC
+Corynorhinus_townsendii                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TAT AGG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAT TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Trachypithecus_geei                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Trachypithecus_pileatus                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCA AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Semnopithecus_entellus                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA CGC AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG --- TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG CGG AGA CGG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_francoisi                    --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAC AGC TGC TGC TGC TGC TGC TGT
+Mus_famulus                                 --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CAA CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_pahari                                  --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CAA AGA AGA AGG AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_cookii                                  --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Plecotus_townsemdii                         --- --- --- --- --- --- --- --- --- --- --- AGA AGA AGA --- AGA --- --- TAT AGG --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAT TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Plecotus_auritus                            --- --- --- --- --- --- --- AGG --- --- --- AGA AGA AGA GTA AGA --- --- TGT GTT --- AGG AGA AGA AGA AGA AGA AGC AGC AGC TGT --- CGC AGG CGC ATG TAC TAC AGG AGA CGG AGA AGG ACC CGC CAA CGC CGG CGC CGG GTG AGG AGG CGA CGC GCC TAC TGC TGC TGT TGC TGC TGC TGC
+Trachypithecus_johnii                       --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CAG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_vetulus                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACA AGG TAC --- --- TGT CTG GCC AGA CGC AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG --- TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG CGG AGA CGG GCC TAC AGC TGC TGC TGC TGC CGC TGT
+Trachypithecus_obscurus                     --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG AGG TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Trachypithecus_phayrei                      --- --- --- --- --- --- --- --- --- --- --- AGA AGA ACG --- TAC --- --- AGT CTG GCC AGA AGA AGA AGG AGA AGA AGC AGC AGC TGT CGC AGG GCA CGC ATG CGC TAC AGG CGA CGG AGA CGG AGG TGC CAG CGC CGG CGC CCG AGG AGG AGG CGA CGG GCC TAT AGC TGC TGC TGC TGC TGC TGT
+Mus_spretus                                 --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_spicilegus                              --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA AGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_macedonicus                             --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_domesticus                     --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA AGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_musculus                       --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_bactrianus                     --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+Mus_musculus_castaneus                      --- --- --- --- --- CGT CGC --- --- --- --- AAA AAA --- AGG TAC --- --- TGT ATA --- CGA AGA AGA AGA AGG CGA AGC AGC AGC TGT CGC TCA CGG CGT ATG CGC TAC AGG CGA AGG AGA AGG ACC CGC AAA CGC CGG CGC CGC AGA AGG AGG CGG CGA GCC TAC TGC TGC TGC TGC TGC TGC TGC
+
+
+
+    1    1    1    1    1    1    1    1    2    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4.4, January 2010)  algn
+Model: One dN/dS ratio for branches
+Codon frequency model: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  1  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  1  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  5  5
+    CTA  0  0  0  0  1  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  0  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  1  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  1  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  8  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  8  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  1  0 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  4  0  0  3  3  5
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  1  0 | His CAT  0  1  0  0  0  0 | Arg CGT  0  0  0  1  1  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  6  6 10  7  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  4  1  0  3  3  2
+    CTG  1  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  7  4  0  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  9  8 10  7 11 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  9  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  1  2 |     GCG  0  0  0  0  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  1  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  4  2  2  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  1  0 | Arg CGT  1  2  1  1  0  1
+    CTC  0  0  0  0  1  0 |     CCC  0  0  0  0  2  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  6  6  7  5
+    CTA  0  0  0  0  1  0 |     CCA  0  1  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  2  2  3  3  2  1
+    CTG  1  0  1  1  0  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  2  3  0  2 |     CGG  4  3  3  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  1  1  1  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  2  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  2  4
+    ATA  0  0  0  0  1  0 |     ACA  0  0  0  0  1  1 | Lys AAA  0  0  0  0  1  0 | Arg AGA  9 10  9  9  7  8
+Met ATG  2  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  1  1  0  0 |     GCC  2  1  1  1  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  1  2  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  1  1  0 | Cys TGT  1  1  2  1  2  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  3  2 |     TGC  6  6  7  3  3  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  5  5  5  5  6  7
+    CTA  0  0  0  0  0  0 |     CCA  1  0  0  0  0  0 | Gln CAA  1  1  0  0  1  1 |     CGA  2  2  3  4  2  2
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  1  1  0  0  0  0 |     CGG  4  4  5  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  5  4  3  3  5  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA  8  9  8  9 12 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  0  0  0 |     AGG  6  5  7  6  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  1  1  2 |     GCG  0  0  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  1  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  1  0  0  0  0  0 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  2  4  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  1  2  2  2  2 |     TGC  6  5  5  4  4  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  1 | Arg CGT  0  2  0  1  1  0
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  0  0  1  0  0  0 |     CGC  6  7  7  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  1  4  2  2  4
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  1 |     CAG  0  0  1  3  3  0 |     CGG  2  3  2  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  1  1  1  0 | Lys AAA  1  0  0  0  0  0 | Arg AGA 10  9  7  9  9  8
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  1  0  1  0  0  0 |     AGG  7  6  5  4  4  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  0  1  1  1  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  2  1  1  1  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  4  3  1  1  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  2  3  4  4  3 |     TGC  5  6  6  6  6  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  0  1  0  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  2  0  0  0  0 |     CGC  5  4  5  6  6  8
+    CTA  0  0  0  0  0  1 |     CCA  0  0  0  1  2  0 | Gln CAA  0  1  0  1  1  0 |     CGA  3  1  2  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  0  3  1  0  0  0 |     CGG  2  2  5  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  1  0  0  0  0  0 |     ACA  0  1  0  0  0  1 | Lys AAA  0  0  0  0  0  3 | Arg AGA  9  9  9  9 10  5
+Met ATG  1  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  7  8  7  6  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  1  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  7  6  6  5  5
+Leu TTA  1  1  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  1  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  9  7  6  8  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  5  3  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  1  1  0  0 | Lys AAA  2  2  0  0  0  0 | Arg AGA  6  7 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  3
+    TTC  0  0  0  0  1  0 |     TCC  0  0  1  0  0  0 |     TAC  2  2  2  3  3  3 |     TGC  4  3  6  6  5  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  1  0  0  1  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  1  0  0  1  0 |     CGC  9  5  4  5  4  4
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  1  0  0  0 |     CGA  4  1  1  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  4  1  2  3  1 |     CGG  2  2  4  5  3  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  1  0  0  0  0 |     AGC  2  4  4  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  2  0  1  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  6  8  8  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  1  0 |     AGG  6  6  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  1  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  8  8  8  8  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  2  3  5  3  3  3
+    CTG  1  1  1  1  1  0 |     CCG  0  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  5  3  2  4  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  0  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  2  2  2  2  2 | Arg AGA  9  6  5  5  6  5
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  9  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  2  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  1  1  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  5  1  1  1  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  2  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  1  1  0  0  0  0 |     ACC  1  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  1  1  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG 10 10  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  0  0  0 |     TAC  3  4  4  3  3  2 |     TGC  4  5  4  7  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  1  1  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  1  2  3  4  1
+    CTG  0  0  0  1  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  3  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  2  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  2  2
+    ATA  0  0  0  0  1  1 |     ACA  1  0  1  0  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  6  5  6  5  9
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  9  8  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  1  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  1  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  4  4  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  1  1  0  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  1  1  0  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  0  0  1  0 |     CAG  1  1  5  5  1  0 |     CGG  3  2  1  1  4  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  1  1  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  9 10  8  6
+Met ATG  1  1  2  3  1  1 |     ACG  0  0  0  0  1  0 |     AAG  0  0  1  1  0  0 |     AGG  5  6  5  5  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  0  0  1  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  2 | Cys TGT  2  3  3  1  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  2  2 |     TGC  7  7  6  7  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  1  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  6  6  7  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  1 |     CGA  3  1  1  1  2  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  3  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  2  2  2  2  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 12 10 11 12 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  9  7  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  1  0  1 |     GCG  0  0  0  0  1  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  6  6  5  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  6  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  1  0  0  0  0 | Gln CAA  0  0  0  0  1  1 |     CGA  2  2  1  2  4  3
+    CTG  1  1  1  1  0  0 |     CCG  1  0  1  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  4  4  5  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  0  0  1  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  4
+Met ATG  1  1  1  1  1  1 |     ACG  1  1  0  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  1 | Cys TGT  2  2  3  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  3  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  1  0  0  0 |     CGA  4  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  5 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  7  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  1  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#12: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#13: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#14: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#15: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#22: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#23: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#24: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#25: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#26: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#29: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#30: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#31: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#32: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#33: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#37: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#38: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#39: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#40: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#45: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#48: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#49: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#50: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#51: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#52: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#55: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#56: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#57: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#63: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#64: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#65: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#68: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#69: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#72: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#73: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#74: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#75: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#78: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#79: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#80: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#81: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#87: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+
+Nei & Gojobori 1986. dN/dS (dN, dS)
+(Pairwise deletion)
+(Note: This matrix is not used in later ML. analysis.
+Use runmode = -2 for ML pairwise comparison.)
+
+Loxodonta_africana  
+Procavia_capensis    0.0823 (0.2269 2.7574)
+Erinaceus_europaeus  0.1637 (0.2465 1.5057) 0.1154 (0.2841 2.4618)
+Oryctolagus_cuniculus 0.2206 (0.2261 1.0248) 0.2514 (0.2279 0.9066) 0.2019 (0.2187 1.0834)
+Cynocephalus_variegatus 0.1134 (0.1932 1.7047) 0.3817 (0.2121 0.5557)-1.0000 (0.2081 -1.0000) 0.1646 (0.1414 0.8590)
+Tupaia_belangeri     0.1304 (0.1350 1.0358) 0.2132 (0.2199 1.0317)-1.0000 (0.2487 -1.0000) 0.2063 (0.1305 0.6324) 0.1831 (0.1244 0.6795)
+Otolemur_garnettii   0.0617 (0.1176 1.9079) 0.1573 (0.1630 1.0360)-1.0000 (0.1272 -1.0000) 0.0840 (0.0759 0.9039) 0.1315 (0.0744 0.5655) 0.1806 (0.0834 0.4615)
+Cavia_porcellus      0.0900 (0.1662 1.8460) 0.2173 (0.2294 1.0556) 0.0632 (0.1989 3.1450) 0.2394 (0.1312 0.5482) 0.1545 (0.1101 0.7126) 0.1476 (0.0856 0.5797) 0.1981 (0.0933 0.4711)
+Dipodomys_ordii      0.1796 (0.1426 0.7942) 0.2332 (0.1885 0.8086) 0.1428 (0.1475 1.0331) 0.2786 (0.1227 0.4404) 0.1260 (0.1113 0.8832) 0.1213 (0.0974 0.8031) 0.0654 (0.0483 0.7386) 0.1524 (0.1026 0.6735)
+Felis_catus          0.0888 (0.1784 2.0076) 0.3695 (0.2869 0.7763) 0.0790 (0.2543 3.2199) 0.1981 (0.1899 0.9585) 0.2905 (0.2458 0.8464) 0.1882 (0.1980 1.0520) 0.1863 (0.1189 0.6385) 0.2742 (0.2097 0.7648) 0.1808 (0.1742 0.9635)
+Rhinopoma_hardwickei 0.1571 (0.1544 0.9829) 0.3939 (0.2710 0.6879)-1.0000 (0.2156 -1.0000) 0.2154 (0.1694 0.7863) 0.1774 (0.1573 0.8866) 0.2292 (0.1577 0.6883) 0.2434 (0.1259 0.5171) 0.2557 (0.1579 0.6175) 0.1728 (0.1142 0.6609) 0.1327 (0.0988 0.7449)
+Pteropus_hypomelanus 0.1871 (0.1601 0.8555) 0.4120 (0.2497 0.6060)-1.0000 (0.1887 -1.0000) 0.1875 (0.1236 0.6588) 0.1823 (0.1452 0.7963) 0.2901 (0.1286 0.4434) 0.2210 (0.0828 0.3747) 0.2121 (0.1341 0.6321) 0.1511 (0.0970 0.6420) 0.0952 (0.0624 0.6554) 0.3250 (0.0374 0.1152)
+Pteropus_vampyrus    0.1739 (0.1473 0.8469) 0.3879 (0.2564 0.6609)-1.0000 (0.1889 -1.0000) 0.1689 (0.1098 0.6499) 0.1377 (0.1157 0.8401) 0.2164 (0.1071 0.4952) 0.1444 (0.0575 0.3983) 0.1752 (0.1116 0.6372) 0.1190 (0.0788 0.6623) 0.1563 (0.1061 0.6788) 0.5797 (0.0683 0.1177)-1.0000 (0.0284 0.0000)
+Desmodus_rotundus    0.1357 (0.1538 1.1330) 0.4048 (0.2566 0.6338)-1.0000 (0.2062 -1.0000) 0.1858 (0.1347 0.7249) 0.1953 (0.1570 0.8038) 0.1770 (0.1123 0.6347) 0.1598 (0.0933 0.5841) 0.1958 (0.1230 0.6284) 0.0985 (0.0917 0.9313) 0.1091 (0.0675 0.6187) 0.2557 (0.0383 0.1497) 0.0614 (0.0093 0.1521) 0.2504 (0.0381 0.1521)
+Equus_asinus         0.1760 (0.2349 1.3346) 0.2729 (0.2837 1.0393) 0.0924 (0.2404 2.6016) 0.2236 (0.1508 0.6742) 0.3126 (0.2139 0.6842) 0.2849 (0.1719 0.6035) 0.2072 (0.1394 0.6729) 0.1918 (0.1663 0.8667) 0.1725 (0.1514 0.8776) 0.1434 (0.1037 0.7231) 0.1896 (0.0946 0.4986) 0.1041 (0.0530 0.5090) 0.1786 (0.0852 0.4768) 0.1948 (0.0643 0.3303)
+Equus_caballus       0.1978 (0.2444 1.2353) 0.2909 (0.2899 0.9967) 0.1197 (0.2752 2.2998) 0.2788 (0.1798 0.6450) 0.3480 (0.2401 0.6901) 0.3501 (0.2020 0.5771) 0.2610 (0.1680 0.6437) 0.2370 (0.1965 0.8293) 0.2166 (0.1816 0.8383) 0.1882 (0.1304 0.6927) 0.2549 (0.1213 0.4760) 0.1611 (0.0783 0.4858) 0.2468 (0.1120 0.4537) 0.2912 (0.0905 0.3107)-1.0000 (0.0181 0.0000)
+Antilocapra_americana 0.2161 (0.2216 1.0259) 0.6425 (0.3388 0.5273) 0.1290 (0.3027 2.3472) 0.3845 (0.2123 0.5522) 0.4091 (0.2537 0.6202) 0.2969 (0.1984 0.6684) 0.3284 (0.1685 0.5131) 0.3044 (0.1979 0.6501) 0.2662 (0.2050 0.7701) 0.1847 (0.1257 0.6807) 0.4069 (0.1239 0.3046) 0.5071 (0.1067 0.2104) 0.5818 (0.1311 0.2254) 0.3638 (0.1123 0.3088) 0.4392 (0.1600 0.3642) 0.5143 (0.1771 0.3443)
+Hylobates_lar        0.1804 (0.2054 1.1383) 0.3361 (0.2468 0.7342) 0.1565 (0.1760 1.1242) 0.2802 (0.1750 0.6248) 0.3869 (0.2258 0.5835) 0.2659 (0.1902 0.7150) 0.1874 (0.1056 0.5636) 0.2920 (0.2166 0.7418) 0.2777 (0.1563 0.5626) 0.2266 (0.2511 1.1085) 0.3788 (0.2362 0.6236) 0.3245 (0.1863 0.5742) 0.3012 (0.1660 0.5512) 0.2817 (0.1984 0.7044) 0.3726 (0.2692 0.7223) 0.4183 (0.2890 0.6908) 0.6470 (0.2997 0.4633)
+Callithrix_jacchus   0.1986 (0.2187 1.1011) 0.4167 (0.2711 0.6507) 0.1296 (0.1744 1.3457) 0.2523 (0.1349 0.5348) 0.2972 (0.1810 0.6091) 0.3238 (0.1725 0.5328) 0.2098 (0.0943 0.4493) 0.4107 (0.1938 0.4719) 0.2115 (0.1445 0.6832) 0.3300 (0.2287 0.6929) 0.4352 (0.2295 0.5273) 0.3720 (0.1798 0.4833) 0.3325 (0.1689 0.5079) 0.3896 (0.1978 0.5078) 0.3038 (0.1858 0.6117) 0.3699 (0.2161 0.5843) 0.8615 (0.2730 0.3169) 0.9415 (0.1527 0.1622)
+Saguinus_imperator   0.1489 (0.2059 1.3829) 0.4159 (0.2530 0.6083) 0.1199 (0.1935 1.6139) 0.3441 (0.1461 0.4246) 0.4044 (0.1943 0.4804) 0.4367 (0.1848 0.4232) 0.2371 (0.1050 0.4426) 0.5616 (0.2068 0.3682) 0.2331 (0.1563 0.6708) 0.3839 (0.2482 0.6465) 0.5219 (0.2432 0.4661) 0.4526 (0.1924 0.4251) 0.4041 (0.1810 0.4478) 0.5969 (0.2108 0.3532) 0.4254 (0.2175 0.5112) 0.4215 (0.2171 0.5150) 0.7701 (0.2742 0.3560) 0.7052 (0.1641 0.2328) 0.3131 (0.0224 0.0715)
+Saimiri_sciureus     0.1508 (0.1868 1.2393) 0.2666 (0.1930 0.7241) 0.1258 (0.1765 1.4031) 0.2533 (0.0997 0.3937) 0.2477 (0.1338 0.5401) 0.3117 (0.1294 0.4152) 0.1687 (0.0697 0.4128) 0.4088 (0.1486 0.3636) 0.1390 (0.0865 0.6222) 0.2259 (0.1833 0.8114) 0.3632 (0.1763 0.4854) 0.3428 (0.1522 0.4440) 0.2839 (0.1317 0.4639) 0.3869 (0.1524 0.3939) 0.3597 (0.1813 0.5039) 0.4408 (0.2116 0.4802) 0.5061 (0.2240 0.4425) 0.7071 (0.1487 0.2103) 0.9884 (0.0696 0.0704) 5.9387 (0.0797 0.0134)
+Hipposideros_commersoni 0.2190 (0.2102 0.9596) 0.5031 (0.3216 0.6393) 0.1108 (0.2216 2.0001) 0.2860 (0.2188 0.7649) 0.2832 (0.2306 0.8142) 0.3243 (0.2109 0.6503) 0.3068 (0.1721 0.5610) 0.2760 (0.2139 0.7750) 0.2971 (0.1732 0.5830) 0.3145 (0.1563 0.4971) 0.9881 (0.1280 0.1296) 0.6055 (0.0895 0.1478) 0.8245 (0.1218 0.1478) 0.4801 (0.0949 0.1976) 0.4129 (0.1847 0.4473) 0.5044 (0.2148 0.4259) 0.6232 (0.2215 0.3554) 0.3716 (0.2419 0.6511) 0.5248 (0.2611 0.4975) 0.6267 (0.2756 0.4398) 0.5174 ( [...]
+Rhinolophus_ferrumequinum 0.2725 (0.2336 0.8570) 0.4195 (0.2972 0.7083)-1.0000 (0.2171 -1.0000) 0.2741 (0.2191 0.7997) 0.2852 (0.2440 0.8555) 0.2674 (0.1992 0.7449) 0.2990 (0.1731 0.5790) 0.2798 (0.2270 0.8112) 0.2586 (0.1591 0.6152) 0.2482 (0.1706 0.6870) 1.0088 (0.1340 0.1328) 0.6360 (0.0964 0.1515) 0.7731 (0.1199 0.1551) 0.5004 (0.1039 0.2077) 0.3739 (0.1897 0.5073) 0.4523 (0.2190 0.4842) 0.6845 (0.2293 0.3350) 0.3204 (0.2091 0.6528) 0.4837 (0.2565 0.5303) 0.5795 (0.2708 0.4672) 0.477 [...]
+Chilonatalus_micropus 0.1708 (0.1866 1.0926) 0.3582 (0.2824 0.7885)-1.0000 (0.2422 -1.0000) 0.2471 (0.1552 0.6280) 0.4007 (0.2021 0.5043) 0.2977 (0.1588 0.5335) 0.3052 (0.1144 0.3747) 0.3700 (0.1687 0.4561) 0.2431 (0.1637 0.6735) 0.1039 (0.0743 0.7150) 0.2299 (0.0683 0.2969) 0.0938 (0.0284 0.3023) 0.2228 (0.0712 0.3194) 0.1460 (0.0381 0.2609) 0.2579 (0.0578 0.2241) 0.4018 (0.0831 0.2069) 0.4732 (0.1124 0.2375) 0.4726 (0.2488 0.5265) 0.5119 (0.2043 0.3991) 0.6827 (0.2232 0.3269) 0.4674 (0 [...]
+Otonycteris_hemprichi 0.1310 (0.1988 1.5172) 0.3882 (0.2744 0.7069)-1.0000 (0.3354 -1.0000) 0.2260 (0.2005 0.8874) 0.3521 (0.2198 0.6244) 0.2255 (0.1495 0.6630) 0.2907 (0.1586 0.5456) 0.2321 (0.1551 0.6681) 0.1756 (0.1812 1.0319) 0.2268 (0.1549 0.6830) 0.2490 (0.0879 0.3531) 0.1865 (0.0671 0.3600) 0.2927 (0.1108 0.3785) 0.2159 (0.0773 0.3582) 0.3051 (0.1030 0.3377) 0.3404 (0.1081 0.3176) 0.5753 (0.1651 0.2870) 0.4309 (0.2965 0.6882) 0.5245 (0.2753 0.5248) 0.4933 (0.2786 0.5648) 0.3355 (0 [...]
+Monophyllus_redmani  0.1165 (0.1533 1.3159) 0.4418 (0.2558 0.5791)-1.0000 (0.2189 -1.0000) 0.1653 (0.1343 0.8127) 0.1721 (0.1565 0.9094) 0.1580 (0.1120 0.7090) 0.1576 (0.0931 0.5907) 0.1567 (0.1227 0.7829) 0.1080 (0.0915 0.8473) 0.1076 (0.0674 0.6259) 0.1728 (0.0382 0.2210) 0.0415 (0.0093 0.2248) 0.1691 (0.0380 0.2248) 0.0000 (0.0000 0.1196) 0.1501 (0.0642 0.4275) 0.2225 (0.0902 0.4055) 0.3595 (0.1120 0.3116) 0.2774 (0.1979 0.7133) 0.3843 (0.1973 0.5133) 0.4648 (0.2102 0.4523) 0.3051 (0. [...]
+Elaphodus_cephalophus 0.1900 (0.2014 1.0603) 0.5107 (0.2885 0.5648) 0.1251 (0.2997 2.3956) 0.3757 (0.2281 0.6072) 0.3642 (0.2445 0.6713) 0.2831 (0.1963 0.6934) 0.3251 (0.1845 0.5676) 0.2661 (0.1895 0.7124) 0.2897 (0.2300 0.7937) 0.1591 (0.1358 0.8535) 0.3787 (0.1573 0.4153) 0.3761 (0.1173 0.3119) 0.5572 (0.1550 0.2782) 0.2918 (0.1229 0.4214) 0.2752 (0.1347 0.4896) 0.3231 (0.1511 0.4675) 2.8449 (0.0754 0.0265) 0.6132 (0.3063 0.4995) 0.8041 (0.2801 0.3484) 0.7200 (0.2902 0.4030) 0.5133 (0. [...]
+Hippopotamus_amphibius 0.2110 (0.2024 0.9590) 0.4496 (0.2958 0.6578)-1.0000 (0.2904 -1.0000) 0.2858 (0.2016 0.7053) 0.5573 (0.2360 0.4235) 0.3287 (0.1596 0.4855) 0.2772 (0.1481 0.5344) 0.1760 (0.1636 0.9295) 0.1902 (0.1851 0.9729) 0.1625 (0.1396 0.8589) 0.2042 (0.1221 0.5979) 0.2571 (0.0948 0.3688) 0.3976 (0.1316 0.3309) 0.1320 (0.0845 0.6404) 0.1929 (0.1142 0.5919) 0.1911 (0.1140 0.5964) 0.5113 (0.1367 0.2674) 0.5288 (0.2764 0.5227) 0.4172 (0.2146 0.5143) 0.4042 (0.2357 0.5832) 0.2875 ( [...]
+Hexaprotodon_liberiensis 0.2110 (0.2024 0.9590) 0.4496 (0.2958 0.6578)-1.0000 (0.2904 -1.0000) 0.2858 (0.2016 0.7053) 0.5573 (0.2360 0.4235) 0.3287 (0.1596 0.4855) 0.2772 (0.1481 0.5344) 0.1760 (0.1636 0.9295) 0.1902 (0.1851 0.9729) 0.1625 (0.1396 0.8589) 0.2042 (0.1221 0.5979) 0.2571 (0.0948 0.3688) 0.3976 (0.1316 0.3309) 0.1320 (0.0845 0.6404) 0.1929 (0.1142 0.5919) 0.1911 (0.1140 0.5964) 0.5113 (0.1367 0.2674) 0.5288 (0.2764 0.5227) 0.4172 (0.2146 0.5143) 0.4042 (0.2357 0.5832) 0.2875 [...]
+Potamochoerus_porcus 0.1379 (0.1801 1.3060) 0.4431 (0.3025 0.6826) 0.0544 (0.2073 3.8101) 0.2361 (0.1588 0.6729) 0.2426 (0.1892 0.7802) 0.2971 (0.1588 0.5344) 0.3073 (0.1088 0.3542) 0.2459 (0.1567 0.6372) 0.1246 (0.1057 0.8481) 0.2042 (0.1282 0.6278) 0.2302 (0.0784 0.3406) 0.3672 (0.0627 0.1708) 0.4227 (0.0711 0.1683) 0.1965 (0.0679 0.3453) 0.1998 (0.0935 0.4679) 0.2693 (0.1199 0.4453) 0.5401 (0.1179 0.2182) 0.4363 (0.2343 0.5371) 0.5731 (0.2201 0.3841) 0.5482 (0.2333 0.4255) 0.4485 (0.1 [...]
+Sus_scrofa           0.1434 (0.1930 1.3458) 0.3938 (0.3013 0.7651) 0.0832 (0.2065 2.4833) 0.2093 (0.1583 0.7561) 0.2131 (0.1885 0.8847) 0.2639 (0.1582 0.5995) 0.2669 (0.1085 0.4063) 0.2170 (0.1561 0.7195) 0.1355 (0.1053 0.7770) 0.1814 (0.1277 0.7044) 0.2566 (0.0885 0.3448) 0.4204 (0.0726 0.1727) 0.4753 (0.0809 0.1701) 0.2225 (0.0778 0.3497) 0.2201 (0.0932 0.4232) 0.2977 (0.1195 0.4015) 0.5806 (0.1281 0.2207) 0.3847 (0.2335 0.6069) 0.5010 (0.2193 0.4377) 0.4820 (0.2324 0.4821) 0.3954 (0.1 [...]
+Pongo_pygmaeus       0.1157 (0.1641 1.4182) 0.1932 (0.2315 1.1987) 0.1437 (0.2156 1.5008) 0.1828 (0.1322 0.7232) 0.2206 (0.1503 0.6814) 0.2329 (0.1441 0.6189) 0.1378 (0.0695 0.5046) 0.2033 (0.1446 0.7112) 0.1991 (0.1325 0.6656) 0.2030 (0.2061 1.0153) 0.2795 (0.1849 0.6613) 0.2284 (0.1389 0.6082) 0.2096 (0.1220 0.5822) 0.2000 (0.1501 0.7505) 0.2759 (0.1903 0.6896) 0.3160 (0.2080 0.6581) 0.4989 (0.2436 0.4883) 0.5575 (0.0706 0.1267) 0.7809 (0.1615 0.2068) 0.6083 (0.1729 0.2842) 0.4873 (0.1 [...]
+Papio_cynocephalus   0.1381 (0.1661 1.2032) 0.3372 (0.2370 0.7028) 0.1370 (0.1494 1.0901) 0.2736 (0.1333 0.4872) 0.2912 (0.1300 0.4464) 0.2647 (0.1419 0.5361) 0.1200 (0.0466 0.3881) 0.2846 (0.1479 0.5199) 0.1920 (0.0980 0.5103) 0.2588 (0.1876 0.7247) 0.5034 (0.1833 0.3641) 0.4179 (0.1366 0.3267) 0.3089 (0.1041 0.3370) 0.3554 (0.1479 0.4162) 0.3778 (0.1928 0.5103) 0.3656 (0.1985 0.5430) 0.5515 (0.2398 0.4349) 1.0500 (0.0912 0.0869) 0.9854 (0.1224 0.1242) 0.8471 (0.1177 0.1390) 1.0256 (0.1 [...]
+Ateles_sp            0.1470 (0.1803 1.2265) 0.3074 (0.1986 0.6460) 0.1090 (0.1821 1.6713) 0.3591 (0.1560 0.4344) 0.2825 (0.1639 0.5801) 0.3716 (0.1609 0.4329) 0.1925 (0.0856 0.4447) 0.4821 (0.1815 0.3766) 0.1672 (0.1134 0.6783) 0.3170 (0.2181 0.6880) 0.4043 (0.2002 0.4952) 0.4248 (0.1813 0.4268) 0.3787 (0.1704 0.4500) 0.4821 (0.1815 0.3766) 0.4359 (0.2287 0.5246) 0.5218 (0.2607 0.4996) 0.6616 (0.2723 0.4116) 0.4534 (0.1228 0.2708) 0.6135 (0.0737 0.1201) 1.4692 (0.0838 0.0570) 1.3239 (0.0 [...]
+Alouatta_seniculus   0.1403 (0.2045 1.4575) 0.3601 (0.2262 0.6281) 0.0949 (0.2044 2.1547) 0.3818 (0.1667 0.4366) 0.3414 (0.1920 0.5624) 0.4215 (0.1834 0.4351) 0.1840 (0.1042 0.5663) 0.4795 (0.2050 0.4275) 0.1724 (0.1330 0.7714) 0.2418 (0.2060 0.8519) 0.3648 (0.2244 0.6152) 0.3813 (0.2048 0.5371) 0.3424 (0.1930 0.5636) 0.4286 (0.2051 0.4785) 0.4092 (0.2498 0.6105) 0.4850 (0.2827 0.5829) 0.5850 (0.2719 0.4648) 0.4406 (0.1416 0.3214) 0.3893 (0.0736 0.1891) 0.7019 (0.0837 0.1192) 0.6329 (0.0 [...]
+Sigmodon_hispidus    0.0786 (0.1691 2.1525) 0.2384 (0.2383 0.9995) 0.1088 (0.1877 1.7245) 0.0960 (0.0811 0.8455) 0.0803 (0.1074 1.3378) 0.1733 (0.1119 0.6456) 0.0604 (0.0514 0.8513) 0.1083 (0.0988 0.9123) 0.1154 (0.0809 0.7012) 0.1971 (0.1948 0.9883) 0.1806 (0.1505 0.8332) 0.1511 (0.1112 0.7356) 0.1096 (0.0848 0.7737) 0.1365 (0.1221 0.8947) 0.1974 (0.1702 0.8620) 0.2421 (0.1999 0.8256) 0.2797 (0.2014 0.7199) 0.2211 (0.1763 0.7974) 0.1865 (0.1440 0.7719) 0.2055 (0.1556 0.7573) 0.1373 (0.1 [...]
+Micromys_minutus     0.1077 (0.1829 1.6972) 0.2171 (0.2387 1.0998) 0.0543 (0.1823 3.3559) 0.0980 (0.0864 0.8809) 0.1149 (0.1076 0.9364) 0.1377 (0.0943 0.6844) 0.0674 (0.0515 0.7638) 0.1041 (0.1017 0.9761) 0.1165 (0.0811 0.6957) 0.1874 (0.1833 0.9782) 0.1528 (0.1395 0.9126) 0.1380 (0.1007 0.7295) 0.0973 (0.0746 0.7670) 0.1258 (0.1115 0.8863) 0.2499 (0.1646 0.6586) 0.2833 (0.1881 0.6640) 0.2805 (0.1935 0.6899) 0.1782 (0.1824 1.0236) 0.1706 (0.1442 0.8456) 0.1881 (0.1559 0.8287) 0.1258 (0.1 [...]
+Meriones_unguiculatus 0.0938 (0.1594 1.6997) 0.2056 (0.2038 0.9916) 0.0913 (0.1721 1.8849) 0.1318 (0.1117 0.8475) 0.0770 (0.0956 1.2423) 0.0790 (0.0975 1.2335) 0.0505 (0.0423 0.8388) 0.0667 (0.0715 1.0718) 0.1198 (0.0820 0.6842) 0.1882 (0.1776 0.9440) 0.1669 (0.1392 0.8344) 0.1519 (0.1000 0.6585) 0.1062 (0.0738 0.6945) 0.1373 (0.1110 0.8084) 0.2293 (0.1652 0.7205) 0.2836 (0.1953 0.6884) 0.3725 (0.2064 0.5540) 0.1721 (0.1673 0.9722) 0.1706 (0.1385 0.8118) 0.1889 (0.1502 0.7952) 0.1237 (0. [...]
+Natalus_micropus     0.1708 (0.1866 1.0926) 0.3582 (0.2824 0.7885)-1.0000 (0.2422 -1.0000) 0.2471 (0.1552 0.6280) 0.4007 (0.2021 0.5043) 0.2977 (0.1588 0.5335) 0.3052 (0.1144 0.3747) 0.3700 (0.1687 0.4561) 0.2431 (0.1637 0.6735) 0.1039 (0.0743 0.7150) 0.2299 (0.0683 0.2969) 0.0938 (0.0284 0.3023) 0.2228 (0.0712 0.3194) 0.1460 (0.0381 0.2609) 0.2579 (0.0578 0.2241) 0.4018 (0.0831 0.2069) 0.4732 (0.1124 0.2375) 0.4726 (0.2488 0.5265) 0.5119 (0.2043 0.3991) 0.6827 (0.2232 0.3269) 0.4674 (0. [...]
+Natalus_stramineus   0.1834 (0.2004 1.0926) 0.3752 (0.2958 0.7885)-1.0000 (0.2558 -1.0000) 0.2650 (0.1664 0.6280) 0.4260 (0.2148 0.5043) 0.3190 (0.1702 0.5335) 0.3341 (0.1252 0.3747) 0.3961 (0.1807 0.4561) 0.2606 (0.1755 0.6735) 0.1176 (0.0841 0.7150) 0.1958 (0.0581 0.2969) 0.1259 (0.0380 0.3023) 0.2542 (0.0812 0.3194) 0.1837 (0.0479 0.2609) 0.3029 (0.0679 0.2241) 0.4521 (0.0935 0.2069) 0.5180 (0.1230 0.2375) 0.4965 (0.2614 0.5265) 0.5418 (0.2162 0.3991) 0.7203 (0.2355 0.3269) 0.5005 (0. [...]
+Pteronotus_parnellii 0.1200 (0.1539 1.2824) 0.4068 (0.2568 0.6314)-1.0000 (0.2064 -1.0000) 0.2067 (0.1348 0.6524) 0.2715 (0.1571 0.5788) 0.2178 (0.1124 0.5163) 0.2229 (0.0934 0.4190) 0.2435 (0.1231 0.5057) 0.1229 (0.0918 0.7467) 0.1097 (0.0676 0.6164) 0.2093 (0.0383 0.1831) 0.0502 (0.0094 0.1861) 0.2048 (0.0381 0.1861) 0.0000 (0.0000 0.1184) 0.1721 (0.0644 0.3741) 0.2561 (0.0905 0.3536) 0.4216 (0.1124 0.2667) 0.3141 (0.1986 0.6323) 0.4370 (0.1980 0.4531) 0.6826 (0.2110 0.3092) 0.4386 (0. [...]
+Mormoops_megalophylla 0.1233 (0.1406 1.1404) 0.3693 (0.2315 0.6268) 0.0829 (0.2247 2.7097) 0.1481 (0.1388 0.9373) 0.1703 (0.1615 0.9485) 0.1428 (0.1163 0.8145) 0.1935 (0.0971 0.5016) 0.1725 (0.1271 0.7370) 0.0898 (0.0920 1.0242) 0.1573 (0.0779 0.4951) 0.2652 (0.0483 0.1821) 0.1018 (0.0189 0.1851) 0.2063 (0.0382 0.1851) 0.0796 (0.0094 0.1178) 0.1807 (0.0802 0.4438) 0.2024 (0.0854 0.4218) 0.3623 (0.1122 0.3097) 0.2861 (0.1990 0.6956) 0.3751 (0.2024 0.5396) 0.3678 (0.1852 0.5036) 0.2992 (0. [...]
+Moschus_sp           0.2190 (0.2102 0.9596) 0.6864 (0.3154 0.4594) 0.1292 (0.2731 2.1144) 0.3963 (0.2154 0.5435) 0.4230 (0.2567 0.6068) 0.3672 (0.2077 0.5657) 0.3397 (0.1720 0.5064) 0.3366 (0.2138 0.6352) 0.3413 (0.2168 0.6351) 0.1847 (0.1260 0.6824) 0.3930 (0.1449 0.3687) 0.3873 (0.1054 0.2722) 0.5934 (0.1431 0.2411) 0.2969 (0.1110 0.3738) 0.3413 (0.1467 0.4299) 0.3990 (0.1634 0.4095) 1.0596 (0.0709 0.0669) 0.5589 (0.2973 0.5319) 0.7004 (0.2690 0.3841) 0.7752 (0.2768 0.3571) 0.5449 (0.2 [...]
+Gorilla_gorilla      0.1471 (0.2236 1.5199) 0.2787 (0.2941 1.0555) 0.1937 (0.2529 1.3058) 0.3806 (0.2125 0.5583) 0.3157 (0.2558 0.8101) 0.2964 (0.2227 0.7512) 0.2066 (0.1358 0.6573) 0.3474 (0.2577 0.7418) 0.2790 (0.1944 0.6968) 0.2398 (0.2861 1.1932) 0.4155 (0.2718 0.6543) 0.3654 (0.2199 0.6018) 0.3426 (0.1975 0.5764) 0.3395 (0.2388 0.7032) 0.3722 (0.2998 0.8053) 0.4160 (0.3201 0.7695) 0.5762 (0.3306 0.5738) 0.8693 (0.0662 0.0761) 0.7888 (0.1618 0.2052) 0.6147 (0.1733 0.2819) 0.7005 (0.1 [...]
+Nasalis_larvatus     0.1875 (0.2248 1.1990) 0.4205 (0.2915 0.6933) 0.1692 (0.1948 1.1508) 0.3489 (0.1754 0.5026) 0.3726 (0.1821 0.4888) 0.3341 (0.1848 0.5531) 0.2137 (0.0854 0.3996) 0.3591 (0.1928 0.5370) 0.2654 (0.1399 0.5273) 0.3016 (0.2393 0.7934) 0.5452 (0.2304 0.4225) 0.4731 (0.1808 0.3821) 0.3694 (0.1447 0.3918) 0.4009 (0.1928 0.4810) 0.4572 (0.2412 0.5274) 0.4774 (0.2537 0.5314) 0.6001 (0.2932 0.4886) 1.2380 (0.1101 0.0889) 1.2022 (0.1530 0.1273) 1.3077 (0.1644 0.1257) 1.3824 (0.1 [...]
+Procolobus_badius    0.1711 (0.1985 1.1601) 0.3831 (0.2735 0.7139) 0.1688 (0.1778 1.0531) 0.2942 (0.1506 0.5119) 0.3638 (0.1647 0.4528) 0.3484 (0.1800 0.5165) 0.1926 (0.0757 0.3932) 0.3292 (0.1644 0.4995) 0.2758 (0.1350 0.4896) 0.2852 (0.2102 0.7371) 0.6142 (0.2128 0.3464) 0.5684 (0.1758 0.3093) 0.4378 (0.1400 0.3199) 0.4723 (0.1878 0.3976) 0.4525 (0.2228 0.4923) 0.4359 (0.2287 0.5246) 0.6524 (0.2712 0.4157) 1.3729 (0.1205 0.0878) 0.9439 (0.1289 0.1366) 0.8195 (0.1242 0.1516) 0.9796 (0.1 [...]
+Colobus_guereza      0.2448 (0.2664 1.0883) 0.4383 (0.3045 0.6947) 0.2197 (0.2307 1.0499) 0.3858 (0.1970 0.5108) 0.4525 (0.1956 0.4324) 0.3617 (0.1904 0.5264) 0.2597 (0.1054 0.4057) 0.4062 (0.2100 0.5170) 0.3299 (0.1672 0.5069) 0.3510 (0.2515 0.7165) 0.7072 (0.2493 0.3525) 0.6306 (0.1984 0.3146) 0.4943 (0.1608 0.3253) 0.5694 (0.2169 0.3809) 0.4696 (0.2346 0.4996) 0.4517 (0.2406 0.5325) 0.7324 (0.3102 0.4235) 1.6678 (0.1501 0.0900) 1.2659 (0.1631 0.1289) 1.0987 (0.1584 0.1441) 1.5598 (0.1 [...]
+Macaca_fascicularis  0.1450 (0.1786 1.2319) 0.3488 (0.2485 0.7125) 0.1440 (0.1603 1.1131) 0.2910 (0.1435 0.4931) 0.3123 (0.1411 0.4520) 0.2807 (0.1523 0.5426) 0.1429 (0.0561 0.3925) 0.3016 (0.1588 0.5264) 0.2093 (0.1082 0.5168) 0.2699 (0.1985 0.7355) 0.5287 (0.1946 0.3682) 0.4458 (0.1473 0.3303) 0.3346 (0.1140 0.3407) 0.3771 (0.1588 0.4211) 0.3955 (0.2044 0.5169) 0.3821 (0.2102 0.5502) 0.5721 (0.2518 0.4401) 1.1486 (0.1007 0.0877) 1.0562 (0.1325 0.1254) 0.9106 (0.1277 0.1403) 1.1102 (0.1 [...]
+Macaca_mulatta       0.1381 (0.1661 1.2032) 0.3372 (0.2370 0.7028) 0.1370 (0.1494 1.0901) 0.2736 (0.1333 0.4872) 0.2912 (0.1300 0.4464) 0.2647 (0.1419 0.5361) 0.1200 (0.0466 0.3881) 0.2846 (0.1479 0.5199) 0.1920 (0.0980 0.5103) 0.2588 (0.1876 0.7247) 0.5034 (0.1833 0.3641) 0.4179 (0.1366 0.3267) 0.3089 (0.1041 0.3370) 0.3554 (0.1479 0.4162) 0.3778 (0.1928 0.5103) 0.3656 (0.1985 0.5430) 0.5515 (0.2398 0.4349) 1.0500 (0.0912 0.0869) 0.9854 (0.1224 0.1242) 0.8471 (0.1177 0.1390) 1.0256 (0.1 [...]
+Arvicola_terrestris  0.1193 (0.1745 1.4624) 0.3233 (0.2309 0.7142) 0.0963 (0.1745 1.8118) 0.1146 (0.0808 0.7056) 0.1105 (0.1014 0.9174) 0.1699 (0.1061 0.6245) 0.0762 (0.0464 0.6095) 0.1162 (0.0880 0.7577) 0.1492 (0.0771 0.5168) 0.2290 (0.1630 0.7118) 0.2118 (0.1424 0.6721) 0.1954 (0.1036 0.5302) 0.1388 (0.0776 0.5594) 0.1760 (0.1144 0.6502) 0.2533 (0.1452 0.5731) 0.2911 (0.1681 0.5775) 0.3350 (0.1923 0.5741) 0.2653 (0.1756 0.6621) 0.2312 (0.1272 0.5503) 0.2558 (0.1385 0.5414) 0.1627 (0.0 [...]
+Phodopus_sungorus    0.1042 (0.1560 1.4974) 0.3084 (0.2259 0.7327) 0.0845 (0.1572 1.8610) 0.1327 (0.0914 0.6888) 0.0637 (0.0747 1.1725) 0.1868 (0.0995 0.5327) 0.0668 (0.0419 0.6269) 0.1198 (0.0885 0.7387) 0.1356 (0.0724 0.5341) 0.2573 (0.1697 0.6593) 0.1677 (0.1047 0.6243) 0.1797 (0.0884 0.4917) 0.1209 (0.0628 0.5189) 0.1640 (0.0990 0.6036) 0.2279 (0.1452 0.6372) 0.2857 (0.1740 0.6092) 0.3294 (0.1753 0.5321) 0.2309 (0.1653 0.7158) 0.2350 (0.1333 0.5672) 0.2594 (0.1447 0.5580) 0.1678 (0.0 [...]
+Phodopus_roborovskii 0.0926 (0.1685 1.8201) 0.3037 (0.2253 0.7418) 0.1222 (0.1688 1.3820) 0.1299 (0.0861 0.6630) 0.0903 (0.0962 1.0645) 0.1558 (0.1064 0.6827) 0.0595 (0.0418 0.7013) 0.1305 (0.0883 0.6761) 0.1494 (0.0722 0.4835) 0.2443 (0.1808 0.7401) 0.1778 (0.1372 0.7717) 0.1606 (0.0986 0.6140) 0.1125 (0.0727 0.6464) 0.1462 (0.1094 0.7481) 0.2696 (0.1563 0.5797) 0.3072 (0.1795 0.5842) 0.2811 (0.1868 0.6646) 0.2235 (0.1705 0.7626) 0.2092 (0.1329 0.6353) 0.2312 (0.1443 0.6245) 0.1350 (0.0 [...]
+Peromyscus_californicus 0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 ( [...]
+Rattus_norvegicus    0.1526 (0.1960 1.2847) 0.2221 (0.2505 1.1281) 0.1185 (0.1820 1.5357) 0.1178 (0.0911 0.7735) 0.1153 (0.1146 0.9940) 0.1654 (0.1153 0.6969) 0.0640 (0.0610 0.9539) 0.1268 (0.1128 0.8900) 0.1427 (0.1011 0.7083) 0.2146 (0.1865 0.8688) 0.1535 (0.1408 0.9169) 0.1444 (0.1038 0.7187) 0.1028 (0.0778 0.7561) 0.1310 (0.1146 0.8750) 0.1954 (0.1561 0.7990) 0.2224 (0.1793 0.8064) 0.2521 (0.1866 0.7401) 0.2468 (0.1990 0.8063) 0.2192 (0.1546 0.7056) 0.2403 (0.1665 0.6929) 0.1643 (0.1 [...]
+Acomys_cahirinus     0.0881 (0.1560 1.7703) 0.2950 (0.2140 0.7253) 0.0989 (0.1636 1.6550) 0.1217 (0.0916 0.7526) 0.1042 (0.0966 0.9273) 0.1889 (0.0997 0.5281) 0.0554 (0.0420 0.7573) 0.1231 (0.1099 0.8931) 0.0957 (0.0625 0.6527) 0.1550 (0.1306 0.8428) 0.1124 (0.0890 0.7922) 0.0836 (0.0529 0.6328) 0.0836 (0.0529 0.6328) 0.0820 (0.0630 0.7685) 0.1444 (0.1064 0.7370) 0.1897 (0.1339 0.7058) 0.2780 (0.1636 0.5885) 0.2181 (0.1545 0.7083) 0.2376 (0.1336 0.5620) 0.2623 (0.1451 0.5531) 0.1696 (0.0 [...]
+Acomys_cilicicus     0.0881 (0.1560 1.7703) 0.2950 (0.2140 0.7253) 0.0989 (0.1636 1.6550) 0.1217 (0.0916 0.7526) 0.1042 (0.0966 0.9273) 0.1889 (0.0997 0.5281) 0.0554 (0.0420 0.7573) 0.1231 (0.1099 0.8931) 0.0957 (0.0625 0.6527) 0.1550 (0.1306 0.8428) 0.1124 (0.0890 0.7922) 0.0836 (0.0529 0.6328) 0.0836 (0.0529 0.6328) 0.0820 (0.0630 0.7685) 0.1444 (0.1064 0.7370) 0.1897 (0.1339 0.7058) 0.2780 (0.1636 0.5885) 0.2181 (0.1545 0.7083) 0.2376 (0.1336 0.5620) 0.2623 (0.1451 0.5531) 0.1696 (0.0 [...]
+Eptesicus_fuscus     0.1771 (0.1611 0.9101) 0.3982 (0.2546 0.6394)-1.0000 (0.2700 -1.0000) 0.2541 (0.1662 0.6538) 0.2387 (0.1819 0.7620) 0.2041 (0.1309 0.6416) 0.2333 (0.1252 0.5366) 0.1668 (0.1223 0.7334) 0.2388 (0.1588 0.6649) 0.1361 (0.1016 0.7466) 0.2196 (0.0656 0.2987) 0.1595 (0.0346 0.2170) 0.3397 (0.0794 0.2338) 0.1000 (0.0345 0.3454) 0.2541 (0.0761 0.2996) 0.3684 (0.1031 0.2800) 0.5147 (0.1007 0.1956) 0.6155 (0.2652 0.4308) 0.6027 (0.2264 0.3757) 0.5105 (0.2403 0.4707) 0.3704 (0. [...]
+Eptesicus_bruneus    0.0932 (0.1474 1.5816) 0.3525 (0.2609 0.7401)-1.0000 (0.2771 -1.0000) 0.2630 (0.1638 0.6230) 0.2524 (0.1636 0.6481) 0.2101 (0.1434 0.6825) 0.1633 (0.0847 0.5183) 0.1991 (0.1280 0.6428) 0.1654 (0.1537 0.9295) 0.1031 (0.0772 0.7485) 0.1875 (0.0686 0.3657) 0.1473 (0.0468 0.3177) 0.3303 (0.1178 0.3567) 0.1112 (0.0467 0.4201) 0.2808 (0.0929 0.3310) 0.3960 (0.1224 0.3090) 0.5400 (0.1255 0.2325) 0.4396 (0.2555 0.5812) 0.4409 (0.1914 0.4340) 0.4126 (0.2114 0.5124) 0.2892 (0. [...]
+Eptesicus_brasiliensis 0.1771 (0.1611 0.9101) 0.3982 (0.2546 0.6394)-1.0000 (0.2700 -1.0000) 0.2541 (0.1662 0.6538) 0.2387 (0.1819 0.7620) 0.2041 (0.1309 0.6416) 0.2333 (0.1252 0.5366) 0.1668 (0.1223 0.7334) 0.2388 (0.1588 0.6649) 0.1361 (0.1016 0.7466) 0.2196 (0.0656 0.2987) 0.1595 (0.0346 0.2170) 0.3397 (0.0794 0.2338) 0.1000 (0.0345 0.3454) 0.2541 (0.0761 0.2996) 0.3684 (0.1031 0.2800) 0.5147 (0.1007 0.1956) 0.6155 (0.2652 0.4308) 0.6027 (0.2264 0.3757) 0.5105 (0.2403 0.4707) 0.3704 ( [...]
+Bos_taurus           0.1221 (0.2087 1.7092) 0.5577 (0.3060 0.5486) 0.0638 (0.2713 4.2543) 0.2616 (0.2077 0.7940) 0.3033 (0.2477 0.8167) 0.2224 (0.2001 0.8996) 0.2439 (0.1649 0.6761) 0.2279 (0.1934 0.8487) 0.1964 (0.2088 1.0633) 0.1808 (0.1500 0.8296) 0.2493 (0.1382 0.5541) 0.2294 (0.0993 0.4329) 0.3481 (0.1365 0.3922) 0.1861 (0.1048 0.5631) 0.2043 (0.1292 0.6323) 0.2398 (0.1454 0.6063) 0.3891 (0.0558 0.1433) 0.4861 (0.2860 0.5884) 0.5247 (0.2733 0.5208) 0.4827 (0.2745 0.5686) 0.3247 (0.2 [...]
+Homo_sapiens         0.1621 (0.2180 1.3447) 0.2563 (0.2765 1.0789) 0.1654 (0.2048 1.2382) 0.2609 (0.1852 0.7097) 0.2932 (0.2309 0.7873) 0.2737 (0.2006 0.7328) 0.1798 (0.1154 0.6416) 0.3064 (0.2215 0.7228) 0.2324 (0.1666 0.7171) 0.2475 (0.2685 1.0848) 0.3482 (0.2224 0.6387) 0.3352 (0.1970 0.5879) 0.3124 (0.1761 0.5637) 0.3140 (0.2154 0.6858) 0.3614 (0.2587 0.7158) 0.4066 (0.2782 0.6841) 0.5192 (0.2912 0.5608) 0.4804 (0.0436 0.0908) 0.9237 (0.1361 0.1474) 0.6151 (0.1579 0.2567) 0.6295 (0.1 [...]
+Clethrionomys_glareolus 0.1051 (0.2359 2.2448) 0.2500 (0.2611 1.0445) 0.1556 (0.2169 1.3944) 0.1421 (0.1381 0.9719) 0.0616 (0.1620 2.6311) 0.0998 (0.1258 1.2602) 0.0963 (0.0943 0.9799) 0.1216 (0.1194 0.9819) 0.2237 (0.1269 0.5672) 0.1787 (0.2127 1.1899) 0.2180 (0.1904 0.8732) 0.2400 (0.1474 0.6141) 0.1832 (0.1189 0.6489) 0.1885 (0.1594 0.8455) 0.2401 (0.2060 0.8579) 0.2909 (0.2382 0.8189) 0.3299 (0.2652 0.8038) 0.1771 (0.2317 1.3080) 0.1996 (0.1961 0.9824) 0.2181 (0.2092 0.9591) 0.1574 ( [...]
+Microtus_agrestis    0.1153 (0.2291 1.9861) 0.3568 (0.2824 0.7916) 0.1360 (0.1990 1.4632) 0.1862 (0.1245 0.6687) 0.1146 (0.1621 1.4151) 0.2340 (0.1531 0.6545) 0.1375 (0.0926 0.6729) 0.1833 (0.1390 0.7581) 0.2162 (0.1034 0.4784) 0.2789 (0.2206 0.7911) 0.2782 (0.1864 0.6700) 0.2468 (0.1445 0.5853) 0.1887 (0.1165 0.6176) 0.1955 (0.1561 0.7989) 0.2650 (0.2142 0.8083) 0.3187 (0.2462 0.7726) 0.3602 (0.2458 0.6826) 0.2496 (0.2147 0.8602) 0.2675 (0.1804 0.6742) 0.2914 (0.1929 0.6620) 0.2067 (0.1 [...]
+Peromyscus_leucopus  0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0.0 [...]
+Apodemus_sylvaticus  0.0874 (0.1827 2.0896) 0.2715 (0.2576 0.9489) 0.0513 (0.1821 3.5492) 0.0970 (0.0862 0.8891) 0.1254 (0.1186 0.9462) 0.1375 (0.1101 0.8007) 0.0816 (0.0661 0.8097) 0.1048 (0.1077 1.0278) 0.1442 (0.0962 0.6669) 0.1960 (0.1869 0.9537) 0.1557 (0.1411 0.9060) 0.1463 (0.1040 0.7113) 0.1042 (0.0779 0.7481) 0.1329 (0.1149 0.8648) 0.2199 (0.1565 0.7118) 0.2503 (0.1797 0.7180) 0.2554 (0.1871 0.7323) 0.2257 (0.1994 0.8834) 0.2187 (0.1606 0.7343) 0.2394 (0.1725 0.7208) 0.1655 (0.1 [...]
+Murina_cyclotis      0.1166 (0.1607 1.3780) 0.3526 (0.2808 0.7965)-1.0000 (0.2839 -1.0000) 0.1879 (0.1676 0.8923) 0.2522 (0.1939 0.7688) 0.1497 (0.1194 0.7978) 0.1846 (0.1248 0.6764) 0.1752 (0.1454 0.8301) 0.1877 (0.1583 0.8435) 0.1334 (0.1119 0.8389) 0.1307 (0.0654 0.5004) 0.0875 (0.0345 0.3944) 0.1915 (0.0792 0.4138) 0.0885 (0.0446 0.5041) 0.1465 (0.0654 0.4463) 0.2173 (0.0920 0.4231) 0.3631 (0.1004 0.2765) 0.3844 (0.2645 0.6880) 0.4535 (0.2321 0.5119) 0.3929 (0.2461 0.6263) 0.2643 (0. [...]
+Ovis_dalli           0.1607 (0.1959 1.2189) 0.5506 (0.3038 0.5518) 0.0870 (0.2589 2.9753) 0.2348 (0.2052 0.8740) 0.3163 (0.2407 0.7610) 0.2662 (0.1975 0.7422) 0.2169 (0.1622 0.7480) 0.2254 (0.1908 0.8465) 0.1954 (0.2062 1.0556) 0.1381 (0.1260 0.9123) 0.2430 (0.1354 0.5573) 0.2203 (0.0964 0.4378) 0.3367 (0.1338 0.3975) 0.1800 (0.1019 0.5662) 0.1606 (0.1139 0.7091) 0.1906 (0.1299 0.6812) 0.3262 (0.0561 0.1720) 0.5046 (0.2882 0.5712) 0.5179 (0.2624 0.5067) 0.4763 (0.2723 0.5716) 0.3211 (0.2 [...]
+Ovis_aries           0.1360 (0.1951 1.4342) 0.5971 (0.3026 0.5069) 0.1137 (0.2578 2.2685) 0.2535 (0.2045 0.8065) 0.3264 (0.2442 0.7481) 0.2374 (0.1968 0.8291) 0.2349 (0.1617 0.6882) 0.2441 (0.1901 0.7787) 0.2124 (0.2054 0.9670) 0.1490 (0.1255 0.8424) 0.2644 (0.1349 0.5103) 0.2427 (0.0961 0.3960) 0.3727 (0.1334 0.3578) 0.1960 (0.1016 0.5183) 0.1735 (0.1135 0.6541) 0.2062 (0.1294 0.6277) 0.3943 (0.0559 0.1419) 0.5504 (0.2871 0.5217) 0.5664 (0.2614 0.4615) 0.5179 (0.2712 0.5236) 0.3468 (0.2 [...]
+Pan_paniscus         0.1972 (0.2433 1.2338) 0.2724 (0.2822 1.0357) 0.2189 (0.2333 1.0655) 0.2943 (0.1999 0.6791) 0.3191 (0.2554 0.8006) 0.2762 (0.2158 0.7813) 0.1873 (0.1279 0.6829) 0.3631 (0.2511 0.6915) 0.2965 (0.1812 0.6113) 0.2729 (0.2676 0.9803) 0.4224 (0.2719 0.6436) 0.3707 (0.2189 0.5905) 0.3470 (0.1961 0.5652) 0.3436 (0.2381 0.6929) 0.3774 (0.3004 0.7959) 0.4229 (0.3212 0.7596) 0.5904 (0.3319 0.5622) 0.8833 (0.0678 0.0767) 0.7325 (0.1544 0.2108) 0.5723 (0.1660 0.2901) 0.6539 (0.1 [...]
+Pan_troglodytes      0.2248 (0.2645 1.1769) 0.3035 (0.3041 1.0020) 0.2167 (0.2522 1.1641) 0.3420 (0.2220 0.6491) 0.4118 (0.2799 0.6797) 0.3277 (0.2324 0.7091) 0.2356 (0.1451 0.6161) 0.3547 (0.2615 0.7372) 0.3217 (0.1984 0.6165) 0.2303 (0.2769 1.2026) 0.4751 (0.2756 0.5801) 0.4222 (0.2238 0.5301) 0.3960 (0.2013 0.5082) 0.3883 (0.2426 0.6247) 0.4583 (0.3104 0.6771) 0.5126 (0.3308 0.6453) 0.7004 (0.3388 0.4837) 1.6255 (0.0748 0.0460) 0.9878 (0.1711 0.1732) 0.7330 (0.1826 0.2491) 0.8418 (0.1 [...]
+Trachypithecus_cristatus 0.1296 (0.1719 1.3257) 0.3648 (0.2433 0.6671) 0.1324 (0.1611 1.2161) 0.2671 (0.1441 0.5393) 0.2722 (0.1468 0.5393) 0.2591 (0.1529 0.5901) 0.1264 (0.0560 0.4431) 0.2695 (0.1586 0.5885) 0.2106 (0.1193 0.5666) 0.2076 (0.1935 0.9324) 0.4162 (0.1944 0.4671) 0.3458 (0.1471 0.4253) 0.2930 (0.1248 0.4259) 0.2996 (0.1586 0.5292) 0.3521 (0.2041 0.5797) 0.3700 (0.2161 0.5842) 0.4497 (0.2497 0.5552) 0.8572 (0.1011 0.1179) 0.6743 (0.1174 0.1740) 0.7458 (0.1282 0.1719) 0.8680  [...]
+Peromyscus_maniculatus 0.0881 (0.1560 1.7703) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1160 (0.0762 0.6566) 0.0814 (0.0854 1.0496) 0.1419 (0.0959 0.6760) 0.0466 (0.0323 0.6943) 0.1167 (0.0781 0.6695) 0.1300 (0.0623 0.4793) 0.2316 (0.1696 0.7323) 0.1655 (0.1264 0.7636) 0.1452 (0.0883 0.6082) 0.0980 (0.0627 0.6401) 0.1337 (0.0990 0.7403) 0.2273 (0.1451 0.6385) 0.2611 (0.1680 0.6436) 0.2662 (0.1752 0.6580) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0 [...]
+Peromyscus_polionotus 0.0713 (0.1560 2.1873) 0.2906 (0.2134 0.7342) 0.1000 (0.1571 1.5704) 0.1051 (0.0762 0.7252) 0.0814 (0.0854 1.0496) 0.1285 (0.0959 0.7464) 0.0466 (0.0323 0.6943) 0.1055 (0.0781 0.7403) 0.1165 (0.0623 0.5350) 0.2316 (0.1696 0.7323) 0.1828 (0.1264 0.6914) 0.1312 (0.0883 0.6735) 0.0886 (0.0627 0.7083) 0.1478 (0.0990 0.6695) 0.2528 (0.1451 0.5742) 0.2904 (0.1680 0.5786) 0.2402 (0.1752 0.7292) 0.2116 (0.1596 0.7545) 0.1947 (0.1225 0.6292) 0.2162 (0.1337 0.6186) 0.1355 (0. [...]
+Myotis_lucifugus     0.1194 (0.1611 1.3497) 0.3933 (0.2540 0.6459)-1.0000 (0.2840 -1.0000) 0.2690 (0.1538 0.5718) 0.1742 (0.1230 0.7060) 0.2205 (0.1362 0.6176) 0.2081 (0.1048 0.5035) 0.1632 (0.0958 0.5871) 0.2154 (0.1437 0.6670) 0.1507 (0.0970 0.6434) 0.0911 (0.0295 0.3237) 0.1053 (0.0295 0.2800) 0.3034 (0.0987 0.3255) 0.0785 (0.0301 0.3835) 0.2539 (0.0892 0.3511) 0.3554 (0.1173 0.3301) 0.5390 (0.1224 0.2271) 0.4373 (0.2754 0.6297) 0.4337 (0.2181 0.5029) 0.4693 (0.2320 0.4944) 0.3129 (0. [...]
+Myotis_daubentoni    0.1013 (0.1611 1.5892) 0.4102 (0.2751 0.6707)-1.0000 (0.2906 -1.0000) 0.2595 (0.1800 0.6938) 0.1587 (0.1434 0.9032) 0.2364 (0.1597 0.6754) 0.2070 (0.1222 0.5904) 0.1324 (0.0961 0.7263) 0.2343 (0.1626 0.6939) 0.1501 (0.1079 0.7187) 0.1346 (0.0510 0.3789) 0.1540 (0.0510 0.3312) 0.3267 (0.1207 0.3695) 0.1176 (0.0509 0.4330) 0.2765 (0.1022 0.3696) 0.3781 (0.1313 0.3473) 0.4812 (0.1323 0.2749) 0.4517 (0.2966 0.6567) 0.4369 (0.2184 0.5000) 0.4102 (0.2389 0.5825) 0.2992 (0. [...]
+Chalinolobus_beatrix 0.1261 (0.1236 0.9802) 0.3154 (0.2339 0.7417)-1.0000 (0.2845 -1.0000) 0.2884 (0.1655 0.5740) 0.2339 (0.1470 0.6285) 0.1644 (0.1052 0.6400) 0.2111 (0.1051 0.4976) 0.1619 (0.1190 0.7348) 0.2350 (0.1560 0.6639) 0.1503 (0.0862 0.5739) 0.1524 (0.0509 0.3339) 0.1044 (0.0301 0.2886) 0.2464 (0.0756 0.3069) 0.0781 (0.0301 0.3849) 0.2846 (0.0909 0.3193) 0.4011 (0.1196 0.2982) 0.5879 (0.1339 0.2278) 0.4733 (0.2252 0.4759) 0.5329 (0.2064 0.3873) 0.5771 (0.2201 0.3813) 0.4051 (0. [...]
+Pipistrellus_savii   0.0937 (0.1475 1.5737) 0.4371 (0.2610 0.5971)-1.0000 (0.2772 -1.0000) 0.2116 (0.1639 0.7746) 0.2531 (0.1637 0.6467) 0.2107 (0.1435 0.6811) 0.1637 (0.0847 0.5173) 0.2247 (0.1281 0.5698) 0.1659 (0.1538 0.9269) 0.1155 (0.0772 0.6685) 0.1879 (0.0686 0.3651) 0.1476 (0.0468 0.3171) 0.3310 (0.1179 0.3561) 0.1271 (0.0467 0.3676) 0.2814 (0.0930 0.3304) 0.3969 (0.1224 0.3085) 0.8221 (0.1256 0.1528) 0.4407 (0.2556 0.5801) 0.5791 (0.1914 0.3306) 0.5292 (0.2115 0.3997) 0.3686 (0. [...]
+Corynorhinus_townsendii 0.1475 (0.1713 1.1615) 0.3597 (0.2662 0.7403)-1.0000 (0.2534 -1.0000) 0.2290 (0.1703 0.7439) 0.2337 (0.1682 0.7196) 0.2378 (0.1438 0.6047) 0.2518 (0.1212 0.4814) 0.1853 (0.1022 0.5513) 0.2205 (0.1717 0.7789) 0.1794 (0.1182 0.6584) 0.2514 (0.0795 0.3161) 0.2037 (0.0484 0.2377) 0.3625 (0.0924 0.2549) 0.1598 (0.0586 0.3665) 0.2694 (0.0967 0.3590) 0.3679 (0.1241 0.3374) 0.7954 (0.1481 0.1862) 0.4517 (0.2625 0.5811) 0.4646 (0.2124 0.4572) 0.4342 (0.2317 0.5337) 0.3489  [...]
+Trachypithecus_geei  0.1477 (0.1719 1.1639) 0.3321 (0.2435 0.7331) 0.1491 (0.1611 1.0806) 0.2754 (0.1335 0.4847) 0.2812 (0.1352 0.4808) 0.2664 (0.1421 0.5334) 0.1179 (0.0464 0.3938) 0.2789 (0.1473 0.5283) 0.2141 (0.1087 0.5075) 0.2170 (0.1821 0.8390) 0.4386 (0.1826 0.4162) 0.3612 (0.1360 0.3766) 0.3020 (0.1145 0.3790) 0.3111 (0.1473 0.4735) 0.3700 (0.1920 0.5187) 0.3900 (0.2038 0.5226) 0.4761 (0.2370 0.4977) 1.1684 (0.1011 0.0865) 0.7652 (0.1072 0.1401) 0.8516 (0.1179 0.1384) 1.0308 (0.1 [...]
+Trachypithecus_pileatus 0.1296 (0.1719 1.3257) 0.3656 (0.2435 0.6658) 0.1491 (0.1611 1.0806) 0.2480 (0.1335 0.5384) 0.2512 (0.1352 0.5383) 0.2412 (0.1421 0.5890) 0.1049 (0.0464 0.4424) 0.2789 (0.1473 0.5283) 0.1921 (0.1087 0.5655) 0.2170 (0.1821 0.8390) 0.3915 (0.1826 0.4663) 0.3203 (0.1360 0.4246) 0.2692 (0.1145 0.4253) 0.3111 (0.1473 0.4735) 0.3318 (0.1920 0.5786) 0.3496 (0.2038 0.5831) 0.5322 (0.2370 0.4453) 0.8586 (0.1011 0.1178) 0.9945 (0.1072 0.1078) 1.1065 (0.1179 0.1065) 1.4456 ( [...]
+Semnopithecus_entellus 0.1415 (0.1912 1.3516) 0.2728 (0.2498 0.9158) 0.1540 (0.1916 1.2435) 0.2516 (0.1700 0.6755) 0.2434 (0.1594 0.6549) 0.1981 (0.1573 0.7942) 0.1195 (0.0674 0.5635) 0.2293 (0.1515 0.6606) 0.2084 (0.1467 0.7039) 0.1966 (0.2106 1.0712) 0.3583 (0.2120 0.5918) 0.2987 (0.1625 0.5440) 0.2536 (0.1441 0.5682) 0.2610 (0.1745 0.6687) 0.3368 (0.2226 0.6609) 0.3529 (0.2352 0.6664) 0.4998 (0.2837 0.5677) 0.6275 (0.1291 0.2057) 0.5215 (0.1308 0.2509) 0.5743 (0.1422 0.2476) 0.5425 (0 [...]
+Trachypithecus_francoisi 0.1477 (0.1719 1.1639) 0.3321 (0.2435 0.7331) 0.1491 (0.1611 1.0806) 0.2754 (0.1335 0.4847) 0.2812 (0.1352 0.4808) 0.2664 (0.1421 0.5334) 0.1179 (0.0464 0.3938) 0.2789 (0.1473 0.5283) 0.2141 (0.1087 0.5075) 0.2170 (0.1821 0.8390) 0.4386 (0.1826 0.4162) 0.3612 (0.1360 0.3766) 0.3020 (0.1145 0.3790) 0.3111 (0.1473 0.4735) 0.3700 (0.1920 0.5187) 0.3900 (0.2038 0.5226) 0.4761 (0.2370 0.4977) 1.1684 (0.1011 0.0865) 0.7652 (0.1072 0.1401) 0.8516 (0.1179 0.1384) 1.0308  [...]
+Mus_famulus          0.1421 (0.2019 1.4211) 0.2872 (0.2823 0.9829) 0.0841 (0.2190 2.6049) 0.0937 (0.0908 0.9685) 0.1577 (0.1466 0.9293) 0.2131 (0.1367 0.6414) 0.1134 (0.0856 0.7549) 0.1201 (0.1286 1.0705) 0.1684 (0.1215 0.7217) 0.2121 (0.2176 1.0261) 0.1981 (0.1647 0.8315) 0.1950 (0.1266 0.6495) 0.1460 (0.0999 0.6840) 0.1738 (0.1378 0.7927) 0.2256 (0.1809 0.8017) 0.2529 (0.2047 0.8092) 0.2579 (0.2124 0.8236) 0.1947 (0.1981 1.0175) 0.2174 (0.1821 0.8376) 0.2370 (0.1945 0.8206) 0.1701 (0.1 [...]
+Mus_pahari           0.1205 (0.2017 1.6730) 0.3786 (0.2888 0.7626) 0.1328 (0.2188 1.6476) 0.1148 (0.1061 0.9238) 0.1568 (0.1464 0.9341) 0.2142 (0.1310 0.6117) 0.1025 (0.0906 0.8837) 0.1193 (0.1284 1.0764) 0.1513 (0.1214 0.8026) 0.1875 (0.1934 1.0316) 0.2146 (0.1704 0.7938) 0.2132 (0.1320 0.6189) 0.1611 (0.1051 0.6521) 0.1894 (0.1432 0.7563) 0.2168 (0.1698 0.7834) 0.2447 (0.1934 0.7906) 0.2783 (0.2185 0.7850) 0.2900 (0.2276 0.7850) 0.2704 (0.1763 0.6518) 0.2943 (0.1885 0.6403) 0.2090 (0.1 [...]
+Mus_cookii           0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Plecotus_townsemdii  0.1475 (0.1713 1.1615) 0.3597 (0.2662 0.7403)-1.0000 (0.2534 -1.0000) 0.2290 (0.1703 0.7439) 0.2337 (0.1682 0.7196) 0.2378 (0.1438 0.6047) 0.2518 (0.1212 0.4814) 0.1853 (0.1022 0.5513) 0.2205 (0.1717 0.7789) 0.1794 (0.1182 0.6584) 0.2514 (0.0795 0.3161) 0.2037 (0.0484 0.2377) 0.3625 (0.0924 0.2549) 0.1598 (0.0586 0.3665) 0.2694 (0.0967 0.3590) 0.3679 (0.1241 0.3374) 0.7954 (0.1481 0.1862) 0.4517 (0.2625 0.5811) 0.4646 (0.2124 0.4572) 0.4342 (0.2317 0.5337) 0.3489 (0. [...]
+Plecotus_auritus     0.1672 (0.1713 1.0246) 0.3679 (0.2690 0.7312)-1.0000 (0.2534 -1.0000) 0.2351 (0.1669 0.7098) 0.2702 (0.1904 0.7047) 0.2468 (0.1482 0.6004) 0.2620 (0.1260 0.4807) 0.2088 (0.1348 0.6454) 0.2293 (0.1759 0.7672) 0.1388 (0.0933 0.6722) 0.2333 (0.0796 0.3412) 0.1498 (0.0394 0.2628) 0.2938 (0.0822 0.2798) 0.1254 (0.0492 0.3922) 0.1892 (0.0673 0.3559) 0.2764 (0.0928 0.3356) 0.8291 (0.1273 0.1536) 0.5008 (0.2633 0.5257) 0.5204 (0.2143 0.4118) 0.4462 (0.2354 0.5276) 0.3576 (0. [...]
+Trachypithecus_johnii 0.1848 (0.2047 1.1080) 0.3995 (0.2680 0.6709) 0.1692 (0.1923 1.1367) 0.2852 (0.1547 0.5422) 0.3270 (0.1584 0.4843) 0.2759 (0.1637 0.5932) 0.1658 (0.0657 0.3964) 0.3191 (0.1698 0.5321) 0.2590 (0.1373 0.5302) 0.2682 (0.2049 0.7642) 0.5374 (0.2123 0.3950) 0.4604 (0.1638 0.3559) 0.3823 (0.1458 0.3814) 0.3897 (0.1756 0.4507) 0.4504 (0.2225 0.4941) 0.4718 (0.2348 0.4977) 0.6353 (0.2688 0.4232) 1.2283 (0.1259 0.1025) 0.9060 (0.1276 0.1408) 0.9962 (0.1386 0.1391) 0.9399 (0. [...]
+Trachypithecus_vetulus 0.1415 (0.1912 1.3516) 0.2728 (0.2498 0.9158) 0.1540 (0.1916 1.2435) 0.2516 (0.1700 0.6755) 0.2434 (0.1594 0.6549) 0.1981 (0.1573 0.7942) 0.1195 (0.0674 0.5635) 0.2293 (0.1515 0.6606) 0.2084 (0.1467 0.7039) 0.1966 (0.2106 1.0712) 0.3583 (0.2120 0.5918) 0.2987 (0.1625 0.5440) 0.2536 (0.1441 0.5682) 0.2610 (0.1745 0.6687) 0.3368 (0.2226 0.6609) 0.3529 (0.2352 0.6664) 0.4998 (0.2837 0.5677) 0.6275 (0.1291 0.2057) 0.5215 (0.1308 0.2509) 0.5743 (0.1422 0.2476) 0.5425 (0 [...]
+Trachypithecus_obscurus 0.1296 (0.1719 1.3257) 0.3648 (0.2433 0.6671) 0.1324 (0.1611 1.2161) 0.2671 (0.1441 0.5393) 0.2722 (0.1468 0.5393) 0.2591 (0.1529 0.5901) 0.1264 (0.0560 0.4431) 0.2695 (0.1586 0.5885) 0.2106 (0.1193 0.5666) 0.2076 (0.1935 0.9324) 0.4162 (0.1944 0.4671) 0.3458 (0.1471 0.4253) 0.2930 (0.1248 0.4259) 0.2996 (0.1586 0.5292) 0.3521 (0.2041 0.5797) 0.3700 (0.2161 0.5842) 0.4497 (0.2497 0.5552) 0.8572 (0.1011 0.1179) 0.6743 (0.1174 0.1740) 0.7458 (0.1282 0.1719) 0.8680 ( [...]
+Trachypithecus_phayrei 0.1296 (0.1719 1.3257) 0.3634 (0.2495 0.6866) 0.1324 (0.1611 1.2161) 0.2662 (0.1474 0.5539) 0.2712 (0.1505 0.5550) 0.2582 (0.1565 0.6062) 0.1260 (0.0573 0.4546) 0.2683 (0.1625 0.6056) 0.2095 (0.1222 0.5830) 0.1902 (0.1861 0.9784) 0.4158 (0.1993 0.4793) 0.3453 (0.1507 0.4363) 0.2925 (0.1277 0.4365) 0.2987 (0.1625 0.5440) 0.3308 (0.1898 0.5739) 0.3490 (0.2019 0.5785) 0.4373 (0.2366 0.5409) 1.1673 (0.1032 0.0884) 0.8199 (0.1042 0.1271) 0.6818 (0.1203 0.1765) 0.8708 (0 [...]
+Mus_spretus          0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Mus_spicilegus       0.1387 (0.1820 1.3121) 0.3394 (0.2694 0.7937) 0.1141 (0.2000 1.7527) 0.1290 (0.1011 0.7837) 0.1056 (0.1294 1.2259) 0.1987 (0.1204 0.6059) 0.1009 (0.0757 0.7500) 0.1371 (0.1179 0.8595) 0.1555 (0.1060 0.6817) 0.2306 (0.1998 0.8662) 0.2275 (0.1535 0.6748) 0.2219 (0.1160 0.5227) 0.1624 (0.0896 0.5516) 0.1978 (0.1270 0.6417) 0.2126 (0.1693 0.7961) 0.2610 (0.1989 0.7619) 0.3017 (0.2003 0.6639) 0.2372 (0.2043 0.8610) 0.2518 (0.1710 0.6791) 0.2745 (0.1831 0.6670) 0.1934 (0.1 [...]
+Mus_macedonicus      0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0.1 [...]
+Mus_musculus_domesticus 0.1387 (0.1820 1.3121) 0.3394 (0.2694 0.7937) 0.1141 (0.2000 1.7527) 0.1290 (0.1011 0.7837) 0.1056 (0.1294 1.2259) 0.1987 (0.1204 0.6059) 0.1009 (0.0757 0.7500) 0.1371 (0.1179 0.8595) 0.1555 (0.1060 0.6817) 0.2306 (0.1998 0.8662) 0.2275 (0.1535 0.6748) 0.2219 (0.1160 0.5227) 0.1624 (0.0896 0.5516) 0.1978 (0.1270 0.6417) 0.2126 (0.1693 0.7961) 0.2610 (0.1989 0.7619) 0.3017 (0.2003 0.6639) 0.2372 (0.2043 0.8610) 0.2518 (0.1710 0.6791) 0.2745 (0.1831 0.6670) 0.1934 ( [...]
+Mus_musculus_musculus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0. [...]
+Mus_musculus_bactrianus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 ( [...]
+Mus_musculus_castaneus 0.1252 (0.1828 1.4603) 0.3134 (0.2704 0.8628) 0.0983 (0.2008 2.0419) 0.1192 (0.1015 0.8513) 0.1220 (0.1299 1.0644) 0.1829 (0.1208 0.6603) 0.0932 (0.0759 0.8151) 0.1265 (0.1183 0.9349) 0.1434 (0.1064 0.7419) 0.2124 (0.2005 0.9442) 0.2099 (0.1541 0.7341) 0.2031 (0.1164 0.5729) 0.1489 (0.0899 0.6036) 0.1822 (0.1274 0.6994) 0.2413 (0.1699 0.7041) 0.2725 (0.1935 0.7101) 0.2776 (0.2011 0.7244) 0.2371 (0.2109 0.8898) 0.2322 (0.1716 0.7389) 0.2534 (0.1838 0.7253) 0.1787 (0 [...]
+
+
+TREE #  1:  ((1, 2), ((((5, 6), ((((18, (32, (44, ((69, 70), 61)))), (((45, (((79, 80), ((88, 89), 81)), (((90, 91), 82), 71))), (46, 47)), ((48, 49), 33))), ((19, 20), (21, (34, 35)))), 7)), ((8, (((((50, (62, 63)), (51, 52)), (36, (53, (64, (72, 73))))), ((37, (((((((93, 94), (((97, 98), 96), 95)), 92), 83), (84, 85)), 65), 54)), (38, (55, 56)))), 9)), 4)), (3, ((((11, (22, 23)), (12, 13)), (((24, (39, 40)), ((((66, (74, 75)), ((76, 77), (78, (86, 87)))), (57, 58, 59)), 25)), (14, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:195):  -3393.537520      +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..5   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..32  109..110 110..44  110..111 111..112 112..69  112..70  111..61  107..113 113..114 114..115 115..45  115..116 116..117 117..118 118..79  118..80  117..119 119..120 120..88  120..89  119..81  116..121 121..122 122..123 123..90  123..91  122..82  121..71  114..124 124..46  124..47  113..125 125..126 126..48  126..49  125..33  106..127 127..128 128.. [...]
+ 0.017193 0.784533 0.938480 0.105619 0.000004 0.000004 0.000004 0.500859 0.430502 0.050633 0.158263 0.042588 0.144023 0.083088 0.006059 0.161639 0.052813 0.090270 0.000004 0.069817 0.020652 0.021297 0.119648 0.051713 0.000004 0.038545 0.081484 0.019514 0.000004 0.000004 0.000004 0.019184 0.120961 0.000004 0.100698 0.000004 0.000004 0.038535 0.000004 0.000004 0.000004 0.000004 0.038536 0.000004 0.019099 0.038488 0.101162 0.000004 0.000004 0.018723 0.000004 0.000004 0.180495 0.054942 0.060 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  14.49379
+
+((1: 0.784533, 2: 0.938480): 0.017193, ((((5: 0.500859, 6: 0.430502): 0.000004, ((((18: 0.083088, (32: 0.161639, (44: 0.090270, ((69: 0.020652, 70: 0.021297): 0.069817, 61: 0.119648): 0.000004): 0.052813): 0.006059): 0.144023, (((45: 0.081484, (((79: 0.000004, 80: 0.019184): 0.000004, ((88: 0.100698, 89: 0.000004): 0.000004, 81: 0.000004): 0.120961): 0.000004, (((90: 0.000004, 91: 0.000004): 0.000004, 82: 0.038536): 0.000004, 71: 0.000004): 0.038535): 0.019514): 0.038545, (46: 0.038488,  [...]
+
+((Loxodonta_africana: 0.784533, Procavia_capensis: 0.938480): 0.017193, ((((Cynocephalus_variegatus: 0.500859, Tupaia_belangeri: 0.430502): 0.000004, ((((Hylobates_lar: 0.083088, (Pongo_pygmaeus: 0.161639, (Gorilla_gorilla: 0.090270, ((Pan_paniscus: 0.020652, Pan_troglodytes: 0.021297): 0.069817, Homo_sapiens: 0.119648): 0.000004): 0.052813): 0.006059): 0.144023, (((Nasalis_larvatus: 0.081484, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.019184): 0.000004, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.43282
+
+omega (dN/dS) =  0.53748
+
+dN & dS for each branch
+
+ branch          t       N       S   dN/dS      dN      dS  N*dN  S*dS
+
+  99..100    0.017   128.5    66.5  0.5375  0.0044  0.0082   0.6   0.5
+ 100..1      0.785   128.5    66.5  0.5375  0.2022  0.3762  26.0  25.0
+ 100..2      0.938   128.5    66.5  0.5375  0.2419  0.4500  31.1  29.9
+  99..101    0.106   128.5    66.5  0.5375  0.0272  0.0506   3.5   3.4
+ 101..102    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 102..103    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 103..104    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 104..5      0.501   128.5    66.5  0.5375  0.1291  0.2402  16.6  16.0
+ 104..6      0.431   128.5    66.5  0.5375  0.1110  0.2064  14.3  13.7
+ 103..105    0.051   128.5    66.5  0.5375  0.0131  0.0243   1.7   1.6
+ 105..106    0.158   128.5    66.5  0.5375  0.0408  0.0759   5.2   5.0
+ 106..107    0.043   128.5    66.5  0.5375  0.0110  0.0204   1.4   1.4
+ 107..108    0.144   128.5    66.5  0.5375  0.0371  0.0691   4.8   4.6
+ 108..18     0.083   128.5    66.5  0.5375  0.0214  0.0398   2.8   2.6
+ 108..109    0.006   128.5    66.5  0.5375  0.0016  0.0029   0.2   0.2
+ 109..32     0.162   128.5    66.5  0.5375  0.0417  0.0775   5.4   5.2
+ 109..110    0.053   128.5    66.5  0.5375  0.0136  0.0253   1.7   1.7
+ 110..44     0.090   128.5    66.5  0.5375  0.0233  0.0433   3.0   2.9
+ 110..111    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 111..112    0.070   128.5    66.5  0.5375  0.0180  0.0335   2.3   2.2
+ 112..69     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+ 112..70     0.021   128.5    66.5  0.5375  0.0055  0.0102   0.7   0.7
+ 111..61     0.120   128.5    66.5  0.5375  0.0308  0.0574   4.0   3.8
+ 107..113    0.052   128.5    66.5  0.5375  0.0133  0.0248   1.7   1.6
+ 113..114    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 114..115    0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 115..45     0.081   128.5    66.5  0.5375  0.0210  0.0391   2.7   2.6
+ 115..116    0.020   128.5    66.5  0.5375  0.0050  0.0094   0.6   0.6
+ 116..117    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 117..118    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 118..79     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 118..80     0.019   128.5    66.5  0.5375  0.0049  0.0092   0.6   0.6
+ 117..119    0.121   128.5    66.5  0.5375  0.0312  0.0580   4.0   3.9
+ 119..120    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 120..88     0.101   128.5    66.5  0.5375  0.0260  0.0483   3.3   3.2
+ 120..89     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 119..81     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 116..121    0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 121..122    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 122..123    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 123..90     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 123..91     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 122..82     0.039   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 121..71     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 114..124    0.019   128.5    66.5  0.5375  0.0049  0.0092   0.6   0.6
+ 124..46     0.038   128.5    66.5  0.5375  0.0099  0.0185   1.3   1.2
+ 124..47     0.101   128.5    66.5  0.5375  0.0261  0.0485   3.4   3.2
+ 113..125    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 125..126    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 126..48     0.019   128.5    66.5  0.5375  0.0048  0.0090   0.6   0.6
+ 126..49     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 125..33     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 106..127    0.180   128.5    66.5  0.5375  0.0465  0.0866   6.0   5.8
+ 127..128    0.055   128.5    66.5  0.5375  0.0142  0.0263   1.8   1.8
+ 128..19     0.060   128.5    66.5  0.5375  0.0155  0.0288   2.0   1.9
+ 128..20     0.043   128.5    66.5  0.5375  0.0112  0.0208   1.4   1.4
+ 127..129    0.020   128.5    66.5  0.5375  0.0052  0.0096   0.7   0.6
+ 129..21     0.066   128.5    66.5  0.5375  0.0171  0.0319   2.2   2.1
+ 129..130    0.116   128.5    66.5  0.5375  0.0298  0.0555   3.8   3.7
+ 130..34     0.020   128.5    66.5  0.5375  0.0052  0.0098   0.7   0.6
+ 130..35     0.057   128.5    66.5  0.5375  0.0148  0.0275   1.9   1.8
+ 105..7      0.110   128.5    66.5  0.5375  0.0283  0.0526   3.6   3.5
+ 102..131    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 131..132    0.018   128.5    66.5  0.5375  0.0047  0.0087   0.6   0.6
+ 132..8      0.401   128.5    66.5  0.5375  0.1033  0.1921  13.3  12.8
+ 132..133    0.054   128.5    66.5  0.5375  0.0138  0.0258   1.8   1.7
+ 133..134    0.188   128.5    66.5  0.5375  0.0485  0.0902   6.2   6.0
+ 134..135    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 135..136    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 136..137    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 137..50     0.037   128.5    66.5  0.5375  0.0095  0.0176   1.2   1.2
+ 137..138    0.106   128.5    66.5  0.5375  0.0272  0.0507   3.5   3.4
+ 138..62     0.175   128.5    66.5  0.5375  0.0452  0.0840   5.8   5.6
+ 138..63     0.056   128.5    66.5  0.5375  0.0145  0.0269   1.9   1.8
+ 136..139    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 139..51     0.039   128.5    66.5  0.5375  0.0101  0.0187   1.3   1.2
+ 139..52     0.056   128.5    66.5  0.5375  0.0145  0.0270   1.9   1.8
+ 135..140    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 140..36     0.118   128.5    66.5  0.5375  0.0304  0.0565   3.9   3.8
+ 140..141    0.036   128.5    66.5  0.5375  0.0093  0.0174   1.2   1.2
+ 141..53     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 141..142    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 142..64     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 142..143    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 143..72     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 143..73     0.019   128.5    66.5  0.5375  0.0048  0.0089   0.6   0.6
+ 134..144    0.023   128.5    66.5  0.5375  0.0059  0.0109   0.8   0.7
+ 144..145    0.072   128.5    66.5  0.5375  0.0185  0.0343   2.4   2.3
+ 145..37     0.037   128.5    66.5  0.5375  0.0095  0.0176   1.2   1.2
+ 145..146    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 146..147    0.021   128.5    66.5  0.5375  0.0054  0.0100   0.7   0.7
+ 147..148    0.077   128.5    66.5  0.5375  0.0199  0.0370   2.6   2.5
+ 148..149    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 149..150    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 150..151    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 151..152    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 152..93     0.019   128.5    66.5  0.5375  0.0049  0.0091   0.6   0.6
+ 152..94     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 151..153    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 153..154    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 154..155    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 155..97     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 155..98     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 154..96     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 153..95     0.019   128.5    66.5  0.5375  0.0049  0.0091   0.6   0.6
+ 150..92     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 149..83     0.038   128.5    66.5  0.5375  0.0099  0.0184   1.3   1.2
+ 148..156    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 156..84     0.038   128.5    66.5  0.5375  0.0099  0.0184   1.3   1.2
+ 156..85     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 147..65     0.037   128.5    66.5  0.5375  0.0095  0.0177   1.2   1.2
+ 146..54     0.078   128.5    66.5  0.5375  0.0200  0.0373   2.6   2.5
+ 144..157    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 157..38     0.136   128.5    66.5  0.5375  0.0350  0.0651   4.5   4.3
+ 157..158    0.102   128.5    66.5  0.5375  0.0264  0.0491   3.4   3.3
+ 158..55     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 158..56     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 133..9      0.318   128.5    66.5  0.5375  0.0819  0.1524  10.5  10.1
+ 131..4      0.473   128.5    66.5  0.5375  0.1218  0.2266  15.7  15.1
+ 101..159    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 159..3      1.342   128.5    66.5  0.5375  0.3458  0.6434  44.5  42.8
+ 159..160    0.258   128.5    66.5  0.5375  0.0666  0.1238   8.6   8.2
+ 160..161    0.056   128.5    66.5  0.5375  0.0143  0.0266   1.8   1.8
+ 161..162    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 162..163    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 163..11     0.120   128.5    66.5  0.5375  0.0309  0.0576   4.0   3.8
+ 163..164    0.263   128.5    66.5  0.5375  0.0677  0.1260   8.7   8.4
+ 164..22     0.094   128.5    66.5  0.5375  0.0242  0.0450   3.1   3.0
+ 164..23     0.123   128.5    66.5  0.5375  0.0318  0.0592   4.1   3.9
+ 162..165    0.046   128.5    66.5  0.5375  0.0120  0.0223   1.5   1.5
+ 165..12     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 165..13     0.074   128.5    66.5  0.5375  0.0191  0.0356   2.5   2.4
+ 161..166    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 166..167    0.194   128.5    66.5  0.5375  0.0499  0.0928   6.4   6.2
+ 167..168    0.080   128.5    66.5  0.5375  0.0206  0.0383   2.6   2.5
+ 168..24     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 168..169    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 169..39     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 169..40     0.020   128.5    66.5  0.5375  0.0051  0.0095   0.7   0.6
+ 167..170    0.075   128.5    66.5  0.5375  0.0193  0.0360   2.5   2.4
+ 170..171    0.048   128.5    66.5  0.5375  0.0124  0.0230   1.6   1.5
+ 171..172    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 172..173    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 173..66     0.103   128.5    66.5  0.5375  0.0265  0.0493   3.4   3.3
+ 173..174    0.158   128.5    66.5  0.5375  0.0408  0.0759   5.2   5.0
+ 174..74     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 174..75     0.029   128.5    66.5  0.5375  0.0076  0.0141   1.0   0.9
+ 172..175    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 175..176    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 176..76     0.104   128.5    66.5  0.5375  0.0267  0.0498   3.4   3.3
+ 176..77     0.147   128.5    66.5  0.5375  0.0378  0.0703   4.9   4.7
+ 175..177    0.017   128.5    66.5  0.5375  0.0043  0.0081   0.6   0.5
+ 177..78     0.095   128.5    66.5  0.5375  0.0246  0.0458   3.2   3.0
+ 177..178    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 178..86     0.095   128.5    66.5  0.5375  0.0246  0.0458   3.2   3.0
+ 178..87     0.017   128.5    66.5  0.5375  0.0043  0.0081   0.6   0.5
+ 171..179    0.019   128.5    66.5  0.5375  0.0050  0.0093   0.6   0.6
+ 179..57     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 179..58     0.169   128.5    66.5  0.5375  0.0435  0.0810   5.6   5.4
+ 179..59     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 170..25     0.123   128.5    66.5  0.5375  0.0318  0.0591   4.1   3.9
+ 166..180    0.064   128.5    66.5  0.5375  0.0164  0.0305   2.1   2.0
+ 180..14     0.017   128.5    66.5  0.5375  0.0045  0.0084   0.6   0.6
+ 180..181    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 181..182    0.016   128.5    66.5  0.5375  0.0041  0.0077   0.5   0.5
+ 182..41     0.083   128.5    66.5  0.5375  0.0213  0.0397   2.7   2.6
+ 182..42     0.069   128.5    66.5  0.5375  0.0177  0.0330   2.3   2.2
+ 181..26     0.064   128.5    66.5  0.5375  0.0166  0.0309   2.1   2.1
+ 160..183    0.017   128.5    66.5  0.5375  0.0044  0.0082   0.6   0.5
+ 183..184    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 184..10     0.454   128.5    66.5  0.5375  0.1170  0.2178  15.0  14.5
+ 184..185    0.337   128.5    66.5  0.5375  0.0868  0.1614  11.2  10.7
+ 185..15     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 185..16     0.040   128.5    66.5  0.5375  0.0104  0.0194   1.3   1.3
+ 183..186    0.187   128.5    66.5  0.5375  0.0483  0.0898   6.2   6.0
+ 186..187    0.198   128.5    66.5  0.5375  0.0511  0.0951   6.6   6.3
+ 187..17     0.091   128.5    66.5  0.5375  0.0234  0.0435   3.0   2.9
+ 187..188    0.063   128.5    66.5  0.5375  0.0163  0.0304   2.1   2.0
+ 188..27     0.044   128.5    66.5  0.5375  0.0113  0.0211   1.5   1.4
+ 188..189    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 189..190    0.065   128.5    66.5  0.5375  0.0168  0.0313   2.2   2.1
+ 190..60     0.064   128.5    66.5  0.5375  0.0165  0.0307   2.1   2.0
+ 190..191    0.021   128.5    66.5  0.5375  0.0055  0.0103   0.7   0.7
+ 191..67     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+ 191..68     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 189..43     0.105   128.5    66.5  0.5375  0.0271  0.0504   3.5   3.3
+ 186..192    0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 192..193    0.325   128.5    66.5  0.5375  0.0839  0.1560  10.8  10.4
+ 193..28     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 193..29     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 192..194    0.254   128.5    66.5  0.5375  0.0655  0.1219   8.4   8.1
+ 194..30     0.000   128.5    66.5  0.5375  0.0000  0.0000   0.0   0.0
+ 194..31     0.021   128.5    66.5  0.5375  0.0053  0.0099   0.7   0.7
+
+tree length for dN:       3.7356
+tree length for dS:       6.9502
+
+
+Time used: 1:14:47
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/rst b/examples/evol/data/protamine/PRM1/paml/M0/rst
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/rst
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/rst1 b/examples/evol/data/protamine/PRM1/paml/M0/rst1
new file mode 100644
index 0000000..be5f870
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/rst1
@@ -0,0 +1 @@
+	98	65	64	0.6212	0.017	0.785	0.938	0.106	0.000	0.000	0.000	0.501	0.431	0.051	0.158	0.043	0.144	0.083	0.006	0.162	0.053	0.090	0.000	0.070	0.021	0.021	0.120	0.052	0.000	0.039	0.081	0.020	0.000	0.000	0.000	0.019	0.121	0.000	0.101	0.000	0.000	0.039	0.000	0.000	0.000	0.000	0.039	0.000	0.019	0.038	0.101	0.000	0.000	0.019	0.000	0.000	0.180	0.055	0.060	0.043	0.020	0.066	0.116	0.020	0.057	0.110	0.000	0.018	0.401	0.054	0.188	0.000	0.000	0.000	0.037	0.106	0.175	0.056	0.000	0.039	0.056	0.000	0.118	0 [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/rub b/examples/evol/data/protamine/PRM1/paml/M0/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/M0/tmp.ctl
new file mode 100644
index 0000000..2b89d6c
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 3
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/examples/evol/data/protamine/PRM1/paml/M0/tree b/examples/evol/data/protamine/PRM1/paml/M0/tree
new file mode 100644
index 0000000..cb3443b
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M0/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/2NG.dN b/examples/evol/data/protamine/PRM1/paml/M1/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/2NG.dS b/examples/evol/data/protamine/PRM1/paml/M1/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/2NG.t b/examples/evol/data/protamine/PRM1/paml/M1/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/M1/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/M1.out b/examples/evol/data/protamine/PRM1/paml/M1/M1.out
new file mode 100644
index 0000000..828b000
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/M1.out
@@ -0,0 +1,1465 @@
+
+seed used = 816749121
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  NearlyNeutral
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:196):  -3305.853967     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.032757 1.066674 1.243736 0.068284 0.000000 0.000000 0.000000 0.586361 0.500995 0.051407 0.178646 0.041435 0.157289 0.088961 0.005750 0.174600 0.055413 0.095045 0.000000 0.073407 0.021924 0.022489 0.127636 0.056085 0.000000 0.041368 0.087370 0.021093 0.000000 0.000000 0.000004 0.020621 0.130594 0.000000 0.108563 0.000004 0.000004 0.041320 0.000000 0.000000 0.000004 0.000004 0.041320 0.000004 0.020789 0.041431 0.110589 0.000000 0.000000 0.020195 0.000004 0.000004 0.202534 0.062081 0.066 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  16.82509
+
+((1: 1.066674, 2: 1.243736): 0.032757, ((((7: 0.586361, 6: 0.500995): 0.000000, ((((18: 0.088961, (33: 0.174600, (49: 0.095045, ((71: 0.021924, 70: 0.022489): 0.073407, 61: 0.127636): 0.000000): 0.055413): 0.005750): 0.157289, (((44: 0.087370, (((80: 0.000004, 81: 0.020621): 0.000000, ((88: 0.108563, 89: 0.000004): 0.000000, 79: 0.000004): 0.130594): 0.000000, (((90: 0.000004, 91: 0.000004): 0.000000, 82: 0.041320): 0.000000, 69: 0.000004): 0.041320): 0.021093): 0.041368, (46: 0.041431,  [...]
+
+((Loxodonta_africana: 1.066674, Procavia_capensis: 1.243736): 0.032757, ((((Cynocephalus_variegatus: 0.586361, Tupaia_belangeri: 0.500995): 0.000000, ((((Hylobates_lar: 0.088961, (Pongo_pygmaeus: 0.174600, (Gorilla_gorilla: 0.095045, ((Pan_paniscus: 0.021924, Pan_troglodytes: 0.022489): 0.073407, Homo_sapiens: 0.127636): 0.000000): 0.055413): 0.005750): 0.157289, (((Nasalis_larvatus: 0.087370, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.020621): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.37460
+
+
+dN/dS for site classes (K=2)
+
+p:   0.50872  0.49128
+w:   0.14044  1.00000
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.033    128.8     66.2   0.5627   0.0086   0.0154    1.1    1.0
+ 100..1       1.067    128.8     66.2   0.5627   0.2813   0.4999   36.2   33.1
+ 100..2       1.244    128.8     66.2   0.5627   0.3280   0.5829   42.2   38.6
+  99..101     0.068    128.8     66.2   0.5627   0.0180   0.0320    2.3    2.1
+ 101..102     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 104..7       0.586    128.8     66.2   0.5627   0.1547   0.2748   19.9   18.2
+ 104..6       0.501    128.8     66.2   0.5627   0.1321   0.2348   17.0   15.5
+ 103..105     0.051    128.8     66.2   0.5627   0.0136   0.0241    1.7    1.6
+ 105..106     0.179    128.8     66.2   0.5627   0.0471   0.0837    6.1    5.5
+ 106..107     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 107..108     0.157    128.8     66.2   0.5627   0.0415   0.0737    5.3    4.9
+ 108..18      0.089    128.8     66.2   0.5627   0.0235   0.0417    3.0    2.8
+ 108..109     0.006    128.8     66.2   0.5627   0.0015   0.0027    0.2    0.2
+ 109..33      0.175    128.8     66.2   0.5627   0.0461   0.0818    5.9    5.4
+ 109..110     0.055    128.8     66.2   0.5627   0.0146   0.0260    1.9    1.7
+ 110..49      0.095    128.8     66.2   0.5627   0.0251   0.0445    3.2    2.9
+ 110..111     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 111..112     0.073    128.8     66.2   0.5627   0.0194   0.0344    2.5    2.3
+ 112..71      0.022    128.8     66.2   0.5627   0.0058   0.0103    0.7    0.7
+ 112..70      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+ 111..61      0.128    128.8     66.2   0.5627   0.0337   0.0598    4.3    4.0
+ 107..113     0.056    128.8     66.2   0.5627   0.0148   0.0263    1.9    1.7
+ 113..114     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 114..115     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 115..44      0.087    128.8     66.2   0.5627   0.0230   0.0409    3.0    2.7
+ 115..116     0.021    128.8     66.2   0.5627   0.0056   0.0099    0.7    0.7
+ 116..117     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 118..81      0.021    128.8     66.2   0.5627   0.0054   0.0097    0.7    0.6
+ 117..119     0.131    128.8     66.2   0.5627   0.0344   0.0612    4.4    4.1
+ 119..120     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 120..88      0.109    128.8     66.2   0.5627   0.0286   0.0509    3.7    3.4
+ 120..89      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 116..121     0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 121..122     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 122..123     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 123..90      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 122..82      0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 121..69      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 114..124     0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 124..46      0.041    128.8     66.2   0.5627   0.0109   0.0194    1.4    1.3
+ 124..45      0.111    128.8     66.2   0.5627   0.0292   0.0518    3.8    3.4
+ 113..125     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 126..47      0.020    128.8     66.2   0.5627   0.0053   0.0095    0.7    0.6
+ 126..48      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 106..127     0.203    128.8     66.2   0.5627   0.0534   0.0949    6.9    6.3
+ 127..128     0.062    128.8     66.2   0.5627   0.0164   0.0291    2.1    1.9
+ 128..21      0.067    128.8     66.2   0.5627   0.0176   0.0314    2.3    2.1
+ 128..20      0.047    128.8     66.2   0.5627   0.0123   0.0219    1.6    1.5
+ 127..129     0.021    128.8     66.2   0.5627   0.0055   0.0098    0.7    0.6
+ 129..19      0.073    128.8     66.2   0.5627   0.0192   0.0341    2.5    2.3
+ 129..130     0.129    128.8     66.2   0.5627   0.0340   0.0605    4.4    4.0
+ 130..34      0.022    128.8     66.2   0.5627   0.0058   0.0103    0.7    0.7
+ 130..35      0.062    128.8     66.2   0.5627   0.0163   0.0290    2.1    1.9
+ 105..5       0.124    128.8     66.2   0.5627   0.0328   0.0583    4.2    3.9
+ 102..131     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 131..132     0.016    128.8     66.2   0.5627   0.0042   0.0074    0.5    0.5
+ 132..8       0.462    128.8     66.2   0.5627   0.1218   0.2165   15.7   14.3
+ 132..133     0.053    128.8     66.2   0.5627   0.0139   0.0247    1.8    1.6
+ 133..134     0.226    128.8     66.2   0.5627   0.0596   0.1059    7.7    7.0
+ 134..135     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 137..54      0.039    128.8     66.2   0.5627   0.0104   0.0185    1.3    1.2
+ 137..138     0.116    128.8     66.2   0.5627   0.0306   0.0545    3.9    3.6
+ 138..65      0.192    128.8     66.2   0.5627   0.0506   0.0899    6.5    6.0
+ 138..64      0.060    128.8     66.2   0.5627   0.0159   0.0282    2.0    1.9
+ 136..139     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 139..55      0.044    128.8     66.2   0.5627   0.0116   0.0206    1.5    1.4
+ 139..56      0.061    128.8     66.2   0.5627   0.0161   0.0286    2.1    1.9
+ 135..140     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 140..38      0.131    128.8     66.2   0.5627   0.0346   0.0615    4.5    4.1
+ 140..141     0.039    128.8     66.2   0.5627   0.0103   0.0183    1.3    1.2
+ 141..53      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 143..72      0.020    128.8     66.2   0.5627   0.0054   0.0096    0.7    0.6
+ 134..144     0.025    128.8     66.2   0.5627   0.0067   0.0118    0.9    0.8
+ 144..145     0.079    128.8     66.2   0.5627   0.0209   0.0371    2.7    2.5
+ 145..36      0.041    128.8     66.2   0.5627   0.0108   0.0193    1.4    1.3
+ 145..146     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 146..147     0.023    128.8     66.2   0.5627   0.0062   0.0109    0.8    0.7
+ 147..148     0.086    128.8     66.2   0.5627   0.0226   0.0402    2.9    2.7
+ 148..149     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 152..95      0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 152..94      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 153..93      0.021    128.8     66.2   0.5627   0.0055   0.0097    0.7    0.6
+ 150..92      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 149..83      0.042    128.8     66.2   0.5627   0.0111   0.0198    1.4    1.3
+ 148..156     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 156..85      0.042    128.8     66.2   0.5627   0.0111   0.0197    1.4    1.3
+ 156..84      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 147..62      0.041    128.8     66.2   0.5627   0.0107   0.0191    1.4    1.3
+ 146..50      0.087    128.8     66.2   0.5627   0.0230   0.0408    3.0    2.7
+ 144..157     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 157..37      0.153    128.8     66.2   0.5627   0.0404   0.0718    5.2    4.8
+ 157..158     0.116    128.8     66.2   0.5627   0.0305   0.0543    3.9    3.6
+ 158..51      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 133..9       0.363    128.8     66.2   0.5627   0.0958   0.1703   12.3   11.3
+ 131..4       0.538    128.8     66.2   0.5627   0.1420   0.2523   18.3   16.7
+ 101..159     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 159..3       1.792    128.8     66.2   0.5627   0.4725   0.8397   60.9   55.6
+ 159..160     0.286    128.8     66.2   0.5627   0.0755   0.1342    9.7    8.9
+ 160..161     0.058    128.8     66.2   0.5627   0.0153   0.0273    2.0    1.8
+ 161..162     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 163..12      0.133    128.8     66.2   0.5627   0.0351   0.0624    4.5    4.1
+ 163..164     0.289    128.8     66.2   0.5627   0.0762   0.1354    9.8    9.0
+ 164..26      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 164..25      0.129    128.8     66.2   0.5627   0.0341   0.0605    4.4    4.0
+ 162..165     0.046    128.8     66.2   0.5627   0.0122   0.0216    1.6    1.4
+ 165..13      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 165..14      0.072    128.8     66.2   0.5627   0.0191   0.0339    2.5    2.2
+ 161..166     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 166..167     0.235    128.8     66.2   0.5627   0.0621   0.1103    8.0    7.3
+ 167..168     0.090    128.8     66.2   0.5627   0.0239   0.0424    3.1    2.8
+ 168..23      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 169..39      0.021    128.8     66.2   0.5627   0.0057   0.0101    0.7    0.7
+ 167..170     0.078    128.8     66.2   0.5627   0.0207   0.0367    2.7    2.4
+ 170..171     0.052    128.8     66.2   0.5627   0.0137   0.0243    1.8    1.6
+ 171..172     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 173..66      0.111    128.8     66.2   0.5627   0.0293   0.0520    3.8    3.4
+ 173..174     0.170    128.8     66.2   0.5627   0.0449   0.0797    5.8    5.3
+ 174..78      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 174..77      0.032    128.8     66.2   0.5627   0.0084   0.0149    1.1    1.0
+ 172..175     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 176..76      0.113    128.8     66.2   0.5627   0.0298   0.0529    3.8    3.5
+ 176..75      0.160    128.8     66.2   0.5627   0.0421   0.0749    5.4    5.0
+ 175..177     0.018    128.8     66.2   0.5627   0.0047   0.0083    0.6    0.5
+ 177..74      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 177..178     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 178..87      0.106    128.8     66.2   0.5627   0.0279   0.0496    3.6    3.3
+ 178..86      0.018    128.8     66.2   0.5627   0.0047   0.0083    0.6    0.5
+ 171..179     0.021    128.8     66.2   0.5627   0.0054   0.0096    0.7    0.6
+ 179..59      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 179..58      0.184    128.8     66.2   0.5627   0.0484   0.0860    6.2    5.7
+ 179..57      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 170..22      0.136    128.8     66.2   0.5627   0.0358   0.0636    4.6    4.2
+ 166..180     0.071    128.8     66.2   0.5627   0.0188   0.0334    2.4    2.2
+ 180..11      0.019    128.8     66.2   0.5627   0.0051   0.0090    0.7    0.6
+ 180..181     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 181..182     0.017    128.8     66.2   0.5627   0.0045   0.0080    0.6    0.5
+ 182..41      0.093    128.8     66.2   0.5627   0.0245   0.0435    3.2    2.9
+ 182..42      0.078    128.8     66.2   0.5627   0.0205   0.0364    2.6    2.4
+ 181..24      0.072    128.8     66.2   0.5627   0.0191   0.0339    2.5    2.2
+ 160..183     0.024    128.8     66.2   0.5627   0.0064   0.0113    0.8    0.7
+ 183..184     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 184..10      0.515    128.8     66.2   0.5627   0.1357   0.2412   17.5   16.0
+ 184..185     0.399    128.8     66.2   0.5627   0.1053   0.1872   13.6   12.4
+ 185..17      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 185..16      0.045    128.8     66.2   0.5627   0.0119   0.0212    1.5    1.4
+ 183..186     0.219    128.8     66.2   0.5627   0.0578   0.1026    7.4    6.8
+ 186..187     0.226    128.8     66.2   0.5627   0.0595   0.1057    7.7    7.0
+ 187..15      0.104    128.8     66.2   0.5627   0.0275   0.0488    3.5    3.2
+ 187..188     0.069    128.8     66.2   0.5627   0.0181   0.0322    2.3    2.1
+ 188..27      0.049    128.8     66.2   0.5627   0.0129   0.0229    1.7    1.5
+ 188..189     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 189..190     0.072    128.8     66.2   0.5627   0.0190   0.0338    2.5    2.2
+ 190..60      0.069    128.8     66.2   0.5627   0.0183   0.0325    2.4    2.2
+ 190..191     0.023    128.8     66.2   0.5627   0.0062   0.0109    0.8    0.7
+ 191..68      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+ 191..67      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 189..43      0.117    128.8     66.2   0.5627   0.0309   0.0549    4.0    3.6
+ 186..192     0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 192..193     0.370    128.8     66.2   0.5627   0.0976   0.1734   12.6   11.5
+ 193..31      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 192..194     0.285    128.8     66.2   0.5627   0.0753   0.1338    9.7    8.9
+ 194..29      0.000    128.8     66.2   0.5627   0.0000   0.0000    0.0    0.0
+ 194..28      0.022    128.8     66.2   0.5627   0.0059   0.0105    0.8    0.7
+
+
+Naive Empirical Bayes (NEB) analysis
+Time used: 5:31:55
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/algn b/examples/evol/data/protamine/PRM1/paml/M1/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/lnf b/examples/evol/data/protamine/PRM1/paml/M1/lnf
new file mode 100644
index 0000000..7c17d1c
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8963625771   0.001011457846       0.0657  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.3219342803   0.000000001494       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -35.1723863015   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -46.5085795219   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.7570345301   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -38.8095583824   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -39.2618323920   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.6975758419   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.5422779512   0.000000003258       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.1281188115   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -8.8102494190   0.000149196039       0.0097  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -53.4714047200   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -13.5313060991   0.000001328705       0.0001  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.6950088498   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -25.7713384261   0.000000000006       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.0300230578   0.000884911376       0.0575  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1613880309   0.000775976726       0.0504  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -54.2975474752   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -67.1575478079   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -101.3951136092   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.0040426319   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.9612300522   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -53.2594437061   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -67.8343282510   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.9750687865   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.3628234880   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9277956542   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.6650393128   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -29.7550462678   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.5112743191   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -97.8332082332   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -101.6977188942   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -82.0783486557   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -100.5863053104   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -83.4800852962   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8892667004   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -109.7703450671   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -41.8686281226   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -76.6830602844   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.6079070366   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -21.7513490492   0.000000000358       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -40.8807191045   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4641606492   0.000210892792       0.0137  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.3866923803   0.001683816425       0.1094  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.5557271188   0.000000008737       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.1585693935   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.4791301537   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.3660787789   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -121.0544166795   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -207.1209516808   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -131.7493796875   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.8197551682   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -73.2102470830   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -49.3278829781   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -43.4593002134   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -80.4774190426   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.1727827185   0.000103827186       0.0067  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7805572450   0.001135641891       0.0738  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/rst b/examples/evol/data/protamine/PRM1/paml/M1/rst
new file mode 100644
index 0000000..cf98276
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/rst
@@ -0,0 +1,85 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=2)
+
+p:   0.50872  0.49128
+w:   0.14044  1.00000
+
+Naive Empirical Bayes (NEB) probabilities for 2 classes& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.99943 0.00057 ( 1)  0.141
+   2 A   0.28992 0.71008 ( 2)  0.751
+   3 R   0.99965 0.00035 ( 1)  0.141
+   4 Y   0.99868 0.00132 ( 1)  0.142
+   5 R   0.14963 0.85037 ( 2)  0.871
+   6 C   0.99999 0.00001 ( 1)  0.140
+   7 C   0.99999 0.00001 ( 1)  0.140
+   8 R   0.99979 0.00021 ( 1)  0.141
+   9 S   1.00000 0.00000 ( 1)  0.140
+  10 R   0.00000 1.00000 ( 2)  1.000
+  11 *   0.50872 0.49128 ( 1)  0.563
+  12 *   0.50872 0.49128 ( 1)  0.563
+  13 S   1.00000 0.00000 ( 1)  0.140
+  14 R   0.74298 0.25702 ( 1)  0.361
+  15 S   1.00000 0.00000 ( 1)  0.140
+  16 R   0.99861 0.00139 ( 1)  0.142
+  17 C   1.00000 0.00000 ( 1)  0.140
+  18 *   0.85753 0.14247 ( 1)  0.263
+  19 *   0.27169 0.72831 ( 2)  0.766
+  20 R   0.20944 0.79056 ( 2)  0.820
+  21 S   0.99449 0.00551 ( 1)  0.145
+  22 R   0.01334 0.98666 ( 2)  0.989
+  23 *   0.50872 0.49128 ( 1)  0.563
+  24 *   0.50872 0.49128 ( 1)  0.563
+  25 *   0.50872 0.49128 ( 1)  0.563
+  26 R   0.99845 0.00155 ( 1)  0.142
+  27 R   0.01724 0.98276 ( 2)  0.985
+  28 R   0.79371 0.20629 ( 1)  0.318
+  29 S   0.00053 0.99947 ( 2)  1.000
+  30 H   0.00000 1.00000 ( 2)  1.000
+  31 *   0.50872 0.49128 ( 1)  0.563
+  32 R   0.03889 0.96111 ( 2)  0.967
+  33 R   0.74592 0.25408 ( 1)  0.359
+  34 R   0.99987 0.00013 ( 1)  0.141
+  35 R   0.99990 0.00010 ( 1)  0.141
+  36 R   0.65228 0.34772 ( 1)  0.439
+  37 S   0.00001 0.99999 ( 2)  1.000
+  38 C   0.00000 1.00000 ( 2)  1.000
+  39 R   0.04329 0.95671 ( 2)  0.963
+  40 S   0.05782 0.94218 ( 2)  0.950
+  41 R   0.12219 0.87781 ( 2)  0.895
+  42 R   0.94990 0.05010 ( 1)  0.184
+  43 R   0.00000 1.00000 ( 2)  1.000
+  44 *   0.00043 0.99957 ( 2)  1.000
+  45 *   0.00000 1.00000 ( 2)  1.000
+  46 R   0.00018 0.99982 ( 2)  1.000
+  47 C   1.00000 0.00000 ( 1)  0.140
+  48 C   0.99997 0.00003 ( 1)  0.140
+  49 *   0.83412 0.16588 ( 1)  0.283
+  50 *   0.87568 0.12432 ( 1)  0.247
+  51 R   0.99070 0.00930 ( 1)  0.148
+  52 R   0.97911 0.02089 ( 1)  0.158
+  53 R   0.03362 0.96638 ( 2)  0.971
+  54 H   0.96510 0.03490 ( 1)  0.170
+  55 R   0.00000 1.00000 ( 2)  1.000
+  56 *   0.00000 1.00000 ( 2)  1.000
+  57 *   0.00000 1.00000 ( 2)  1.000
+  58 *   0.00182 0.99818 ( 2)  0.998
+  59 *   0.00000 1.00000 ( 2)  1.000
+  60 *   0.11211 0.88789 ( 2)  0.904
+  61 *   0.93988 0.06012 ( 1)  0.192
+  62 *   0.00000 1.00000 ( 2)  1.000
+  63 *   0.77240 0.22760 ( 1)  0.336
+  64 *   0.05642 0.94358 ( 2)  0.952
+  65 *   0.50872 0.49128 ( 1)  0.563
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+
+
+lnL = -3305.853967
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/rst1 b/examples/evol/data/protamine/PRM1/paml/M1/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/rub b/examples/evol/data/protamine/PRM1/paml/M1/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/M1/tmp.ctl
new file mode 100644
index 0000000..3516237
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 1
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M1.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/examples/evol/data/protamine/PRM1/paml/M1/tree b/examples/evol/data/protamine/PRM1/paml/M1/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M1/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/2NG.dN b/examples/evol/data/protamine/PRM1/paml/M2/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/2NG.dS b/examples/evol/data/protamine/PRM1/paml/M2/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/2NG.t b/examples/evol/data/protamine/PRM1/paml/M2/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/M2/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/M2.out b/examples/evol/data/protamine/PRM1/paml/M2/M2.out
new file mode 100644
index 0000000..6600cbd
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/M2.out
@@ -0,0 +1,1521 @@
+
+seed used = 816749077
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  PositiveSelection
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:198):  -3284.673112     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.060855 1.306171 1.379678 0.022941 0.000000 0.000000 0.000000 0.706864 0.554767 0.040151 0.205362 0.048506 0.177571 0.098267 0.005207 0.192895 0.060901 0.103460 0.000000 0.079528 0.024091 0.024268 0.142771 0.062600 0.000000 0.045460 0.094783 0.022452 0.000000 0.000000 0.000004 0.022465 0.142500 0.000000 0.118265 0.000004 0.000004 0.000000 0.000000 0.045011 0.000004 0.000004 0.000004 0.045011 0.022750 0.044786 0.119598 0.000000 0.000000 0.021972 0.000004 0.000004 0.215713 0.066747 0.072 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  19.09024
+
+((1: 1.306171, 2: 1.379678): 0.060855, ((((7: 0.706864, 6: 0.554767): 0.000000, ((((18: 0.098267, (33: 0.192895, (49: 0.103460, ((71: 0.024091, 70: 0.024268): 0.079528, 61: 0.142771): 0.000000): 0.060901): 0.005207): 0.177571, (((44: 0.094783, (((80: 0.000004, 81: 0.022465): 0.000000, ((88: 0.118265, 89: 0.000004): 0.000000, 79: 0.000004): 0.142500): 0.000000, (((90: 0.000004, 91: 0.000004): 0.045011, 82: 0.000004): 0.000000, 69: 0.045011): 0.000000): 0.022452): 0.045460, (46: 0.044786,  [...]
+
+((Loxodonta_africana: 1.306171, Procavia_capensis: 1.379678): 0.060855, ((((Cynocephalus_variegatus: 0.706864, Tupaia_belangeri: 0.554767): 0.000000, ((((Hylobates_lar: 0.098267, (Pongo_pygmaeus: 0.192895, (Gorilla_gorilla: 0.103460, ((Pan_paniscus: 0.024091, Pan_troglodytes: 0.024268): 0.079528, Homo_sapiens: 0.142771): 0.000000): 0.060901): 0.005207): 0.177571, (((Nasalis_larvatus: 0.094783, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.022465): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.63066
+
+
+dN/dS for site classes (K=3)
+
+p:   0.49161  0.37297  0.13542
+w:   0.15802  1.00000  3.33823
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.061    127.7     67.3   0.9027   0.0196   0.0217    2.5    1.5
+ 100..1       1.306    127.7     67.3   0.9027   0.4198   0.4650   53.6   31.3
+ 100..2       1.380    127.7     67.3   0.9027   0.4434   0.4912   56.6   33.0
+  99..101     0.023    127.7     67.3   0.9027   0.0074   0.0082    0.9    0.5
+ 101..102     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 104..7       0.707    127.7     67.3   0.9027   0.2272   0.2517   29.0   16.9
+ 104..6       0.555    127.7     67.3   0.9027   0.1783   0.1975   22.8   13.3
+ 103..105     0.040    127.7     67.3   0.9027   0.0129   0.0143    1.6    1.0
+ 105..106     0.205    127.7     67.3   0.9027   0.0660   0.0731    8.4    4.9
+ 106..107     0.049    127.7     67.3   0.9027   0.0156   0.0173    2.0    1.2
+ 107..108     0.178    127.7     67.3   0.9027   0.0571   0.0632    7.3    4.3
+ 108..18      0.098    127.7     67.3   0.9027   0.0316   0.0350    4.0    2.4
+ 108..109     0.005    127.7     67.3   0.9027   0.0017   0.0019    0.2    0.1
+ 109..33      0.193    127.7     67.3   0.9027   0.0620   0.0687    7.9    4.6
+ 109..110     0.061    127.7     67.3   0.9027   0.0196   0.0217    2.5    1.5
+ 110..49      0.103    127.7     67.3   0.9027   0.0333   0.0368    4.2    2.5
+ 110..111     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 111..112     0.080    127.7     67.3   0.9027   0.0256   0.0283    3.3    1.9
+ 112..71      0.024    127.7     67.3   0.9027   0.0077   0.0086    1.0    0.6
+ 112..70      0.024    127.7     67.3   0.9027   0.0078   0.0086    1.0    0.6
+ 111..61      0.143    127.7     67.3   0.9027   0.0459   0.0508    5.9    3.4
+ 107..113     0.063    127.7     67.3   0.9027   0.0201   0.0223    2.6    1.5
+ 113..114     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 114..115     0.045    127.7     67.3   0.9027   0.0146   0.0162    1.9    1.1
+ 115..44      0.095    127.7     67.3   0.9027   0.0305   0.0337    3.9    2.3
+ 115..116     0.022    127.7     67.3   0.9027   0.0072   0.0080    0.9    0.5
+ 116..117     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 118..81      0.022    127.7     67.3   0.9027   0.0072   0.0080    0.9    0.5
+ 117..119     0.143    127.7     67.3   0.9027   0.0458   0.0507    5.8    3.4
+ 119..120     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 120..88      0.118    127.7     67.3   0.9027   0.0380   0.0421    4.9    2.8
+ 120..89      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 122..123     0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 123..90      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 121..69      0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 114..124     0.023    127.7     67.3   0.9027   0.0073   0.0081    0.9    0.5
+ 124..46      0.045    127.7     67.3   0.9027   0.0144   0.0159    1.8    1.1
+ 124..45      0.120    127.7     67.3   0.9027   0.0384   0.0426    4.9    2.9
+ 113..125     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 126..47      0.022    127.7     67.3   0.9027   0.0071   0.0078    0.9    0.5
+ 126..48      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 106..127     0.216    127.7     67.3   0.9027   0.0693   0.0768    8.9    5.2
+ 127..128     0.067    127.7     67.3   0.9027   0.0215   0.0238    2.7    1.6
+ 128..21      0.073    127.7     67.3   0.9027   0.0234   0.0259    3.0    1.7
+ 128..20      0.050    127.7     67.3   0.9027   0.0162   0.0179    2.1    1.2
+ 127..129     0.013    127.7     67.3   0.9027   0.0040   0.0045    0.5    0.3
+ 129..19      0.088    127.7     67.3   0.9027   0.0283   0.0313    3.6    2.1
+ 129..130     0.149    127.7     67.3   0.9027   0.0479   0.0530    6.1    3.6
+ 130..34      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 130..35      0.066    127.7     67.3   0.9027   0.0213   0.0236    2.7    1.6
+ 105..5       0.152    127.7     67.3   0.9027   0.0488   0.0541    6.2    3.6
+ 102..131     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 131..132     0.012    127.7     67.3   0.9027   0.0038   0.0042    0.5    0.3
+ 132..8       0.532    127.7     67.3   0.9027   0.1708   0.1892   21.8   12.7
+ 132..133     0.076    127.7     67.3   0.9027   0.0245   0.0271    3.1    1.8
+ 133..134     0.244    127.7     67.3   0.9027   0.0783   0.0867   10.0    5.8
+ 134..135     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 137..54      0.045    127.7     67.3   0.9027   0.0146   0.0161    1.9    1.1
+ 137..138     0.128    127.7     67.3   0.9027   0.0411   0.0455    5.2    3.1
+ 138..65      0.211    127.7     67.3   0.9027   0.0677   0.0750    8.6    5.0
+ 138..64      0.067    127.7     67.3   0.9027   0.0216   0.0240    2.8    1.6
+ 136..139     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 139..55      0.049    127.7     67.3   0.9027   0.0156   0.0173    2.0    1.2
+ 139..56      0.070    127.7     67.3   0.9027   0.0224   0.0249    2.9    1.7
+ 135..140     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 140..38      0.146    127.7     67.3   0.9027   0.0470   0.0521    6.0    3.5
+ 140..141     0.045    127.7     67.3   0.9027   0.0145   0.0160    1.8    1.1
+ 141..53      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 143..72      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 134..144     0.029    127.7     67.3   0.9027   0.0092   0.0102    1.2    0.7
+ 144..145     0.090    127.7     67.3   0.9027   0.0290   0.0321    3.7    2.2
+ 145..36      0.047    127.7     67.3   0.9027   0.0150   0.0166    1.9    1.1
+ 145..146     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 146..147     0.026    127.7     67.3   0.9027   0.0083   0.0092    1.1    0.6
+ 147..148     0.096    127.7     67.3   0.9027   0.0307   0.0340    3.9    2.3
+ 148..149     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 152..95      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 152..94      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 153..93      0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 150..92      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 149..83      0.047    127.7     67.3   0.9027   0.0151   0.0168    1.9    1.1
+ 148..156     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 156..85      0.047    127.7     67.3   0.9027   0.0150   0.0167    1.9    1.1
+ 156..84      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 147..62      0.046    127.7     67.3   0.9027   0.0147   0.0163    1.9    1.1
+ 146..50      0.099    127.7     67.3   0.9027   0.0317   0.0351    4.0    2.4
+ 144..157     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 157..37      0.171    127.7     67.3   0.9027   0.0550   0.0609    7.0    4.1
+ 157..158     0.130    127.7     67.3   0.9027   0.0416   0.0461    5.3    3.1
+ 158..51      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 133..9       0.388    127.7     67.3   0.9027   0.1248   0.1382   15.9    9.3
+ 131..4       0.588    127.7     67.3   0.9027   0.1888   0.2092   24.1   14.1
+ 101..159     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 159..3       2.123    127.7     67.3   0.9027   0.6824   0.7560   87.2   50.9
+ 159..160     0.317    127.7     67.3   0.9027   0.1017   0.1127   13.0    7.6
+ 160..161     0.075    127.7     67.3   0.9027   0.0243   0.0269    3.1    1.8
+ 161..162     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 163..12      0.155    127.7     67.3   0.9027   0.0499   0.0552    6.4    3.7
+ 163..164     0.323    127.7     67.3   0.9027   0.1039   0.1151   13.3    7.7
+ 164..26      0.121    127.7     67.3   0.9027   0.0388   0.0429    5.0    2.9
+ 164..25      0.146    127.7     67.3   0.9027   0.0468   0.0519    6.0    3.5
+ 162..165     0.050    127.7     67.3   0.9027   0.0159   0.0176    2.0    1.2
+ 165..13      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 165..14      0.075    127.7     67.3   0.9027   0.0242   0.0268    3.1    1.8
+ 161..166     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 166..167     0.263    127.7     67.3   0.9027   0.0844   0.0935   10.8    6.3
+ 167..168     0.103    127.7     67.3   0.9027   0.0330   0.0366    4.2    2.5
+ 168..23      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 169..39      0.025    127.7     67.3   0.9027   0.0079   0.0088    1.0    0.6
+ 167..170     0.089    127.7     67.3   0.9027   0.0286   0.0317    3.6    2.1
+ 170..171     0.056    127.7     67.3   0.9027   0.0180   0.0199    2.3    1.3
+ 171..172     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 173..66      0.126    127.7     67.3   0.9027   0.0405   0.0448    5.2    3.0
+ 173..174     0.189    127.7     67.3   0.9027   0.0607   0.0673    7.8    4.5
+ 174..78      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 174..77      0.036    127.7     67.3   0.9027   0.0117   0.0129    1.5    0.9
+ 172..175     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 176..76      0.133    127.7     67.3   0.9027   0.0426   0.0472    5.4    3.2
+ 176..75      0.180    127.7     67.3   0.9027   0.0580   0.0643    7.4    4.3
+ 175..177     0.021    127.7     67.3   0.9027   0.0068   0.0075    0.9    0.5
+ 177..74      0.117    127.7     67.3   0.9027   0.0375   0.0415    4.8    2.8
+ 177..178     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 178..87      0.117    127.7     67.3   0.9027   0.0375   0.0415    4.8    2.8
+ 178..86      0.021    127.7     67.3   0.9027   0.0067   0.0074    0.9    0.5
+ 171..179     0.023    127.7     67.3   0.9027   0.0075   0.0083    1.0    0.6
+ 179..59      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 179..58      0.209    127.7     67.3   0.9027   0.0671   0.0743    8.6    5.0
+ 179..57      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 170..22      0.155    127.7     67.3   0.9027   0.0497   0.0550    6.3    3.7
+ 166..180     0.084    127.7     67.3   0.9027   0.0270   0.0299    3.4    2.0
+ 180..11      0.023    127.7     67.3   0.9027   0.0073   0.0080    0.9    0.5
+ 180..181     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 181..182     0.020    127.7     67.3   0.9027   0.0066   0.0073    0.8    0.5
+ 182..41      0.108    127.7     67.3   0.9027   0.0347   0.0385    4.4    2.6
+ 182..42      0.090    127.7     67.3   0.9027   0.0289   0.0320    3.7    2.2
+ 181..24      0.084    127.7     67.3   0.9027   0.0270   0.0299    3.4    2.0
+ 160..183     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 184..10      0.584    127.7     67.3   0.9027   0.1877   0.2079   24.0   14.0
+ 184..185     0.466    127.7     67.3   0.9027   0.1499   0.1660   19.1   11.2
+ 185..17      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 185..16      0.053    127.7     67.3   0.9027   0.0171   0.0189    2.2    1.3
+ 183..186     0.272    127.7     67.3   0.9027   0.0875   0.0969   11.2    6.5
+ 186..187     0.269    127.7     67.3   0.9027   0.0866   0.0959   11.1    6.5
+ 187..15      0.122    127.7     67.3   0.9027   0.0392   0.0434    5.0    2.9
+ 187..188     0.069    127.7     67.3   0.9027   0.0223   0.0247    2.9    1.7
+ 188..27      0.055    127.7     67.3   0.9027   0.0177   0.0196    2.3    1.3
+ 188..189     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 189..190     0.081    127.7     67.3   0.9027   0.0261   0.0289    3.3    1.9
+ 190..60      0.077    127.7     67.3   0.9027   0.0248   0.0275    3.2    1.8
+ 190..191     0.026    127.7     67.3   0.9027   0.0084   0.0093    1.1    0.6
+ 191..68      0.025    127.7     67.3   0.9027   0.0082   0.0090    1.0    0.6
+ 191..67      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 189..43      0.129    127.7     67.3   0.9027   0.0415   0.0459    5.3    3.1
+ 186..192     0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 192..193     0.426    127.7     67.3   0.9027   0.1368   0.1516   17.5   10.2
+ 193..31      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 192..194     0.319    127.7     67.3   0.9027   0.1027   0.1137   13.1    7.7
+ 194..29      0.000    127.7     67.3   0.9027   0.0000   0.0000    0.0    0.0
+ 194..28      0.026    127.7     67.3   0.9027   0.0083   0.0092    1.1    0.6
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.937         3.190
+    44 *      0.931         3.176
+    45 *      0.997**       3.330
+    55 R      0.993**       3.322
+    56 *      1.000**       3.338
+    57 *      0.885         3.070
+    59 *      0.706         2.651
+    64 *      0.516         2.175
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.887         3.188 +- 0.875
+    44 *      0.926         3.339 +- 0.823
+    45 *      0.995**       3.511 +- 0.531
+    55 R      0.982*        3.461 +- 0.564
+    56 *      1.000**       3.525 +- 0.515
+    57 *      0.834         3.055 +- 0.996
+    59 *      0.626         2.504 +- 1.203
+    64 *      0.521         2.280 +- 1.337
+
+
+
+The grid (see ternary graph for p0-p1)
+
+w0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+w2:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+w0:   0.000  0.989  0.011  0.000  0.000  0.000  0.000  0.000  0.000  0.000
+w2:   0.000  0.097  0.798  0.095  0.008  0.002  0.001  0.000  0.000  0.000
+
+Posterior for p0-p1 (see the ternary graph)
+
+ 0.000
+ 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.001
+ 0.000 0.000 0.000 0.000 0.000 0.002 0.022 0.014 0.006
+ 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.057 0.177 0.070 0.010
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.012 0.051 0.187 0.184 0.059 0.003
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.016 0.017 0.067 0.021 0.007 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.002 0.000 0.000 0.000
+ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+
+sum of density on p0-p1 =   1.000000
+
+Time used: 8:45:14
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/algn b/examples/evol/data/protamine/PRM1/paml/M2/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/lnf b/examples/evol/data/protamine/PRM1/paml/M2/lnf
new file mode 100644
index 0000000..9a46fcc
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8606661118   0.001048215471       0.0681  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.3481766924   0.000000001455       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -34.3465608574   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.8966932333   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.5174497812   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -38.9392701343   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -39.3623925657   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.1022089660   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.3185519622   0.000000004074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.8440090572   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -8.4118187656   0.000222225313       0.0144  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -52.2089603967   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -13.2420704788   0.000001774361       0.0001  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -31.8529069573   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -25.7203635156   0.000000000007       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -6.9474963714   0.000961038227       0.0625  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1685652972   0.000770427273       0.0501  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.0472717880   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -66.9769296351   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -102.2706790408   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -39.4988290367   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.7677947679   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -52.7897506285   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -68.3388788695   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.3444554854   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.2130009804   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9697758175   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.3275410120   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -28.5742525299   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.6187487817   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -98.8407103468   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -102.3211495918   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -82.1321269342   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -101.2217375593   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -84.2270167602   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -76.2809088696   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -110.9501821723   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -40.6294627408   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -73.3527973744   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.8050184621   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -21.7300923087   0.000000000365       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.0930971675   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4275883962   0.000218748389       0.0142  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4559150831   0.001571200844       0.1021  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.2008514944   0.000000012459       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -46.1435774569   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.6683914024   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.5681454596   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -119.5214038587   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -195.8505136566   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -130.5619514368   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.9629561218   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -71.8463831231   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.4030045217   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -42.4728200210   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -81.8407480821   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.2687756321   0.000094323930       0.0061  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.5984224754   0.001362515745       0.0886  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/rst b/examples/evol/data/protamine/PRM1/paml/M2/rst
new file mode 100644
index 0000000..1872104
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/rst
@@ -0,0 +1,175 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=3)
+
+p:   0.49161  0.37297  0.13542
+w:   0.15802  1.00000  3.33823
+
+Naive Empirical Bayes (NEB) probabilities for 3 classes& postmean_w & P(w>1)
+Loxodonta_africana used as reference
+
+   1 M   0.99832 0.00168 0.00000 ( 1)  0.159  0.000
+   2 A   0.29194 0.70548 0.00258 ( 2)  0.760  0.003
+   3 R   0.99871 0.00129 0.00000 ( 1)  0.159  0.000
+   4 Y   0.99704 0.00296 0.00000 ( 1)  0.161  0.000
+   5 R   0.08653 0.91336 0.00012 ( 2)  0.927  0.000
+   6 C   0.99995 0.00005 0.00000 ( 1)  0.158  0.000
+   7 C   0.99993 0.00007 0.00000 ( 1)  0.158  0.000
+   8 R   0.99915 0.00085 0.00000 ( 1)  0.159  0.000
+   9 S   0.99999 0.00001 0.00000 ( 1)  0.158  0.000
+  10 R   0.00000 0.06341 0.93659 ( 3)  3.190  0.937
+  11 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  12 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  13 S   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  14 R   0.68108 0.31889 0.00003 ( 1)  0.427  0.000
+  15 S   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  16 R   0.99516 0.00484 0.00000 ( 1)  0.162  0.000
+  17 C   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  18 *   0.85866 0.13657 0.00478 ( 1)  0.288  0.005
+  19 *   0.25644 0.55077 0.19279 ( 2)  1.235  0.193
+  20 R   0.10791 0.89209 0.00000 ( 2)  0.909  0.000
+  21 S   0.98344 0.01656 0.00000 ( 1)  0.172  0.000
+  22 R   0.01294 0.98403 0.00304 ( 2)  0.996  0.003
+  23 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  24 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  25 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  26 R   0.99463 0.00537 0.00000 ( 1)  0.163  0.000
+  27 R   0.01874 0.92299 0.05828 ( 2)  1.120  0.058
+  28 R   0.58834 0.41166 0.00000 ( 1)  0.505  0.000
+  29 S   0.00050 0.99245 0.00705 ( 2)  1.016  0.007
+  30 H   0.00000 0.99987 0.00013 ( 2)  1.000  0.000
+  31 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+  32 R   0.01796 0.97004 0.01201 ( 2)  1.013  0.012
+  33 R   0.72852 0.26829 0.00320 ( 1)  0.394  0.003
+  34 R   0.99944 0.00056 0.00000 ( 1)  0.158  0.000
+  35 R   0.99953 0.00047 0.00000 ( 1)  0.158  0.000
+  36 R   0.56490 0.43507 0.00003 ( 1)  0.524  0.000
+  37 S   0.00000 0.99994 0.00005 ( 2)  1.000  0.000
+  38 C   0.00000 0.99844 0.00156 ( 2)  1.004  0.002
+  39 R   0.04218 0.95537 0.00246 ( 2)  0.970  0.002
+  40 S   0.03583 0.96382 0.00035 ( 2)  0.971  0.000
+  41 R   0.09563 0.90295 0.00142 ( 2)  0.923  0.001
+  42 R   0.86539 0.13461 0.00000 ( 1)  0.271  0.000
+  43 R   0.00000 0.70321 0.29679 ( 2)  1.694  0.297
+  44 *   0.00006 0.06922 0.93072 ( 3)  3.176  0.931
+  45 *   0.00000 0.00338 0.99662 ( 3)  3.330  0.997
+  46 R   0.00017 0.97454 0.02529 ( 2)  1.059  0.025
+  47 C   1.00000 0.00000 0.00000 ( 1)  0.158  0.000
+  48 C   0.99983 0.00017 0.00000 ( 1)  0.158  0.000
+  49 *   0.82935 0.16728 0.00337 ( 1)  0.310  0.003
+  50 *   0.86761 0.13120 0.00118 ( 1)  0.272  0.001
+  51 R   0.98059 0.01941 0.00000 ( 1)  0.174  0.000
+  52 R   0.93316 0.06684 0.00000 ( 1)  0.214  0.000
+  53 R   0.01731 0.98265 0.00004 ( 2)  0.986  0.000
+  54 H   0.93438 0.06562 0.00000 ( 1)  0.213  0.000
+  55 R   0.00000 0.00679 0.99321 ( 3)  3.322  0.993
+  56 *   0.00000 0.00000 1.00000 ( 3)  3.338  1.000
+  57 *   0.00000 0.11487 0.88513 ( 3)  3.070  0.885
+  58 *   0.00179 0.74711 0.25110 ( 2)  1.586  0.251
+  59 *   0.00000 0.29396 0.70604 ( 3)  2.651  0.706
+  60 *   0.06229 0.93763 0.00008 ( 2)  0.948  0.000
+  61 *   0.86512 0.13488 0.00000 ( 1)  0.272  0.000
+  62 *   0.00000 0.99776 0.00224 ( 2)  1.005  0.002
+  63 *   0.76843 0.21237 0.01920 ( 1)  0.398  0.019
+  64 *   0.03583 0.44867 0.51551 ( 3)  2.175  0.516
+  65 *   0.49161 0.37297 0.13542 ( 1)  0.903  0.135
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.937         3.190
+    44 *      0.931         3.176
+    45 *      0.997**       3.330
+    55 R      0.993**       3.322
+    56 *      1.000**       3.338
+    57 *      0.885         3.070
+    59 *      0.706         2.651
+    64 *      0.516         2.175
+
+
+lnL = -3284.673112
+
+Bayes Empirical Bayes (BEB) probabilities for 3 classes (class)& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.99826 0.00174 0.00000 ( 1)  0.153 +-  0.037
+   2 A   0.27538 0.72070 0.00392 ( 2)  0.774 +-  0.403
+   3 R   0.99864 0.00136 0.00000 ( 1)  0.152 +-  0.033
+   4 Y   0.99672 0.00328 0.00000 ( 1)  0.154 +-  0.050
+   5 R   0.07801 0.92154 0.00045 ( 2)  0.935 +-  0.230
+   6 C   0.99995 0.00005 0.00000 ( 1)  0.151 +-  0.012
+   7 C   0.99993 0.00007 0.00000 ( 1)  0.151 +-  0.013
+   8 R   0.99906 0.00094 0.00000 ( 1)  0.152 +-  0.028
+   9 S   0.99999 0.00001 0.00000 ( 1)  0.151 +-  0.011
+  10 R   0.00000 0.11261 0.88739 ( 3)  3.188 +-  0.875
+  11 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  12 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  13 S   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  14 R   0.65141 0.34849 0.00010 ( 1)  0.447 +-  0.405
+  15 S   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  16 R   0.99483 0.00517 0.00000 ( 1)  0.156 +-  0.062
+  17 C   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  18 *   0.85183 0.14303 0.00514 ( 1)  0.289 +-  0.370
+  19 *   0.24322 0.55384 0.20294 ( 2)  1.294 +-  1.169
+  20 R   0.08943 0.91057 0.00000 ( 2)  0.925 +-  0.241
+  21 S   0.98042 0.01958 0.00000 ( 1)  0.168 +-  0.118
+  22 R   0.01148 0.98365 0.00486 ( 2)  1.000 +-  0.163
+  23 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  24 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  25 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  26 R   0.99426 0.00574 0.00000 ( 1)  0.156 +-  0.065
+  27 R   0.01681 0.92146 0.06173 ( 2)  1.124 +-  0.566
+  28 R   0.55900 0.44097 0.00003 ( 1)  0.526 +-  0.421
+  29 S   0.00048 0.98869 0.01082 ( 2)  1.020 +-  0.204
+  30 H   0.00001 0.99921 0.00078 ( 2)  1.001 +-  0.045
+  31 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+  32 R   0.01634 0.96567 0.01798 ( 2)  1.020 +-  0.284
+  33 R   0.71276 0.28355 0.00370 ( 1)  0.403 +-  0.419
+  34 R   0.99941 0.00059 0.00000 ( 1)  0.152 +-  0.023
+  35 R   0.99951 0.00049 0.00000 ( 1)  0.152 +-  0.022
+  36 R   0.53344 0.46645 0.00011 ( 1)  0.548 +-  0.424
+  37 S   0.00001 0.99952 0.00047 ( 2)  1.001 +-  0.034
+  38 C   0.00000 0.99487 0.00512 ( 2)  1.008 +-  0.120
+  39 R   0.03746 0.95858 0.00395 ( 2)  0.976 +-  0.203
+  40 S   0.03141 0.96777 0.00082 ( 2)  0.975 +-  0.156
+  41 R   0.08467 0.91303 0.00231 ( 2)  0.933 +-  0.255
+  42 R   0.84538 0.15461 0.00000 ( 1)  0.282 +-  0.307
+  43 R   0.00000 0.72190 0.27809 ( 2)  1.650 +-  1.072
+  44 *   0.00005 0.07436 0.92559 ( 3)  3.339 +-  0.823
+  45 *   0.00000 0.00469 0.99531 ( 3)  3.511 +-  0.531
+  46 R   0.00017 0.96813 0.03170 ( 2)  1.064 +-  0.366
+  47 C   1.00000 0.00000 0.00000 ( 1)  0.151 +-  0.011
+  48 C   0.99980 0.00020 0.00000 ( 1)  0.151 +-  0.016
+  49 *   0.82116 0.17515 0.00370 ( 1)  0.311 +-  0.370
+  50 *   0.86075 0.13789 0.00136 ( 1)  0.272 +-  0.312
+  51 R   0.97916 0.02084 0.00000 ( 1)  0.169 +-  0.122
+  52 R   0.91616 0.08384 0.00000 ( 1)  0.222 +-  0.235
+  53 R   0.01526 0.98454 0.00020 ( 2)  0.988 +-  0.105
+  54 H   0.92195 0.07805 0.00000 ( 1)  0.217 +-  0.228
+  55 R   0.00000 0.01763 0.98237 ( 3)  3.461 +-  0.564
+  56 *   0.00000 0.00000 1.00000 ( 3)  3.525 +-  0.515
+  57 *   0.00000 0.16570 0.83430 ( 3)  3.055 +-  0.996
+  58 *   0.00159 0.75271 0.24570 ( 2)  1.583 +-  1.048
+  59 *   0.00000 0.37365 0.62635 ( 3)  2.504 +-  1.203
+  60 *   0.05529 0.94438 0.00033 ( 2)  0.954 +-  0.195
+  61 *   0.84701 0.15298 0.00000 ( 1)  0.281 +-  0.306
+  62 *   0.00000 0.99162 0.00838 ( 2)  1.014 +-  0.151
+  63 *   0.75894 0.22058 0.02048 ( 1)  0.405 +-  0.560
+  64 *   0.03263 0.44612 0.52125 ( 3)  2.280 +-  1.337
+  65 *   0.47772 0.37785 0.14443 ( 1)  0.953 +-  1.123
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.887         3.188 +- 0.875
+    44 *      0.926         3.339 +- 0.823
+    45 *      0.995**       3.511 +- 0.531
+    55 R      0.982*        3.461 +- 0.564
+    56 *      1.000**       3.525 +- 0.515
+    57 *      0.834         3.055 +- 0.996
+    59 *      0.626         2.504 +- 1.203
+    64 *      0.521         2.280 +- 1.337
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/rst1 b/examples/evol/data/protamine/PRM1/paml/M2/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/rub b/examples/evol/data/protamine/PRM1/paml/M2/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/M2/tmp.ctl
new file mode 100644
index 0000000..e0fcbf6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 2
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M2.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/examples/evol/data/protamine/PRM1/paml/M2/tree b/examples/evol/data/protamine/PRM1/paml/M2/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M2/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/2NG.dN b/examples/evol/data/protamine/PRM1/paml/M7/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/2NG.dS b/examples/evol/data/protamine/PRM1/paml/M7/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/2NG.t b/examples/evol/data/protamine/PRM1/paml/M7/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/M7/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/M7.out b/examples/evol/data/protamine/PRM1/paml/M7/M7.out
new file mode 100644
index 0000000..67375e7
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/M7.out
@@ -0,0 +1,1468 @@
+
+seed used = 816749133
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  beta (10 categories)
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:196):  -3310.726824     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.037701 1.069630 1.252057 0.066094 0.000000 0.000000 0.000000 0.586916 0.507595 0.051764 0.180212 0.043398 0.160883 0.091780 0.004986 0.178790 0.057637 0.097817 0.000000 0.075808 0.022501 0.023191 0.131060 0.056885 0.000000 0.042240 0.089505 0.021497 0.000000 0.000000 0.000004 0.021065 0.133154 0.000000 0.110725 0.000004 0.000004 0.042219 0.000000 0.000000 0.000004 0.000004 0.042219 0.000004 0.021183 0.042295 0.112872 0.000000 0.000000 0.020596 0.000004 0.000004 0.205534 0.063072 0.068 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.05167
+
+((1: 1.069630, 2: 1.252057): 0.037701, ((((7: 0.586916, 6: 0.507595): 0.000000, ((((18: 0.091780, (33: 0.178790, (49: 0.097817, ((71: 0.022501, 70: 0.023191): 0.075808, 61: 0.131060): 0.000000): 0.057637): 0.004986): 0.160883, (((44: 0.089505, (((80: 0.000004, 81: 0.021065): 0.000000, ((88: 0.110725, 89: 0.000004): 0.000000, 79: 0.000004): 0.133154): 0.000000, (((90: 0.000004, 91: 0.000004): 0.000000, 82: 0.042219): 0.000000, 69: 0.000004): 0.042219): 0.021497): 0.042240, (46: 0.042295,  [...]
+
+((Loxodonta_africana: 1.069630, Procavia_capensis: 1.252057): 0.037701, ((((Cynocephalus_variegatus: 0.586916, Tupaia_belangeri: 0.507595): 0.000000, ((((Hylobates_lar: 0.091780, (Pongo_pygmaeus: 0.178790, (Gorilla_gorilla: 0.097817, ((Pan_paniscus: 0.022501, Pan_troglodytes: 0.023191): 0.075808, Homo_sapiens: 0.131060): 0.000000): 0.057637): 0.004986): 0.160883, (((Nasalis_larvatus: 0.089505, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.021065): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.25308
+
+Parameters in M8 beta:
+ p=  0.50811  q=  0.43617
+
+
+dN/dS for site classes (K=10)
+
+p:   0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000
+w:   0.00815  0.06916  0.18051  0.32696  0.48998  0.65042  0.79114  0.89930  0.96800  0.99740
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.038    129.3     65.7   0.5381   0.0097   0.0181    1.3    1.2
+ 100..1       1.070    129.3     65.7   0.5381   0.2766   0.5140   35.8   33.8
+ 100..2       1.252    129.3     65.7   0.5381   0.3238   0.6017   41.9   39.5
+  99..101     0.066    129.3     65.7   0.5381   0.0171   0.0318    2.2    2.1
+ 101..102     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 104..7       0.587    129.3     65.7   0.5381   0.1518   0.2820   19.6   18.5
+ 104..6       0.508    129.3     65.7   0.5381   0.1313   0.2439   17.0   16.0
+ 103..105     0.052    129.3     65.7   0.5381   0.0134   0.0249    1.7    1.6
+ 105..106     0.180    129.3     65.7   0.5381   0.0466   0.0866    6.0    5.7
+ 106..107     0.043    129.3     65.7   0.5381   0.0112   0.0209    1.5    1.4
+ 107..108     0.161    129.3     65.7   0.5381   0.0416   0.0773    5.4    5.1
+ 108..18      0.092    129.3     65.7   0.5381   0.0237   0.0441    3.1    2.9
+ 108..109     0.005    129.3     65.7   0.5381   0.0013   0.0024    0.2    0.2
+ 109..33      0.179    129.3     65.7   0.5381   0.0462   0.0859    6.0    5.6
+ 109..110     0.058    129.3     65.7   0.5381   0.0149   0.0277    1.9    1.8
+ 110..49      0.098    129.3     65.7   0.5381   0.0253   0.0470    3.3    3.1
+ 110..111     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 111..112     0.076    129.3     65.7   0.5381   0.0196   0.0364    2.5    2.4
+ 112..71      0.023    129.3     65.7   0.5381   0.0058   0.0108    0.8    0.7
+ 112..70      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+ 111..61      0.131    129.3     65.7   0.5381   0.0339   0.0630    4.4    4.1
+ 107..113     0.057    129.3     65.7   0.5381   0.0147   0.0273    1.9    1.8
+ 113..114     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 114..115     0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 115..44      0.090    129.3     65.7   0.5381   0.0231   0.0430    3.0    2.8
+ 115..116     0.021    129.3     65.7   0.5381   0.0056   0.0103    0.7    0.7
+ 116..117     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 118..81      0.021    129.3     65.7   0.5381   0.0054   0.0101    0.7    0.7
+ 117..119     0.133    129.3     65.7   0.5381   0.0344   0.0640    4.5    4.2
+ 119..120     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 120..88      0.111    129.3     65.7   0.5381   0.0286   0.0532    3.7    3.5
+ 120..89      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 116..121     0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 121..122     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 122..123     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 123..90      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 122..82      0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 121..69      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 114..124     0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 124..46      0.042    129.3     65.7   0.5381   0.0109   0.0203    1.4    1.3
+ 124..45      0.113    129.3     65.7   0.5381   0.0292   0.0542    3.8    3.6
+ 113..125     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    129.3     65.7   0.5381   0.0053   0.0099    0.7    0.6
+ 126..48      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 106..127     0.206    129.3     65.7   0.5381   0.0531   0.0988    6.9    6.5
+ 127..128     0.063    129.3     65.7   0.5381   0.0163   0.0303    2.1    2.0
+ 128..21      0.068    129.3     65.7   0.5381   0.0177   0.0328    2.3    2.2
+ 128..20      0.048    129.3     65.7   0.5381   0.0124   0.0231    1.6    1.5
+ 127..129     0.021    129.3     65.7   0.5381   0.0055   0.0103    0.7    0.7
+ 129..19      0.074    129.3     65.7   0.5381   0.0192   0.0356    2.5    2.3
+ 129..130     0.132    129.3     65.7   0.5381   0.0340   0.0632    4.4    4.2
+ 130..34      0.022    129.3     65.7   0.5381   0.0058   0.0108    0.8    0.7
+ 130..35      0.063    129.3     65.7   0.5381   0.0164   0.0304    2.1    2.0
+ 105..5       0.127    129.3     65.7   0.5381   0.0328   0.0609    4.2    4.0
+ 102..131     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 131..132     0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 132..8       0.470    129.3     65.7   0.5381   0.1215   0.2259   15.7   14.8
+ 132..133     0.052    129.3     65.7   0.5381   0.0135   0.0251    1.7    1.7
+ 133..134     0.228    129.3     65.7   0.5381   0.0589   0.1095    7.6    7.2
+ 134..135     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 137..54      0.040    129.3     65.7   0.5381   0.0104   0.0193    1.3    1.3
+ 137..138     0.118    129.3     65.7   0.5381   0.0306   0.0568    4.0    3.7
+ 138..65      0.196    129.3     65.7   0.5381   0.0506   0.0941    6.5    6.2
+ 138..64      0.062    129.3     65.7   0.5381   0.0161   0.0300    2.1    2.0
+ 136..139     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 139..55      0.045    129.3     65.7   0.5381   0.0116   0.0215    1.5    1.4
+ 139..56      0.062    129.3     65.7   0.5381   0.0161   0.0299    2.1    2.0
+ 135..140     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 140..38      0.134    129.3     65.7   0.5381   0.0346   0.0643    4.5    4.2
+ 140..141     0.040    129.3     65.7   0.5381   0.0103   0.0191    1.3    1.3
+ 141..53      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 143..72      0.021    129.3     65.7   0.5381   0.0054   0.0100    0.7    0.7
+ 134..144     0.026    129.3     65.7   0.5381   0.0067   0.0124    0.9    0.8
+ 144..145     0.080    129.3     65.7   0.5381   0.0207   0.0386    2.7    2.5
+ 145..36      0.042    129.3     65.7   0.5381   0.0108   0.0200    1.4    1.3
+ 145..146     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 146..147     0.024    129.3     65.7   0.5381   0.0061   0.0114    0.8    0.7
+ 147..148     0.087    129.3     65.7   0.5381   0.0225   0.0419    2.9    2.7
+ 148..149     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 152..95      0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 152..94      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 153..93      0.021    129.3     65.7   0.5381   0.0055   0.0102    0.7    0.7
+ 150..92      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 149..83      0.043    129.3     65.7   0.5381   0.0111   0.0207    1.4    1.4
+ 148..156     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 156..85      0.043    129.3     65.7   0.5381   0.0111   0.0206    1.4    1.4
+ 156..84      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 147..62      0.041    129.3     65.7   0.5381   0.0107   0.0198    1.4    1.3
+ 146..50      0.088    129.3     65.7   0.5381   0.0229   0.0425    3.0    2.8
+ 144..157     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 157..37      0.156    129.3     65.7   0.5381   0.0403   0.0750    5.2    4.9
+ 157..158     0.118    129.3     65.7   0.5381   0.0304   0.0566    3.9    3.7
+ 158..51      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 133..9       0.367    129.3     65.7   0.5381   0.0949   0.1764   12.3   11.6
+ 131..4       0.547    129.3     65.7   0.5381   0.1416   0.2631   18.3   17.3
+ 101..159     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 159..3       1.772    129.3     65.7   0.5381   0.4582   0.8514   59.3   55.9
+ 159..160     0.292    129.3     65.7   0.5381   0.0755   0.1403    9.8    9.2
+ 160..161     0.058    129.3     65.7   0.5381   0.0151   0.0281    2.0    1.8
+ 161..162     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 163..12      0.136    129.3     65.7   0.5381   0.0352   0.0654    4.6    4.3
+ 163..164     0.295    129.3     65.7   0.5381   0.0764   0.1420    9.9    9.3
+ 164..26      0.107    129.3     65.7   0.5381   0.0277   0.0515    3.6    3.4
+ 164..25      0.134    129.3     65.7   0.5381   0.0348   0.0646    4.5    4.2
+ 162..165     0.047    129.3     65.7   0.5381   0.0122   0.0227    1.6    1.5
+ 165..13      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 165..14      0.074    129.3     65.7   0.5381   0.0192   0.0356    2.5    2.3
+ 161..166     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 166..167     0.238    129.3     65.7   0.5381   0.0617   0.1146    8.0    7.5
+ 167..168     0.092    129.3     65.7   0.5381   0.0238   0.0442    3.1    2.9
+ 168..23      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    129.3     65.7   0.5381   0.0057   0.0106    0.7    0.7
+ 167..170     0.081    129.3     65.7   0.5381   0.0211   0.0392    2.7    2.6
+ 170..171     0.053    129.3     65.7   0.5381   0.0138   0.0257    1.8    1.7
+ 171..172     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 173..66      0.114    129.3     65.7   0.5381   0.0294   0.0546    3.8    3.6
+ 173..174     0.174    129.3     65.7   0.5381   0.0450   0.0836    5.8    5.5
+ 174..78      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 174..77      0.033    129.3     65.7   0.5381   0.0084   0.0156    1.1    1.0
+ 172..175     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 176..76      0.116    129.3     65.7   0.5381   0.0299   0.0556    3.9    3.7
+ 176..75      0.163    129.3     65.7   0.5381   0.0422   0.0784    5.5    5.1
+ 175..177     0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 177..74      0.108    129.3     65.7   0.5381   0.0280   0.0521    3.6    3.4
+ 177..178     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 178..87      0.108    129.3     65.7   0.5381   0.0280   0.0521    3.6    3.4
+ 178..86      0.018    129.3     65.7   0.5381   0.0047   0.0088    0.6    0.6
+ 171..179     0.021    129.3     65.7   0.5381   0.0055   0.0101    0.7    0.7
+ 179..59      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 179..58      0.188    129.3     65.7   0.5381   0.0485   0.0901    6.3    5.9
+ 179..57      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 170..22      0.139    129.3     65.7   0.5381   0.0360   0.0669    4.7    4.4
+ 166..180     0.073    129.3     65.7   0.5381   0.0188   0.0350    2.4    2.3
+ 180..11      0.020    129.3     65.7   0.5381   0.0050   0.0094    0.7    0.6
+ 180..181     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 181..182     0.018    129.3     65.7   0.5381   0.0045   0.0085    0.6    0.6
+ 182..41      0.095    129.3     65.7   0.5381   0.0245   0.0456    3.2    3.0
+ 182..42      0.080    129.3     65.7   0.5381   0.0206   0.0383    2.7    2.5
+ 181..24      0.074    129.3     65.7   0.5381   0.0191   0.0355    2.5    2.3
+ 160..183     0.025    129.3     65.7   0.5381   0.0064   0.0120    0.8    0.8
+ 183..184     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 184..10      0.525    129.3     65.7   0.5381   0.1358   0.2524   17.6   16.6
+ 184..185     0.403    129.3     65.7   0.5381   0.1043   0.1938   13.5   12.7
+ 185..17      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 185..16      0.046    129.3     65.7   0.5381   0.0120   0.0223    1.6    1.5
+ 183..186     0.223    129.3     65.7   0.5381   0.0576   0.1070    7.4    7.0
+ 186..187     0.229    129.3     65.7   0.5381   0.0592   0.1100    7.7    7.2
+ 187..15      0.106    129.3     65.7   0.5381   0.0275   0.0511    3.6    3.4
+ 187..188     0.069    129.3     65.7   0.5381   0.0179   0.0332    2.3    2.2
+ 188..27      0.050    129.3     65.7   0.5381   0.0129   0.0239    1.7    1.6
+ 188..189     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 189..190     0.074    129.3     65.7   0.5381   0.0190   0.0353    2.5    2.3
+ 190..60      0.071    129.3     65.7   0.5381   0.0184   0.0342    2.4    2.2
+ 190..191     0.024    129.3     65.7   0.5381   0.0062   0.0115    0.8    0.8
+ 191..68      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+ 191..67      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 189..43      0.119    129.3     65.7   0.5381   0.0307   0.0571    4.0    3.8
+ 186..192     0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 192..193     0.376    129.3     65.7   0.5381   0.0971   0.1805   12.6   11.8
+ 193..31      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 192..194     0.291    129.3     65.7   0.5381   0.0753   0.1400    9.7    9.2
+ 194..29      0.000    129.3     65.7   0.5381   0.0000   0.0000    0.0    0.0
+ 194..28      0.023    129.3     65.7   0.5381   0.0060   0.0111    0.8    0.7
+
+
+Naive Empirical Bayes (NEB) analysis
+Time used: 23:18:25
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/algn b/examples/evol/data/protamine/PRM1/paml/M7/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/lnf b/examples/evol/data/protamine/PRM1/paml/M7/lnf
new file mode 100644
index 0000000..52d83f3
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.7616717097   0.001157292898       0.0752  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.1207959994   0.000000001827       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.1582648438   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -47.1294638446   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.2476260816   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -39.9541868417   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -40.3660315318   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -47.8941703490   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.8367964175   0.000000002427       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.1450349677   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -7.0536233099   0.000864271753       0.0562  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -53.5211370191   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -11.7651026845   0.000007771070       0.0005  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -33.6041261694   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -26.6050452576   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1226487696   0.000806627349       0.0524  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1182589537   0.000810176078       0.0527  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -52.8908686948   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -67.6453403949   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -100.9445900869   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.7886678622   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -72.1060683681   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -53.0660455491   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -67.6794816746   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -102.4330654691   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.2610713561   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -61.1447853169   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -43.3240244529   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.6753164142   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.1439974791   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -97.5274075783   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -101.8057235353   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -81.7282529338   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -99.6977073992   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -82.6620254146   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8717273158   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -110.0176931284   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -41.9831194878   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -77.1233564675   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -84.8640311656   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -22.5768388948   0.000000000157       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.9354176927   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.5472540379   0.000194077297       0.0126  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4513717738   0.001578355536       0.1026  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -19.2884025141   0.000000004199       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -46.9964511527   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.6614112445   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -35.0401079597   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -121.1748334138   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -206.7947608632   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -132.2550001291   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -28.9734772724   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -73.7293204633   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.8380736318   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -43.8357703971   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -80.4330189899   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.1908331116   0.000101969877       0.0066  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7448334731   0.001176944656       0.0765  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/rst b/examples/evol/data/protamine/PRM1/paml/M7/rst
new file mode 100644
index 0000000..3336b43
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/rst
@@ -0,0 +1,85 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=10)
+
+p:   0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000  0.10000
+w:   0.00815  0.06916  0.18051  0.32696  0.48998  0.65042  0.79114  0.89930  0.96800  0.99740
+
+Naive Empirical Bayes (NEB) probabilities for 10 classes& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.54132 0.30922 0.11143 0.02918 0.00659 0.00153 0.00042 0.00016 0.00009 0.00007 ( 1)  0.060
+   2 A   0.00025 0.01453 0.06612 0.12767 0.15891 0.15666 0.13928 0.12168 0.10995 0.10496 ( 5)  0.665
+   3 R   0.13797 0.49323 0.27797 0.07292 0.01409 0.00274 0.00066 0.00023 0.00011 0.00009 ( 2)  0.119
+   4 Y   0.00749 0.25221 0.42767 0.22481 0.06573 0.01561 0.00399 0.00134 0.00066 0.00049 ( 3)  0.216
+   5 R   0.00000 0.00216 0.04041 0.13891 0.20439 0.19122 0.14644 0.10913 0.08781 0.07952 ( 5)  0.656
+   6 C   0.00304 0.40877 0.48633 0.09307 0.00809 0.00062 0.00006 0.00001 0.00000 0.00000 ( 3)  0.151
+   7 C   0.00267 0.37998 0.49903 0.10705 0.01031 0.00085 0.00009 0.00002 0.00001 0.00000 ( 3)  0.157
+   8 R   0.00155 0.26753 0.50917 0.18331 0.03228 0.00486 0.00088 0.00024 0.00010 0.00007 ( 3)  0.190
+   9 S   0.28509 0.58248 0.12239 0.00948 0.00053 0.00003 0.00000 0.00000 0.00000 0.00000 ( 2)  0.068
+  10 R   0.00000 0.00000 0.00000 0.00001 0.00082 0.01282 0.07019 0.19126 0.32529 0.39961 (10)  0.950
+  11 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  12 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 7)  0.538
+  13 S   0.82245 0.16731 0.00995 0.00029 0.00001 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.020
+  14 R   0.00008 0.02773 0.16761 0.25803 0.21029 0.13186 0.07919 0.05167 0.03901 0.03452 ( 4)  0.487
+  15 S   0.82226 0.16746 0.00998 0.00029 0.00001 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.020
+  16 R   0.11985 0.45164 0.29391 0.09881 0.02569 0.00657 0.00197 0.00078 0.00043 0.00034 ( 2)  0.137
+  17 C   0.04451 0.66166 0.26826 0.02432 0.00119 0.00006 0.00000 0.00000 0.00000 0.00000 ( 2)  0.103
+  18 *   0.26011 0.21555 0.15646 0.10700 0.07357 0.05303 0.04090 0.03399 0.03039 0.02900 ( 1)  0.272
+  19 *   0.00379 0.02915 0.06425 0.09517 0.11672 0.12970 0.13675 0.14026 0.14183 0.14237 (10)  0.700
+  20 R   0.00000 0.00012 0.03084 0.24009 0.33464 0.20459 0.09436 0.04565 0.02762 0.02210 ( 5)  0.546
+  21 S   0.00004 0.06375 0.40804 0.35728 0.12505 0.03175 0.00848 0.00297 0.00151 0.00113 ( 3)  0.289
+  22 R   0.00000 0.00007 0.00674 0.05458 0.13320 0.17705 0.17756 0.16171 0.14776 0.14132 ( 7)  0.769
+  23 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  24 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  25 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  26 R   0.11660 0.44564 0.29692 0.10253 0.02731 0.00712 0.00216 0.00086 0.00048 0.00038 ( 2)  0.140
+  27 R   0.00000 0.00031 0.00794 0.04091 0.09480 0.14229 0.16931 0.17978 0.18224 0.18242 (10)  0.808
+  28 R   0.00014 0.03990 0.19812 0.27059 0.20806 0.12269 0.06760 0.04026 0.02835 0.02430 ( 4)  0.450
+  29 S   0.00000 0.00000 0.00064 0.01518 0.07184 0.14421 0.18609 0.19648 0.19415 0.19141 ( 8)  0.837
+  30 H   0.00000 0.00000 0.00002 0.00298 0.04005 0.12947 0.19833 0.21564 0.20966 0.20385 ( 8)  0.862
+  31 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 4)  0.538
+  32 R   0.00000 0.00130 0.01851 0.06034 0.11009 0.14867 0.16642 0.16826 0.16452 0.16190 ( 8)  0.778
+  33 R   0.01800 0.11447 0.18114 0.17803 0.14260 0.10705 0.08152 0.06578 0.05734 0.05407 ( 3)  0.472
+  34 R   0.16360 0.52704 0.24766 0.05201 0.00801 0.00127 0.00026 0.00008 0.00004 0.00003 ( 2)  0.105
+  35 R   0.16423 0.52887 0.24695 0.05089 0.00758 0.00115 0.00022 0.00007 0.00003 0.00002 ( 2)  0.104
+  36 R   0.00006 0.02100 0.13974 0.24026 0.21598 0.14522 0.09079 0.06037 0.04589 0.04069 ( 4)  0.517
+  37 S   0.00000 0.00000 0.00003 0.00420 0.05079 0.14901 0.20813 0.20968 0.19382 0.18434 ( 8)  0.848
+  38 C   0.00000 0.00000 0.00001 0.00170 0.02528 0.09716 0.17743 0.22227 0.23676 0.23939 (10)  0.884
+  39 R   0.00000 0.00037 0.01547 0.08017 0.15344 0.17888 0.16730 0.14696 0.13198 0.12543 ( 6)  0.738
+  40 S   0.00000 0.00027 0.02050 0.12192 0.21217 0.20343 0.15418 0.11379 0.09121 0.08253 ( 5)  0.675
+  41 R   0.00000 0.00100 0.03397 0.13707 0.20246 0.18722 0.14577 0.11259 0.09366 0.08625 ( 5)  0.665
+  42 R   0.00012 0.04884 0.29268 0.34344 0.18388 0.07299 0.02899 0.01374 0.00847 0.00687 ( 4)  0.356
+  43 R   0.00000 0.00000 0.00001 0.00118 0.01583 0.06711 0.14659 0.21944 0.26550 0.28434 (10)  0.906
+  44 *   0.00000 0.00001 0.00036 0.00401 0.02040 0.06201 0.13042 0.20883 0.27185 0.30212 (10)  0.907
+  45 *   0.00000 0.00000 0.00000 0.00001 0.00085 0.01222 0.06657 0.18651 0.32660 0.40723 (10)  0.951
+  46 R   0.00000 0.00000 0.00027 0.00796 0.04719 0.11600 0.17602 0.20841 0.22051 0.22363 (10)  0.864
+  47 C   0.04575 0.66817 0.26221 0.02275 0.00106 0.00005 0.00000 0.00000 0.00000 0.00000 ( 2)  0.102
+  48 C   0.00018 0.19803 0.58779 0.18942 0.02230 0.00200 0.00022 0.00004 0.00001 0.00001 ( 3)  0.194
+  49 *   0.22474 0.19771 0.15705 0.11683 0.08484 0.06252 0.04820 0.03966 0.03511 0.03334 ( 1)  0.305
+  50 *   0.25058 0.21552 0.16413 0.11534 0.07847 0.05414 0.03935 0.03093 0.02659 0.02493 ( 1)  0.268
+  51 R   0.08545 0.36785 0.30587 0.14390 0.05564 0.02138 0.00921 0.00482 0.00319 0.00268 ( 2)  0.187
+  52 R   0.00000 0.00741 0.23862 0.45188 0.21860 0.05959 0.01510 0.00484 0.00229 0.00166 ( 4)  0.357
+  53 R   0.00000 0.00009 0.01381 0.10923 0.21564 0.21517 0.16127 0.11523 0.08964 0.07992 ( 5)  0.682
+  54 H   0.00001 0.02402 0.24874 0.37706 0.21788 0.08145 0.02818 0.01148 0.00632 0.00486 ( 4)  0.373
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00024 0.00658 0.05148 0.17471 0.33516 0.43183 (10)  0.957
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00051 0.01303 0.10435 0.33846 0.54364 (10)  0.974
+  57 *   0.00000 0.00000 0.00000 0.00003 0.00173 0.02030 0.08808 0.20378 0.31462 0.37146 (10)  0.942
+  58 *   0.00000 0.00002 0.00138 0.01332 0.04986 0.10657 0.16271 0.20356 0.22675 0.23582 (10)  0.865
+  59 *   0.00000 0.00000 0.00000 0.00013 0.00379 0.02970 0.10267 0.20969 0.30384 0.35018 (10)  0.934
+  60 *   0.00000 0.00091 0.03167 0.13670 0.21434 0.19947 0.14850 0.10750 0.08479 0.07612 ( 5)  0.657
+  61 *   0.00021 0.06002 0.28532 0.32001 0.18225 0.07962 0.03457 0.01751 0.01123 0.00927 ( 4)  0.365
+  62 *   0.00000 0.00000 0.00000 0.00035 0.00967 0.05881 0.14770 0.22678 0.27054 0.28616 (10)  0.911
+  63 *   0.21095 0.18276 0.14405 0.10970 0.08461 0.06783 0.05708 0.05053 0.04695 0.04554 ( 1)  0.343
+  64 *   0.00031 0.00435 0.01802 0.04463 0.08086 0.11951 0.15385 0.17981 0.19594 0.20273 (10)  0.811
+  65 *   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 ( 2)  0.538
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+
+
+lnL = -3310.726824
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/rst1 b/examples/evol/data/protamine/PRM1/paml/M7/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/rub b/examples/evol/data/protamine/PRM1/paml/M7/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/M7/tmp.ctl
new file mode 100644
index 0000000..f22697c
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 7
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M7.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/examples/evol/data/protamine/PRM1/paml/M7/tree b/examples/evol/data/protamine/PRM1/paml/M7/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M7/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/2NG.dN b/examples/evol/data/protamine/PRM1/paml/M8/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/2NG.dS b/examples/evol/data/protamine/PRM1/paml/M8/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/2NG.t b/examples/evol/data/protamine/PRM1/paml/M8/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/M8/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/M8.out b/examples/evol/data/protamine/PRM1/paml/M8/M8.out
new file mode 100644
index 0000000..221647e
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/M8.out
@@ -0,0 +1,1515 @@
+
+seed used = 816750677
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: One dN/dS ratio 
+Codon frequencies: F3x4
+Site-class models:  beta&w>1 (11 categories)
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+lnL(ntime:193  np:198):  -3286.339925     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.039165 1.300442 1.380397 0.044350 0.000000 0.000000 0.000000 0.689356 0.554990 0.040486 0.202985 0.050266 0.178544 0.099402 0.004175 0.194437 0.062081 0.104291 0.000000 0.080399 0.024257 0.024565 0.144047 0.062440 0.000000 0.045502 0.095219 0.022477 0.000000 0.000000 0.000004 0.022503 0.142616 0.000000 0.118406 0.000004 0.000004 0.000000 0.000000 0.045071 0.000004 0.000004 0.000004 0.045071 0.022905 0.044773 0.119908 0.000000 0.000000 0.021979 0.000004 0.000004 0.213709 0.066942 0.073 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  19.02079
+
+((1: 1.300442, 2: 1.380397): 0.039165, ((((7: 0.689356, 6: 0.554990): 0.000000, ((((18: 0.099402, (33: 0.194437, (49: 0.104291, ((71: 0.024257, 70: 0.024565): 0.080399, 61: 0.144047): 0.000000): 0.062081): 0.004175): 0.178544, (((44: 0.095219, (((80: 0.000004, 81: 0.022503): 0.000000, ((88: 0.118406, 89: 0.000004): 0.000000, 79: 0.000004): 0.142616): 0.000000, (((90: 0.000004, 91: 0.000004): 0.045071, 82: 0.000004): 0.000000, 69: 0.045071): 0.000000): 0.022477): 0.045502, (46: 0.044773,  [...]
+
+((Loxodonta_africana: 1.300442, Procavia_capensis: 1.380397): 0.039165, ((((Cynocephalus_variegatus: 0.689356, Tupaia_belangeri: 0.554990): 0.000000, ((((Hylobates_lar: 0.099402, (Pongo_pygmaeus: 0.194437, (Gorilla_gorilla: 0.104291, ((Pan_paniscus: 0.024257, Pan_troglodytes: 0.024565): 0.080399, Homo_sapiens: 0.144047): 0.000000): 0.062081): 0.004175): 0.178544, (((Nasalis_larvatus: 0.095219, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.022503): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.50513
+
+Parameters in M9 beta&w>1:
+  p0=  0.85010  p=  0.71723 q=  0.88553
+ (p1=  0.14990) w=  3.02123
+
+
+dN/dS for site classes (K=11)
+
+p:   0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.14990
+w:   0.01757  0.08091  0.16394  0.26012  0.36597  0.47899  0.59697  0.71763  0.83795  0.95226  3.02123
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.039    128.2     66.8   0.8331   0.0122   0.0147    1.6    1.0
+ 100..1       1.300    128.2     66.8   0.8331   0.4057   0.4869   52.0   32.5
+ 100..2       1.380    128.2     66.8   0.8331   0.4306   0.5169   55.2   34.5
+  99..101     0.044    128.2     66.8   0.8331   0.0138   0.0166    1.8    1.1
+ 101..102     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 102..103     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 104..7       0.689    128.2     66.8   0.8331   0.2150   0.2581   27.6   17.2
+ 104..6       0.555    128.2     66.8   0.8331   0.1731   0.2078   22.2   13.9
+ 103..105     0.040    128.2     66.8   0.8331   0.0126   0.0152    1.6    1.0
+ 105..106     0.203    128.2     66.8   0.8331   0.0633   0.0760    8.1    5.1
+ 106..107     0.050    128.2     66.8   0.8331   0.0157   0.0188    2.0    1.3
+ 107..108     0.179    128.2     66.8   0.8331   0.0557   0.0669    7.1    4.5
+ 108..18      0.099    128.2     66.8   0.8331   0.0310   0.0372    4.0    2.5
+ 108..109     0.004    128.2     66.8   0.8331   0.0013   0.0016    0.2    0.1
+ 109..33      0.194    128.2     66.8   0.8331   0.0607   0.0728    7.8    4.9
+ 109..110     0.062    128.2     66.8   0.8331   0.0194   0.0232    2.5    1.6
+ 110..49      0.104    128.2     66.8   0.8331   0.0325   0.0391    4.2    2.6
+ 110..111     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 111..112     0.080    128.2     66.8   0.8331   0.0251   0.0301    3.2    2.0
+ 112..71      0.024    128.2     66.8   0.8331   0.0076   0.0091    1.0    0.6
+ 112..70      0.025    128.2     66.8   0.8331   0.0077   0.0092    1.0    0.6
+ 111..61      0.144    128.2     66.8   0.8331   0.0449   0.0539    5.8    3.6
+ 107..113     0.062    128.2     66.8   0.8331   0.0195   0.0234    2.5    1.6
+ 113..114     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 114..115     0.046    128.2     66.8   0.8331   0.0142   0.0170    1.8    1.1
+ 115..44      0.095    128.2     66.8   0.8331   0.0297   0.0357    3.8    2.4
+ 115..116     0.022    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 116..117     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 118..81      0.023    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 117..119     0.143    128.2     66.8   0.8331   0.0445   0.0534    5.7    3.6
+ 119..120     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 120..88      0.118    128.2     66.8   0.8331   0.0369   0.0443    4.7    3.0
+ 120..89      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 122..123     0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 123..90      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 121..69      0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 114..124     0.023    128.2     66.8   0.8331   0.0071   0.0086    0.9    0.6
+ 124..46      0.045    128.2     66.8   0.8331   0.0140   0.0168    1.8    1.1
+ 124..45      0.120    128.2     66.8   0.8331   0.0374   0.0449    4.8    3.0
+ 113..125     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 126..47      0.022    128.2     66.8   0.8331   0.0069   0.0082    0.9    0.5
+ 126..48      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 106..127     0.214    128.2     66.8   0.8331   0.0667   0.0800    8.5    5.3
+ 127..128     0.067    128.2     66.8   0.8331   0.0209   0.0251    2.7    1.7
+ 128..21      0.073    128.2     66.8   0.8331   0.0229   0.0275    2.9    1.8
+ 128..20      0.051    128.2     66.8   0.8331   0.0160   0.0192    2.0    1.3
+ 127..129     0.013    128.2     66.8   0.8331   0.0041   0.0049    0.5    0.3
+ 129..19      0.088    128.2     66.8   0.8331   0.0274   0.0329    3.5    2.2
+ 129..130     0.150    128.2     66.8   0.8331   0.0467   0.0560    6.0    3.7
+ 130..34      0.023    128.2     66.8   0.8331   0.0073   0.0088    0.9    0.6
+ 130..35      0.067    128.2     66.8   0.8331   0.0208   0.0249    2.7    1.7
+ 105..5       0.151    128.2     66.8   0.8331   0.0471   0.0565    6.0    3.8
+ 102..131     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 131..132     0.015    128.2     66.8   0.8331   0.0046   0.0055    0.6    0.4
+ 132..8       0.531    128.2     66.8   0.8331   0.1657   0.1989   21.3   13.3
+ 132..133     0.073    128.2     66.8   0.8331   0.0228   0.0273    2.9    1.8
+ 133..134     0.243    128.2     66.8   0.8331   0.0759   0.0911    9.7    6.1
+ 134..135     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 137..54      0.045    128.2     66.8   0.8331   0.0142   0.0170    1.8    1.1
+ 137..138     0.129    128.2     66.8   0.8331   0.0401   0.0482    5.1    3.2
+ 138..65      0.213    128.2     66.8   0.8331   0.0663   0.0796    8.5    5.3
+ 138..64      0.069    128.2     66.8   0.8331   0.0215   0.0258    2.8    1.7
+ 136..139     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 139..55      0.049    128.2     66.8   0.8331   0.0152   0.0183    2.0    1.2
+ 139..56      0.070    128.2     66.8   0.8331   0.0219   0.0262    2.8    1.8
+ 135..140     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 140..38      0.147    128.2     66.8   0.8331   0.0459   0.0552    5.9    3.7
+ 140..141     0.045    128.2     66.8   0.8331   0.0141   0.0169    1.8    1.1
+ 141..53      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 143..72      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 134..144     0.029    128.2     66.8   0.8331   0.0090   0.0108    1.2    0.7
+ 144..145     0.090    128.2     66.8   0.8331   0.0281   0.0338    3.6    2.3
+ 145..36      0.047    128.2     66.8   0.8331   0.0146   0.0175    1.9    1.2
+ 145..146     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 146..147     0.026    128.2     66.8   0.8331   0.0081   0.0097    1.0    0.6
+ 147..148     0.096    128.2     66.8   0.8331   0.0299   0.0359    3.8    2.4
+ 148..149     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 152..95      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 152..94      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 153..93      0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 150..92      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 149..83      0.047    128.2     66.8   0.8331   0.0148   0.0177    1.9    1.2
+ 148..156     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 156..85      0.047    128.2     66.8   0.8331   0.0147   0.0176    1.9    1.2
+ 156..84      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 147..62      0.046    128.2     66.8   0.8331   0.0143   0.0172    1.8    1.1
+ 146..50      0.099    128.2     66.8   0.8331   0.0308   0.0369    3.9    2.5
+ 144..157     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 157..37      0.172    128.2     66.8   0.8331   0.0535   0.0642    6.9    4.3
+ 157..158     0.130    128.2     66.8   0.8331   0.0405   0.0486    5.2    3.2
+ 158..51      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 133..9       0.388    128.2     66.8   0.8331   0.1209   0.1452   15.5    9.7
+ 131..4       0.586    128.2     66.8   0.8331   0.1827   0.2193   23.4   14.6
+ 101..159     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 159..3       2.072    128.2     66.8   0.8331   0.6462   0.7757   82.9   51.8
+ 159..160     0.316    128.2     66.8   0.8331   0.0985   0.1183   12.6    7.9
+ 160..161     0.075    128.2     66.8   0.8331   0.0233   0.0280    3.0    1.9
+ 161..162     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 162..163     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 163..12      0.155    128.2     66.8   0.8331   0.0483   0.0580    6.2    3.9
+ 163..164     0.320    128.2     66.8   0.8331   0.0999   0.1199   12.8    8.0
+ 164..26      0.119    128.2     66.8   0.8331   0.0372   0.0447    4.8    3.0
+ 164..25      0.149    128.2     66.8   0.8331   0.0465   0.0558    6.0    3.7
+ 162..165     0.050    128.2     66.8   0.8331   0.0155   0.0186    2.0    1.2
+ 165..13      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 165..14      0.076    128.2     66.8   0.8331   0.0236   0.0283    3.0    1.9
+ 161..166     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 166..167     0.262    128.2     66.8   0.8331   0.0816   0.0980   10.5    6.5
+ 167..168     0.102    128.2     66.8   0.8331   0.0317   0.0381    4.1    2.5
+ 168..23      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 169..39      0.025    128.2     66.8   0.8331   0.0077   0.0092    1.0    0.6
+ 167..170     0.090    128.2     66.8   0.8331   0.0282   0.0338    3.6    2.3
+ 170..171     0.056    128.2     66.8   0.8331   0.0175   0.0210    2.2    1.4
+ 171..172     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 173..66      0.126    128.2     66.8   0.8331   0.0392   0.0471    5.0    3.1
+ 173..174     0.189    128.2     66.8   0.8331   0.0591   0.0709    7.6    4.7
+ 174..78      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 174..77      0.037    128.2     66.8   0.8331   0.0114   0.0137    1.5    0.9
+ 172..175     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 175..176     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 176..76      0.133    128.2     66.8   0.8331   0.0415   0.0499    5.3    3.3
+ 176..75      0.181    128.2     66.8   0.8331   0.0564   0.0677    7.2    4.5
+ 175..177     0.021    128.2     66.8   0.8331   0.0065   0.0078    0.8    0.5
+ 177..74      0.118    128.2     66.8   0.8331   0.0368   0.0442    4.7    2.9
+ 177..178     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 178..87      0.118    128.2     66.8   0.8331   0.0368   0.0442    4.7    2.9
+ 178..86      0.021    128.2     66.8   0.8331   0.0064   0.0077    0.8    0.5
+ 171..179     0.023    128.2     66.8   0.8331   0.0073   0.0087    0.9    0.6
+ 179..59      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 179..58      0.210    128.2     66.8   0.8331   0.0655   0.0786    8.4    5.2
+ 179..57      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 170..22      0.155    128.2     66.8   0.8331   0.0483   0.0580    6.2    3.9
+ 166..180     0.084    128.2     66.8   0.8331   0.0262   0.0314    3.4    2.1
+ 180..11      0.022    128.2     66.8   0.8331   0.0070   0.0084    0.9    0.6
+ 180..181     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 181..182     0.021    128.2     66.8   0.8331   0.0064   0.0077    0.8    0.5
+ 182..41      0.108    128.2     66.8   0.8331   0.0337   0.0405    4.3    2.7
+ 182..42      0.090    128.2     66.8   0.8331   0.0282   0.0338    3.6    2.3
+ 181..24      0.084    128.2     66.8   0.8331   0.0262   0.0315    3.4    2.1
+ 160..183     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 184..10      0.583    128.2     66.8   0.8331   0.1818   0.2182   23.3   14.6
+ 184..185     0.464    128.2     66.8   0.8331   0.1446   0.1736   18.5   11.6
+ 185..17      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 185..16      0.053    128.2     66.8   0.8331   0.0166   0.0200    2.1    1.3
+ 183..186     0.272    128.2     66.8   0.8331   0.0849   0.1019   10.9    6.8
+ 186..187     0.268    128.2     66.8   0.8331   0.0835   0.1002   10.7    6.7
+ 187..15      0.123    128.2     66.8   0.8331   0.0382   0.0459    4.9    3.1
+ 187..188     0.068    128.2     66.8   0.8331   0.0211   0.0253    2.7    1.7
+ 188..27      0.055    128.2     66.8   0.8331   0.0171   0.0205    2.2    1.4
+ 188..189     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 189..190     0.081    128.2     66.8   0.8331   0.0253   0.0303    3.2    2.0
+ 190..60      0.078    128.2     66.8   0.8331   0.0242   0.0290    3.1    1.9
+ 190..191     0.026    128.2     66.8   0.8331   0.0082   0.0098    1.0    0.7
+ 191..68      0.025    128.2     66.8   0.8331   0.0079   0.0095    1.0    0.6
+ 191..67      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 189..43      0.128    128.2     66.8   0.8331   0.0400   0.0480    5.1    3.2
+ 186..192     0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 192..193     0.422    128.2     66.8   0.8331   0.1317   0.1581   16.9   10.6
+ 193..31      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 192..194     0.320    128.2     66.8   0.8331   0.0997   0.1197   12.8    8.0
+ 194..29      0.000    128.2     66.8   0.8331   0.0000   0.0000    0.0    0.0
+ 194..28      0.026    128.2     66.8   0.8331   0.0081   0.0097    1.0    0.6
+
+
+Naive Empirical Bayes (NEB) analysis
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.984*        2.988
+    43 R      0.502         1.944
+    44 *      0.963*        2.939
+    45 *      0.999**       3.019
+    55 R      0.998**       3.017
+    56 *      1.000**       3.021
+    57 *      0.958*        2.931
+    59 *      0.889         2.785
+    64 *      0.573         2.035
+
+
+Bayes Empirical Bayes (BEB) analysis (Yang, Wong & Nielsen 2005. Mol. Biol. Evol. 22:1107-1118)
+Positively selected sites (*: P>95%; **: P>99%)
+
+            Pr(w>1)     post mean +- SE for w
+
+    10 R      0.975*        2.979 +- 0.606
+    43 R      0.527         1.918 +- 1.067
+    44 *      0.961*        2.959 +- 0.666
+    45 *      0.998**       3.039 +- 0.529
+    55 R      0.996**       3.032 +- 0.535
+    56 *      1.000**       3.042 +- 0.523
+    57 *      0.943         2.901 +- 0.701
+    59 *      0.855         2.680 +- 0.874
+    64 *      0.603         2.111 +- 1.216
+
+
+
+The grid 
+
+p0:   0.050  0.150  0.250  0.350  0.450  0.550  0.650  0.750  0.850  0.950
+p :   0.100  0.300  0.500  0.700  0.900  1.100  1.300  1.500  1.700  1.900
+q :   0.100  0.300  0.500  0.700  0.900  1.100  1.300  1.500  1.700  1.900
+ws:   1.500  2.500  3.500  4.500  5.500  6.500  7.500  8.500  9.500 10.500
+
+
+Posterior on the grid
+
+p0:   0.000  0.000  0.000  0.000  0.000  0.000  0.010  0.213  0.734  0.043
+p :   0.002  0.108  0.295  0.288  0.182  0.086  0.030  0.007  0.001  0.000
+q :   0.002  0.066  0.151  0.199  0.181  0.142  0.103  0.072  0.050  0.034
+ws:   0.000  0.470  0.519  0.011  0.000  0.000  0.000  0.000  0.000  0.000
+
+Time used: 24:40:59
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/algn b/examples/evol/data/protamine/PRM1/paml/M8/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/lnf b/examples/evol/data/protamine/PRM1/paml/M8/lnf
new file mode 100644
index 0000000..e3d2db7
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -6.8110110698   0.001101578564       0.0716  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -20.1792824092   0.000000001723       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -35.1246720229   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -49.2075480319   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -61.1819680331   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -39.7838759172   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -40.1672894953   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -46.9576424917   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -19.5692655261   0.000000003171       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -104.0661689658   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1    -7.1194996053   0.000809171555       0.0526  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -52.0970983640   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -11.9243694399   0.000006626926       0.0004  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.5496643798   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -26.3892338874   0.000000000003       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -6.9948510192   0.000916589337       0.0596  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -7.1569967809   0.000779391726       0.0507  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -51.9338140769   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -66.9952200167   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1  -101.9261599250   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -40.0498388551   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -71.9870262555   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -52.3969500292   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -68.4946137260   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -102.1326703659   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -75.4605014821   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -60.9395936022   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -42.8202423738   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -29.3487616737   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -78.0271011058   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -98.9916068875   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -102.8977366438   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -81.8565538741   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1  -100.4678238520   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -83.4304229614   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -75.8218574993   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -111.2540086720   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -40.5150397776   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -73.4319867227   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -85.3835081136   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -22.4161504252   0.000000000184       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -41.8001284403   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.4561022826   0.000212599109       0.0138  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -6.4594140671   0.001565712844       0.1018  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -18.6609744755   0.000000007864       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -45.5770021313   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -88.1042591338   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -34.9791340617   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -119.1628681063   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -195.5584828452   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -130.7182936627   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -29.2961795767   0.000000000000       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -72.0225784750   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -48.1279035294   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -42.5199165343   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -82.3075205560   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -9.2436157455   0.000096727216       0.0063  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.6146309130   0.001340609506       0.0871  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/rst b/examples/evol/data/protamine/PRM1/paml/M8/rst
new file mode 100644
index 0000000..d402e36
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/rst
@@ -0,0 +1,177 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
+
+dN/dS for site classes (K=11)
+
+p:   0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.08501  0.14990
+w:   0.01757  0.08091  0.16394  0.26012  0.36597  0.47899  0.59697  0.71763  0.83795  0.95226  3.02123
+
+Naive Empirical Bayes (NEB) probabilities for 11 classes& postmean_w & P(w>1)
+Loxodonta_africana used as reference
+
+   1 M   0.45460 0.27812 0.14613 0.06940 0.03062 0.01279 0.00515 0.00204 0.00081 0.00034 0.00000 ( 1)  0.095  0.000
+   2 A   0.00084 0.01454 0.04597 0.08548 0.12122 0.14545 0.15580 0.15398 0.14374 0.12953 0.00346 ( 7)  0.603  0.003
+   3 R   0.15797 0.34163 0.26255 0.13958 0.06104 0.02382 0.00873 0.00312 0.00112 0.00043 0.00000 ( 2)  0.152  0.000
+   4 Y   0.01745 0.18121 0.29124 0.24717 0.14777 0.07051 0.02886 0.01068 0.00375 0.00134 0.00000 ( 3)  0.244  0.000
+   5 R   0.00001 0.00153 0.01496 0.05144 0.10491 0.15514 0.18372 0.18501 0.16562 0.13754 0.00013 ( 8)  0.641  0.000
+   6 C   0.01134 0.28128 0.39981 0.21579 0.07035 0.01710 0.00351 0.00066 0.00012 0.00003 0.00000 ( 3)  0.181  0.000
+   7 C   0.01000 0.26105 0.39527 0.22821 0.07946 0.02050 0.00443 0.00087 0.00017 0.00004 0.00000 ( 3)  0.188  0.000
+   8 R   0.00584 0.18115 0.34763 0.26729 0.12915 0.04776 0.01512 0.00441 0.00126 0.00038 0.00000 ( 3)  0.225  0.000
+   9 S   0.32540 0.43397 0.18000 0.04809 0.01021 0.00192 0.00034 0.00006 0.00001 0.00000 0.00000 ( 2)  0.088  0.000
+  10 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00015 0.00091 0.00373 0.01092 0.98428 (11)  2.988  0.984
+  11 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  12 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  13 S   0.77046 0.19216 0.03242 0.00438 0.00052 0.00006 0.00001 0.00000 0.00000 0.00000 0.00000 ( 1)  0.036  0.000
+  14 R   0.00039 0.02190 0.08893 0.15890 0.18843 0.17578 0.14122 0.10337 0.07180 0.04924 0.00004 ( 5)  0.477  0.000
+  15 S   0.77024 0.19230 0.03248 0.00439 0.00052 0.00006 0.00001 0.00000 0.00000 0.00000 0.00000 ( 1)  0.036  0.000
+  16 R   0.13298 0.30228 0.25578 0.15707 0.08236 0.03934 0.01770 0.00769 0.00332 0.00149 0.00000 ( 2)  0.179  0.000
+  17 C   0.09390 0.47639 0.30926 0.09623 0.02023 0.00339 0.00050 0.00007 0.00001 0.00000 0.00000 ( 2)  0.125  0.000
+  18 *   0.21354 0.18030 0.14597 0.11596 0.09155 0.07241 0.05770 0.04651 0.03806 0.03182 0.00617 ( 1)  0.289  0.006
+  19 *   0.00616 0.02598 0.04719 0.06649 0.08281 0.09601 0.10632 0.11416 0.11990 0.12389 0.21110 (11)  1.105  0.211
+  20 R   0.00000 0.00010 0.00712 0.05872 0.16370 0.23759 0.22527 0.16060 0.09526 0.05164 0.00000 ( 6)  0.569  0.000
+  21 S   0.00026 0.04280 0.19715 0.28805 0.23452 0.13507 0.06277 0.02566 0.00986 0.00385 0.00000 ( 4)  0.329  0.000
+  22 R   0.00000 0.00009 0.00296 0.01963 0.06025 0.11739 0.17086 0.20445 0.21418 0.20588 0.00430 ( 9)  0.721  0.004
+  23 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  24 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  25 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  26 R   0.12912 0.29724 0.25546 0.15950 0.08504 0.04126 0.01884 0.00829 0.00362 0.00163 0.00000 ( 2)  0.182  0.000
+  27 R   0.00000 0.00041 0.00477 0.01976 0.04918 0.09029 0.13568 0.17735 0.20966 0.23028 0.08262 (10)  0.920  0.083
+  28 R   0.00044 0.02208 0.08292 0.14502 0.17714 0.17499 0.14912 0.11379 0.08020 0.05429 0.00000 ( 5)  0.491  0.000
+  29 S   0.00000 0.00000 0.00021 0.00334 0.01929 0.06050 0.12728 0.20326 0.26695 0.30504 0.01411 (10)  0.816  0.014
+  30 H   0.00000 0.00000 0.00000 0.00025 0.00441 0.02851 0.09534 0.20110 0.30487 0.36506 0.00047 (10)  0.821  0.000
+  31 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+  32 R   0.00000 0.00083 0.00677 0.02190 0.04787 0.08528 0.13261 0.18460 0.23293 0.26925 0.01796 (10)  0.783  0.018
+  33 R   0.02537 0.09024 0.13204 0.14622 0.14129 0.12642 0.10813 0.09016 0.07433 0.06153 0.00427 ( 4)  0.443  0.004
+  34 R   0.18755 0.37043 0.25401 0.11915 0.04578 0.01570 0.00507 0.00161 0.00052 0.00018 0.00000 ( 2)  0.135  0.000
+  35 R   0.18807 0.37193 0.25456 0.11857 0.04495 0.01511 0.00475 0.00145 0.00045 0.00015 0.00000 ( 2)  0.134  0.000
+  36 R   0.00027 0.01602 0.07045 0.13713 0.17696 0.17860 0.15376 0.11916 0.08648 0.06114 0.00004 ( 6)  0.507  0.000
+  37 S   0.00000 0.00000 0.00000 0.00028 0.00472 0.03008 0.09925 0.20575 0.30474 0.35499 0.00018 (10)  0.817  0.000
+  38 C   0.00000 0.00000 0.00000 0.00016 0.00278 0.01918 0.07148 0.17278 0.30439 0.42365 0.00558 (10)  0.852  0.006
+  39 R   0.00000 0.00046 0.00770 0.03493 0.08343 0.13675 0.17614 0.19307 0.18984 0.17443 0.00326 ( 8)  0.685  0.003
+  40 S   0.00000 0.00023 0.00637 0.03675 0.09657 0.15932 0.19479 0.19505 0.17122 0.13938 0.00031 ( 8)  0.656  0.000
+  41 R   0.00000 0.00096 0.01419 0.05630 0.11657 0.16531 0.18490 0.17752 0.15480 0.12830 0.00116 ( 7)  0.632  0.001
+  42 R   0.00038 0.02768 0.12387 0.21416 0.22511 0.17559 0.11353 0.06535 0.03534 0.01900 0.00000 ( 5)  0.407  0.000
+  43 R   0.00000 0.00000 0.00000 0.00008 0.00112 0.00719 0.02744 0.07271 0.14724 0.24173 0.50249 (11)  1.944  0.502
+  44 *   0.00000 0.00000 0.00001 0.00009 0.00038 0.00114 0.00275 0.00570 0.01041 0.01692 0.96259 (11)  2.939  0.963
+  45 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00028 0.00087 0.99877 (11)  3.019  0.999
+  46 R   0.00000 0.00000 0.00009 0.00162 0.01087 0.03970 0.09714 0.17939 0.26983 0.34773 0.05363 (10)  0.929  0.054
+  47 C   0.09597 0.48074 0.30683 0.09357 0.01923 0.00314 0.00045 0.00006 0.00001 0.00000 0.00000 ( 2)  0.124  0.000
+  48 C   0.00120 0.13418 0.37363 0.30634 0.13314 0.03968 0.00940 0.00196 0.00039 0.00008 0.00000 ( 3)  0.227  0.000
+  49 *   0.18313 0.16349 0.14112 0.11928 0.09942 0.08213 0.06752 0.05547 0.04578 0.03827 0.00439 ( 1)  0.315  0.004
+  50 *   0.20183 0.17641 0.14805 0.12107 0.09724 0.07717 0.06080 0.04781 0.03774 0.03025 0.00162 ( 1)  0.282  0.002
+  51 R   0.09953 0.24860 0.23872 0.17095 0.10735 0.06295 0.03549 0.01958 0.01076 0.00608 0.00000 ( 2)  0.225  0.000
+  52 R   0.00000 0.00531 0.08170 0.23547 0.28802 0.21003 0.10973 0.04625 0.01723 0.00626 0.00000 ( 5)  0.400  0.000
+  53 R   0.00000 0.00007 0.00343 0.02605 0.08133 0.15053 0.19840 0.20721 0.18435 0.14858 0.00005 ( 8)  0.672  0.000
+  54 H   0.00009 0.01880 0.11529 0.22770 0.24877 0.18794 0.11079 0.05516 0.02472 0.01075 0.00000 ( 5)  0.397  0.000
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00042 0.00163 0.99787 (11)  3.017  0.998
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.00000 (11)  3.021  1.000
+  57 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00007 0.00061 0.00312 0.01089 0.02774 0.95757 (11)  2.931  0.958
+  58 *   0.00000 0.00003 0.00058 0.00383 0.01394 0.03525 0.06968 0.11529 0.16679 0.21673 0.37787 (11)  1.635  0.378
+  59 *   0.00000 0.00000 0.00000 0.00000 0.00005 0.00048 0.00278 0.01074 0.03041 0.06639 0.88916 (11)  2.785  0.889
+  60 *   0.00000 0.00067 0.01042 0.04482 0.10217 0.15887 0.19079 0.19053 0.16690 0.13476 0.00009 ( 7)  0.646  0.000
+  61 *   0.00072 0.03674 0.13317 0.20818 0.21228 0.16768 0.11251 0.06803 0.03878 0.02192 0.00000 ( 5)  0.406  0.000
+  62 *   0.00000 0.00000 0.00000 0.00003 0.00081 0.00821 0.04248 0.13539 0.29994 0.50092 0.01223 (10)  0.892  0.012
+  63 *   0.17306 0.15270 0.13112 0.11157 0.09495 0.08125 0.07011 0.06110 0.05387 0.04820 0.02206 ( 1)  0.383  0.022
+  64 *   0.00035 0.00263 0.00771 0.01597 0.02729 0.04123 0.05713 0.07426 0.09173 0.10840 0.57330 (11)  2.035  0.573
+  65 *   0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.08501 0.14990 (11)  0.833  0.150
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.984*        2.988
+    43 R      0.502         1.944
+    44 *      0.963*        2.939
+    45 *      0.999**       3.019
+    55 R      0.998**       3.017
+    56 *      1.000**       3.021
+    57 *      0.958*        2.931
+    59 *      0.889         2.785
+    64 *      0.573         2.035
+
+
+lnL = -3286.339925
+
+Bayes Empirical Bayes (BEB) probabilities for 11 classes (class)& postmean_w
+Loxodonta_africana used as reference
+
+   1 M   0.67972 0.18668 0.07599 0.03240 0.01409 0.00619 0.00275 0.00123 0.00057 0.00037 0.00000 ( 1)  0.106 +-  0.104
+   2 A   0.01368 0.04812 0.08357 0.10844 0.12163 0.12511 0.12178 0.11485 0.10850 0.14592 0.00839 (10)  0.608 +-  0.308
+   3 R   0.51017 0.27173 0.12668 0.05389 0.02217 0.00904 0.00370 0.00154 0.00067 0.00042 0.00000 ( 1)  0.136 +-  0.118
+   4 Y   0.19724 0.30628 0.23661 0.13666 0.06830 0.03136 0.01367 0.00580 0.00248 0.00159 0.00000 ( 2)  0.228 +-  0.151
+   5 R   0.00063 0.01408 0.04911 0.09209 0.12727 0.14632 0.14879 0.13939 0.12575 0.15582 0.00075 (10)  0.642 +-  0.222
+   6 C   0.25143 0.43509 0.21619 0.07108 0.01960 0.00498 0.00123 0.00030 0.00008 0.00003 0.00000 ( 2)  0.169 +-  0.101
+   7 C   0.23073 0.42904 0.22858 0.08001 0.02330 0.00620 0.00159 0.00040 0.00011 0.00004 0.00000 ( 2)  0.176 +-  0.104
+   8 R   0.15484 0.37323 0.26613 0.12648 0.05053 0.01858 0.00658 0.00232 0.00085 0.00047 0.00000 ( 2)  0.215 +-  0.126
+   9 S   0.74452 0.19755 0.04544 0.00979 0.00210 0.00046 0.00010 0.00002 0.00001 0.00000 0.00000 ( 1)  0.083 +-  0.064
+  10 R   0.00000 0.00000 0.00000 0.00000 0.00001 0.00007 0.00037 0.00142 0.00453 0.01832 0.97528 (11)  2.979 +-  0.606
+  11 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  12 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  13 S   0.92434 0.06716 0.00744 0.00092 0.00012 0.00002 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.059 +-  0.032
+  14 R   0.01553 0.09088 0.15501 0.17160 0.15555 0.12653 0.09685 0.07206 0.05430 0.06150 0.00019 ( 4)  0.475 +-  0.233
+  15 S   0.92421 0.06726 0.00746 0.00092 0.00012 0.00002 0.00000 0.00000 0.00000 0.00000 0.00000 ( 1)  0.059 +-  0.032
+  16 R   0.45338 0.26459 0.14228 0.07159 0.03518 0.01711 0.00830 0.00405 0.00204 0.00149 0.00000 ( 1)  0.160 +-  0.142
+  17 C   0.56766 0.32025 0.08839 0.01907 0.00374 0.00071 0.00013 0.00003 0.00001 0.00000 0.00000 ( 1)  0.107 +-  0.077
+  18 *   0.38307 0.16647 0.11370 0.08315 0.06309 0.04916 0.03920 0.03208 0.02749 0.03460 0.00798 ( 1)  0.285 +-  0.344
+  19 *   0.03482 0.04978 0.06303 0.07145 0.07671 0.07991 0.08188 0.08360 0.08732 0.13094 0.24054 (11)  1.161 +-  1.084
+  20 R   0.00001 0.00538 0.05239 0.13911 0.19854 0.19851 0.15884 0.11035 0.07152 0.06536 0.00000 ( 5)  0.570 +-  0.189
+  21 S   0.02352 0.20056 0.28550 0.22464 0.13469 0.06984 0.03342 0.01541 0.00720 0.00524 0.00000 ( 3)  0.325 +-  0.160
+  22 R   0.00002 0.00247 0.01819 0.05146 0.09246 0.12826 0.15139 0.16124 0.16329 0.21955 0.01168 (10)  0.732 +-  0.279
+  23 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  24 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  25 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  26 R   0.44514 0.26428 0.14455 0.07389 0.03683 0.01814 0.00890 0.00439 0.00223 0.00165 0.00000 ( 1)  0.163 +-  0.144
+  27 R   0.00015 0.00429 0.01827 0.04142 0.06916 0.09661 0.12044 0.13956 0.15666 0.23490 0.11853 (10)  0.967 +-  0.688
+  28 R   0.01640 0.08563 0.14170 0.16057 0.15273 0.13086 0.10451 0.07980 0.06050 0.06727 0.00004 ( 4)  0.489 +-  0.235
+  29 S   0.00000 0.00015 0.00296 0.01567 0.04403 0.08563 0.13156 0.17257 0.20565 0.30392 0.03786 (10)  0.849 +-  0.378
+  30 H   0.00000 0.00000 0.00021 0.00335 0.01901 0.05834 0.12020 0.18826 0.24506 0.36141 0.00416 (10)  0.823 +-  0.173
+  31 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+  32 R   0.00036 0.00655 0.02119 0.04186 0.06692 0.09475 0.12315 0.15013 0.17653 0.27098 0.04758 (10)  0.825 +-  0.436
+  33 R   0.13148 0.14223 0.13986 0.12469 0.10651 0.08918 0.07418 0.06210 0.05379 0.06937 0.00661 ( 2)  0.428 +-  0.332
+  34 R   0.56304 0.26415 0.10834 0.04080 0.01496 0.00547 0.00202 0.00076 0.00030 0.00017 0.00000 ( 1)  0.121 +-  0.104
+  35 R   0.56464 0.26475 0.10787 0.04014 0.01447 0.00518 0.00186 0.00068 0.00026 0.00014 0.00000 ( 1)  0.120 +-  0.103
+  36 R   0.01102 0.07144 0.13335 0.16006 0.15578 0.13472 0.10854 0.08417 0.06545 0.07527 0.00019 ( 4)  0.506 +-  0.235
+  37 S   0.00000 0.00000 0.00023 0.00359 0.02007 0.06095 0.12407 0.19135 0.24439 0.35321 0.00213 (10)  0.817 +-  0.157
+  38 C   0.00000 0.00000 0.00013 0.00211 0.01251 0.04168 0.09513 0.16709 0.24538 0.40482 0.03115 (10)  0.888 +-  0.318
+  39 R   0.00012 0.00686 0.03291 0.07248 0.11043 0.13654 0.14835 0.14874 0.14429 0.19065 0.00862 (10)  0.693 +-  0.272
+  40 S   0.00004 0.00536 0.03398 0.08299 0.12891 0.15477 0.15837 0.14668 0.12993 0.15776 0.00122 ( 7)  0.658 +-  0.215
+  41 R   0.00027 0.01275 0.05308 0.10202 0.13671 0.14992 0.14581 0.13223 0.11743 0.14657 0.00320 ( 6)  0.636 +-  0.243
+  42 R   0.01804 0.12543 0.20944 0.20850 0.16266 0.11108 0.07035 0.04295 0.02649 0.02505 0.00000 ( 3)  0.404 +-  0.202
+  43 R   0.00000 0.00000 0.00006 0.00075 0.00410 0.01379 0.03373 0.06648 0.11428 0.24019 0.52663 (11)  1.918 +-  1.067
+  44 *   0.00000 0.00001 0.00008 0.00030 0.00078 0.00166 0.00308 0.00525 0.00855 0.01896 0.96132 (11)  2.959 +-  0.666
+  45 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00002 0.00009 0.00028 0.00111 0.99849 (11)  3.039 +-  0.529
+  46 R   0.00000 0.00006 0.00138 0.00842 0.02713 0.06012 0.10449 0.15396 0.20442 0.33129 0.10872 (10)  1.003 +-  0.585
+  47 C   0.57395 0.31772 0.08591 0.01814 0.00348 0.00065 0.00012 0.00002 0.00000 0.00000 0.00000 ( 1)  0.106 +-  0.077
+  48 C   0.08402 0.40048 0.31429 0.13699 0.04585 0.01339 0.00364 0.00096 0.00026 0.00011 0.00000 ( 2)  0.222 +-  0.109
+  49 *   0.34150 0.15964 0.11627 0.08954 0.07073 0.05678 0.04622 0.03832 0.03305 0.04177 0.00617 ( 1)  0.308 +-  0.331
+  50 *   0.37018 0.16791 0.11830 0.08805 0.06717 0.05204 0.04087 0.03267 0.02717 0.03308 0.00255 ( 1)  0.275 +-  0.283
+  51 R   0.37299 0.24858 0.15596 0.09271 0.05444 0.03196 0.01884 0.01124 0.00695 0.00634 0.00000 ( 1)  0.202 +-  0.180
+  52 R   0.00124 0.07358 0.22527 0.26744 0.20286 0.11961 0.06056 0.02806 0.01267 0.00870 0.00000 ( 4)  0.398 +-  0.162
+  53 R   0.00001 0.00274 0.02374 0.06896 0.11966 0.15465 0.16579 0.15730 0.13995 0.16685 0.00035 (10)  0.673 +-  0.200
+  54 H   0.00939 0.11359 0.22180 0.23114 0.17732 0.11374 0.06518 0.03489 0.01835 0.01459 0.00000 ( 4)  0.394 +-  0.182
+  55 R   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00002 0.00013 0.00056 0.00299 0.99629 (11)  3.032 +-  0.535
+  56 *   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1.00000 (11)  3.042 +-  0.523
+  57 *   0.00000 0.00000 0.00000 0.00000 0.00004 0.00027 0.00124 0.00416 0.01150 0.03994 0.94285 (11)  2.901 +-  0.701
+  58 *   0.00001 0.00046 0.00327 0.01076 0.02421 0.04339 0.06695 0.09349 0.12380 0.21504 0.41861 (11)  1.675 +-  1.092
+  59 *   0.00000 0.00000 0.00000 0.00004 0.00030 0.00146 0.00504 0.01365 0.03171 0.09325 0.85456 (11)  2.680 +-  0.874
+  60 *   0.00019 0.00933 0.04220 0.08883 0.12948 0.15190 0.15457 0.14313 0.12663 0.15320 0.00054 ( 7)  0.647 +-  0.214
+  61 *   0.02722 0.13751 0.20404 0.19610 0.15380 0.10784 0.07086 0.04511 0.02903 0.02849 0.00001 ( 3)  0.402 +-  0.210
+  62 *   0.00000 0.00000 0.00002 0.00057 0.00487 0.02181 0.06384 0.13840 0.24261 0.45805 0.06982 (10)  0.976 +-  0.435
+  63 *   0.32082 0.14848 0.10867 0.08520 0.06926 0.05772 0.04913 0.04283 0.03902 0.05214 0.02673 ( 1)  0.382 +-  0.505
+  64 *   0.00268 0.00750 0.01446 0.02235 0.03066 0.03909 0.04751 0.05617 0.06659 0.11045 0.60253 (11)  2.111 +-  1.216
+  65 *   0.17081 0.09429 0.08146 0.07430 0.06934 0.06560 0.06277 0.06098 0.06144 0.08994 0.16906 ( 1)  0.868 +-  1.026
+
+Positively selected sites
+
+	Prob(w>1)  mean w
+
+    10 R      0.975*        2.979 +- 0.606
+    43 R      0.527         1.918 +- 1.067
+    44 *      0.961*        2.959 +- 0.666
+    45 *      0.998**       3.039 +- 0.529
+    55 R      0.996**       3.032 +- 0.535
+    56 *      1.000**       3.042 +- 0.523
+    57 *      0.943         2.901 +- 0.701
+    59 *      0.855         2.680 +- 0.874
+    64 *      0.603         2.111 +- 1.216
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/rst1 b/examples/evol/data/protamine/PRM1/paml/M8/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/rub b/examples/evol/data/protamine/PRM1/paml/M8/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/M8/tmp.ctl
new file mode 100644
index 0000000..4b02b86
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/tmp.ctl
@@ -0,0 +1,24 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 10
+cleandata    = 0
+fix_blength  = 0
+NSsites      = 8
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+Small_Diff   = .5e-6
+aaDist       = 0
+RateAncestor = 0
+outfile      = M8.out
+icode        = 0
+seqtype      = 1
+omega        = 1.3
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 0.3
+treefile     = tree
+model        = 0
diff --git a/examples/evol/data/protamine/PRM1/paml/M8/tree b/examples/evol/data/protamine/PRM1/paml/M8/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/M8/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/2NG.dN b/examples/evol/data/protamine/PRM1/paml/fb/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/2NG.dS b/examples/evol/data/protamine/PRM1/paml/fb/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/2NG.t b/examples/evol/data/protamine/PRM1/paml/fb/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/4fold.nuc b/examples/evol/data/protamine/PRM1/paml/fb/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/algn b/examples/evol/data/protamine/PRM1/paml/fb/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/fb.out b/examples/evol/data/protamine/PRM1/paml/fb/fb.out
new file mode 100644
index 0000000..c839095
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/fb.out
@@ -0,0 +1,1468 @@
+
+seed used = 816748657
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: free dN/dS Ratios for branches 
+Codon frequencies: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:387):  -3265.316569     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.000000 1.917587 0.845013 0.128851 0.034834 0.000000 0.000000 0.492087 0.425498 0.043211 0.162745 0.044815 0.144087 0.080453 0.016944 0.158477 0.054084 0.094369 0.000000 0.074893 0.020114 0.021688 0.125578 0.054399 0.000000 0.043415 0.090097 0.022039 0.000000 0.000000 0.000004 0.017567 0.118573 0.000000 0.098523 0.000004 0.000004 0.000000 0.000000 0.038846 0.000004 0.000004 0.000004 0.038845 0.022082 0.044009 0.114124 0.000000 0.000000 0.021482 0.000004 0.000004 0.191723 0.056837 0.062 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.81891
+
+((1: 1.917587, 2: 0.845013): 0.000000, ((((7: 0.492087, 6: 0.425498): 0.000000, ((((18: 0.080453, (33: 0.158477, (49: 0.094369, ((71: 0.020114, 70: 0.021688): 0.074893, 61: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((44: 0.090097, (((80: 0.000004, 81: 0.017567): 0.000000, ((88: 0.098523, 89: 0.000004): 0.000000, 79: 0.000004): 0.118573): 0.000000, (((90: 0.000004, 91: 0.000004): 0.038846, 82: 0.000004): 0.000000, 69: 0.038845): 0.000000): 0.022039): 0.043415, (46: 0.044009,  [...]
+
+((Loxodonta_africana: 1.917587, Procavia_capensis: 0.845013): 0.000000, ((((Cynocephalus_variegatus: 0.492087, Tupaia_belangeri: 0.425498): 0.000000, ((((Hylobates_lar: 0.080453, (Pongo_pygmaeus: 0.158477, (Gorilla_gorilla: 0.094369, ((Pan_paniscus: 0.020114, Pan_troglodytes: 0.021688): 0.074893, Homo_sapiens: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((Nasalis_larvatus: 0.090097, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.017567): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.66780
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.000    127.6     67.4   0.4600   0.0000   0.0000    0.0    0.0
+ 100..1       1.918    127.6     67.4   0.0430   0.0735   1.7097    9.4  115.3
+ 100..2       0.845    127.6     67.4   0.7654   0.2547   0.3327   32.5   22.4
+  99..101     0.129    127.6     67.4 632.3127   0.0656   0.0001    8.4    0.0
+ 101..102     0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 102..103     0.000    127.6     67.4   0.4784   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.6     67.4   0.5158   0.0000   0.0000    0.0    0.0
+ 104..7       0.492    127.6     67.4   0.3617   0.1019   0.2816   13.0   19.0
+ 104..6       0.425    127.6     67.4   0.4382   0.0983   0.2243   12.5   15.1
+ 103..105     0.043    127.6     67.4 400.4027   0.0220   0.0001    2.8    0.0
+ 105..106     0.163    127.6     67.4   0.2769   0.0285   0.1030    3.6    6.9
+ 106..107     0.045    127.6     67.4   0.5228   0.0114   0.0217    1.4    1.5
+ 107..108     0.144    127.6     67.4   1.5911   0.0551   0.0346    7.0    2.3
+ 108..18      0.080    127.6     67.4   1.6533   0.0311   0.0188    4.0    1.3
+ 108..109     0.017    127.6     67.4   0.0001   0.0000   0.0163    0.0    1.1
+ 109..33      0.158    127.6     67.4   1.6828   0.0614   0.0365    7.8    2.5
+ 109..110     0.054    127.6     67.4 736.2809   0.0275   0.0000    3.5    0.0
+ 110..49      0.094    127.6     67.4   2.0913   0.0384   0.0184    4.9    1.2
+ 110..111     0.000    127.6     67.4   0.4327   0.0000   0.0000    0.0    0.0
+ 111..112     0.075    127.6     67.4 839.5575   0.0381   0.0000    4.9    0.0
+ 112..71      0.020    127.6     67.4   0.0001   0.0000   0.0194    0.0    1.3
+ 112..70      0.022    127.6     67.4 535.6837   0.0110   0.0000    1.4    0.0
+ 111..61      0.126    127.6     67.4   3.0407   0.0545   0.0179    7.0    1.2
+ 107..113     0.054    127.6     67.4 754.8444   0.0277   0.0000    3.5    0.0
+ 113..114     0.000    127.6     67.4   0.4593   0.0000   0.0000    0.0    0.0
+ 114..115     0.043    127.6     67.4 720.2270   0.0221   0.0000    2.8    0.0
+ 115..44      0.090    127.6     67.4 913.0786   0.0459   0.0001    5.9    0.0
+ 115..116     0.022    127.6     67.4 563.2359   0.0112   0.0000    1.4    0.0
+ 116..117     0.000    127.6     67.4   0.3772   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.6     67.4   0.3996   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.6     67.4   0.7592   0.0000   0.0000    0.0    0.0
+ 118..81      0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 117..119     0.119    127.6     67.4   0.1284   0.0118   0.0920    1.5    6.2
+ 119..120     0.000    127.6     67.4   0.4694   0.0000   0.0000    0.0    0.0
+ 120..88      0.099    127.6     67.4   0.1755   0.0125   0.0713    1.6    4.8
+ 120..89      0.000    127.6     67.4   0.7371   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.6     67.4   0.7411   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.6     67.4   0.3440   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.6     67.4   0.4090   0.0000   0.0000    0.0    0.0
+ 122..123     0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 123..90      0.000    127.6     67.4   0.8103   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.6     67.4   0.8072   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.6     67.4   0.7688   0.0000   0.0000    0.0    0.0
+ 121..69      0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 114..124     0.022    127.6     67.4 584.2037   0.0112   0.0000    1.4    0.0
+ 124..46      0.044    127.6     67.4 726.4823   0.0224   0.0000    2.9    0.0
+ 124..45      0.114    127.6     67.4 999.0000   0.0581   0.0001    7.4    0.0
+ 113..125     0.000    127.6     67.4   0.3920   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.6     67.4   0.4279   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    127.6     67.4 565.2714   0.0109   0.0000    1.4    0.0
+ 126..48      0.000    127.6     67.4   0.8758   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.6     67.4   0.8712   0.0000   0.0000    0.0    0.0
+ 106..127     0.192    127.6     67.4   2.2857   0.0793   0.0347   10.1    2.3
+ 127..128     0.057    127.6     67.4 758.5477   0.0289   0.0000    3.7    0.0
+ 128..21      0.062    127.6     67.4   0.2830   0.0110   0.0390    1.4    2.6
+ 128..20      0.043    127.6     67.4 656.3045   0.0220   0.0000    2.8    0.0
+ 127..129     0.020    127.6     67.4 527.3671   0.0100   0.0000    1.3    0.0
+ 129..19      0.076    127.6     67.4 883.6820   0.0388   0.0000    5.0    0.0
+ 129..130     0.116    127.6     67.4   1.1394   0.0402   0.0353    5.1    2.4
+ 130..34      0.020    127.6     67.4 531.5903   0.0103   0.0000    1.3    0.0
+ 130..35      0.058    127.6     67.4   0.2936   0.0105   0.0359    1.3    2.4
+ 105..5       0.101    127.6     67.4   0.0001   0.0000   0.0972    0.0    6.6
+ 102..131     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 131..132     0.026    127.6     67.4 414.9941   0.0131   0.0000    1.7    0.0
+ 132..8       0.388    127.6     67.4   0.4067   0.0859   0.2112   11.0   14.2
+ 132..133     0.000    127.6     67.4   0.1919   0.0000   0.0000    0.0    0.0
+ 133..134     0.286    127.6     67.4   0.0447   0.0114   0.2546    1.5   17.2
+ 134..135     0.000    127.6     67.4   0.4022   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.6     67.4   0.3751   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.6     67.4   0.3993   0.0000   0.0000    0.0    0.0
+ 137..54      0.020    127.6     67.4 303.2147   0.0102   0.0000    1.3    0.0
+ 137..138     0.139    127.6     67.4   0.4392   0.0322   0.0733    4.1    4.9
+ 138..65      0.201    127.6     67.4   0.0645   0.0112   0.1730    1.4   11.7
+ 138..64      0.042    127.6     67.4 322.6508   0.0212   0.0001    2.7    0.0
+ 136..139     0.000    127.6     67.4   0.4475   0.0000   0.0000    0.0    0.0
+ 139..55      0.056    127.6     67.4   0.3025   0.0104   0.0344    1.3    2.3
+ 139..56      0.038    127.6     67.4   0.5882   0.0102   0.0174    1.3    1.2
+ 135..140     0.000    127.6     67.4   0.4013   0.0000   0.0000    0.0    0.0
+ 140..38      0.136    127.6     67.4   0.2274   0.0209   0.0917    2.7    6.2
+ 140..141     0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 141..53      0.000    127.6     67.4   0.6864   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.6     67.4   0.4357   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.6     67.4   0.6796   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.6     67.4   0.5773   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.6     67.4   0.6904   0.0000   0.0000    0.0    0.0
+ 143..72      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 134..144     0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 144..145     0.040    127.6     67.4 176.5524   0.0205   0.0001    2.6    0.0
+ 145..36      0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 145..146     0.000    127.6     67.4   0.4138   0.0000   0.0000    0.0    0.0
+ 146..147     0.020    127.6     67.4 512.2765   0.0101   0.0000    1.3    0.0
+ 147..148     0.075    127.6     67.4   0.1958   0.0104   0.0529    1.3    3.6
+ 148..149     0.000    127.6     67.4   0.3982   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.6     67.4   0.4324   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.6     67.4   0.3875   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 152..95      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 152..94      0.000    127.6     67.4   0.7227   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.6     67.4   0.5439   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.6     67.4   0.4896   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.6     67.4   0.7199   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.6     67.4   0.7525   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.6     67.4   0.7382   0.0000   0.0000    0.0    0.0
+ 153..93      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 150..92      0.000    127.6     67.4   0.7319   0.0000   0.0000    0.0    0.0
+ 149..83      0.039    127.6     67.4   0.6233   0.0106   0.0170    1.4    1.1
+ 148..156     0.000    127.6     67.4   0.4306   0.0000   0.0000    0.0    0.0
+ 156..85      0.038    127.6     67.4   0.6173   0.0105   0.0171    1.3    1.2
+ 156..84      0.000    127.6     67.4   0.7215   0.0000   0.0000    0.0    0.0
+ 147..62      0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 146..50      0.076    127.6     67.4   0.1900   0.0102   0.0536    1.3    3.6
+ 144..157     0.015    127.6     67.4   0.0001   0.0000   0.0148    0.0    1.0
+ 157..37      0.129    127.6     67.4   0.0001   0.0000   0.1247    0.0    8.4
+ 157..158     0.120    127.6     67.4   0.6158   0.0329   0.0534    4.2    3.6
+ 158..51      0.000    127.6     67.4   0.7490   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.6     67.4   0.7737   0.0000   0.0000    0.0    0.0
+ 133..9       0.422    127.6     67.4   0.1550   0.0488   0.3147    6.2   21.2
+ 131..4       0.503    127.6     67.4   0.2905   0.0908   0.3127   11.6   21.1
+ 101..159     0.000    127.6     67.4   0.3253   0.0000   0.0000    0.0    0.0
+ 159..3       3.224    127.6     67.4   0.0355   0.1033   2.9128   13.2  196.4
+ 159..160     0.249    127.6     67.4 876.4966   0.1268   0.0001   16.2    0.0
+ 160..161     0.070    127.6     67.4   0.0001   0.0000   0.0676    0.0    4.6
+ 161..162     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 162..163     0.012    127.6     67.4   0.0001   0.0000   0.0115    0.0    0.8
+ 163..12      0.117    127.6     67.4   2.3772   0.0488   0.0205    6.2    1.4
+ 163..164     0.303    127.6     67.4 999.0000   0.1541   0.0002   19.7    0.0
+ 164..26      0.112    127.6     67.4   0.8464   0.0351   0.0414    4.5    2.8
+ 164..25      0.109    127.6     67.4   0.5392   0.0282   0.0522    3.6    3.5
+ 162..165     0.045    127.6     67.4   0.0001   0.0000   0.0437    0.0    2.9
+ 165..13      0.000    127.6     67.4   1.0585   0.0000   0.0000    0.0    0.0
+ 165..14      0.096    127.6     67.4 854.8049   0.0488   0.0001    6.2    0.0
+ 161..166     0.000    127.6     67.4   0.2865   0.0000   0.0000    0.0    0.0
+ 166..167     0.150    127.6     67.4   0.1874   0.0200   0.1066    2.5    7.2
+ 167..168     0.079    127.6     67.4   0.6956   0.0229   0.0329    2.9    2.2
+ 168..23      0.000    127.6     67.4   0.7992   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.6     67.4   0.3963   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.6     67.4   0.7971   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    127.6     67.4 565.8176   0.0113   0.0000    1.4    0.0
+ 167..170     0.090    127.6     67.4   1.8993   0.0357   0.0188    4.6    1.3
+ 170..171     0.052    127.6     67.4   1.0497   0.0178   0.0169    2.3    1.1
+ 171..172     0.000    127.6     67.4   0.4399   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 173..66      0.102    127.6     67.4   0.4192   0.0229   0.0547    2.9    3.7
+ 173..174     0.174    127.6     67.4   1.1249   0.0603   0.0536    7.7    3.6
+ 174..78      0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 174..77      0.018    127.6     67.4   0.0001   0.0000   0.0172    0.0    1.2
+ 172..175     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 175..176     0.000    127.6     67.4   0.3904   0.0000   0.0000    0.0    0.0
+ 176..76      0.124    127.6     67.4   0.3198   0.0238   0.0744    3.0    5.0
+ 176..75      0.138    127.6     67.4   3.5141   0.0613   0.0174    7.8    1.2
+ 175..177     0.016    127.6     67.4 351.4580   0.0083   0.0000    1.1    0.0
+ 177..74      0.085    127.6     67.4 636.5685   0.0433   0.0001    5.5    0.0
+ 177..178     0.000    127.6     67.4   0.3674   0.0000   0.0000    0.0    0.0
+ 178..87      0.085    127.6     67.4 534.6989   0.0432   0.0001    5.5    0.0
+ 178..86      0.034    127.6     67.4   0.4682   0.0081   0.0173    1.0    1.2
+ 171..179     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 179..59      0.000    127.6     67.4   0.7732   0.0000   0.0000    0.0    0.0
+ 179..58      0.176    127.6     67.4   1.1482   0.0614   0.0535    7.8    3.6
+ 179..57      0.000    127.6     67.4   0.7751   0.0000   0.0000    0.0    0.0
+ 170..22      0.126    127.6     67.4   1.2759   0.0456   0.0357    5.8    2.4
+ 166..180     0.061    127.6     67.4   0.3424   0.0122   0.0356    1.6    2.4
+ 180..11      0.016    127.6     67.4   0.0001   0.0000   0.0150    0.0    1.0
+ 180..181     0.000    127.6     67.4   0.4621   0.0000   0.0000    0.0    0.0
+ 181..182     0.013    127.6     67.4   0.0001   0.0000   0.0125    0.0    0.8
+ 182..41      0.077    127.6     67.4   0.0001   0.0000   0.0741    0.0    5.0
+ 182..42      0.067    127.6     67.4   0.2875   0.0120   0.0419    1.5    2.8
+ 181..24      0.058    127.6     67.4   0.0001   0.0000   0.0555    0.0    3.7
+ 160..183     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.6     67.4   0.3893   0.0000   0.0000    0.0    0.0
+ 184..10      0.466    127.6     67.4   0.2858   0.0834   0.2918   10.6   19.7
+ 184..185     0.371    127.6     67.4   0.1841   0.0489   0.2656    6.2   17.9
+ 185..17      0.000    127.6     67.4   0.9118   0.0000   0.0000    0.0    0.0
+ 185..16      0.047    127.6     67.4 727.2422   0.0237   0.0000    3.0    0.0
+ 183..186     0.167    127.6     67.4   0.6539   0.0472   0.0721    6.0    4.9
+ 186..187     0.194    127.6     67.4   0.3640   0.0403   0.1107    5.1    7.5
+ 187..15      0.099    127.6     67.4 890.6329   0.0502   0.0001    6.4    0.0
+ 187..188     0.067    127.6     67.4   1.3459   0.0243   0.0181    3.1    1.2
+ 188..27      0.047    127.6     67.4 710.7597   0.0238   0.0000    3.0    0.0
+ 188..189     0.000    127.6     67.4   0.4529   0.0000   0.0000    0.0    0.0
+ 189..190     0.063    127.6     67.4   0.0001   0.0000   0.0607    0.0    4.1
+ 190..60      0.064    127.6     67.4   1.3526   0.0233   0.0172    3.0    1.2
+ 190..191     0.022    127.6     67.4   0.0001   0.0000   0.0210    0.0    1.4
+ 191..68      0.019    127.6     67.4   0.0001   0.0000   0.0186    0.0    1.3
+ 191..67      0.000    127.6     67.4   0.6460   0.0000   0.0000    0.0    0.0
+ 189..43      0.109    127.6     67.4   0.9654   0.0360   0.0373    4.6    2.5
+ 186..192     0.000    127.6     67.4   0.4010   0.0000   0.0000    0.0    0.0
+ 192..193     0.327    127.6     67.4   0.3859   0.0703   0.1822    9.0   12.3
+ 193..31      0.000    127.6     67.4   0.8316   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.6     67.4   0.8306   0.0000   0.0000    0.0    0.0
+ 192..194     0.264    127.6     67.4   1.3584   0.0968   0.0713   12.4    4.8
+ 194..29      0.000    127.6     67.4   0.8232   0.0000   0.0000    0.0    0.0
+ 194..28      0.018    127.6     67.4   0.0001   0.0000   0.0175    0.0    1.2
+
+tree length for dN:      3.57496
+tree length for dS:     10.41452
+
+dS tree:
+((Loxodonta_africana: 1.709655, Procavia_capensis: 0.332739): 0.000000, ((((Cynocephalus_variegatus: 0.281643, Tupaia_belangeri: 0.224256): 0.000000, ((((Hylobates_lar: 0.018788, (Pongo_pygmaeus: 0.036514, (Gorilla_gorilla: 0.018353, ((Pan_paniscus: 0.019389, Pan_troglodytes: 0.000021): 0.000045, Homo_sapiens: 0.017926): 0.000000): 0.000037): 0.016333): 0.034635, (((Nasalis_larvatus: 0.000050, (((Trachypithecus_geei: 0.000002, Trachypithecus_pileatus: 0.016934): 0.000000, ((Trachypithecu [...]
+dN tree:
+((Loxodonta_africana: 0.073528, Procavia_capensis: 0.254685): 0.000000, ((((Cynocephalus_variegatus: 0.101877, Tupaia_belangeri: 0.098278): 0.000000, ((((Hylobates_lar: 0.031061, (Pongo_pygmaeus: 0.061445, (Gorilla_gorilla: 0.038381, ((Pan_paniscus: 0.000002, Pan_troglodytes: 0.011039): 0.038132, Homo_sapiens: 0.054506): 0.000000): 0.027535): 0.000002): 0.055107, (((Nasalis_larvatus: 0.045876, (((Trachypithecus_geei: 0.000001, Trachypithecus_pileatus: 0.000002): 0.000000, ((Trachypithecu [...]
+
+w ratios as labels for TreeView:
+((Loxodonta_africana#1 #0.0430 : 0.073528, Procavia_capensis#2 #0.7654 : 0.254685) #0.4600 : 0.000000, ((((Cynocephalus_variegatus#7 #0.3617 : 0.101877, Tupaia_belangeri#8 #0.4382 : 0.098278)#6 #0.5158 : 0.000000, ((((Hylobates_lar#13 #1.6533 : 0.031061, (Pongo_pygmaeus#15 #1.6828 : 0.061445, (Gorilla_gorilla#17 #2.0913 : 0.038381, ((Pan_paniscus#20 #0.0001 : 0.000002, Pan_troglodytes#21 #535.6837 : 0.011039)#19 #839.5575 : 0.038132, Homo_sapiens#22 #3.0407 : 0.054506)#18 #0.4327 : 0.000 [...]
+
+
+Time used: 37:35:07
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/lnf b/examples/evol/data/protamine/PRM1/paml/fb/lnf
new file mode 100644
index 0000000..334b449
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -8.8210899796   0.000147587405       0.0096  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -19.8200178202   0.000000002468       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.0830102777   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.6666478270   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -60.1549452542   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -40.3858431022   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -38.8426661385   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -48.0566862880   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -23.3218022100   0.000000000074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -108.8109202449   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1   -14.9801109709   0.000000312047       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -48.6373947771   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -19.1445540297   0.000000004849       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.1525222309   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -29.7189469859   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1113425502   0.000815799005       0.0530  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -6.8282546204   0.001082746273       0.0704  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.1677375344   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -62.7565845864   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1   -97.2305915462   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -38.7442892539   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -70.4619912099   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -48.0642170277   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -65.2946761522   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.1296023810   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -71.1270692284   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -52.2165611001   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -41.2594714153   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.3086787727   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -71.9565070530   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -93.9973955704   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -100.4285448422   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -75.3692447719   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -95.3196946499   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -78.3719986461   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -72.3764583584   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -108.5310189228   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -45.1108970051   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -80.7500471833   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -81.4803280490   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -26.0349733719   0.000000000005       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -42.8345684375   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.3145235040   0.000244933576       0.0159  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -5.9833392188   0.002520396071       0.1638  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -17.5414983126   0.000000024089       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.4575053575   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.7435550702   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -33.3327603021   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -124.4011208760   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -210.1481506982   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -137.5444841908   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -27.2953532653   0.000000000001       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -70.2225178384   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -43.6572396581   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -41.1946204630   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -78.9386963498   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -8.4983047941   0.000203813582       0.0132  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7117030164   0.001216590486       0.0791  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/rst.fb b/examples/evol/data/protamine/PRM1/paml/fb/rst.fb
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/rst.fb
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/rst1 b/examples/evol/data/protamine/PRM1/paml/fb/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/rub b/examples/evol/data/protamine/PRM1/paml/fb/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/tmp.ctl b/examples/evol/data/protamine/PRM1/paml/fb/tmp.ctl
new file mode 100644
index 0000000..d28f914
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/tmp.ctl
@@ -0,0 +1,27 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 8
+cleandata    = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+fix_alpha    = 1
+Small_Diff   = .5e-6
+method       = 0
+Malpha       = 0
+aaDist       = 0
+RateAncestor = 0
+outfile      = fb.out
+icode        = 0
+alpha        = 0.0
+seqtype      = 1
+omega        = 0.4
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 2
+treefile     = tree
+model        = 1
diff --git a/examples/evol/data/protamine/PRM1/paml/fb/tree b/examples/evol/data/protamine/PRM1/paml/fb/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/paml/fb/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/slr/2NG.dN b/examples/evol/data/protamine/PRM1/slr/2NG.dN
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/slr/2NG.dS b/examples/evol/data/protamine/PRM1/slr/2NG.dS
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/slr/2NG.t b/examples/evol/data/protamine/PRM1/slr/2NG.t
new file mode 100644
index 0000000..e69de29
diff --git a/examples/evol/data/protamine/PRM1/slr/4fold.nuc b/examples/evol/data/protamine/PRM1/slr/4fold.nuc
new file mode 100644
index 0000000..f230cd6
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/4fold.nuc
@@ -0,0 +1,299 @@
+    98       0
+
+Loxodonta_africana
+
+
+Procavia_capensis
+
+
+Erinaceus_europaeus
+
+
+Oryctolagus_cuniculus
+
+
+Otolemur_garnettii
+
+
+Tupaia_belangeri
+
+
+Cynocephalus_variegatus
+
+
+Cavia_porcellus
+
+
+Dipodomys_ordii
+
+
+Felis_catus
+
+
+Desmodus_rotundus
+
+
+Rhinopoma_hardwickei
+
+
+Pteropus_hypomelanus
+
+
+Pteropus_vampyrus
+
+
+Antilocapra_americana
+
+
+Equus_caballus
+
+
+Equus_asinus
+
+
+Hylobates_lar
+
+
+Saimiri_sciureus
+
+
+Saguinus_imperator
+
+
+Callithrix_jacchus
+
+
+Otonycteris_hemprichi
+
+
+Chilonatalus_micropus
+
+
+Monophyllus_redmani
+
+
+Rhinolophus_ferrumequinum
+
+
+Hipposideros_commersoni
+
+
+Elaphodus_cephalophus
+
+
+Sus_scrofa
+
+
+Potamochoerus_porcus
+
+
+Hexaprotodon_liberiensis
+
+
+Hippopotamus_amphibius
+
+
+Papio_cynocephalus
+
+
+Pongo_pygmaeus
+
+
+Ateles_sp
+
+
+Alouatta_seniculus
+
+
+Micromys_minutus
+
+
+Meriones_unguiculatus
+
+
+Sigmodon_hispidus
+
+
+Natalus_stramineus
+
+
+Natalus_micropus
+
+
+Pteronotus_parnellii
+
+
+Mormoops_megalophylla
+
+
+Moschus_sp
+
+
+Nasalis_larvatus
+
+
+Colobus_guereza
+
+
+Procolobus_badius
+
+
+Macaca_fascicularis
+
+
+Macaca_mulatta
+
+
+Gorilla_gorilla
+
+
+Rattus_norvegicus
+
+
+Acomys_cahirinus
+
+
+Acomys_cilicicus
+
+
+Peromyscus_californicus
+
+
+Arvicola_terrestris
+
+
+Phodopus_sungorus
+
+
+Phodopus_roborovskii
+
+
+Eptesicus_brasiliensis
+
+
+Eptesicus_bruneus
+
+
+Eptesicus_fuscus
+
+
+Bos_taurus
+
+
+Homo_sapiens
+
+
+Apodemus_sylvaticus
+
+
+Peromyscus_leucopus
+
+
+Microtus_agrestis
+
+
+Clethrionomys_glareolus
+
+
+Murina_cyclotis
+
+
+Ovis_aries
+
+
+Ovis_dalli
+
+
+Trachypithecus_cristatus
+
+
+Pan_troglodytes
+
+
+Pan_paniscus
+
+
+Peromyscus_polionotus
+
+
+Peromyscus_maniculatus
+
+
+Corynorhinus_townsendii
+
+
+Pipistrellus_savii
+
+
+Chalinolobus_beatrix
+
+
+Myotis_daubentoni
+
+
+Myotis_lucifugus
+
+
+Semnopithecus_entellus
+
+
+Trachypithecus_geei
+
+
+Trachypithecus_pileatus
+
+
+Trachypithecus_francoisi
+
+
+Mus_famulus
+
+
+Mus_cookii
+
+
+Mus_pahari
+
+
+Plecotus_auritus
+
+
+Plecotus_townsemdii
+
+
+Trachypithecus_johnii
+
+
+Trachypithecus_vetulus
+
+
+Trachypithecus_obscurus
+
+
+Trachypithecus_phayrei
+
+
+Mus_spretus
+
+
+Mus_musculus_domesticus
+
+
+Mus_macedonicus
+
+
+Mus_spicilegus
+
+
+Mus_musculus_musculus
+
+
+Mus_musculus_castaneus
+
+
+Mus_musculus_bactrianus
+
+
+
+codons included
+
diff --git a/examples/evol/data/protamine/PRM1/slr/algn b/examples/evol/data/protamine/PRM1/slr/algn
new file mode 100644
index 0000000..8ceb676
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/algn
@@ -0,0 +1,197 @@
+ 98 195
+>Loxodonta_africana
+ATGGCCAGATACAGATGCTGCCGCAGCCGC------AGCCGAAGCAGATGC------CGCAGTCGG---------AGACGACGCAGCCAC---AGACGGCGGCGACGTTCCTGCCGCAGTCGCCGGAGA------CGGTGCTGC------AGGCGCAGGCATCGC------------------------------
+>Procavia_capensis
+ATGGTCAGGTTTGCTTGCTGCCGCAGCCGC------AGCCGGAGCAGATGCCGCCGCCACCGGAGA---------CGACGCAGATGCTCC---AGACGAAGGAGGCGATCTGGTCGGAGGAGAAGGAGATCAAGAAGGTGCCGC---------TACAGATACAGGCTGAGG---CGTAGAAGACAC---------
+>Erinaceus_europaeus
+ATGGCCAGGTACCGCTGCTGTCGCAGCCAG------AGCCGCAGCCGCTGC------TCCCGGCGCCGCTACCGCCGCCGGCGCTGCCGC---AGGAGGAGGAGGAGGAGCTGCAGGAGGCGCAGGAGAGAGGTGACGTGCTGC------CGCTACAGGTAC---------------CGCCGGTACCGG------
+>Oryctolagus_cuniculus
+ATGGTCAGATACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGGAGATGCCGC---AGACGCAGGAGGCGGTGCTGCCAGAGGCGAAGAGTC---AGGAAGTGCTGT------CGCCGCACATACACCCTCAGG---TGTAGACGATAC---------
+>Otolemur_garnettii
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCAGGAGCAGGTGC------CGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGAAGGCGATGCTGTCGAAGACGGAGGAGG------AGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Tupaia_belangeri
+ATGGCCAGGTACATATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGAAGTCAC---AGACGGAGGAGGCGATGCTATCGCAGGCGGCGACGGGCAAGGAGATGCTGC---------CGCCTGTACACCCTGAGG---TGTAGAAGATAC---------
+>Cynocephalus_variegatus
+ATGGCCAGGTACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGACGAAGTTGC------AGACGAAGGAGGCGATGTCGTAGACGAAGAGCCAGG------AGGAGCTGC------CGCCGCAGGTACTCGCTAAGGTGTTGTAGAAGATAC---------
+>Cavia_porcellus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGGTGC------CGCCGCCGC---------AGACGGAGATTCTAT---AGACGAAGGAGGCGGTGCCATCGGAGACGGAGACGG---------TGCTGC------CGCCGCAGGTACACCCGGAGG---TGCAAAAGATAC---------
+>Dipodomys_ordii
+ATGGCCAGATAC---TGCTGCCGCAGCCGC------AGCCGGAGCAGATGC---------CGCCGG---------AGGCGGAGATGCCGC---AGACGCAGGAGGAGATGCTGCCGCAGACGCAGGAGA---GTGAGGTGCTGCCGCCGGCGCCGCAGATGCACCCTGAGG---TGCAGAAGATGC---------
+>Felis_catus
+ATGGCCAGATACAGATGCTGCCGCAGCCAC------AGCAGGAGCAGGTGC------CGTCGCCGC---------AGACGCCGATGCCGC---AGACGAAGGAGGCGATGTTGCAGGAGGCCGAGGAAG---AGAGTGTGTTCC---------CGCCGCTACAGGGTGGGGAGGTGTAGGAGAAGA---------
+>Desmodus_rotundus
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGTCGT---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinopoma_hardwickei
+ATGGCCAGATACAGATGCTGCCGTAGCCGA------AGCCGGAGCAGATGC------CGCCCTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACTCTGCGAGG---TGCAGAAGAAGAAGA------
+>Pteropus_hypomelanus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGAAGAAGA------
+>Pteropus_vampyrus
+ATGGCCAGATACAGATGTTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGTCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGGAGGCGGAGGAGAGCCATGCTGTGCTGC---------CGCCGCTACACCGTGAGG---TGTAGAAGATGC---------
+>Antilocapra_americana
+ATGGCCAGATACAGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGCCCCCGCCGCCGA---------AGACGAAGATGTCGC---AAACTAAGGAGGCGCTTTTGTCGGAGGCCCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGCCATAAGGTGTACAAGA------------
+>Equus_caballus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATCCGTTCGGCAGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Equus_asinus
+ATGGCCAGATACAGATGCTGCCGCAGCCAG------AGCCAGAGCAGATGCCGT---CGCCGCCGG---------AGACGAAGATGTCGC---AGGCGAAGGAGGAGATGCGTTCGGCGGAGGAGA---------GTGTGCTGC---------CGCCGCTACACTGTCCTGAGGTGTAGGAGAAGACGA------
+>Hylobates_lar
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCGG---------GGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGCAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGGCTGAGA---CGTAGAAGACAC---------
+>Saimiri_sciureus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGG------AGCCGGAGCAGATGC------TACCGCCGA---------AGACGAAGATGTCGC---ACACGAAGGAGGCGGTGCTGCCGGAGACGGAGAGCC---AGGAGGTGCTGC------CGCCGCAGGTACAAGCTGAGG---TGTAGAAGATAC---------
+>Saguinus_imperator
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGACGTGCCGGAGACGGAGAGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGACG---TGTAGAAGATAC---------
+>Callithrix_jacchus
+ATGGCCAGGTACAGATGCTGCCGCAGCCAG------AGCCGGAGCAGATGC------TACCGCCAA---------AGACGAAGAGGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGGGCC---AGCAGGTGCTGC------CGCCGCAGGTACAAGCTGCCA---TGTAGAAGATAC---------
+>Otonycteris_hemprichi
+ATGGCCAGATACAGATGCTGCCGCAGCCGA------AGCCGGAGCAGATGC------CGCCGCAGG---------AGAAGAAAATGTTAC---AGACGAAGGAGGCGCTGCTCTCGGAAGAGGAGGAGG---AGAGTATGCTGC---------CGCCGCTACACTGTTATGAGGTGTAGAAGAAGA---------
+>Chilonatalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Monophyllus_redmani
+ATGGCCAGATATAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGT---------AGACGAAGATGTCGC---AGACGTAGGAGGCGCTGTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGAAGA---------
+>Rhinolophus_ferrumequinum
+ATGGCCAGATACAGCTGCTGCCGCAGCCAC------AGCCGGAGCAGAAGC------CGCCGTCGG---------AGGCAAAGATGTCGC---AGACGAAGGAGACGCAGTTGTGGGAGGCGGAGGAGA------GCGTGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGACGAAGAAGAAGA
+>Hipposideros_commersoni
+ATGGCCAGATACAGGTGCTGCCGCAGCCAC------AGCCGGAGCAGATGC------CGACGTCGG---------AGACGACGATCTCGC---AGACGAAGGAGGCGCAGTTGTGGGAGGCGGAGGAGA------GCGGGCTAC---------CGCCGCTACACTGTGAGGTATAGAAGAAGAAGA---------
+>Elaphodus_cephalophus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCAC---AGACGAAGGAAGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTAAGGTGTACAAGACAG---------
+>Sus_scrofa
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGAGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Potamochoerus_porcus
+ATGGCCAGATACAGATGTTGCCGCAGCCAT------AGCCGGAGCAGGTGC------CGCCCCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGATGTTGTCCGAGGCGGAGGAGA---GCGGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGATGC---------
+>Hexaprotodon_liberiensis
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Hippopotamus_amphibius
+ATGGCCAGATACAGATGTTGCCGCAGCCCC------AGCCGGAGCAGATGC------CGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGTGTTGTCGTCAGAGACGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCATGGTAAGGTGTACAAGACAG---------
+>Papio_cynocephalus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Pongo_pygmaeus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCAGAGCAGATGT------TGCCGCCGG---------AGACAAAGATGTCAC---AGACGAAGGAGGCGTTGCTGCCAGACACGGAGGAGGGCCATGAGGTGCTGC------CGCCGCAGGTACAGACTGAGA---TGTAGAAGACAC---------
+>Ateles_sp
+ATGGCCAGGTACAGATGCTGCCGCAGCCGC------AGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACGGAGAGGC---AGCAGGTGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Alouatta_seniculus
+ATGGCCAGGTACAGATGCTGCCGCAGCCGCAGCCTCAGCCGGAGCAGATGC------TACCGCCAA---------AGACCAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGAGACCAAGAGCC---AGCAGATGCTGC------CGCCGCAGGTACAGGTTGAGG---CGTAGAAGATAC---------
+>Micromys_minutus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGACGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCTCATACACCTTAAGG---TGTAAAAGATAC---------
+>Meriones_unguiculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGT------CGCAGACGGAGGCGATGCTGCCGGAGGAGGAGGAGA------AGGTGCTGCCGCCGCCGCCGCAGATACACCTTAAGG---TGTAAAAGATAC---------
+>Sigmodon_hispidus
+ATGGCCAGATACCGATGCTGTCGAAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGCCGCCGCCGCACATACACCCTAAGG---TGTAAAAAATAC---------
+>Natalus_stramineus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCCCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Natalus_micropus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGACGAAGATGTCGC---ACACGAAGGAGGCGCTGCTGTCGGAGAAGGAGAAGG---AGAGTGTGCTGC---------CGCCGCTACACTGTTGTGAGGTGTAGAAGAAGA---------
+>Pteronotus_parnellii
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCCGGAGCAGATGC------CGCCGCCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTGTTGTCGAAGGCGGAGAAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGAAGAAGA---------
+>Mormoops_megalophylla
+ATGGCCAGATACAGATGCTGCCGCAGCCCA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTCTTGTCGGAGGCGGAGGAGA------GTGTGCTGC---------CGCCGCTACACTGTGAGG---TGTAGGAGACGA---------
+>Moschus_sp
+ATGGCCAGATACCGATGCCGCCTCACCCAC------AGCCGGAGCGGATGCCGC---CGCCGCCGA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGCTTTTGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTCGTGAGGTGTACAAGACAG---------
+>Nasalis_larvatus
+ATGGCCAAGTCCAGATGCTGTGGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACAAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Colobus_guereza
+ATGGCCAGGTACAGATGCCGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCAG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATTCCGGGCACGGAAGAGAGCCATGAGGTGCTGC------CACCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Procolobus_badius
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGATGCCGGGCACGGAGGACAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCGGAGG---TGTAGAAGATAC---------
+>Macaca_fascicularis
+ATGGCCAGGTACAGATGCTGTTGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Macaca_mulatta
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCGG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGATGCCGGGCACGGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Gorilla_gorilla
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAACAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGT------CGCCGCAGGAACAGACTGAGA---CGTAGAAAACAC---------
+>Rattus_norvegicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGGTGCTGCAGGCGGAGGCGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCTTTAGG---TGTAAAAGATAC---------
+>Acomys_cahirinus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Acomys_cilicicus
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACACCCTAAGG---TGTAGAAGAATC---------
+>Peromyscus_californicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Arvicola_terrestris
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_sungorus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCCGATACTCCCTGAGG---TGTAAAAGATAC---------
+>Phodopus_roborovskii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGTCGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Eptesicus_brasiliensis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Eptesicus_bruneus
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGT---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Eptesicus_fuscus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGA---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGAAGA---------
+>Bos_taurus
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCGGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGTCGCTACACCGTCATAAGGTGTACAAGACAG---------
+>Homo_sapiens
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATAT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAGGAGGCGGAGCTGCCAGACACGGAGGAGAGCCATGAGGTGCTGC------CGCCCCAGGTACAGACCGCGA---TGTAGAAGACAC---------
+>Apodemus_sylvaticus
+ATGGCCAGATACCGATGCTGCCGCAGTAAA------AGCAGGAGTAGATGC------CGCCGCCGC---------AGGCGAAGATGTCGCAGCAGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGCCGCCGCCGCCGCTCATACACCATAAGG---TGTAAAAGATAC---------
+>Peromyscus_leucopus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Microtus_agrestis
+ATGGCCAGATACCGC---TCCCGTAGCAAA------AGCAGGAGCAGATGC------AGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCACATACACCATGAGG---TGTAAAAGATAC---------
+>Clethrionomys_glareolus
+ATGGCCAGATACCGC---TGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGGAGATGT------CGCAGACGGAGGAGATGCTGCCGGAGGAGGAGGCGA------AGGTGCTACCGCCGCCGCCGCTCATACACCATGAGG---TGTAAAAGATAC---------
+>Murina_cyclotis
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCAGG---------AGGAGAAGATGTCAC---AGACGAAGGAGGCGCTGCTCTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTATAAGGTGTAGAAGGAGA---------
+>Ovis_aries
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Ovis_dalli
+ATGGCCAGATACCGATGCTGCCTCACCCAT------AGCCGGAGCAGATGCCGC---CGCCGCCGC---------CGAAGAAGATGTCGC---AGACGAAGGAGGCGCTTTGGTCGGAGGCGCCGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTACAAGACAG---------
+>Trachypithecus_cristatus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Pan_troglodytes
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGACAAAGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGAATGAGA---CGTAGAAGACAC---------
+>Pan_paniscus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGT------TACCGCCAG---------AGA---CGAAGTCGC---AGACGAAAGAGGCAGAGCTGCCAGACACAGAGGAGAGCCATGAGGTGCTGC------CGCCGCAGGTCCAGACTGAGA---CGTAGAAGACAC---------
+>Peromyscus_polionotus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACTCTGAGG---TGTAAAAGATAC---------
+>Peromyscus_maniculatus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGCCGC---------AGGCGGAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGGTGCTGC---CGCCGCCGCAGATACACCCTGAGG---TGTAAAAGATAC---------
+>Corynorhinus_townsendii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Pipistrellus_savii
+ATGGCCAGATACAGACGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGA---------AGAAGAAGATGTCAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGCGTGCTGC---------CGCCGCTACAGG---------TGTAGAAGAAGA---------
+>Chalinolobus_beatrix
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGAAGTTAC---AGACGAAGGAGGCGCTGCTGCCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTAC---GTAAGG---TGTAGAAGAAGA---------
+>Myotis_daubentoni
+ATGGCCAGATACAGGTGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCAAGG------TGTAGAAGAAGA---------
+>Myotis_lucifugus
+ATGGCCAGATACAGATGCTGCCGC------------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGGAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGGAGAAGAGTGTGCTGC---------CGCCGCTACTCA---AGG---TGTAGAAGAAGAAGATGC---
+>Semnopithecus_entellus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_geei
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_pileatus
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCA---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_francoisi
+ATGGCCAGGTACAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Mus_famulus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCAACGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_cookii
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_pahari
+ATGGCCAGGTACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCAA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Plecotus_auritus
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAC---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCGTTGTAAGGTGTAGAAGAAGA---------
+>Plecotus_townsemdii
+ATGGCCAGATACAGATGCTGCCGCAGCCAA------AGCCGGAGCAGATGC------CGCCGCCGG---------AGAAGAAGATGTTAT---AGACGAAGGAGGCGCTGCTGTCGGAGGAGGAGGAGG---AGAGTGTGCTGC---------CGCCGCTACACCAGG------TATAGAAGAAGA---------
+>Trachypithecus_johnii
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCAGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_vetulus
+ATGGCCAGGTACAGACGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGT------CGCAGACGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACAAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---TGTAGAAGATAC---------
+>Trachypithecus_obscurus
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTGAGG---AGTAGAAGATAC---------
+>Trachypithecus_phayrei
+ATGGCCAGGTATAGATGCTGTCGCAGCCAG------AGCCGGAGCAGATGC------TGCCGCCCG---------AGACGAAGATGTCGC---AGACGAAGGAGGCGGAGCTGCCGGGCACGGAGGAGAGCCACGAGGTGCTGC------CGCCGCAGGTACAGGCTG------AGTAGAAGATAC---------
+>Mus_spretus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_domesticus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_macedonicus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_spicilegus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGAGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_musculus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_castaneus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
+>Mus_musculus_bactrianus
+ATGGCCAGATACCGATGCTGCCGCAGCAAA------AGCAGGAGCAGATGC------CGCCGTCGC---------AGGCGAAGATGTCGC---AGACGGAGGAGGCGATGCTGCCGGCGGAGGAGGCGA------AGATGCTGCCGTCGCCGCCGCTCATACACCATAAGG---TGTAAAAAATAC---------
diff --git a/examples/evol/data/protamine/PRM1/slr/fb.out b/examples/evol/data/protamine/PRM1/slr/fb.out
new file mode 100644
index 0000000..c839095
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/fb.out
@@ -0,0 +1,1468 @@
+
+seed used = 816748657
+     98    195
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+Printing out site pattern counts
+
+
+        98        192  P
+
+Loxodonta_africana               ATG GCC AGA TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGA AGC AGA TGC --- --- CGC AGT CGG --- --- AGA CGA CGC AGC CAC --- AGA CGG CGG CGA CGT TCC TGC CGC AGT CGC CGG AGA --- --- CGG TGC TGC --- --- AGG CGC AGG CAT CGC --- --- --- --- --- --- --- --- --- --- 
+Procavia_capensis                ATG GTC AGG TTT GCT TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC CGC CGC CAC CGG AGA --- --- CGA CGC AGA TGC TCC --- AGA CGA AGG AGG CGA TCT GGT CGG AGG AGA AGG AGA TCA AGA AGG TGC CGC --- --- --- TAC AGA TAC AGG CTG AGG --- CGT AGA AGA CAC --- --- --- 
+Erinaceus_europaeus              ATG GCC AGG TAC CGC TGC TGT CGC AGC CAG --- --- AGC CGC AGC CGC TGC --- --- TCC CGG CGC CGC TAC CGC CGG CGC TGC CGC --- AGG AGG AGG AGG AGG AGC TGC AGG AGG CGC AGG AGA GAG GTG ACG TGC TGC --- --- CGC TAC AGG TAC --- --- --- --- --- CGC CGG TAC CGG --- --- 
+Oryctolagus_cuniculus            ATG GTC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGG AGA TGC CGC --- AGA CGC AGG AGG CGG TGC TGC CAG AGG CGA AGA GTC --- AGG AAG TGC TGT --- --- CGC CGC ACA TAC ACC CTC AGG --- TGT AGA CGA TAC --- --- --- 
+Otolemur_garnettii               ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC AGG AGC AGG TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGA AGG CGA TGC TGT CGA AGA CGG AGG AGG --- --- AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Tupaia_belangeri                 ATG GCC AGG TAC ATA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA AGT CAC --- AGA CGG AGG AGG CGA TGC TAT CGC AGG CGG CGA CGG GCA AGG AGA TGC TGC --- --- --- CGC CTG TAC ACC CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Cynocephalus_variegatus          ATG GCC AGG TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA CGA AGT TGC --- --- AGA CGA AGG AGG CGA TGT CGT AGA CGA AGA GCC AGG --- --- AGG AGC TGC --- --- CGC CGC AGG TAC TCG CTA AGG TGT TGT AGA AGA TAC --- --- --- 
+Cavia_porcellus                  ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGG TGC --- --- CGC CGC CGC --- --- AGA CGG AGA TTC TAT --- AGA CGA AGG AGG CGG TGC CAT CGG AGA CGG AGA CGG --- --- --- TGC TGC --- --- CGC CGC AGG TAC ACC CGG AGG --- TGC AAA AGA TAC --- --- --- 
+Dipodomys_ordii                  ATG GCC AGA TAC --- TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- --- CGC CGG --- --- AGG CGG AGA TGC CGC --- AGA CGC AGG AGG AGA TGC TGC CGC AGA CGC AGG AGA --- GTG AGG TGC TGC CGC CGG CGC CGC AGA TGC ACC CTG AGG --- TGC AGA AGA TGC --- --- --- 
+Felis_catus                      ATG GCC AGA TAC AGA TGC TGC CGC AGC CAC --- --- AGC AGG AGC AGG TGC --- --- CGT CGC CGC --- --- AGA CGC CGA TGC CGC --- AGA CGA AGG AGG CGA TGT TGC AGG AGG CCG AGG AAG --- AGA GTG TGT TCC --- --- --- CGC CGC TAC AGG GTG GGG AGG TGT AGG AGA AGA --- --- --- 
+Desmodus_rotundus                ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGT --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinopoma_hardwickei             ATG GCC AGA TAC AGA TGC TGC CGT AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CCT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC TCT GCG AGG --- TGC AGA AGA AGA AGA --- --- 
+Pteropus_hypomelanus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA AGA AGA --- --- 
+Pteropus_vampyrus                ATG GCC AGA TAC AGA TGT TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGT CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA GCC ATG CTG TGC TGC --- --- --- CGC CGC TAC ACC GTG AGG --- TGT AGA AGA TGC --- --- --- 
+Antilocapra_americana            ATG GCC AGA TAC AGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC CCC CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AAA CTA AGG AGG CGC TTT TGT CGG AGG CCC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GCC ATA AGG TGT ACA AGA --- --- --- --- 
+Equus_caballus                   ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TCC GTT CGG CAG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Equus_asinus                     ATG GCC AGA TAC AGA TGC TGC CGC AGC CAG --- --- AGC CAG AGC AGA TGC CGT --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGG CGA AGG AGG AGA TGC GTT CGG CGG AGG AGA --- --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTC CTG AGG TGT AGG AGA AGA CGA --- --- 
+Hylobates_lar                    ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CGG --- --- GGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGC AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGG CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Saimiri_sciureus                 ATG GCC AGG TAC AGA TGC TGC CGC AGC CGG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CGA --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGG TGC TGC CGG AGA CGG AGA GCC --- AGG AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Saguinus_imperator               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG ACG TGC CGG AGA CGG AGA GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG ACG --- TGT AGA AGA TAC --- --- --- 
+Callithrix_jacchus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CGA AGA GGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGG GCC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AAG CTG CCA --- TGT AGA AGA TAC --- --- --- 
+Otonycteris_hemprichi            ATG GCC AGA TAC AGA TGC TGC CGC AGC CGA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGA AGA AAA TGT TAC --- AGA CGA AGG AGG CGC TGC TCT CGG AAG AGG AGG AGG --- AGA GTA TGC TGC --- --- --- CGC CGC TAC ACT GTT ATG AGG TGT AGA AGA AGA --- --- --- 
+Chilonatalus_micropus            ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Monophyllus_redmani              ATG GCC AGA TAT AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGT --- --- AGA CGA AGA TGT CGC --- AGA CGT AGG AGG CGC TGT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA AGA --- --- --- 
+Rhinolophus_ferrumequinum        ATG GCC AGA TAC AGC TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA AGC --- --- CGC CGT CGG --- --- AGG CAA AGA TGT CGC --- AGA CGA AGG AGA CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG TGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA CGA AGA AGA AGA 
+Hipposideros_commersoni          ATG GCC AGA TAC AGG TGC TGC CGC AGC CAC --- --- AGC CGG AGC AGA TGC --- --- CGA CGT CGG --- --- AGA CGA CGA TCT CGC --- AGA CGA AGG AGG CGC AGT TGT GGG AGG CGG AGG AGA --- --- GCG GGC TAC --- --- --- CGC CGC TAC ACT GTG AGG TAT AGA AGA AGA AGA --- --- --- 
+Elaphodus_cephalophus            ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CAC --- AGA CGA AGG AAG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTA AGG TGT ACA AGA CAG --- --- --- 
+Sus_scrofa                       ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG AGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Potamochoerus_porcus             ATG GCC AGA TAC AGA TGT TGC CGC AGC CAT --- --- AGC CGG AGC AGG TGC --- --- CGC CCC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGA TGT TGT CCG AGG CGG AGG AGA --- GCG GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA TGC --- --- --- 
+Hexaprotodon_liberiensis         ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Hippopotamus_amphibius           ATG GCC AGA TAC AGA TGT TGC CGC AGC CCC --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG TGT TGT CGT CAG AGA CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC ATG GTA AGG TGT ACA AGA CAG --- --- --- 
+Papio_cynocephalus               ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Pongo_pygmaeus                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CAG AGC AGA TGT --- --- TGC CGC CGG --- --- AGA CAA AGA TGT CAC --- AGA CGA AGG AGG CGT TGC TGC CAG ACA CGG AGG AGG GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGA CTG AGA --- TGT AGA AGA CAC --- --- --- 
+Ateles_sp                        ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC --- --- AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CGG AGA GGC --- AGC AGG TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Alouatta_seniculus               ATG GCC AGG TAC AGA TGC TGC CGC AGC CGC AGC CTC AGC CGG AGC AGA TGC --- --- TAC CGC CAA --- --- AGA CCA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG AGA CCA AGA GCC --- AGC AGA TGC TGC --- --- CGC CGC AGG TAC AGG TTG AGG --- CGT AGA AGA TAC --- --- --- 
+Micromys_minutus                 ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGA CGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC TCA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Meriones_unguiculatus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT --- --- CGC AGA CGG AGG CGA TGC TGC CGG AGG AGG AGG AGA --- --- AGG TGC TGC CGC CGC CGC CGC AGA TAC ACC TTA AGG --- TGT AAA AGA TAC --- --- --- 
+Sigmodon_hispidus                ATG GCC AGA TAC CGA TGC TGT CGA AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGC CGC CGC CGC ACA TAC ACC CTA AGG --- TGT AAA AAA TAC --- --- --- 
+Natalus_stramineus               ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CCC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Natalus_micropus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA CGA AGA TGT CGC --- ACA CGA AGG AGG CGC TGC TGT CGG AGA AGG AGA AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACT GTT GTG AGG TGT AGA AGA AGA --- --- --- 
+Pteronotus_parnellii             ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TGT TGT CGA AGG CGG AGA AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGA AGA AGA --- --- --- 
+Mormoops_megalophylla            ATG GCC AGA TAC AGA TGC TGC CGC AGC CCA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TCT TGT CGG AGG CGG AGG AGA --- --- GTG TGC TGC --- --- --- CGC CGC TAC ACT GTG AGG --- TGT AGG AGA CGA --- --- --- 
+Moschus_sp                       ATG GCC AGA TAC CGA TGC CGC CTC ACC CAC --- --- AGC CGG AGC GGA TGC CGC --- CGC CGC CGA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT TGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTC GTG AGG TGT ACA AGA CAG --- --- --- 
+Nasalis_larvatus                 ATG GCC AAG TCC AGA TGC TGT GGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CAA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Colobus_guereza                  ATG GCC AGG TAC AGA TGC CGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CAG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TTC CGG GCA CGG AAG AGA GCC ATG AGG TGC TGC --- --- CAC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Procolobus_badius                ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGA TGC CGG GCA CGG AGG ACA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CGG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_fascicularis              ATG GCC AGG TAC AGA TGC TGT TGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Macaca_mulatta                   ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CGG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGA TGC CGG GCA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Gorilla_gorilla                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA ACA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGT --- --- CGC CGC AGG AAC AGA CTG AGA --- CGT AGA AAA CAC --- --- --- 
+Rattus_norvegicus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGG TGC TGC AGG CGG AGG CGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC TTT AGG --- TGT AAA AGA TAC --- --- --- 
+Acomys_cahirinus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Acomys_cilicicus                 ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC ACC CTA AGG --- TGT AGA AGA ATC --- --- --- 
+Peromyscus_californicus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Arvicola_terrestris              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_sungorus                ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC CGA TAC TCC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Phodopus_roborovskii             ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGT CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Eptesicus_brasiliensis           ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Eptesicus_bruneus                ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGT --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Eptesicus_fuscus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGA --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGA AGA --- --- --- 
+Bos_taurus                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC GGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGT CGC TAC ACC GTC ATA AGG TGT ACA AGA CAG --- --- --- 
+Homo_sapiens                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TAT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AGG AGG CGG AGC TGC CAG ACA CGG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CCC AGG TAC AGA CCG CGA --- TGT AGA AGA CAC --- --- --- 
+Apodemus_sylvaticus              ATG GCC AGA TAC CGA TGC TGC CGC AGT AAA --- --- AGC AGG AGT AGA TGC --- --- CGC CGC CGC --- --- AGG CGA AGA TGT CGC AGC AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC CGC CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_leucopus              ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Microtus_agrestis                ATG GCC AGA TAC CGC --- TCC CGT AGC AAA --- --- AGC AGG AGC AGA TGC --- --- AGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC ACA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Clethrionomys_glareolus          ATG GCC AGA TAC CGC --- TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGG AGA TGT --- --- CGC AGA CGG AGG AGA TGC TGC CGG AGG AGG AGG CGA --- --- AGG TGC TAC CGC CGC CGC CGC TCA TAC ACC ATG AGG --- TGT AAA AGA TAC --- --- --- 
+Murina_cyclotis                  ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC AGG --- --- AGG AGA AGA TGT CAC --- AGA CGA AGG AGG CGC TGC TCT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT ATA AGG TGT AGA AGG AGA --- --- --- 
+Ovis_aries                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Ovis_dalli                       ATG GCC AGA TAC CGA TGC TGC CTC ACC CAT --- --- AGC CGG AGC AGA TGC CGC --- CGC CGC CGC --- --- CGA AGA AGA TGT CGC --- AGA CGA AGG AGG CGC TTT GGT CGG AGG CGC CGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT ACA AGA CAG --- --- --- 
+Trachypithecus_cristatus         ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Pan_troglodytes                  ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA CAA AGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA ATG AGA --- CGT AGA AGA CAC --- --- --- 
+Pan_paniscus                     ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGT --- --- TAC CGC CAG --- --- AGA --- CGA AGT CGC --- AGA CGA AAG AGG CAG AGC TGC CAG ACA CAG AGG AGA GCC ATG AGG TGC TGC --- --- CGC CGC AGG TCC AGA CTG AGA --- CGT AGA AGA CAC --- --- --- 
+Peromyscus_polionotus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACT CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Peromyscus_maniculatus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGC CGC --- --- AGG CGG AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGG TGC TGC --- CGC CGC CGC AGA TAC ACC CTG AGG --- TGT AAA AGA TAC --- --- --- 
+Corynorhinus_townsendii          ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Pipistrellus_savii               ATG GCC AGA TAC AGA CGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGA --- --- AGA AGA AGA TGT CAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GCG TGC TGC --- --- --- CGC CGC TAC AGG --- --- --- TGT AGA AGA AGA --- --- --- 
+Chalinolobus_beatrix             ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA AGT TAC --- AGA CGA AGG AGG CGC TGC TGC CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC --- GTA AGG --- TGT AGA AGA AGA --- --- --- 
+Myotis_daubentoni                ATG GCC AGA TAC AGG TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA AGG --- --- TGT AGA AGA AGA --- --- --- 
+Myotis_lucifugus                 ATG GCC AGA TAC AGA TGC TGC CGC --- --- --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGG AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG AGA AGA GTG TGC TGC --- --- --- CGC CGC TAC TCA --- AGG --- TGT AGA AGA AGA AGA TGC --- 
+Semnopithecus_entellus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_geei              ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_pileatus          ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCA --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_francoisi         ATG GCC AGG TAC AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Mus_famulus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CAA CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_cookii                       ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_pahari                       ATG GCC AGG TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CAA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Plecotus_auritus                 ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAC --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC GTT GTA AGG TGT AGA AGA AGA --- --- --- 
+Plecotus_townsemdii              ATG GCC AGA TAC AGA TGC TGC CGC AGC CAA --- --- AGC CGG AGC AGA TGC --- --- CGC CGC CGG --- --- AGA AGA AGA TGT TAT --- AGA CGA AGG AGG CGC TGC TGT CGG AGG AGG AGG AGG --- AGA GTG TGC TGC --- --- --- CGC CGC TAC ACC AGG --- --- TAT AGA AGA AGA --- --- --- 
+Trachypithecus_johnii            ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CAG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_vetulus           ATG GCC AGG TAC AGA CGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT --- --- CGC AGA CGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACA AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- TGT AGA AGA TAC --- --- --- 
+Trachypithecus_obscurus          ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG AGG --- AGT AGA AGA TAC --- --- --- 
+Trachypithecus_phayrei           ATG GCC AGG TAT AGA TGC TGT CGC AGC CAG --- --- AGC CGG AGC AGA TGC --- --- TGC CGC CCG --- --- AGA CGA AGA TGT CGC --- AGA CGA AGG AGG CGG AGC TGC CGG GCA CGG AGG AGA GCC ACG AGG TGC TGC --- --- CGC CGC AGG TAC AGG CTG --- --- AGT AGA AGA TAC --- --- --- 
+Mus_spretus                      ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_domesticus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_macedonicus                  ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_spicilegus                   ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG AGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_musculus            ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_castaneus           ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+Mus_musculus_bactrianus          ATG GCC AGA TAC CGA TGC TGC CGC AGC AAA --- --- AGC AGG AGC AGA TGC --- --- CGC CGT CGC --- --- AGG CGA AGA TGT CGC --- AGA CGG AGG AGG CGA TGC TGC CGG CGG AGG AGG CGA --- --- AGA TGC TGC CGT CGC CGC CGC TCA TAC ACC ATA AGG --- TGT AAA AAA TAC --- --- --- 
+
+
+
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    2    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
+    1    1    1    1
+
+CODONML (in paml version 4, June 2007)    algn   Model: free dN/dS Ratios for branches 
+Codon frequencies: F3x4
+ns =  98  ls =  65
+
+Codon usage in sequences
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  0  0  1  2  4  2
+    TTC  0  0  0  0  0  0 |     TCC  1  1  1  0  0  0 |     TAC  1  2  5  3  3  3 |     TGC  6  5  6  7  5  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  0  0  0  0  0 | Arg CGT  1  1  0  0  0  0
+    CTC  0  0  0  1  0  0 |     CCC  0  0  0  0  0  1 |     CAC  1  2  0  0  0  1 |     CGC  8  6 13  7  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  3  3  0  2  4  3
+    CTG  0  1  0  0  1  2 |     CCG  0  0  0  0  0  0 |     CAG  0  0  1  2  0  0 |     CGG  5  3  4  4  2  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  2  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  1  0  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  4  3  3  3
+    ATA  0  0  0  0  0  1 |     ACA  0  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6 10  1  8  9  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  2  8 10  5  9  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  1  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  0  0  0  0
+    GTC  0  1  0  2  0  0 |     GCC  1  0  1  0  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  1  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  1  0  0  0  0 | Cys TGT  3  0  0  3  4  3
+    TTC  0  1  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  1  2  2  2 |     TGC  5  7 11  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  1  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  1 | His CAT  0  1  0  0  0  0 | Arg CGT  1  0  0  1  2  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  0  0 |     CGC  5  6 10  7  6  5
+    CTA  1  0  0  0  0  0 |     CCA  0  1  0  0  1  0 | Gln CAA  0  0  0  0  0  0 |     CGA  4  1  0  3  2  3
+    CTG  0  0  1  0  0  0 |     CCG  0  0  0  1  0  0 |     CAG  0  0  0  0  0  0 |     CGG  1  7  4  0  3  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  0  1  0  0  0  0 | Arg AGA  8  8 10  7 10 11
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  1  0  0 |     AGG  8  5  6 10  5  5
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  2  2  1 |     GCG  0  0  0  0  0  1 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  1  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  5  3  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  2  2  2  2  2  3 |     TGC  4  5  5  5  6  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  1  1  0  1  1  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  2  0  0  1 |     CAC  0  0  0  0  0  1 |     CGC  6  6  7  6  6  5
+    CTA  0  0  1  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  0  0  0  1 |     CGA  2  2  2  3  3  1
+    CTG  0  1  0  1  1  1 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  3  2  2 |     CGG  4  4  2  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  2  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  3  3  4
+    ATA  0  0  1  0  0  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  1  0  0  0 | Arg AGA 11  9  7  9  9  8
+Met ATG  1  2  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  5  5  6  6  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  1  1  0 |     GCC  1  2  2  1  1  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  1
+    GTG  2  1  1  1  1  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  1  0  0 | Tyr TAT  0  0  0  0  0  1 | Cys TGT  2  1  1  2  3  4
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  4  4  4  3  2  1 |     TGC  7  6  6  6  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  5  5  6  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  1 | Gln CAA  0  1  1  0  1  0 |     CGA  3  2  2  2  2  1
+    CTG  1  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  1  1  0  0  0 |     CGG  5  4  4  2  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  4  5  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  0  1  0 | Lys AAA  0  0  0  1  0  0 | Arg AGA  8  9  8 10 11  9
+Met ATG  1  1  1  2  1  1 |     ACG  0  2  0  0  0  0 |     AAG  1  1  1  1  0  0 |     AGG  7  5  6  7  5  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  1  1  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  1  0  0  0 | Ser TCT  0  1  0  0  0  0 | Tyr TAT  1  1  0  0  0  0 | Cys TGT  2  1  2  5  5  5
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  3  3  5  5  5  4
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  1  1  0 | Arg CGT  1  1  0  0  0  1
+    CTC  0  0  1  0  0  0 |     CCC  0  0  0  1  1  1 |     CAC  1  1  1  0  0  0 |     CGC  6  5  7  5  5  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  4  3  4  2
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  1  1  0 |     CAG  0  0  1  0  0  3 |     CGG  3  3  2  2  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  1  1  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  2  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  5  3  2  3  3  3
+    ATA  0  0  0  1  1  0 |     ACA  0  0  1  0  0  1 | Lys AAA  0  0  0  0  0  0 | Arg AGA 12  9  7  9  8  9
+Met ATG  1  1  1  1  1  2 |     ACG  0  0  0  0  0  0 |     AAG  0  0  1  0  0  0 |     AGG  5  6  5  6  6  4
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  1  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  1  0  0  0
+    GTC  0  0  1  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  1  0  0  1 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  1  1  1  1 |     GCG  1  1  0  1  1  0 |     GAG  0  0  0  0  0  0 |     GGG  1  1  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  5  3  4  1  1  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  4  4  3 |     TGC  4  6  6  6  6  7
+Leu TTA  0  0  0  0  0  1 |     TCA  0  0  0  0  0  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  1  1  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  1  1  1  0
+    CTC  0  0  0  0  1  0 |     CCC  1  0  0  0  0  0 |     CAC  0  0  2  0  0  0 |     CGC  6  5  4  6  6  9
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  1  2  0 | Gln CAA  0  0  1  1  1  0 |     CGA  2  2  1  1  1  5
+    CTG  0  1  1  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  3  1  3  0  0  0 |     CGG  3  5  2  4  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  0  0  0  0  1 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  5  6  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  1  0  0  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  9  9  9  9 10  6
+Met ATG  2  2  2  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  4  8  7  7  6  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  2  2  1  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  1  0  0
+    GTA  1  0  0  0  0  0 |     GCA  0  1  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  3  3  3  4  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  2  2  2 |     TGC  7  6  6  6  5  5
+Leu TTA  1  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  0 |     CCC  0  0  1  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  9  8  6  7  8  7
+    CTA  0  1  0  0  0  0 |     CCA  0  0  0  0  1  1 | Gln CAA  0  0  1  1  0  0 |     CGA  3  5  2  2  3  3
+    CTG  0  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  2  2  3  3  2  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  1  1  1  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  0  1  1  1  0  0 | Lys AAA  2  3  0  0  0  0 | Arg AGA  7  5 11 11 11  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  8  5  5  4  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  1  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  2  2  2  2 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  2  3  3  3
+    TTC  0  0  1  0  0  0 |     TCC  0  1  0  0  0  0 |     TAC  2  2  3  3  3  3 |     TGC  4  6  5  6  7  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  1  0  0  0
+    CTC  1  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  1  0  0  0 |     CGC  9  4  4  5  4  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  4  1  2  2  2  2
+    CTG  0  1  1  0  1  1 |     CCG  0  1  0  0  0  0 |     CAG  1  1  3  2  1  1 |     CGG  2  4  3  5  5  5
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  2  0  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  4  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  1  0  0  1  0  0 | Lys AAA  0  0  0  0  0  0 | Arg AGA  6  8  9  8  9  9
+Met ATG  1  2  2  2  2  2 |     ACG  0  0  0  0  0  0 |     AAG  0  1  1  0  0  0 |     AGG  6  7  7  8  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  1  0  0  0  0  0 |     GCC  1  2  2  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  1  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  1  1  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  1  0  0  0  0  0
+    GTG  2  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  2  2  3  3 |     TGC  3  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  1  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  1  0  0  0  0  0 |     CGC  5  9  8  8  8  8
+    CTA  0  0  1  1  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  1 |     CGA  1  3  5  5  3  3
+    CTG  1  0  0  0  1  1 |     CCG  0  0  0  0  0  0 |     CAG  4  0  0  0  0  0 |     CGG  2  4  2  2  4  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  1  1  0  0 |     ACC  0  1  1  1  1  1 |     AAC  1  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  0  0  0  0  0 |     ACA  2  0  0  0  0  0 | Lys AAA  1  2  1  1  2  2 | Arg AGA  8  5  5  5  6  6
+Met ATG  2  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8 10 10  8  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  1 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  2  2  3  4  3  2
+    TTC  0  0  0  0  0  0 |     TCC  1  0  0  0  0  0 |     TAC  3  3  3  2  3  2 |     TGC  7  7  6  4  6  5
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  1  0  1 | Arg CGT  0  0  0  0  0  1
+    CTC  0  0  0  0  0  1 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  8  6  7  6  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  5  3  1  1  1  3
+    CTG  1  1  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  1 |     CGG  2  4  3  3  3  1
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  1  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  0  1  2 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  1  0  1  1 |     ACA  0  0  0  0  0  1 | Lys AAA  2  2  0  0  0  0 | Arg AGA  5  5 12 12 12  7
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  9  8  6  7  6  6
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  1  0  1  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  1
+    GTC  0  0  0  0  0  1 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  1  0  1  1 |     GCG  0  0  0  1  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  1
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  1 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  0  0 |     TAC  3  3  3  4  4  2 |     TGC  4  7  7  4  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  0  0  1  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  0  0  0  0  0  0 |     CCC  1  0  0  0  0  0 |     CAC  1  0  0  0  0  1 |     CGC  4  9  8  8  9  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  0  0  0  0  0 |     CGA  2  4  3  2  1  1
+    CTG  0  0  1  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  3  0  0  0  0  0 |     CGG  3  3  4  3  3  2
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  2  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  2  3  4  3  2
+    ATA  0  1  0  0  0  1 |     ACA  1  0  0  1  0  0 | Lys AAA  0  2  2  2  2  0 | Arg AGA  9  5  6  5  6  9
+Met ATG  2  1  1  2  2  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  6  8  8  9  8 10
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  1 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  1 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  1  1  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  1  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  1  1  0 |     TAC  2  2  2  2  2  3 |     TGC  5  5  6  4  4  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  1  1  0  0  0  0 | Arg CGT  0  0  0  1  1  0
+    CTC  1  1  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  1  1  0 |     CGC  9  9  5  5  5  8
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  1  0  0 |     CGA  3  3  2  1  2  3
+    CTG  0  0  1  0  1  1 |     CCG  0  0  1  0  0  0 |     CAG  1  1  1  5  5  0 |     CGG  2  3  4  1  1  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  1 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  1  1  1  0
+    ATC  0  0  0  0  0  0 |     ACC  2  2  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  2  2  4  4  4  3
+    ATA  0  0  0  0  0  0 |     ACA  1  1  0  1  1  0 | Lys AAA  0  0  0  0  0  2 | Arg AGA  7  7  8 10  9  6
+Met ATG  1  1  1  3  2  1 |     ACG  0  0  1  0  0  0 |     AAG  0  0  0  1  1  0 |     AGG  6  5  8  5  5  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  1  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  1  1  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  2  2  2  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  1  1  0  0  0  0 |     GCA  0  0  1  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  1  1  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  2  0  0  0  0 | Cys TGT  2  2  3  1  3  3
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  2  2  3  3  3 |     TGC  7  6  5  7  6  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  1  0  0  0 | Arg CGT  0  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  8  6  7  6  6  6
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  1  0  0  0  0 |     CGA  3  1  2  1  1  1
+    CTG  1  0  0  0  0  0 |     CCG  0  0  0  0  0  0 |     CAG  0  0  0  0  0  0 |     CGG  4  3  2  3  3  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  1  0  0
+    ATC  0  0  0  0  0  0 |     ACC  1  1  0  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  2  2  2  2
+    ATA  0  0  0  0  0  0 |     ACA  0  0  0  0  0  0 | Lys AAA  2  0  0  0  0  0 | Arg AGA  6 11 12 11 10 12
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  7  9  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  1  0  0 |     GCA  0  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  0  1  1  1 |     GCG  0  0  1  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  0  0  0  0 | Cys TGT  3  3  3  3  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  3  3  3  3 |     TGC  5  6  6  6  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  0  0  0  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  0  0  0  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  6  5  5  5  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  1  0  0  0 | Gln CAA  0  0  0  0  1  0 |     CGA  1  2  2  2  4  4
+    CTG  1  1  1  1  0  0 |     CCG  1  1  0  1  0  0 |     CAG  1  1  1  1  0  0 |     CGG  5  4  4  4  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  0  0  0  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  4  4  4  3  3
+    ATA  0  0  0  0  1  1 |     ACA  1  0  0  0  0  0 | Lys AAA  0  0  0  0  3  3 | Arg AGA  8  8  8  8  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  0  1  1  1  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  8  8  8  7  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  2  2  2  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  1  1  1  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  0  0  2  0  0  1 | Cys TGT  2  3  2  3  3  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  3  3  2  3  3  2 |     TGC  7  6  6  5  5  6
+Leu TTA  0  0  0  0  0  0 |     TCA  1  0  0  0  0  0 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  2  0  0  0  0  0
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  7  6  6  6  6  5
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  1  1  1  0  0  0 |     CGA  3  1  1  2  1  2
+    CTG  0  0  0  1  1  1 |     CCG  0  0  0  1  1  1 |     CAG  0  0  0  2  1  1 |     CGG  3  3  3  3  5  4
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  0  0  0  0  0  1
+    ATC  0  0  0  0  0  0 |     ACC  1  1  1  0  0  0 |     AAC  0  0  0  0  0  0 |     AGC  3  3  3  4  4  4
+    ATA  1  0  0  0  0  0 |     ACA  0  0  0  1  1  0 | Lys AAA  3  0  0  0  0  0 | Arg AGA  4 11 11  8  8  8
+Met ATG  1  1  1  1  1  1 |     ACG  0  0  0  0  0  1 |     AAG  0  0  0  0  0  0 |     AGG  8  7  7  8  7  8
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  1  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  1  1  1  2  2  2 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  1  0  0  0  0 |     GCA  0  0  0  1  1  1 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  1  1  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------------------------------------
+Phe TTT  0  0  0  0  0  0 | Ser TCT  0  0  0  0  0  0 | Tyr TAT  1  0  0  0  0  0 | Cys TGT  2  2  2  2  2  2
+    TTC  0  0  0  0  0  0 |     TCC  0  0  0  0  0  0 |     TAC  2  3  3  3  3  3 |     TGC  6  7  7  7  7  7
+Leu TTA  0  0  0  0  0  0 |     TCA  0  1  1  1  1  1 | *** TAA  0  0  0  0  0  0 | *** TGA  0  0  0  0  0  0
+    TTG  0  0  0  0  0  0 |     TCG  0  0  0  0  0  0 |     TAG  0  0  0  0  0  0 | Trp TGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+Leu CTT  0  0  0  0  0  0 | Pro CCT  0  0  0  0  0  0 | His CAT  0  0  0  0  0  0 | Arg CGT  0  2  2  2  2  2
+    CTC  0  0  0  0  0  0 |     CCC  0  0  0  0  0  0 |     CAC  0  0  0  0  0  0 |     CGC  5  7  7  7  7  7
+    CTA  0  0  0  0  0  0 |     CCA  0  0  0  0  0  0 | Gln CAA  0  0  0  0  0  0 |     CGA  2  4  4  4  4  4
+    CTG  1  0  0  0  0  0 |     CCG  1  0  0  0  0  0 |     CAG  1  0  0  0  0  0 |     CGG  4  3  2  3  2  3
+--------------------------------------------------------------------------------------------------------------
+Ile ATT  0  0  0  0  0  0 | Thr ACT  0  0  0  0  0  0 | Asn AAT  0  0  0  0  0  0 | Ser AGT  1  0  0  0  0  0
+    ATC  0  0  0  0  0  0 |     ACC  0  1  1  1  1  1 |     AAC  0  0  0  0  0  0 |     AGC  4  3  3  3  3  3
+    ATA  0  1  1  1  1  1 |     ACA  0  0  0  0  0  0 | Lys AAA  0  3  3  3  3  3 | Arg AGA  8  5  5  5  5  5
+Met ATG  1  1  1  1  1  1 |     ACG  1  0  0  0  0  0 |     AAG  0  0  0  0  0  0 |     AGG  7  7  8  7  8  7
+--------------------------------------------------------------------------------------------------------------
+Val GTT  0  0  0  0  0  0 | Ala GCT  0  0  0  0  0  0 | Asp GAT  0  0  0  0  0  0 | Gly GGT  0  0  0  0  0  0
+    GTC  0  0  0  0  0  0 |     GCC  2  1  1  1  1  1 |     GAC  0  0  0  0  0  0 |     GGC  0  0  0  0  0  0
+    GTA  0  0  0  0  0  0 |     GCA  1  0  0  0  0  0 | Glu GAA  0  0  0  0  0  0 |     GGA  0  0  0  0  0  0
+    GTG  0  0  0  0  0  0 |     GCG  0  0  0  0  0  0 |     GAG  0  0  0  0  0  0 |     GGG  0  0  0  0  0  0
+--------------------------------------------------------------------------------------------------------------
+
+--------------------------------------------------------------
+Phe TTT  0  0 | Ser TCT  0  0 | Tyr TAT  0  0 | Cys TGT  2  2
+    TTC  0  0 |     TCC  0  0 |     TAC  3  3 |     TGC  7  7
+Leu TTA  0  0 |     TCA  1  1 | *** TAA  0  0 | *** TGA  0  0
+    TTG  0  0 |     TCG  0  0 |     TAG  0  0 | Trp TGG  0  0
+--------------------------------------------------------------
+Leu CTT  0  0 | Pro CCT  0  0 | His CAT  0  0 | Arg CGT  2  2
+    CTC  0  0 |     CCC  0  0 |     CAC  0  0 |     CGC  7  7
+    CTA  0  0 |     CCA  0  0 | Gln CAA  0  0 |     CGA  4  4
+    CTG  0  0 |     CCG  0  0 |     CAG  0  0 |     CGG  3  3
+--------------------------------------------------------------
+Ile ATT  0  0 | Thr ACT  0  0 | Asn AAT  0  0 | Ser AGT  0  0
+    ATC  0  0 |     ACC  1  1 |     AAC  0  0 |     AGC  3  3
+    ATA  1  1 |     ACA  0  0 | Lys AAA  3  3 | Arg AGA  5  5
+Met ATG  1  1 |     ACG  0  0 |     AAG  0  0 |     AGG  7  7
+--------------------------------------------------------------
+Val GTT  0  0 | Ala GCT  0  0 | Asp GAT  0  0 | Gly GGT  0  0
+    GTC  0  0 |     GCC  1  1 |     GAC  0  0 |     GGC  0  0
+    GTA  0  0 |     GCA  0  0 | Glu GAA  0  0 |     GGA  0  0
+    GTG  0  0 |     GCG  0  0 |     GAG  0  0 |     GGG  0  0
+--------------------------------------------------------------
+
+Codon position x base (3x4) table for each sequence.
+
+#1: Loxodonta_africana
+position  1:    T:0.18605    C:0.44186    A:0.34884    G:0.02326
+position  2:    T:0.02326    C:0.04651    A:0.06977    G:0.86047
+position  3:    T:0.09302    C:0.51163    A:0.20930    G:0.18605
+Average         T:0.10078    C:0.33333    A:0.20930    G:0.35659
+
+#2: Procavia_capensis
+position  1:    T:0.21154    C:0.30769    A:0.42308    G:0.05769
+position  2:    T:0.07692    C:0.07692    A:0.07692    G:0.76923
+position  3:    T:0.09615    C:0.38462    A:0.26923    G:0.25000
+Average         T:0.12821    C:0.25641    A:0.25641    G:0.35897
+
+#3: Erinaceus_europaeus
+position  1:    T:0.25490    C:0.35294    A:0.33333    G:0.05882
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.01961    C:0.58824    A:0.01961    G:0.37255
+Average         T:0.10458    C:0.33333    A:0.16340    G:0.39869
+
+#4: Oryctolagus_cuniculus
+position  1:    T:0.24000    C:0.32000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.04000    A:0.12000    G:0.76000
+position  3:    T:0.04000    C:0.48000    A:0.22000    G:0.26000
+Average         T:0.12000    C:0.28000    A:0.24667    G:0.35333
+
+#5: Otolemur_garnettii
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.02041    A:0.08163    G:0.85714
+position  3:    T:0.08163    C:0.36735    A:0.28571    G:0.26531
+Average         T:0.12245    C:0.22449    A:0.27211    G:0.38095
+
+#6: Tupaia_belangeri
+position  1:    T:0.22000    C:0.34000    A:0.40000    G:0.04000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.08000    C:0.40000    A:0.24000    G:0.28000
+Average         T:0.12667    C:0.27333    A:0.24667    G:0.35333
+
+#7: Cynocephalus_variegatus
+position  1:    T:0.25532    C:0.25532    A:0.44681    G:0.04255
+position  2:    T:0.04255    C:0.06383    A:0.06383    G:0.82979
+position  3:    T:0.10638    C:0.38298    A:0.27660    G:0.23404
+Average         T:0.13475    C:0.23404    A:0.26241    G:0.36879
+
+#8: Cavia_porcellus
+position  1:    T:0.25000    C:0.33333    A:0.39583    G:0.02083
+position  2:    T:0.04167    C:0.06250    A:0.12500    G:0.77083
+position  3:    T:0.04167    C:0.45833    A:0.22917    G:0.27083
+Average         T:0.11111    C:0.28472    A:0.25000    G:0.35417
+
+#9: Dipodomys_ordii
+position  1:    T:0.24000    C:0.30000    A:0.42000    G:0.04000
+position  2:    T:0.06000    C:0.04000    A:0.02000    G:0.88000
+position  3:    T:0.00000    C:0.54000    A:0.20000    G:0.26000
+Average         T:0.10000    C:0.29333    A:0.21333    G:0.39333
+
+#10: Felis_catus    
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.06000    C:0.06000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.20000    G:0.32000
+Average         T:0.12000    C:0.24000    A:0.24000    G:0.40000
+
+#11: Desmodus_rotundus
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.14583    C:0.35417    A:0.27083    G:0.22917
+Average         T:0.14583    C:0.23611    A:0.24306    G:0.37500
+
+#12: Rhinopoma_hardwickei
+position  1:    T:0.24490    C:0.28571    A:0.40816    G:0.06122
+position  2:    T:0.04082    C:0.08163    A:0.04082    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.23810    A:0.24490    G:0.38095
+
+#13: Pteropus_hypomelanus
+position  1:    T:0.22449    C:0.28571    A:0.42857    G:0.06122
+position  2:    T:0.06122    C:0.04082    A:0.06122    G:0.83673
+position  3:    T:0.12245    C:0.34694    A:0.28571    G:0.24490
+Average         T:0.13605    C:0.22449    A:0.25850    G:0.38095
+
+#14: Pteropus_vampyrus
+position  1:    T:0.24000    C:0.30000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.12000    C:0.38000    A:0.24000    G:0.26000
+Average         T:0.14667    C:0.24667    A:0.23333    G:0.37333
+
+#15: Antilocapra_americana
+position  1:    T:0.21569    C:0.31373    A:0.41176    G:0.05882
+position  2:    T:0.11765    C:0.13725    A:0.07843    G:0.66667
+position  3:    T:0.09804    C:0.45098    A:0.25490    G:0.19608
+Average         T:0.14379    C:0.30065    A:0.24837    G:0.30719
+
+#16: Equus_caballus 
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.06000    A:0.10000    G:0.74000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.25333    A:0.24667    G:0.36667
+
+#17: Equus_asinus   
+position  1:    T:0.20000    C:0.32000    A:0.40000    G:0.08000
+position  2:    T:0.10000    C:0.04000    A:0.08000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.24000    G:0.28000
+Average         T:0.13333    C:0.24667    A:0.24000    G:0.38000
+
+#18: Hylobates_lar  
+position  1:    T:0.17647    C:0.31373    A:0.45098    G:0.05882
+position  2:    T:0.05882    C:0.07843    A:0.13725    G:0.72549
+position  3:    T:0.07843    C:0.39216    A:0.23529    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.27451    G:0.35948
+
+#19: Saimiri_sciureus
+position  1:    T:0.26000    C:0.28000    A:0.42000    G:0.04000
+position  2:    T:0.04000    C:0.06000    A:0.10000    G:0.80000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.11333    C:0.25333    A:0.25333    G:0.38000
+
+#20: Saguinus_imperator
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.08000    A:0.14000    G:0.74000
+position  3:    T:0.04000    C:0.42000    A:0.24000    G:0.30000
+Average         T:0.10000    C:0.26000    A:0.27333    G:0.36667
+
+#21: Callithrix_jacchus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.06000    A:0.14000    G:0.76000
+position  3:    T:0.04000    C:0.44000    A:0.24000    G:0.28000
+Average         T:0.10000    C:0.26667    A:0.26667    G:0.36667
+
+#22: Otonycteris_hemprichi
+position  1:    T:0.24000    C:0.20000    A:0.50000    G:0.06000
+position  2:    T:0.08000    C:0.06000    A:0.10000    G:0.76000
+position  3:    T:0.10000    C:0.38000    A:0.28000    G:0.24000
+Average         T:0.14000    C:0.21333    A:0.29333    G:0.35333
+
+#23: Chilonatalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#24: Monophyllus_redmani
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.16667    C:0.35417    A:0.22917    G:0.25000
+Average         T:0.15278    C:0.23611    A:0.22917    G:0.38194
+
+#25: Rhinolophus_ferrumequinum
+position  1:    T:0.17308    C:0.26923    A:0.48077    G:0.07692
+position  2:    T:0.03846    C:0.05769    A:0.11538    G:0.78846
+position  3:    T:0.11538    C:0.36538    A:0.28846    G:0.23077
+Average         T:0.10897    C:0.23077    A:0.29487    G:0.36538
+
+#26: Hipposideros_commersoni
+position  1:    T:0.18367    C:0.28571    A:0.42857    G:0.10204
+position  2:    T:0.04082    C:0.08163    A:0.10204    G:0.77551
+position  3:    T:0.12245    C:0.34694    A:0.26531    G:0.26531
+Average         T:0.11565    C:0.23810    A:0.26531    G:0.38095
+
+#27: Elaphodus_cephalophus
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.11765    G:0.68627
+position  3:    T:0.09804    C:0.43137    A:0.25490    G:0.21569
+Average         T:0.13725    C:0.28105    A:0.24837    G:0.33333
+
+#28: Sus_scrofa     
+position  1:    T:0.24000    C:0.26000    A:0.42000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24000    A:0.24667    G:0.36000
+
+#29: Potamochoerus_porcus
+position  1:    T:0.24000    C:0.28000    A:0.40000    G:0.08000
+position  2:    T:0.08000    C:0.10000    A:0.06000    G:0.76000
+position  3:    T:0.14000    C:0.36000    A:0.26000    G:0.24000
+Average         T:0.15333    C:0.24667    A:0.24000    G:0.36000
+
+#30: Hexaprotodon_liberiensis
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#31: Hippopotamus_amphibius
+position  1:    T:0.22000    C:0.32000    A:0.40000    G:0.06000
+position  2:    T:0.08000    C:0.08000    A:0.10000    G:0.74000
+position  3:    T:0.12000    C:0.36000    A:0.26000    G:0.26000
+Average         T:0.14000    C:0.25333    A:0.25333    G:0.35333
+
+#32: Papio_cynocephalus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#33: Pongo_pygmaeus 
+position  1:    T:0.23529    C:0.29412    A:0.43137    G:0.03922
+position  2:    T:0.05882    C:0.05882    A:0.15686    G:0.72549
+position  3:    T:0.09804    C:0.37255    A:0.23529    G:0.29412
+Average         T:0.13072    C:0.24183    A:0.27451    G:0.35294
+
+#34: Ateles_sp      
+position  1:    T:0.24000    C:0.28000    A:0.44000    G:0.04000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.26000    A:0.26000    G:0.37333
+
+#35: Alouatta_seniculus
+position  1:    T:0.23077    C:0.28846    A:0.44231    G:0.03846
+position  2:    T:0.05769    C:0.07692    A:0.09615    G:0.76923
+position  3:    T:0.03846    C:0.48077    A:0.26923    G:0.21154
+Average         T:0.10897    C:0.28205    A:0.26923    G:0.33974
+
+#36: Micromys_minutus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.03922    C:0.47059    A:0.29412    G:0.19608
+Average         T:0.11765    C:0.28105    A:0.26144    G:0.33987
+
+#37: Meriones_unguiculatus
+position  1:    T:0.26000    C:0.28000    A:0.44000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.48000    A:0.26000    G:0.22000
+Average         T:0.11333    C:0.26667    A:0.26667    G:0.35333
+
+#38: Sigmodon_hispidus
+position  1:    T:0.23529    C:0.31373    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.05882    C:0.43137    A:0.29412    G:0.21569
+Average         T:0.11111    C:0.26797    A:0.28105    G:0.33987
+
+#39: Natalus_stramineus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.08000    A:0.06000    G:0.78000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.24000    A:0.26667    G:0.36000
+
+#40: Natalus_micropus
+position  1:    T:0.22000    C:0.26000    A:0.44000    G:0.08000
+position  2:    T:0.08000    C:0.06000    A:0.06000    G:0.80000
+position  3:    T:0.10000    C:0.38000    A:0.30000    G:0.22000
+Average         T:0.13333    C:0.23333    A:0.26667    G:0.36667
+
+#41: Pteronotus_parnellii
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.06250    A:0.04167    G:0.83333
+position  3:    T:0.10417    C:0.39583    A:0.31250    G:0.18750
+Average         T:0.13194    C:0.25000    A:0.25694    G:0.36111
+
+#42: Mormoops_megalophylla
+position  1:    T:0.22917    C:0.29167    A:0.41667    G:0.06250
+position  2:    T:0.06250    C:0.08333    A:0.04167    G:0.81250
+position  3:    T:0.12500    C:0.37500    A:0.25000    G:0.25000
+Average         T:0.13889    C:0.25000    A:0.23611    G:0.37500
+
+#43: Moschus_sp     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.07843    C:0.45098    A:0.23529    G:0.23529
+Average         T:0.13072    C:0.29412    A:0.22222    G:0.35294
+
+#44: Nasalis_larvatus
+position  1:    T:0.23529    C:0.25490    A:0.43137    G:0.07843
+position  2:    T:0.05882    C:0.09804    A:0.09804    G:0.74510
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11765    C:0.24837    A:0.24837    G:0.38562
+
+#45: Colobus_guereza
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.07843    C:0.05882    A:0.15686    G:0.70588
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.24183    A:0.27451    G:0.36601
+
+#46: Procolobus_badius
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.07843    A:0.09804    G:0.78431
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11111    C:0.24183    A:0.25490    G:0.39216
+
+#47: Macaca_fascicularis
+position  1:    T:0.25490    C:0.25490    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.12418    C:0.22876    A:0.24837    G:0.39869
+
+#48: Macaca_mulatta 
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.05882    C:0.05882    A:0.07843    G:0.80392
+position  3:    T:0.05882    C:0.37255    A:0.23529    G:0.33333
+Average         T:0.11765    C:0.23529    A:0.24837    G:0.39869
+
+#49: Gorilla_gorilla
+position  1:    T:0.15686    C:0.31373    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.09804    C:0.35294    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#50: Rattus_norvegicus
+position  1:    T:0.27451    C:0.31373    A:0.39216    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.09804    G:0.80392
+position  3:    T:0.05882    C:0.47059    A:0.21569    G:0.25490
+Average         T:0.12418    C:0.28105    A:0.23529    G:0.35948
+
+#51: Acomys_cahirinus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#52: Acomys_cilicicus
+position  1:    T:0.22000    C:0.32000    A:0.44000    G:0.02000
+position  2:    T:0.06000    C:0.04000    A:0.06000    G:0.84000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#53: Peromyscus_californicus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#54: Arvicola_terrestris
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.12000    G:0.80000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.10667    C:0.27333    A:0.26000    G:0.36000
+
+#55: Phodopus_sungorus
+position  1:    T:0.26000    C:0.32000    A:0.40000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.24000    G:0.26000
+Average         T:0.11333    C:0.27333    A:0.24667    G:0.36667
+
+#56: Phodopus_roborovskii
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.11333    C:0.27333    A:0.24000    G:0.37333
+
+#57: Eptesicus_brasiliensis
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#58: Eptesicus_bruneus
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.10870    C:0.34783    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#59: Eptesicus_fuscus
+position  1:    T:0.25000    C:0.20833    A:0.47917    G:0.06250
+position  2:    T:0.08333    C:0.04167    A:0.06250    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.29167    G:0.22917
+Average         T:0.13889    C:0.21528    A:0.27778    G:0.36806
+
+#60: Bos_taurus     
+position  1:    T:0.19608    C:0.31373    A:0.39216    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.27451    A:0.23529    G:0.34641
+
+#61: Homo_sapiens   
+position  1:    T:0.19608    C:0.31373    A:0.45098    G:0.03922
+position  2:    T:0.03922    C:0.09804    A:0.17647    G:0.68627
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.26144    A:0.29412    G:0.33987
+
+#62: Apodemus_sylvaticus
+position  1:    T:0.25000    C:0.30769    A:0.42308    G:0.01923
+position  2:    T:0.03846    C:0.05769    A:0.09615    G:0.80769
+position  3:    T:0.07692    C:0.44231    A:0.25000    G:0.23077
+Average         T:0.12179    C:0.26923    A:0.25641    G:0.35256
+
+#63: Peromyscus_leucopus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#64: Microtus_agrestis
+position  1:    T:0.22000    C:0.28000    A:0.48000    G:0.02000
+position  2:    T:0.04000    C:0.08000    A:0.12000    G:0.76000
+position  3:    T:0.06000    C:0.46000    A:0.20000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.26667    G:0.35333
+
+#65: Clethrionomys_glareolus
+position  1:    T:0.24490    C:0.28571    A:0.44898    G:0.02041
+position  2:    T:0.04082    C:0.06122    A:0.12245    G:0.77551
+position  3:    T:0.06122    C:0.46939    A:0.20408    G:0.26531
+Average         T:0.11565    C:0.27211    A:0.25850    G:0.35374
+
+#66: Murina_cyclotis
+position  1:    T:0.22917    C:0.20833    A:0.50000    G:0.06250
+position  2:    T:0.08333    C:0.06250    A:0.06250    G:0.79167
+position  3:    T:0.08333    C:0.39583    A:0.22917    G:0.29167
+Average         T:0.13194    C:0.22222    A:0.26389    G:0.38194
+
+#67: Ovis_aries     
+position  1:    T:0.19608    C:0.33333    A:0.37255    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28105    A:0.22876    G:0.34641
+
+#68: Ovis_dalli     
+position  1:    T:0.19608    C:0.35294    A:0.35294    G:0.09804
+position  2:    T:0.11765    C:0.07843    A:0.07843    G:0.72549
+position  3:    T:0.11765    C:0.43137    A:0.23529    G:0.21569
+Average         T:0.14379    C:0.28758    A:0.22222    G:0.34641
+
+#69: Trachypithecus_cristatus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#70: Pan_troglodytes
+position  1:    T:0.17647    C:0.29412    A:0.49020    G:0.03922
+position  2:    T:0.05882    C:0.07843    A:0.19608    G:0.66667
+position  3:    T:0.07843    C:0.37255    A:0.25490    G:0.29412
+Average         T:0.10458    C:0.24837    A:0.31373    G:0.33333
+
+#71: Pan_paniscus   
+position  1:    T:0.18000    C:0.32000    A:0.46000    G:0.04000
+position  2:    T:0.06000    C:0.08000    A:0.18000    G:0.68000
+position  3:    T:0.08000    C:0.38000    A:0.24000    G:0.30000
+Average         T:0.10667    C:0.26000    A:0.29333    G:0.34000
+
+#72: Peromyscus_polionotus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.06000    C:0.44000    A:0.22000    G:0.28000
+Average         T:0.11333    C:0.26667    A:0.24667    G:0.37333
+
+#73: Peromyscus_maniculatus
+position  1:    T:0.24000    C:0.32000    A:0.42000    G:0.02000
+position  2:    T:0.04000    C:0.04000    A:0.10000    G:0.82000
+position  3:    T:0.04000    C:0.46000    A:0.22000    G:0.28000
+Average         T:0.10667    C:0.27333    A:0.24667    G:0.37333
+
+#74: Corynorhinus_townsendii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#75: Pipistrellus_savii
+position  1:    T:0.21739    C:0.26087    A:0.47826    G:0.04348
+position  2:    T:0.02174    C:0.04348    A:0.06522    G:0.86957
+position  3:    T:0.08696    C:0.36957    A:0.30435    G:0.23913
+Average         T:0.10870    C:0.22464    A:0.28261    G:0.38406
+
+#76: Chalinolobus_beatrix
+position  1:    T:0.23913    C:0.21739    A:0.47826    G:0.06522
+position  2:    T:0.06522    C:0.02174    A:0.06522    G:0.84783
+position  3:    T:0.04348    C:0.41304    A:0.28261    G:0.26087
+Average         T:0.11594    C:0.21739    A:0.27536    G:0.39130
+
+#77: Myotis_daubentoni
+position  1:    T:0.27660    C:0.21277    A:0.46809    G:0.04255
+position  2:    T:0.04255    C:0.04255    A:0.06383    G:0.85106
+position  3:    T:0.06383    C:0.38298    A:0.25532    G:0.29787
+Average         T:0.12766    C:0.21277    A:0.26241    G:0.39716
+
+#78: Myotis_lucifugus
+position  1:    T:0.28571    C:0.20408    A:0.46939    G:0.04082
+position  2:    T:0.04082    C:0.04082    A:0.06122    G:0.85714
+position  3:    T:0.06122    C:0.38776    A:0.28571    G:0.26531
+Average         T:0.12925    C:0.21088    A:0.27211    G:0.38776
+
+#79: Semnopithecus_entellus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#80: Trachypithecus_geei
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#81: Trachypithecus_pileatus
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.11111    C:0.25490    A:0.24837    G:0.38562
+
+#82: Trachypithecus_francoisi
+position  1:    T:0.23529    C:0.27451    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.05882    C:0.39216    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.25490    A:0.24183    G:0.39216
+
+#83: Mus_famulus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.29412    G:0.19608
+Average         T:0.12418    C:0.26797    A:0.28105    G:0.32680
+
+#84: Mus_cookii     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#85: Mus_pahari     
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.13725    G:0.76471
+position  3:    T:0.07843    C:0.43137    A:0.25490    G:0.23529
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#86: Plecotus_auritus
+position  1:    T:0.24000    C:0.22000    A:0.46000    G:0.08000
+position  2:    T:0.08000    C:0.04000    A:0.08000    G:0.80000
+position  3:    T:0.08000    C:0.40000    A:0.28000    G:0.24000
+Average         T:0.13333    C:0.22000    A:0.27333    G:0.37333
+
+#87: Plecotus_townsemdii
+position  1:    T:0.25000    C:0.22917    A:0.47917    G:0.04167
+position  2:    T:0.04167    C:0.04167    A:0.10417    G:0.81250
+position  3:    T:0.08333    C:0.39583    A:0.27083    G:0.25000
+Average         T:0.12500    C:0.22222    A:0.28472    G:0.36806
+
+#88: Trachypithecus_johnii
+position  1:    T:0.21569    C:0.29412    A:0.43137    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.09804    G:0.76471
+position  3:    T:0.05882    C:0.39216    A:0.23529    G:0.31373
+Average         T:0.10458    C:0.26144    A:0.25490    G:0.37908
+
+#89: Trachypithecus_vetulus
+position  1:    T:0.22000    C:0.30000    A:0.42000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.06000    C:0.40000    A:0.22000    G:0.32000
+Average         T:0.10667    C:0.26667    A:0.24000    G:0.38667
+
+#90: Trachypithecus_obscurus
+position  1:    T:0.21569    C:0.27451    A:0.45098    G:0.05882
+position  2:    T:0.03922    C:0.09804    A:0.07843    G:0.78431
+position  3:    T:0.07843    C:0.37255    A:0.21569    G:0.33333
+Average         T:0.11111    C:0.24837    A:0.24837    G:0.39216
+
+#91: Trachypithecus_phayrei
+position  1:    T:0.22000    C:0.28000    A:0.44000    G:0.06000
+position  2:    T:0.04000    C:0.10000    A:0.08000    G:0.78000
+position  3:    T:0.08000    C:0.38000    A:0.22000    G:0.32000
+Average         T:0.11333    C:0.25333    A:0.24667    G:0.38667
+
+#92: Mus_spretus    
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#93: Mus_musculus_domesticus
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#94: Mus_macedonicus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#95: Mus_spicilegus 
+position  1:    T:0.25490    C:0.29412    A:0.43137    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26144    A:0.27451    G:0.33987
+
+#96: Mus_musculus_musculus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#97: Mus_musculus_castaneus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+#98: Mus_musculus_bactrianus
+position  1:    T:0.25490    C:0.31373    A:0.41176    G:0.01961
+position  2:    T:0.03922    C:0.05882    A:0.11765    G:0.78431
+position  3:    T:0.07843    C:0.43137    A:0.27451    G:0.21569
+Average         T:0.12418    C:0.26797    A:0.26797    G:0.33987
+
+Sums of codon usage counts
+------------------------------------------------------------------------------
+Phe F TTT       8 | Ser S TCT       6 | Tyr Y TAT      13 | Cys C TGT     239
+      TTC       2 |       TCC      10 |       TAC     259 |       TGC     569
+Leu L TTA       2 |       TCA      17 | *** * TAA       0 | *** * TGA       0
+      TTG       2 |       TCG       1 |       TAG       0 | Trp W TGG       0
+------------------------------------------------------------------------------
+Leu L CTT       0 | Pro P CCT       1 | His H CAT      11 | Arg R CGT      49
+      CTC       8 |       CCC      10 |       CAC      18 |       CGC     639
+      CTA       5 |       CCA      10 | Gln Q CAA      23 |       CGA     240
+      CTG      36 |       CCG      13 |       CAG      62 |       CGG     303
+------------------------------------------------------------------------------
+Ile I ATT       0 | Thr T ACT      13 | Asn N AAT       0 | Ser S AGT      18
+      ATC       2 |       ACC      52 |       AAC       1 |       AGC     307
+      ATA      19 |       ACA      26 | Lys K AAA      65 | Arg R AGA     783
+Met M ATG     117 |       ACG       9 |       AAG      11 |       AGG     674
+------------------------------------------------------------------------------
+Val V GTT      14 | Ala A GCT       1 | Asp D GAT       0 | Gly G GGT       7
+      GTC       8 |       GCC     124 |       GAC       0 |       GGC       3
+      GTA       8 |       GCA      16 | Glu E GAA       0 |       GGA       2
+      GTG      46 |       GCG       7 |       GAG       1 |       GGG       4
+------------------------------------------------------------------------------
+
+(Ambiguity data are not used in the counts.)
+
+
+Codon position x base (3x4) table, overall
+
+position  1:    T:0.23049    C:0.29179    A:0.42848    G:0.04924
+position  2:    T:0.05660    C:0.06457    A:0.09481    G:0.78402
+position  3:    T:0.07765    C:0.41112    A:0.24847    G:0.26277
+Average         T:0.12158    C:0.25582    A:0.25725    G:0.36535
+
+Codon frequencies under model, for use in evolver (TTT TTC TTA TTG ... GGG):
+  0.00107310  0.00568180  0.00343393  0.00363161
+  0.00122419  0.00648176  0.00391741  0.00414292
+  0.00179754  0.00951752  0.00000000  0.00000000
+  0.01486461  0.07870419  0.00000000  0.05030496
+  0.00135850  0.00719291  0.00434721  0.00459746
+  0.00154977  0.00820564  0.00495927  0.00524476
+  0.00227561  0.01204878  0.00728197  0.00770116
+  0.01881796  0.09963615  0.06021747  0.06368394
+  0.00199494  0.01056270  0.00638382  0.00675131
+  0.00227582  0.01204987  0.00728263  0.00770186
+  0.00334171  0.01769348  0.01069348  0.01130906
+  0.02763394  0.14631443  0.08842860  0.09351906
+  0.00022927  0.00121393  0.00073367  0.00077590
+  0.00026155  0.00138484  0.00083696  0.00088514
+  0.00038405  0.00203344  0.00122896  0.00129971
+  0.00317586  0.01681534  0.01016275  0.01074778
+
+
+TREE #  1:  ((1, 2), ((((7, 6), ((((18, (33, (49, ((71, 70), 61)))), (((44, (((80, 81), ((88, 89), 79)), (((90, 91), 82), 69))), (46, 45)), ((47, 48), 32))), ((21, 20), (19, (34, 35)))), 5)), ((8, (((((54, (65, 64)), (55, 56)), (38, (53, (63, (73, 72))))), ((36, (((((((95, 94), (((98, 97), 96), 93)), 92), 83), (85, 84)), 62), 50)), (37, (51, 52)))), 9)), 4)), (3, ((((12, (26, 25)), (13, 14)), (((23, (40, 39)), ((((66, (78, 77)), ((76, 75), (74, (87, 86)))), (59, 58, 57)), 22)), (11, ((41 [...]
+This is a rooted tree.  Please check!
+check convergence..
+lnL(ntime:193  np:387):  -3265.316569     +0.000000
+  99..100 100..1   100..2    99..101 101..102 102..103 103..104 104..7   104..6   103..105 105..106 106..107 107..108 108..18  108..109 109..33  109..110 110..49  110..111 111..112 112..71  112..70  111..61  107..113 113..114 114..115 115..44  115..116 116..117 117..118 118..80  118..81  117..119 119..120 120..88  120..89  119..79  116..121 121..122 122..123 123..90  123..91  122..82  121..69  114..124 124..46  124..45  113..125 125..126 126..47  126..48  125..32  106..127 127..128 128.. [...]
+ 0.000000 1.917587 0.845013 0.128851 0.034834 0.000000 0.000000 0.492087 0.425498 0.043211 0.162745 0.044815 0.144087 0.080453 0.016944 0.158477 0.054084 0.094369 0.000000 0.074893 0.020114 0.021688 0.125578 0.054399 0.000000 0.043415 0.090097 0.022039 0.000000 0.000000 0.000004 0.017567 0.118573 0.000000 0.098523 0.000004 0.000004 0.000000 0.000000 0.038846 0.000004 0.000004 0.000004 0.038845 0.022082 0.044009 0.114124 0.000000 0.000000 0.021482 0.000004 0.000004 0.191723 0.056837 0.062 [...]
+
+Note: Branch length is defined as number of nucleotide substitutions per codon (not per neucleotide site).
+
+tree length =  17.81891
+
+((1: 1.917587, 2: 0.845013): 0.000000, ((((7: 0.492087, 6: 0.425498): 0.000000, ((((18: 0.080453, (33: 0.158477, (49: 0.094369, ((71: 0.020114, 70: 0.021688): 0.074893, 61: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((44: 0.090097, (((80: 0.000004, 81: 0.017567): 0.000000, ((88: 0.098523, 89: 0.000004): 0.000000, 79: 0.000004): 0.118573): 0.000000, (((90: 0.000004, 91: 0.000004): 0.038846, 82: 0.000004): 0.000000, 69: 0.038845): 0.000000): 0.022039): 0.043415, (46: 0.044009,  [...]
+
+((Loxodonta_africana: 1.917587, Procavia_capensis: 0.845013): 0.000000, ((((Cynocephalus_variegatus: 0.492087, Tupaia_belangeri: 0.425498): 0.000000, ((((Hylobates_lar: 0.080453, (Pongo_pygmaeus: 0.158477, (Gorilla_gorilla: 0.094369, ((Pan_paniscus: 0.020114, Pan_troglodytes: 0.021688): 0.074893, Homo_sapiens: 0.125578): 0.000000): 0.054084): 0.016944): 0.144087, (((Nasalis_larvatus: 0.090097, (((Trachypithecus_geei: 0.000004, Trachypithecus_pileatus: 0.017567): 0.000000, ((Trachypithecu [...]
+
+Detailed output identifying parameters
+
+kappa (ts/tv) =  2.66780
+
+dN & dS for each branch
+
+ branch           t        N        S    dN/dS       dN       dS   N*dN   S*dS
+
+  99..100     0.000    127.6     67.4   0.4600   0.0000   0.0000    0.0    0.0
+ 100..1       1.918    127.6     67.4   0.0430   0.0735   1.7097    9.4  115.3
+ 100..2       0.845    127.6     67.4   0.7654   0.2547   0.3327   32.5   22.4
+  99..101     0.129    127.6     67.4 632.3127   0.0656   0.0001    8.4    0.0
+ 101..102     0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 102..103     0.000    127.6     67.4   0.4784   0.0000   0.0000    0.0    0.0
+ 103..104     0.000    127.6     67.4   0.5158   0.0000   0.0000    0.0    0.0
+ 104..7       0.492    127.6     67.4   0.3617   0.1019   0.2816   13.0   19.0
+ 104..6       0.425    127.6     67.4   0.4382   0.0983   0.2243   12.5   15.1
+ 103..105     0.043    127.6     67.4 400.4027   0.0220   0.0001    2.8    0.0
+ 105..106     0.163    127.6     67.4   0.2769   0.0285   0.1030    3.6    6.9
+ 106..107     0.045    127.6     67.4   0.5228   0.0114   0.0217    1.4    1.5
+ 107..108     0.144    127.6     67.4   1.5911   0.0551   0.0346    7.0    2.3
+ 108..18      0.080    127.6     67.4   1.6533   0.0311   0.0188    4.0    1.3
+ 108..109     0.017    127.6     67.4   0.0001   0.0000   0.0163    0.0    1.1
+ 109..33      0.158    127.6     67.4   1.6828   0.0614   0.0365    7.8    2.5
+ 109..110     0.054    127.6     67.4 736.2809   0.0275   0.0000    3.5    0.0
+ 110..49      0.094    127.6     67.4   2.0913   0.0384   0.0184    4.9    1.2
+ 110..111     0.000    127.6     67.4   0.4327   0.0000   0.0000    0.0    0.0
+ 111..112     0.075    127.6     67.4 839.5575   0.0381   0.0000    4.9    0.0
+ 112..71      0.020    127.6     67.4   0.0001   0.0000   0.0194    0.0    1.3
+ 112..70      0.022    127.6     67.4 535.6837   0.0110   0.0000    1.4    0.0
+ 111..61      0.126    127.6     67.4   3.0407   0.0545   0.0179    7.0    1.2
+ 107..113     0.054    127.6     67.4 754.8444   0.0277   0.0000    3.5    0.0
+ 113..114     0.000    127.6     67.4   0.4593   0.0000   0.0000    0.0    0.0
+ 114..115     0.043    127.6     67.4 720.2270   0.0221   0.0000    2.8    0.0
+ 115..44      0.090    127.6     67.4 913.0786   0.0459   0.0001    5.9    0.0
+ 115..116     0.022    127.6     67.4 563.2359   0.0112   0.0000    1.4    0.0
+ 116..117     0.000    127.6     67.4   0.3772   0.0000   0.0000    0.0    0.0
+ 117..118     0.000    127.6     67.4   0.3996   0.0000   0.0000    0.0    0.0
+ 118..80      0.000    127.6     67.4   0.7592   0.0000   0.0000    0.0    0.0
+ 118..81      0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 117..119     0.119    127.6     67.4   0.1284   0.0118   0.0920    1.5    6.2
+ 119..120     0.000    127.6     67.4   0.4694   0.0000   0.0000    0.0    0.0
+ 120..88      0.099    127.6     67.4   0.1755   0.0125   0.0713    1.6    4.8
+ 120..89      0.000    127.6     67.4   0.7371   0.0000   0.0000    0.0    0.0
+ 119..79      0.000    127.6     67.4   0.7411   0.0000   0.0000    0.0    0.0
+ 116..121     0.000    127.6     67.4   0.3440   0.0000   0.0000    0.0    0.0
+ 121..122     0.000    127.6     67.4   0.4090   0.0000   0.0000    0.0    0.0
+ 122..123     0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 123..90      0.000    127.6     67.4   0.8103   0.0000   0.0000    0.0    0.0
+ 123..91      0.000    127.6     67.4   0.8072   0.0000   0.0000    0.0    0.0
+ 122..82      0.000    127.6     67.4   0.7688   0.0000   0.0000    0.0    0.0
+ 121..69      0.039    127.6     67.4   0.6529   0.0109   0.0168    1.4    1.1
+ 114..124     0.022    127.6     67.4 584.2037   0.0112   0.0000    1.4    0.0
+ 124..46      0.044    127.6     67.4 726.4823   0.0224   0.0000    2.9    0.0
+ 124..45      0.114    127.6     67.4 999.0000   0.0581   0.0001    7.4    0.0
+ 113..125     0.000    127.6     67.4   0.3920   0.0000   0.0000    0.0    0.0
+ 125..126     0.000    127.6     67.4   0.4279   0.0000   0.0000    0.0    0.0
+ 126..47      0.021    127.6     67.4 565.2714   0.0109   0.0000    1.4    0.0
+ 126..48      0.000    127.6     67.4   0.8758   0.0000   0.0000    0.0    0.0
+ 125..32      0.000    127.6     67.4   0.8712   0.0000   0.0000    0.0    0.0
+ 106..127     0.192    127.6     67.4   2.2857   0.0793   0.0347   10.1    2.3
+ 127..128     0.057    127.6     67.4 758.5477   0.0289   0.0000    3.7    0.0
+ 128..21      0.062    127.6     67.4   0.2830   0.0110   0.0390    1.4    2.6
+ 128..20      0.043    127.6     67.4 656.3045   0.0220   0.0000    2.8    0.0
+ 127..129     0.020    127.6     67.4 527.3671   0.0100   0.0000    1.3    0.0
+ 129..19      0.076    127.6     67.4 883.6820   0.0388   0.0000    5.0    0.0
+ 129..130     0.116    127.6     67.4   1.1394   0.0402   0.0353    5.1    2.4
+ 130..34      0.020    127.6     67.4 531.5903   0.0103   0.0000    1.3    0.0
+ 130..35      0.058    127.6     67.4   0.2936   0.0105   0.0359    1.3    2.4
+ 105..5       0.101    127.6     67.4   0.0001   0.0000   0.0972    0.0    6.6
+ 102..131     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 131..132     0.026    127.6     67.4 414.9941   0.0131   0.0000    1.7    0.0
+ 132..8       0.388    127.6     67.4   0.4067   0.0859   0.2112   11.0   14.2
+ 132..133     0.000    127.6     67.4   0.1919   0.0000   0.0000    0.0    0.0
+ 133..134     0.286    127.6     67.4   0.0447   0.0114   0.2546    1.5   17.2
+ 134..135     0.000    127.6     67.4   0.4022   0.0000   0.0000    0.0    0.0
+ 135..136     0.000    127.6     67.4   0.3751   0.0000   0.0000    0.0    0.0
+ 136..137     0.000    127.6     67.4   0.3993   0.0000   0.0000    0.0    0.0
+ 137..54      0.020    127.6     67.4 303.2147   0.0102   0.0000    1.3    0.0
+ 137..138     0.139    127.6     67.4   0.4392   0.0322   0.0733    4.1    4.9
+ 138..65      0.201    127.6     67.4   0.0645   0.0112   0.1730    1.4   11.7
+ 138..64      0.042    127.6     67.4 322.6508   0.0212   0.0001    2.7    0.0
+ 136..139     0.000    127.6     67.4   0.4475   0.0000   0.0000    0.0    0.0
+ 139..55      0.056    127.6     67.4   0.3025   0.0104   0.0344    1.3    2.3
+ 139..56      0.038    127.6     67.4   0.5882   0.0102   0.0174    1.3    1.2
+ 135..140     0.000    127.6     67.4   0.4013   0.0000   0.0000    0.0    0.0
+ 140..38      0.136    127.6     67.4   0.2274   0.0209   0.0917    2.7    6.2
+ 140..141     0.018    127.6     67.4   0.0001   0.0000   0.0169    0.0    1.1
+ 141..53      0.000    127.6     67.4   0.6864   0.0000   0.0000    0.0    0.0
+ 141..142     0.000    127.6     67.4   0.4357   0.0000   0.0000    0.0    0.0
+ 142..63      0.000    127.6     67.4   0.6796   0.0000   0.0000    0.0    0.0
+ 142..143     0.000    127.6     67.4   0.5773   0.0000   0.0000    0.0    0.0
+ 143..73      0.000    127.6     67.4   0.6904   0.0000   0.0000    0.0    0.0
+ 143..72      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 134..144     0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 144..145     0.040    127.6     67.4 176.5524   0.0205   0.0001    2.6    0.0
+ 145..36      0.036    127.6     67.4   0.0001   0.0000   0.0349    0.0    2.4
+ 145..146     0.000    127.6     67.4   0.4138   0.0000   0.0000    0.0    0.0
+ 146..147     0.020    127.6     67.4 512.2765   0.0101   0.0000    1.3    0.0
+ 147..148     0.075    127.6     67.4   0.1958   0.0104   0.0529    1.3    3.6
+ 148..149     0.000    127.6     67.4   0.3982   0.0000   0.0000    0.0    0.0
+ 149..150     0.000    127.6     67.4   0.4324   0.0000   0.0000    0.0    0.0
+ 150..151     0.000    127.6     67.4   0.3875   0.0000   0.0000    0.0    0.0
+ 151..152     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 152..95      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 152..94      0.000    127.6     67.4   0.7227   0.0000   0.0000    0.0    0.0
+ 151..153     0.000    127.6     67.4   0.4227   0.0000   0.0000    0.0    0.0
+ 153..154     0.000    127.6     67.4   0.5439   0.0000   0.0000    0.0    0.0
+ 154..155     0.000    127.6     67.4   0.4896   0.0000   0.0000    0.0    0.0
+ 155..98      0.000    127.6     67.4   0.7199   0.0000   0.0000    0.0    0.0
+ 155..97      0.000    127.6     67.4   0.7525   0.0000   0.0000    0.0    0.0
+ 154..96      0.000    127.6     67.4   0.7382   0.0000   0.0000    0.0    0.0
+ 153..93      0.017    127.6     67.4   0.0001   0.0000   0.0168    0.0    1.1
+ 150..92      0.000    127.6     67.4   0.7319   0.0000   0.0000    0.0    0.0
+ 149..83      0.039    127.6     67.4   0.6233   0.0106   0.0170    1.4    1.1
+ 148..156     0.000    127.6     67.4   0.4306   0.0000   0.0000    0.0    0.0
+ 156..85      0.038    127.6     67.4   0.6173   0.0105   0.0171    1.3    1.2
+ 156..84      0.000    127.6     67.4   0.7215   0.0000   0.0000    0.0    0.0
+ 147..62      0.035    127.6     67.4   0.0001   0.0000   0.0336    0.0    2.3
+ 146..50      0.076    127.6     67.4   0.1900   0.0102   0.0536    1.3    3.6
+ 144..157     0.015    127.6     67.4   0.0001   0.0000   0.0148    0.0    1.0
+ 157..37      0.129    127.6     67.4   0.0001   0.0000   0.1247    0.0    8.4
+ 157..158     0.120    127.6     67.4   0.6158   0.0329   0.0534    4.2    3.6
+ 158..51      0.000    127.6     67.4   0.7490   0.0000   0.0000    0.0    0.0
+ 158..52      0.000    127.6     67.4   0.7737   0.0000   0.0000    0.0    0.0
+ 133..9       0.422    127.6     67.4   0.1550   0.0488   0.3147    6.2   21.2
+ 131..4       0.503    127.6     67.4   0.2905   0.0908   0.3127   11.6   21.1
+ 101..159     0.000    127.6     67.4   0.3253   0.0000   0.0000    0.0    0.0
+ 159..3       3.224    127.6     67.4   0.0355   0.1033   2.9128   13.2  196.4
+ 159..160     0.249    127.6     67.4 876.4966   0.1268   0.0001   16.2    0.0
+ 160..161     0.070    127.6     67.4   0.0001   0.0000   0.0676    0.0    4.6
+ 161..162     0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 162..163     0.012    127.6     67.4   0.0001   0.0000   0.0115    0.0    0.8
+ 163..12      0.117    127.6     67.4   2.3772   0.0488   0.0205    6.2    1.4
+ 163..164     0.303    127.6     67.4 999.0000   0.1541   0.0002   19.7    0.0
+ 164..26      0.112    127.6     67.4   0.8464   0.0351   0.0414    4.5    2.8
+ 164..25      0.109    127.6     67.4   0.5392   0.0282   0.0522    3.6    3.5
+ 162..165     0.045    127.6     67.4   0.0001   0.0000   0.0437    0.0    2.9
+ 165..13      0.000    127.6     67.4   1.0585   0.0000   0.0000    0.0    0.0
+ 165..14      0.096    127.6     67.4 854.8049   0.0488   0.0001    6.2    0.0
+ 161..166     0.000    127.6     67.4   0.2865   0.0000   0.0000    0.0    0.0
+ 166..167     0.150    127.6     67.4   0.1874   0.0200   0.1066    2.5    7.2
+ 167..168     0.079    127.6     67.4   0.6956   0.0229   0.0329    2.9    2.2
+ 168..23      0.000    127.6     67.4   0.7992   0.0000   0.0000    0.0    0.0
+ 168..169     0.000    127.6     67.4   0.3963   0.0000   0.0000    0.0    0.0
+ 169..40      0.000    127.6     67.4   0.7971   0.0000   0.0000    0.0    0.0
+ 169..39      0.022    127.6     67.4 565.8176   0.0113   0.0000    1.4    0.0
+ 167..170     0.090    127.6     67.4   1.8993   0.0357   0.0188    4.6    1.3
+ 170..171     0.052    127.6     67.4   1.0497   0.0178   0.0169    2.3    1.1
+ 171..172     0.000    127.6     67.4   0.4399   0.0000   0.0000    0.0    0.0
+ 172..173     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 173..66      0.102    127.6     67.4   0.4192   0.0229   0.0547    2.9    3.7
+ 173..174     0.174    127.6     67.4   1.1249   0.0603   0.0536    7.7    3.6
+ 174..78      0.000    127.6     67.4   0.0001   0.0000   0.0000    0.0    0.0
+ 174..77      0.018    127.6     67.4   0.0001   0.0000   0.0172    0.0    1.2
+ 172..175     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 175..176     0.000    127.6     67.4   0.3904   0.0000   0.0000    0.0    0.0
+ 176..76      0.124    127.6     67.4   0.3198   0.0238   0.0744    3.0    5.0
+ 176..75      0.138    127.6     67.4   3.5141   0.0613   0.0174    7.8    1.2
+ 175..177     0.016    127.6     67.4 351.4580   0.0083   0.0000    1.1    0.0
+ 177..74      0.085    127.6     67.4 636.5685   0.0433   0.0001    5.5    0.0
+ 177..178     0.000    127.6     67.4   0.3674   0.0000   0.0000    0.0    0.0
+ 178..87      0.085    127.6     67.4 534.6989   0.0432   0.0001    5.5    0.0
+ 178..86      0.034    127.6     67.4   0.4682   0.0081   0.0173    1.0    1.2
+ 171..179     0.017    127.6     67.4   0.0001   0.0000   0.0167    0.0    1.1
+ 179..59      0.000    127.6     67.4   0.7732   0.0000   0.0000    0.0    0.0
+ 179..58      0.176    127.6     67.4   1.1482   0.0614   0.0535    7.8    3.6
+ 179..57      0.000    127.6     67.4   0.7751   0.0000   0.0000    0.0    0.0
+ 170..22      0.126    127.6     67.4   1.2759   0.0456   0.0357    5.8    2.4
+ 166..180     0.061    127.6     67.4   0.3424   0.0122   0.0356    1.6    2.4
+ 180..11      0.016    127.6     67.4   0.0001   0.0000   0.0150    0.0    1.0
+ 180..181     0.000    127.6     67.4   0.4621   0.0000   0.0000    0.0    0.0
+ 181..182     0.013    127.6     67.4   0.0001   0.0000   0.0125    0.0    0.8
+ 182..41      0.077    127.6     67.4   0.0001   0.0000   0.0741    0.0    5.0
+ 182..42      0.067    127.6     67.4   0.2875   0.0120   0.0419    1.5    2.8
+ 181..24      0.058    127.6     67.4   0.0001   0.0000   0.0555    0.0    3.7
+ 160..183     0.000    127.6     67.4   0.4069   0.0000   0.0000    0.0    0.0
+ 183..184     0.000    127.6     67.4   0.3893   0.0000   0.0000    0.0    0.0
+ 184..10      0.466    127.6     67.4   0.2858   0.0834   0.2918   10.6   19.7
+ 184..185     0.371    127.6     67.4   0.1841   0.0489   0.2656    6.2   17.9
+ 185..17      0.000    127.6     67.4   0.9118   0.0000   0.0000    0.0    0.0
+ 185..16      0.047    127.6     67.4 727.2422   0.0237   0.0000    3.0    0.0
+ 183..186     0.167    127.6     67.4   0.6539   0.0472   0.0721    6.0    4.9
+ 186..187     0.194    127.6     67.4   0.3640   0.0403   0.1107    5.1    7.5
+ 187..15      0.099    127.6     67.4 890.6329   0.0502   0.0001    6.4    0.0
+ 187..188     0.067    127.6     67.4   1.3459   0.0243   0.0181    3.1    1.2
+ 188..27      0.047    127.6     67.4 710.7597   0.0238   0.0000    3.0    0.0
+ 188..189     0.000    127.6     67.4   0.4529   0.0000   0.0000    0.0    0.0
+ 189..190     0.063    127.6     67.4   0.0001   0.0000   0.0607    0.0    4.1
+ 190..60      0.064    127.6     67.4   1.3526   0.0233   0.0172    3.0    1.2
+ 190..191     0.022    127.6     67.4   0.0001   0.0000   0.0210    0.0    1.4
+ 191..68      0.019    127.6     67.4   0.0001   0.0000   0.0186    0.0    1.3
+ 191..67      0.000    127.6     67.4   0.6460   0.0000   0.0000    0.0    0.0
+ 189..43      0.109    127.6     67.4   0.9654   0.0360   0.0373    4.6    2.5
+ 186..192     0.000    127.6     67.4   0.4010   0.0000   0.0000    0.0    0.0
+ 192..193     0.327    127.6     67.4   0.3859   0.0703   0.1822    9.0   12.3
+ 193..31      0.000    127.6     67.4   0.8316   0.0000   0.0000    0.0    0.0
+ 193..30      0.000    127.6     67.4   0.8306   0.0000   0.0000    0.0    0.0
+ 192..194     0.264    127.6     67.4   1.3584   0.0968   0.0713   12.4    4.8
+ 194..29      0.000    127.6     67.4   0.8232   0.0000   0.0000    0.0    0.0
+ 194..28      0.018    127.6     67.4   0.0001   0.0000   0.0175    0.0    1.2
+
+tree length for dN:      3.57496
+tree length for dS:     10.41452
+
+dS tree:
+((Loxodonta_africana: 1.709655, Procavia_capensis: 0.332739): 0.000000, ((((Cynocephalus_variegatus: 0.281643, Tupaia_belangeri: 0.224256): 0.000000, ((((Hylobates_lar: 0.018788, (Pongo_pygmaeus: 0.036514, (Gorilla_gorilla: 0.018353, ((Pan_paniscus: 0.019389, Pan_troglodytes: 0.000021): 0.000045, Homo_sapiens: 0.017926): 0.000000): 0.000037): 0.016333): 0.034635, (((Nasalis_larvatus: 0.000050, (((Trachypithecus_geei: 0.000002, Trachypithecus_pileatus: 0.016934): 0.000000, ((Trachypithecu [...]
+dN tree:
+((Loxodonta_africana: 0.073528, Procavia_capensis: 0.254685): 0.000000, ((((Cynocephalus_variegatus: 0.101877, Tupaia_belangeri: 0.098278): 0.000000, ((((Hylobates_lar: 0.031061, (Pongo_pygmaeus: 0.061445, (Gorilla_gorilla: 0.038381, ((Pan_paniscus: 0.000002, Pan_troglodytes: 0.011039): 0.038132, Homo_sapiens: 0.054506): 0.000000): 0.027535): 0.000002): 0.055107, (((Nasalis_larvatus: 0.045876, (((Trachypithecus_geei: 0.000001, Trachypithecus_pileatus: 0.000002): 0.000000, ((Trachypithecu [...]
+
+w ratios as labels for TreeView:
+((Loxodonta_africana#1 #0.0430 : 0.073528, Procavia_capensis#2 #0.7654 : 0.254685) #0.4600 : 0.000000, ((((Cynocephalus_variegatus#7 #0.3617 : 0.101877, Tupaia_belangeri#8 #0.4382 : 0.098278)#6 #0.5158 : 0.000000, ((((Hylobates_lar#13 #1.6533 : 0.031061, (Pongo_pygmaeus#15 #1.6828 : 0.061445, (Gorilla_gorilla#17 #2.0913 : 0.038381, ((Pan_paniscus#20 #0.0001 : 0.000002, Pan_troglodytes#21 #535.6837 : 0.011039)#19 #839.5575 : 0.038132, Homo_sapiens#22 #3.0407 : 0.054506)#18 #0.4327 : 0.000 [...]
+
+
+Time used: 37:35:07
diff --git a/examples/evol/data/protamine/PRM1/slr/lnf b/examples/evol/data/protamine/PRM1/slr/lnf
new file mode 100644
index 0000000..334b449
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/lnf
@@ -0,0 +1,69 @@
+    -1     65     64
+
+
+ 1
+
+     1      1    -8.8210899796   0.000147587405       0.0096  ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M [...]
+     2      1   -19.8200178202   0.000000002468       0.0000  GCC (A) GTC (V) GCC (A) GTC (V) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A [...]
+     3      1   -36.0830102777   0.000000000000       0.0000  AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R [...]
+     4      1   -48.6666478270   0.000000000000       0.0000  TAC (Y) TTT (F) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAT (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TCC (S) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+     5      1   -60.1549452542   0.000000000000       0.0000  AGA (R) GCT (A) CGC (R) AGA (R) AGA (R) ATA (I) AGA (R) AGA (R) --- (*) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) AGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+     6      1   -40.3858431022   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     7      1   -38.8426661385   0.000000000000       0.0000  TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) CGC (R) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+     8      1   -48.0566862880   0.000000000000       0.0000  CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CTC (L) GGC (G) CGC (R) CGC (R) TGC (C) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+     9      1   -23.3218022100   0.000000000074       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) --- (*) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) ACC (T) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    10      1  -108.8109202449   0.000000000000       0.0000  CGC (R) CGC (R) CAG (Q) CAG (Q) CAA (Q) CCC (P) --- (*) CCA (P) CGC (R) CAC (H) CCA (P) CGA (R) CAA (Q) CAA (Q) CAT (H) CAG (Q) CAG (Q) CAG (Q) CGG (R) CAG (Q) CAG (Q) CGA (R) CAA (Q) CCA (P) CAC (H) CAC (H) CAT (H) CAT (H) CAT (H) CCC (P) CCC (P) CAG (Q) CAG (Q) CGC (R) CGC (R) AAA (K) AAA (K) AAA (K) CAA (Q) CAA (Q) CCA (P) CCA (P) CAC (H) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) CAG (Q) AAA (K) AAA (K) AAA (K) AAA (K) AAA (K [...]
+    11      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGC (S) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    12      1    -4.9346588068   0.007192914701       0.4675  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CTC (L) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    13      1   -14.9801109709   0.000000312047       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    14      1   -48.6373947771   0.000000000000       0.0000  CGA (R) CGG (R) CGC (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    15      1   -19.1445540297   0.000000004849       0.0000  AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S) AGC (S [...]
+    16      1   -32.1525222309   0.000000000000       0.0000  AGA (R) AGA (R) CGC (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    17      1   -29.7189469859   0.000000000000       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    18      1    -7.1113425502   0.000815799005       0.0530  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGT (R) CGT (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    19      1    -6.8282546204   0.001082746273       0.0704  --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CCC (P) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    20      1   -53.1677375344   0.000000000000       0.0000  CGC (R) CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    21      1   -62.7565845864   0.000000000000       0.0000  AGT (S) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CCT (P) CGT (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGT (R) CGT (R) CGC (R) CCC (P) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGT (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    22      1   -97.2305915462   0.000000000000       0.0000  CGG (R) AGA (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) CGC (R) CGG (R) CGC (R) CGT (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGA (R) CAA (Q) CAA (Q) AGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CAA (Q) CAA (Q) CGC (R) CGC (R) CGC (R) CGG (R) CGG (R) CGC (R) CGC (R) CGA (R) CCG (P) CAG (Q) CGG (R) CGG (R) CGG (R) CAG (Q) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    23      2    -2.3062302227   0.099636150572       6.4763  --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    24      1    -4.6546204716   0.009517524728       0.6186  --- (*) --- (*) TAC (Y) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    25      1   -38.7442892539   0.000000000000       0.0000  AGA (R) CGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) GGA (G) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    26      1   -70.4619912099   0.000000000000       0.0000  CGA (R) CGC (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) AGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CCA (P) CCA (P) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q) CGA (R) CGA (R) CGA (R) CGG (R) CGA (R [...]
+    27      1   -48.0642170277   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGT (S) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    28      1   -65.2946761522   0.000000000000       0.0000  AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) AGT (S) TGC (C) TTC (F) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) GGT (G) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGT (S) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    29      1  -101.1296023810   0.000000000000       0.0000  CAC (H) TCC (S) CGC (R) CGC (R) CGC (R) CAC (H) --- (*) TAT (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    30      1    -1.9219973347   0.146314431197       9.5104  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    31      1   -71.1270692284   0.000000000000       0.0000  AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGG (R) AGG (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) CGC (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    32      1   -52.2165611001   0.000000000000       0.0000  CGG (R) CGA (R) AGG (R) CGC (R) CGA (R) CGG (R) CGA (R) CGA (R) CGC (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CTA (L) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGT (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    33      1   -41.2594714153   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    34      1   -30.3086787727   0.000000000000       0.0000  CGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    35      1   -71.9565070530   0.000000000000       0.0000  CGT (R) CGA (R) AGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGG (R) AGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGA (R) CGA (R) CGG (R) CGG (R) CGG (R) CGT (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGG (R) CAG (Q) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGA (R) CGA (R) CGA (R [...]
+    36      1   -93.9973955704   0.000000000000       0.0000  TCC (S) TCT (S) AGC (S) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TTT (F) TCC (S) TGC (C) AGC (S) TGC (C) ACG (T) AGC (S) TGC (C) TGC (C) TGT (C) AGT (S) AGT (S) TTT (F) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) TGC (C) AGC (S) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TCT (S) TTT (F) AGC (S) AGA (R) AGA (R) AGA (R) AGA (R) AGC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    37      1  -100.4285448422   0.000000000000       0.0000  TGC (C) GGT (G) TGC (C) TGC (C) TGT (C) TAT (Y) CGT (R) CAT (H) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) GTT (V) GTT (V) TGC (C) TGC (C) TGC (C) TGC (C) TCT (S) TGT (C) TGT (C) TGT (C) TGT (C) GGT (G) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TTC (F) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    38      1   -75.3692447719   0.000000000000       0.0000  CGC (R) CGG (R) AGG (R) CAG (Q) CGA (R) CGC (R) AGA (R) CGG (R) CGC (R) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) GGG (G) GGG (G) CGG (R) CCG (P) CCG (P) CGT (R) CGT (R) CGG (R) CAG (Q) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGA (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) CGG (R) CGG (R) CGG (R) CGG (R [...]
+    39      1   -95.3196946499   0.000000000000       0.0000  AGT (S) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AAG (K) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CAG (Q) CAG (Q) GCA (A) ACA (T) AGA (R) AGA (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) GCA (A) GCA (A) GCA (A) GCA (A) GCA (A) ACA (T) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R [...]
+    40      1   -78.3719986461   0.000000000000       0.0000  CGC (R) AGA (R) CGC (R) CGA (R) CGG (R) CGG (R) AGA (R) CGG (R) CGC (R) CCG (P) CGG (R) CGG (R) CGG (R) CGG (R) CCC (P) AGG (R) AGG (R) CGC (R) CGG (R) CGG (R) CGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) AGA (R) AGA (R) CGG (R) CGG (R) CGG (R) CCA (P) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) CGC (R) CGG (R) CGG (R) CGG (R) CGG (R) CGG (R) CAG (Q) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    41      1   -72.3764583584   0.000000000000       0.0000  CGG (R) AGG (R) AGG (R) AGA (R) AGG (R) CGA (R) GCC (A) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) CGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGG (R) AGG (R) AAG (K) AGG (R) AGG (R) AGG (R) AGG (R) CGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    42      1  -108.5310189228   0.000000000000       0.0000  AGA (R) AGA (R) AGA (R) GTC (V) AGG (R) CGG (R) AGG (R) CGG (R) AGA (R) AAG (K) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) --- (*) --- (*) AGA (R) GCC (A) GCC (A) GCC (A) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) AGG (R) AGG (R) AGA (R) AGG (R) GGC (G) GCC (A) CGA (R) AGA (R) CGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) AGA (R) CGA (R) CGA (R) CGA (R) CGA (R) CAA (Q [...]
+    43      1   -45.1108970051   0.000000000000       0.0000  --- (*) TCA (S) GAG (E) --- (*) --- (*) GCA (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) GCC (A) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    44      1   -80.7500471833   0.000000000000       0.0000  --- (*) AGA (R) GTG (V) AGG (R) --- (*) AGG (R) --- (*) --- (*) GTG (V) AGA (R) --- (*) --- (*) --- (*) ATG (M) AGA (R) --- (*) --- (*) ATG (M) AGG (R) AGC (S) AGC (S) AGA (R) AGA (R) --- (*) --- (*) --- (*) AGA (R) GCG (A) GCG (A) AGA (R) AGA (R) ATG (M) ATG (M) AGC (S) AGC (S) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) AGA (R) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) ATG (M) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    45      1   -81.4803280490   0.000000000000       0.0000  CGG (R) AGG (R) ACG (T) AAG (K) AGG (R) AGA (R) AGG (R) --- (*) AGG (R) GTG (V) GTG (V) GTG (V) GTG (V) CTG (L) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) GTA (V) GTG (V) GTG (V) GCG (A) GCG (A) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGA (R) AGA (R) AGG (R) AGA (R) GTG (V) GTG (V) GTG (V) GTG (V) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    46      1   -26.0349733719   0.000000000005       0.0000  TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) AGC (S) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) GGC (G) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    47      1   -42.8345684375   0.000000000000       0.0000  TGC (C) CGC (R) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TCC (S) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TAC (Y) TAC (Y) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C) TGT (C) TGC (C) TGC (C) TGC (C) TGC (C) TGC (C [...]
+    48      1    -8.3145235040   0.000244933576       0.0159  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) --- (*) --- (*) --- (*) --- (* [...]
+    49      1    -5.9833392188   0.002520396071       0.1638  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    50      1   -17.5414983126   0.000000024089       0.0000  AGG (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) --- (*) --- (*) --- (*) --- (*) --- (*) CGC (R) CAC (H) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    51      1   -47.4575053575   0.000000000000       0.0000  CGC (R) TAC (Y) TAC (Y) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CCC (P) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R [...]
+    52      1   -87.7435550702   0.000000000000       0.0000  AGG (R) AGA (R) AGG (R) ACA (T) AGG (R) CTG (L) AGG (R) AGG (R) AGA (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) AGA (R) ACA (T) CGC (R) CGC (R) CGC (R) CGC (R) CGC (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) TCA (S) CGA (R) CGA (R) AGA (R) AGA (R [...]
+    53      1   -33.3327603021   0.000000000000       0.0000  CAT (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AAC (N) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y [...]
+    54      1  -124.4011208760   0.000000000000       0.0000  CGC (R) AGG (R) --- (*) ACC (T) AGG (R) ACC (T) TCG (S) ACC (T) ACC (T) AGG (R) ACT (T) TCT (S) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) AGG (R) AAG (K) AAG (K) AAG (K) ACT (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T) AGG (R) AGA (R) AGG (R) AGG (R) ACC (T) ACC (T) ACC (T) ACT (T) ACT (T) ACT (T) ACT (T) ACC (T) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) ACC (T) ACC (T) ACC (T) ACC (T) ACC (T [...]
+    55      1  -210.1481506982   0.000000000000       0.0000  --- (*) CTG (L) --- (*) CTC (L) CTG (L) CTG (L) CTA (L) CGG (R) CTG (L) GTG (V) GTG (V) GCG (A) GTG (V) GTG (V) GCC (A) GTC (V) GTC (V) CTG (L) CTG (L) CTG (L) CTG (L) GTT (V) GTT (V) GTG (V) GTG (V) GTG (V) GTC (V) GTT (V) GTT (V) ATG (M) ATG (M) CTG (L) CTG (L) TTG (L) TTG (L) TTA (L) TTA (L) CTA (L) GTT (V) GTT (V) GTG (V) GTG (V) GTC (V) CTG (L) CTG (L) CGG (R) CTG (L) CTG (L) CTG (L) TTT (F) CTA (L) CTA (L) CTG (L) CTG (L [...]
+    56      1  -137.5444841908   0.000000000000       0.0000  --- (*) AGG (R) --- (*) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GGG (G) AGG (R) AGG (R) AGG (R) AGG (R) ATA (I) CTG (L) CTG (L) AGA (R) AGG (R) ACG (T) CCA (P) ATG (M) GTG (V) AGG (R) AGG (R) AGG (R) GTA (V) ATA (I) ATA (I) GTA (V) GTA (V) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) GTG (V) GTG (V) AGG (R) AGG (R) GTG (V) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) AGA (R) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R [...]
+    57      1   -27.2953532653   0.000000000001       0.0000  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) TGT (C) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) TAT (Y) TAT (Y) AGG (R) AGG (R) AGG (R) AGG (R) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGG (R) AGG (R) --- (*) --- (*) AGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    58      1   -70.2225178384   0.000000000000       0.0000  --- (*) CGT (R) --- (*) TGT (C) TGT (C) TGT (C) TGT (C) TGC (C) TGC (C) TGT (C) TGT (C) TGC (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) AGA (R) AGA (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C) CGT (R) TGT (C) TGT (C) TGT (C) TGT (C) TGT (C [...]
+    59      1   -43.6572396581   0.000000000000       0.0000  --- (*) AGA (R) CGC (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) ACA (T) AGG (R) AGG (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGG (R) AGA (R) AGA (R) ACA (T) AGA (R) AGA (R) ACA (T) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AAA (K) AAA (K) AGA (R) AGA (R) AGA (R) AGG (R) ACA (T) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AAA (K) AAA (K [...]
+    60      1   -41.1946204630   0.000000000000       0.0000  --- (*) AGA (R) CGG (R) CGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R) AAA (K) AGA (R) AGA (R) AGA (R) AGA (R) AGA (R [...]
+    61      1   -78.9386963498   0.000000000000       0.0000  --- (*) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TGC (C) AGA (R) AGA (R) AGA (R) AGA (R) TGC (C) --- (*) AGA (R) AGA (R) CAC (H) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) AGA (R) CAG (Q) TGC (C) TGC (C) CAG (Q) CAG (Q) TAC (Y) CAC (H) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) AGA (R) AGA (R) AGA (R) CGA (R) CAG (Q) TAC (Y) TAC (Y) TAC (Y) TAC (Y) TAC (Y) CAC (H) TAC (Y) ATC (I) ATC (I) TAC (Y) TAC (Y [...]
+    62      1    -8.4983047941   0.000203813582       0.0132  --- (*) --- (*) CGG (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) AGA (R) --- (*) --- (*) CGA (R) CGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    63      1    -6.7117030164   0.001216590486       0.0791  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
+    64      1    -2.4255598034   0.088428602553       5.7479  --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) AGA (R) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (*) --- (* [...]
\ No newline at end of file
diff --git a/examples/evol/data/protamine/PRM1/slr/rst.fb b/examples/evol/data/protamine/PRM1/slr/rst.fb
new file mode 100644
index 0000000..e365d1e
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/rst.fb
@@ -0,0 +1,2 @@
+Supplemental results for CODEML (seqf: algn  treef: tree)
+
diff --git a/examples/evol/data/protamine/PRM1/slr/rst1 b/examples/evol/data/protamine/PRM1/slr/rst1
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/rst1
@@ -0,0 +1 @@
+
diff --git a/examples/evol/data/protamine/PRM1/slr/rub b/examples/evol/data/protamine/PRM1/slr/rub
new file mode 100644
index 0000000..f693fac
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/rub
@@ -0,0 +1,3 @@
+
+
+TREE # 1
diff --git a/examples/evol/data/protamine/PRM1/slr/slr.ctl b/examples/evol/data/protamine/PRM1/slr/slr.ctl
new file mode 100644
index 0000000..de37360
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/slr.ctl
@@ -0,0 +1,4 @@
+seqfile: algn
+treefile: tree.slr
+outfile: eutherians_prm1_slr.txt
+positive_only: 0
diff --git a/examples/evol/data/protamine/PRM1/slr/tmp.ctl b/examples/evol/data/protamine/PRM1/slr/tmp.ctl
new file mode 100644
index 0000000..d28f914
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/tmp.ctl
@@ -0,0 +1,27 @@
+verbose      = 2
+CodonFreq    = 2
+ncatG        = 8
+cleandata    = 0
+NSsites      = 0
+fix_omega    = 0
+clock        = 0
+seqfile      = algn
+runmode      = 0
+fix_kappa    = 0
+fix_alpha    = 1
+Small_Diff   = .5e-6
+method       = 0
+Malpha       = 0
+aaDist       = 0
+RateAncestor = 0
+outfile      = fb.out
+icode        = 0
+alpha        = 0.0
+seqtype      = 1
+omega        = 0.4
+getSE        = 0
+noisy        = 0
+Mgene        = 0
+kappa        = 2
+treefile     = tree
+model        = 1
diff --git a/examples/evol/data/protamine/PRM1/slr/tree b/examples/evol/data/protamine/PRM1/slr/tree
new file mode 100644
index 0000000..8d35f0f
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/tree
@@ -0,0 +1 @@
+((Loxodonta_africana,Procavia_capensis),((((Cynocephalus_variegatus,Tupaia_belangeri),((((Hylobates_lar,(Pongo_pygmaeus,(Gorilla_gorilla,((Pan_paniscus,Pan_troglodytes),Homo_sapiens)))),(((Nasalis_larvatus,(((Trachypithecus_geei,Trachypithecus_pileatus),((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus))),(Procolobus_badius,Colobus_guereza)),((Macaca_fascicularis,M [...]
diff --git a/examples/evol/data/protamine/PRM1/slr/tree.slr b/examples/evol/data/protamine/PRM1/slr/tree.slr
new file mode 100644
index 0000000..aac35f4
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/slr/tree.slr
@@ -0,0 +1,2 @@
+98 1
+((1,2),((((7,6),((((18,(33,(49,((71,70),61)))),(((44,(((80,81),((88,89),79)),(((90,91),82),69))),(46,45)),((47,48),32))),((21,20),(19,(34,35)))),5)),((8,(((((54,(65,64)),(55,56)),(38,(53,(63,(73,72))))),((36,(((((((95,94),(((98,97),96),93)),92),83),(85,84)),62),50)),(37,(51,52)))),9)),4)),(3,((((12,(26,25)),(13,14)),(((23,(40,39)),((((66,(78,77)),((76,75),(74,(87,86)))),(59,58,57)),22)),(11,((41,42),24)))),((10,(17,16)),((15,(27,((60,(68,67)),43))),((31,30),(29,28))))))));
diff --git a/examples/evol/data/protamine/PRM1/tree.nw b/examples/evol/data/protamine/PRM1/tree.nw
new file mode 100644
index 0000000..c99b4ff
--- /dev/null
+++ b/examples/evol/data/protamine/PRM1/tree.nw
@@ -0,0 +1 @@
+((((((((((((((Trachypithecus_johnii,Trachypithecus_vetulus),Semnopithecus_entellus),(Trachypithecus_geei,Trachypithecus_pileatus)),(((Trachypithecus_obscurus,Trachypithecus_phayrei),Trachypithecus_francoisi),Trachypithecus_cristatus)),Nasalis_larvatus),(Colobus_guereza,Procolobus_badius)),(Papio_cynocephalus,(Macaca_fascicularis,Macaca_mulatta))),(((((Pan_troglodytes,Pan_paniscus),Homo_sapiens),Gorilla_gorilla),Pongo_pygmaeus),Hylobates_lar)),(((Ateles_sp,Alouatta_seniculus),Saimiri_sciu [...]
\ No newline at end of file
diff --git a/examples/evol/measuring_evolution_trees.py b/examples/evol/measuring_evolution_trees.py
new file mode 100644
index 0000000..7bc73e4
--- /dev/null
+++ b/examples/evol/measuring_evolution_trees.py
@@ -0,0 +1,184 @@
+#!/usr/bin/python
+#        Author: Francois-Jose Serra
+# Creation Date: 2010/04/26 17:17:06
+
+from ete3.evol import EvolTree
+import sys, re
+
+typ = None
+while typ != 'L' and typ != 'S':
+    typ = raw_input(\
+        "choose kind of example [L]ong or [S]hort, hit [L] or [S]:\n").upper()
+TREE_PATH    = "data/%s_example/measuring_%s_tree.nw" % (typ, typ)
+
+ALG_PATH     = "data/%s_example/alignment_%s_measuring_evol.fasta" % (typ, typ)
+WORKING_PATH = "/tmp/ete3-codeml_example/"
+
+#MY_PATH = '/home/francisco/toolbox/ete3-codeml/doc/tutorial/examples/'
+MY_PATH = ''
+
+TREE_PATH = MY_PATH + re.sub('\./', '', TREE_PATH)
+ALG_PATH  = MY_PATH + re.sub('\./', '', ALG_PATH )
+
+###
+# load tree
+
+
+print '\n         ----> we create a EvolTree object, and give to him a topology, from',
+print TREE_PATH
+out = True
+while out == True:
+    try:
+        T = EvolTree(TREE_PATH)
+        out = False
+    except:
+        sys.stderr.write('Bad path for working directory. Enter new path or quit("Q"):\n')
+        PATH = raw_input('')
+        if PATH.startswith('q') or PATH.startswith('Q'):
+            sys.exit()
+        TREE_PATH    = "./measuring_%s_tree.nw" % (typ)
+        ALG_PATH     = "./alignment_%s_measuring_evol.fasta" % (typ)
+        TREE_PATH = PATH + re.sub('\./', '', TREE_PATH)
+        ALG_PATH  = PATH + re.sub('\./', '', ALG_PATH )
+
+
+print T
+print '\n         ----> and an alignment from: \n'+ALG_PATH+'\n\n'
+T.link_to_alignment(ALG_PATH)
+raw_input("         ====> hit some key to see the Tree with alignment")
+T.show()
+
+###
+# run free-branch model, and display result
+print '\n\n\n         ----> We define now our working directory, that will be created:', \
+      WORKING_PATH
+T.workdir = (WORKING_PATH)
+print '\n            ----> and run the free-branch model with run_model function:\n\n%s\n%s\n%s\n'\
+      % ('*'*10 + ' doc ' + '*'*10, T.run_model.func_doc, '*'*30)
+
+raw_input("         ====> Hit some key to start free-branch computation with codeml...\n")
+T.run_model('fb')
+T.show()
+
+###
+# run site model, and display result
+print '\n\n\n         ----> We are now goingn to run sites model M1 and M2 with run_model function:\n'
+raw_input("         ====> hit some key to start")
+for model in ['M1', 'M2']:
+    print 'running model ' + model
+    T.run_model(model)
+
+print '\n\n\n            ----> and use the get_most_likely function to compute the LRT between those models:\n'
+print 'get_most_likely function: \n\n'+ '*'*10 + ' doc ' + '*'*10
+print '\n' + T.get_most_likely.func_doc
+print '*'*30
+
+raw_input("\n         ====> Hit some key to launch LRT")
+
+pv = T.get_most_likely('M2', 'M1')
+if pv <= 0.05:
+    print '         ---->   -> most likely model is model M2, there is positive selection, pval: ',pv
+else:
+    print '         ---->   -> most likely model is model M1, pval: ',pv
+
+raw_input("         ====> Hit some key...")
+
+###
+# tengo que encontrar un ejemplo mas bonito pero bueno.... :P
+
+print '\n\n\n         ----> We now add histograms to our tree to repesent site models with add_histface function: \n\n%s\n%s\n%s\n'\
+      % ('*'*10 + ' doc ' + '*'*10, T.get_evol_model('M2').set_histface.func_doc,'*'*30)
+print 'Upper face is an histogram representing values of omega for each column in the alignment,'
+print '\
+Colors represent significantly conserved sites(cyan to blue), neutral sites(greens), or under \n\
+positive selection(orange to red). \n\
+Lower face also represents values of omega(red line) and bars represent the error of the estimation.\n\
+Also significance of belonging to one class of site can be painted in background(here lightgrey for\n\
+evrething significant)\n\
+Both representation are done according to BEB estimation of M2, M1 or M7 estimation can also be \n\
+drawn but should not be used.\n'
+raw_input("         ====> Hit some key to display, histograms of omegas BEB from M2 model...")
+
+col = {'NS' : 'grey',
+       'RX' : 'grey',
+       'RX+': 'grey',
+       'CN' : 'grey',
+       'CN+': 'grey',
+       'PS' : 'grey',
+       'PS+': 'grey'}
+
+
+
+T.get_evol_model('M2').set_histface(kind='curve',
+                                      colors=col, up = False,
+                                      hlines=[1.0,0.3],
+                                      hlines_col=['black','grey'])
+T.show(histfaces = ['M1', 'M2'])
+
+
+###
+# re-run without reeeeeeeeee-run
+print '\n\n\n         ----> Now we have runned once those 3 models, we can load again our tree from'
+print '         ----> our tree file and alignment file, and this time load directly oufiles from previous'
+print '               with the function link_to_evol_model \n\n%s\n%s\n%s\n' % ('*'*10 + ' doc ' + '*'*10, \
+                                                                      T.link_to_evol_model.func_doc, \
+                                                                      '*'*30)
+raw_input('runs\n         ====> hit some key to see...')
+T = EvolTree(TREE_PATH)
+T.link_to_alignment(ALG_PATH)
+T.workdir = (WORKING_PATH)
+
+T.link_to_evol_model(T.workdir + '/fb/out','fb')
+T.link_to_evol_model(T.workdir + '/M1/out','M1')
+T.link_to_evol_model(T.workdir + '/M2/out','M2')
+
+T.get_evol_model('M2').set_histface(kind='curve',
+                                      colors=col, up = False,
+                                      hlines=[1.0,0.3],
+                                      hlines_col=['black','grey'])
+T.show(histfaces = ['M1', 'M2'])
+
+
+###
+# mark tree functionality
+print T.write(format=10)
+name = None
+while name not in T.get_leaf_names():
+    name = raw_input('         ====> As you need to mark some branches to run branch\n\
+    models, type the name of one leaf: ')
+
+idname = T.get_leaves_by_name(name)[0].node_id
+
+print '         ----> you want to mark:',name,'that has this idname: ', idname
+T.mark_tree([idname]) # by default will mark with '#1'
+print 'have a look to the mark: '
+print re.sub('#','|',re.sub('[0-9a-zA-Z_(),;]',' ',T.write(format=10)))
+print re.sub('#','v',re.sub('[0-9a-zA-Z_(),;]',' ',T.write(format=10)))
+print T.write(format=10)
+print '\n You have marked the tree with a command like:  T.mark_tree([%d])\n' % (idname)
+print '\n%s\n%s\n%s\n' % ('*'*10 + ' doc ' + '*'*10, T.mark_tree.func_doc, \
+                                                                      '*'*30)
+
+print '\n\n\n         ----> We are now going to run branch-site models bsA and bsA1:\n\n'
+raw_input("         ====> hit some key to start computation with our marked tree")
+for model in ['bsA','bsA1']:
+    print 'running model ' + model
+    T.run_model(model)
+
+
+print '\n\n\n            ----> again we use the get_most_likely function to compute the LRT between those models:\n'
+raw_input("         ====> Hit some key to launch LRT")
+
+pv = T.get_most_likely('bsA', 'bsA1')
+if pv <= 0.05:
+    print '         ---->   -> most likely model is model bsA, there is positive selection, pval: ',pv
+    print '                         ' + name + ' is under positive selection.'
+else:
+    print '         ---->   -> most likely model is model bsA1, pval of LRT: ',pv
+    print '                         ' + name + ' is not under positive selection.'
+
+
+sys.stderr.write('\n\nThe End.\n\n')
+
+
+
diff --git a/examples/evol/test_hist.py b/examples/evol/test_hist.py
new file mode 100644
index 0000000..8eb7cc2
--- /dev/null
+++ b/examples/evol/test_hist.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python
+#        Author: Francois-Jose Serra
+# Creation Date: 2010/04/26 17:17:06
+
+from ete3.evol import EvolTree
+import sys, re
+
+typ = 'S'
+#while typ != 'L' and typ != 'S':
+#    typ = raw_input (\
+#        "choose kind of example [L]ong or [S]hort, hit [L] or [S]:\n")
+
+TREE_PATH    = "data/S_example/measuring_%s_tree.nw" % (typ)
+
+ALG_PATH     = "data/S_example/alignment_%s_measuring_evol.fasta" % (typ)
+WORKING_PATH = "data/S_example/paml/"
+
+MY_PATH = ''
+
+TREE_PATH = MY_PATH + re.sub('\./', '', TREE_PATH)
+ALG_PATH  = MY_PATH + re.sub('\./', '', ALG_PATH )
+
+T = EvolTree (TREE_PATH)
+T.link_to_alignment (ALG_PATH)
+T.workdir = (WORKING_PATH)
+T.link_to_evol_model(T.workdir + '/fb/out','fb')
+T.link_to_evol_model(T.workdir + '/M1/out','M1')
+T.link_to_evol_model(T.workdir + '/M2/out','M2')
+
+T.show(histfaces=['M2'])
+sys.stderr.write('\n\nThe End.\n\n')
+
+
+
diff --git a/examples/evol/test_protamine.py b/examples/evol/test_protamine.py
new file mode 100644
index 0000000..3d138ee
--- /dev/null
+++ b/examples/evol/test_protamine.py
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+"""
+10 Nov 2010
+
+example to test, extrernal runs of codeml
+"""
+
+__author__  = "Francois-Jose Serra"
+__email__   = "francois at barrabin.org"
+__licence__ = "GPLv3"
+__version__ = "0.0"
+
+from ete3 import EvolTree, faces
+from random import random as rnd
+
+WRKDIR = 'data/protamine/PRM1/'
+
+def main():
+    """
+    main function
+    """
+    tree = EvolTree (WRKDIR + 'tree.nw')
+    tree.workdir = 'data/protamine/PRM1/paml/'
+
+    random_swap(tree)
+    tree.link_to_evol_model (WRKDIR + 'paml/fb/fb.out', 'fb')
+    check_annotation (tree)
+    tree.link_to_evol_model (WRKDIR + 'paml/M1/M1.out', 'M1')
+    tree.link_to_evol_model (WRKDIR + 'paml/M2/M2.out', 'M2')
+    tree.link_to_evol_model (WRKDIR + 'paml/M7/M7.out', 'M7')
+    tree.link_to_evol_model (WRKDIR + 'paml/M8/M8.out', 'M8')
+    tree.link_to_alignment  (WRKDIR + 'alignments.fasta_ali')
+    print 'pv of LRT M2 vs M1: ',
+    print tree.get_most_likely ('M2','M1')
+    print 'pv of LRT M8 vs M7: ',
+    print tree.get_most_likely ('M8','M7')
+
+
+    tree.show (histfaces=['M2'])
+
+    print 'The End.'
+
+
+def random_swap(tree):
+    for node in tree.iter_descendants():
+        if int (rnd()*100)%3:
+            node.swap_children()
+
+def check_annotation (tree):
+    for node in tree.iter_descendants():
+        if not hasattr (node, 'paml_id'):
+            print 'Error, unable to label with paml ids'
+            break
+    print 'Labelling ok!'
+
+
+if __name__ == "__main__":
+    exit(main())
diff --git a/examples/general/add_features.py b/examples/general/add_features.py
new file mode 100644
index 0000000..78eafbc
--- /dev/null
+++ b/examples/general/add_features.py
@@ -0,0 +1,47 @@
+import random
+from ete3 import Tree
+# Creates a normal tree
+t = Tree( '((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:0.5,(J:1.3, (F:1.2, D:0.1):0.5):0.5):0.5):0.5);' )
+print t
+# Let's locate some nodes using the get common ancestor method
+ancestor=t.get_common_ancestor("J", "F", "C")
+# the search_nodes method (I take only the first match )
+A = t.search_nodes(name="A")[0]
+# and using the shorcut to finding nodes by name
+C= t&"C"
+H= t&"H"
+I= t&"I"
+# Let's now add some custom features to our nodes. add_features can be
+#  used to add many features at the same time.
+C.add_features(vowel=False, confidence=1.0)
+A.add_features(vowel=True, confidence=0.5)
+ancestor.add_features(nodetype="internal")
+# Or, using the oneliner notation
+(t&"H").add_features(vowel=False, confidence=0.2)
+# But we can automatize this. (note that i will overwrite the previous
+# values)
+for leaf in t.traverse():
+    if leaf.name in "AEIOU":
+        leaf.add_features(vowel=True, confidence=random.random())
+    else:
+        leaf.add_features(vowel=False, confidence=random.random())
+# Now we use these information to analyze the tree.
+print "This tree has", len(t.search_nodes(vowel=True)), "vowel nodes"
+print "Which are", [leaf.name for leaf in t.iter_leaves() if leaf.vowel==True]
+# But features may refer to any kind of data, not only simple
+# values. For example, we can calculate some values and store them
+# within nodes.
+#
+# Let's detect leaf nodes under "ancestor" with distance higher thatn
+# 1. Note that I'm traversing a subtree which starts from "ancestor"
+matches = [leaf for leaf in ancestor.traverse() if leaf.dist>1.0]
+# And save this pre-computed information into the ancestor node
+ancestor.add_feature("long_branch_nodes", matches)
+# Prints the precomputed nodes
+print "These are nodes under ancestor with long branches", \
+    [n.name for n in ancestor.long_branch_nodes]
+# We can also use the add_feature() method to dynamically add new features.
+label = raw_input("custom label:")
+value = raw_input("custom label value:")
+ancestor.add_feature(label, value)
+print "Ancestor has now the [", label, "] attribute with value [", value, "]"
diff --git a/examples/general/byoperand_search.py b/examples/general/byoperand_search.py
new file mode 100644
index 0000000..7d558b2
--- /dev/null
+++ b/examples/general/byoperand_search.py
@@ -0,0 +1,21 @@
+from ete3 import Tree
+t = Tree( '((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,(J:1, (F:1, D:1):0.5):0.5):0.5):0.5);' )
+# Get the node D in a very simple way
+D = t&"D"
+# Get the path from B to the root
+node = D
+path = []
+while node.up:
+    path.append(node)
+    node = node.up
+print t
+# I substract D node from the total number of visited nodes
+print "There are", len(path)-1, "nodes between D and the root"
+# Using parentheses you can use by-operand search syntax as a node
+# instance itself
+Dsparent= (t&"C").up
+Bsparent= (t&"B").up
+Jsparent= (t&"J").up
+# I check if nodes belong to certain partitions
+print "It is", Dsparent in Bsparent, "that C's parent is under B's ancestor"
+print "It is", Dsparent in Jsparent, "that C's parent is under J's ancestor"
diff --git a/examples/general/chimp.png b/examples/general/chimp.png
new file mode 100644
index 0000000..5dca588
Binary files /dev/null and b/examples/general/chimp.png differ
diff --git a/examples/general/copy_and_paste_trees.py b/examples/general/copy_and_paste_trees.py
new file mode 100644
index 0000000..472c2a8
--- /dev/null
+++ b/examples/general/copy_and_paste_trees.py
@@ -0,0 +1,60 @@
+from ete3 import Tree
+# Loads 3 independent trees
+t1 = Tree('(A,(B,C));')
+t2 = Tree('((D,E), (F,G));')
+t3 = Tree('(H, ((I,J), (K,L)));')
+print "Tree1:", t1
+#            /-A
+#  ---------|
+#           |          /-B
+#            \--------|
+#                      \-C
+print "Tree2:", t2
+#                      /-D
+#            /--------|
+#           |          \-E
+#  ---------|
+#           |          /-F
+#            \--------|
+#                      \-G
+print "Tree3:", t3
+#            /-H
+#           |
+#  ---------|                    /-I
+#           |          /--------|
+#           |         |          \-J
+#            \--------|
+#                     |          /-K
+#                      \--------|
+#                                \-L
+# Locates a terminal node in the first tree
+A = t1.search_nodes(name='A')[0]
+# and adds the two other trees as children.
+A.add_child(t2)
+A.add_child(t3)
+print "Resulting concatenated tree:", t1
+#                                          /-D
+#                                /--------|
+#                               |          \-E
+#                      /--------|
+#                     |         |          /-F
+#                     |          \--------|
+#            /--------|                    \-G
+#           |         |
+#           |         |          /-H
+#           |         |         |
+#           |          \--------|                    /-I
+#           |                   |          /--------|
+#  ---------|                   |         |          \-J
+#           |                    \--------|
+#           |                             |          /-K
+#           |                              \--------|
+#           |                                        \-L
+#           |
+#           |          /-B
+#            \--------|
+#                      \-C
+# But remember!!!You should never do things like:
+#
+# A.add_child(t1)
+#
diff --git a/examples/general/create_trees_from_scratch.py b/examples/general/create_trees_from_scratch.py
new file mode 100644
index 0000000..1f3cde6
--- /dev/null
+++ b/examples/general/create_trees_from_scratch.py
@@ -0,0 +1,39 @@
+from ete3 import Tree
+t = Tree() # Creates an empty tree
+A = t.add_child(name="A") # Adds a new child to the current tree root
+                           # and returns it
+B = t.add_child(name="B") # Adds a second child to the current tree
+                           # root and returns it
+C = A.add_child(name="C") # Adds a new child to one of the branches
+D = C.add_sister(name="D") # Adds a second child to same branch as
+                             # before, but using a sister as the starting
+                             # point
+R = A.add_child(name="R") # Adds a third child to the
+                           # branch. Multifurcations are supported
+# Next, I add 6 random leaves to the R branch names_library is an
+# optional argument. If no names are provided, they will be generated
+# randomly.
+R.populate(6, names_library=["r1","r2","r3","r4","r5","r6"])
+# Prints the tree topology
+print t
+#                     /-C
+#                    |
+#                    |--D
+#                    |
+#           /--------|                              /-r4
+#          |         |                    /--------|
+#          |         |          /--------|          \-r3
+#          |         |         |         |
+#          |         |         |          \-r5
+#          |          \--------|
+# ---------|                   |                    /-r6
+#          |                   |          /--------|
+#          |                    \--------|          \-r2
+#          |                             |
+#          |                              \-r1
+#          |
+#           \-B
+# a common use of the populate method is to quickly create example
+# trees from scratch. Here we create a random tree with 100 leaves.
+t = Tree()
+t.populate(100)
diff --git a/examples/general/custom_search.py b/examples/general/custom_search.py
new file mode 100644
index 0000000..0c0b339
--- /dev/null
+++ b/examples/general/custom_search.py
@@ -0,0 +1,18 @@
+from ete3 import Tree
+t = Tree( '((H:0.3,I:0.1):0.5, A:1, (B:0.4,(C:1,D:1):0.5):0.5);' )
+# Create a small function to filter your nodes
+def conditional_function(node):
+    if node.dist > 0.3:
+        return True
+    else:
+        return False
+# Use previous function to find matches. Note that we use the traverse
+# method in the filter function. This will iterate over all nodes to
+# assess if they meet our custom conditions and will return a list of
+# matches.
+matches = filter(conditional_function, t.traverse())
+print len(matches), "nodes have distance >0.3"
+# depending on the complexity of your conditions you can do the same
+# in just one line with the help of lambda functions:
+matches = filter(lambda n: n.dist>0.3 and n.is_leaf(), t.traverse() )
+print len(matches), "nodes have distance >0.3 and are leaves"
diff --git a/examples/general/custom_tree_traversing.py b/examples/general/custom_tree_traversing.py
new file mode 100644
index 0000000..d4cc701
--- /dev/null
+++ b/examples/general/custom_tree_traversing.py
@@ -0,0 +1,25 @@
+from ete3 import Tree
+t = Tree( '(A:1,(B:1,(C:1,D:1):0.5):0.5);' )
+# Browse the tree from a specific leaf to the root
+node = t.search_nodes(name="C")[0]
+while node:
+    print node
+    node = node.up
+# --C
+#           /-C
+# ---------|
+#           \-D
+#
+#           /-B
+# ---------|
+#          |          /-C
+#           \--------|
+#                     \-D
+#
+#           /-A
+# ---------|
+#          |          /-B
+#           \--------|
+#                    |          /-C
+#                     \--------|
+#                               \-D
diff --git a/examples/general/custom_tree_visualization.py b/examples/general/custom_tree_visualization.py
new file mode 100644
index 0000000..1767771
--- /dev/null
+++ b/examples/general/custom_tree_visualization.py
@@ -0,0 +1,134 @@
+# Import Tree instance and faces module
+from ete3 import Tree, faces
+
+# Loads an example tree
+nw = """
+(((Dre:0.008339,Dme:0.300613)1.000000:0.596401,
+(Cfa:0.640858,Hsa:0.753230)1.000000:0.182035)1.000000:0.106234,
+((Dre:0.271621,Cfa:0.046042)1.000000:0.953250,
+(Hsa:0.061813,Mms:0.110769)1.000000:0.204419)1.000000:0.973467);
+"""
+t = Tree(nw)
+
+# You can create any random tree containing the same leaf names, and
+# layout will work equally
+#
+# t = Tree()
+# Creates a random tree with 8 leaves using a given set of names
+# t.populate(8, ["Dme", "Dre", "Hsa", "Ptr", "Cfa", "Mms"])
+
+# Set the path in which images are located
+img_path = "./"
+# Create faces based on external images
+humanFace = faces.ImgFace(img_path+"human.png")
+mouseFace = faces.ImgFace(img_path+"mouse.png")
+dogFace = faces.ImgFace(img_path+"dog.png")
+chimpFace = faces.ImgFace(img_path+"chimp.png")
+fishFace = faces.ImgFace(img_path+"fish.png")
+flyFace = faces.ImgFace(img_path+"fly.png")
+
+# Create a faces ready to read the name attribute of nodes
+#nameFace = faces.TextFace(open("text").readline().strip(), fsize=20, fgcolor="#009000")
+nameFace = faces.AttrFace("name", fsize=20, fgcolor="#009000")
+
+# Create a conversion between leaf names and real names
+code2name = {
+        "Dre":"Drosophila melanogaster",
+        "Dme":"Danio rerio",
+        "Hsa":"Homo sapiens",
+        "Ptr":"Pan troglodytes",
+        "Mms":"Mus musculus",
+        "Cfa":"Canis familiaris"
+        }
+
+# Creates a dictionary with the descriptions of each leaf name
+code2desc = {
+        "Dre":"""
+The zebrafish, also known as Danio rerio,
+is a tropical freshwater fish belonging to the
+minnow family (Cyprinidae).""",
+        "Dme":"""
+True flies are insects of the order Diptera,
+possessing a single pair of wings on the
+mesothorax and a pair of halteres, derived from
+the hind wings, on the metathorax""",
+        "Hsa":"""
+A human is a member of a species
+of bipedal primates in the family Hominidae.""",
+        "Ptr":"""
+Chimpanzee, sometimes colloquially
+chimp, is the common name for the
+two extant species of ape in the genus Pan.""",
+        "Mms":"""
+A mouse is a small mammal belonging to the
+order of rodents.""",
+        "Cfa": """
+The dog (Canis lupus familiaris) is a
+domesticated subspecies of the Gray Wolf,
+a member of the Canidae family of the
+orderCarnivora."""
+        }
+
+# Creates my own layout function. I will use all previously created
+# faces and will set different node styles depending on the type of
+# node.
+def mylayout(node):
+    # If node is a leaf, add the nodes name and a its scientific
+    # name
+    if node.is_leaf():
+        # Add an static face that handles the node name
+        faces.add_face_to_node(nameFace, node, column=0)
+        # We can also create faces on the fly
+        longNameFace = faces.TextFace(code2name[node.name])
+        faces.add_face_to_node(longNameFace, node, column=0)
+
+        # text faces support multiline. We add a text face
+        # with the whole description of each leaf.
+        descFace = faces.TextFace(code2desc[node.name], fsize=10)
+        # Note that this faces is added in "aligned" mode
+        faces.add_face_to_node(descFace, node, column=0, aligned=True)
+
+        # Sets the style of leaf nodes
+        node.img_style["size"] = 12
+        node.img_style["shape"] = "circle"
+    #If node is an internal node
+    else:
+        # Sets the style of internal nodes
+        node.img_style["size"] = 6
+        node.img_style["shape"] = "circle"
+        node.img_style["fgcolor"] = "#000000"
+
+    # If an internal node contains more than 4 leaves, add the
+    # images of the represented species sorted in columns of 2
+    # images max.
+    if len(node)>=4:
+        col = 0
+        for i, name in enumerate(set(node.get_leaf_names())):
+            if i>0 and i%2 == 0:
+                col += 1
+            # Add the corresponding face to the node
+            if name.startswith("Dme"):
+                faces.add_face_to_node(flyFace, node, column=col)
+            elif name.startswith("Dre"):
+                faces.add_face_to_node(fishFace, node, column=col)
+            elif name.startswith("Mms"):
+                faces.add_face_to_node(mouseFace, node, column=col)
+            elif name.startswith("Ptr"):
+                faces.add_face_to_node(chimpFace, node, column=col)
+            elif name.startswith("Hsa"):
+                faces.add_face_to_node(humanFace, node, column=col)
+            elif name.startswith("Cfa"):
+                faces.add_face_to_node(dogFace, node, column=col)
+
+            # Modifies this node's style
+            node.img_style["size"] = 16
+            node.img_style["shape"] = "sphere"
+            node.img_style["fgcolor"] = "#AA0000"
+
+    # If leaf is "Hsa" (homo sapiens), highlight it using a
+    # different background.
+    if node.is_leaf() and node.name.startswith("Hsa"):
+        node.img_style["bgcolor"] = "#9db0cf"
+
+# And, finally, Visualize the tree using my own layout function
+t.show(mylayout)
diff --git a/examples/general/dog.png b/examples/general/dog.png
new file mode 100644
index 0000000..b6926c6
Binary files /dev/null and b/examples/general/dog.png differ
diff --git a/examples/general/fish.png b/examples/general/fish.png
new file mode 100644
index 0000000..e8a7cfb
Binary files /dev/null and b/examples/general/fish.png differ
diff --git a/examples/general/fly.png b/examples/general/fly.png
new file mode 100644
index 0000000..31b5f1f
Binary files /dev/null and b/examples/general/fly.png differ
diff --git a/examples/general/genes_tree.nh b/examples/general/genes_tree.nh
new file mode 100644
index 0000000..40d2e8e
--- /dev/null
+++ b/examples/general/genes_tree.nh
@@ -0,0 +1 @@
+(Ddi0002240:1.457468,Dme0014628:1.235133,(Aga0007658:1.752559,(Cin0011239:0.728210,((Fru0004507:0.184484,((Dre0008391:0.000000,Dre0008390:0.000000)1.000000:0.002729,Dre0008392:0.010931)1.000000:0.122420)1.000000:0.142530,((Xtr0044988:0.422481,(Gga0000982:0.000000,Gga0000981:0.000000)1.000000:0.109228)1.000000:0.035488,(Mdo0014718:0.129337,((Mms0024821:0.027982,Rno0030248:0.029287)1.000000:0.074667,((Cfa0016700:0.031643,Bta0018700:0.047366)1.000000:0.007962,(Ptr0000001:0.005433,((Hsa00107 [...]
diff --git a/examples/general/get_common_ancestor.py b/examples/general/get_common_ancestor.py
new file mode 100644
index 0000000..83cd815
--- /dev/null
+++ b/examples/general/get_common_ancestor.py
@@ -0,0 +1,42 @@
+from ete3 import Tree
+#Loads a tree
+tree = Tree( '((H:1,I:1):0.5, A:1, (B:1,(C:1,D:1):0.5):0.5);' )
+print "this is the original tree:"
+print tree
+#                    /-H
+#          /--------|
+#         |          \-I
+#         |
+#---------|--A
+#         |
+#         |          /-B
+#          \--------|
+#                   |          /-C
+#                    \--------|
+#                              \-D
+# Finds the first common ancestor between B and C.
+ancestor = tree.get_common_ancestor("D", "C")
+print "The ancestor of C and D is:"
+print ancestor
+#          /-C
+#---------|
+#          \-D
+# You can use more than two nodes in the search
+ancestor = tree.get_common_ancestor("B", "C", "D")
+print "The ancestor of B, C and D is:"
+print ancestor
+#          /-B
+#---------|
+#         |          /-C
+#          \--------|
+#                    \-D
+# Finds the first sister branch of the ancestor node. Because
+# multifurcations are allowed, many sister branches are possible.
+sisters = ancestor.get_sisters()
+print "which has has", len(sisters), "sister nodes"
+print "and the first of such sister nodes like this:"
+print sisters[0]
+#
+#          /-H
+#---------|
+#          \-I
diff --git a/examples/general/get_distances_between_nodes.py b/examples/general/get_distances_between_nodes.py
new file mode 100644
index 0000000..4401603
--- /dev/null
+++ b/examples/general/get_distances_between_nodes.py
@@ -0,0 +1,59 @@
+from ete3 import Tree
+
+# Loads a tree with branch lenght information. Note that if no
+# distance info is provided in the newick, it will be initialized with
+# the default dist value = 1.0
+nw = """(((A:0.1, B:0.01):0.001, C:0.0001):1.0,
+(((((D:0.00001,I:0):0,F:0):0,G:0):0,H:0):0,
+E:0.000001):0.0000001):2.0;"""
+t = Tree(nw)
+print t
+#                              /-A
+#                    /--------|
+#          /--------|          \-B
+#         |         |
+#         |          \-C
+#         |
+#         |                                                  /-D
+#         |                                        /--------|
+#---------|                              /--------|          \-I
+#         |                             |         |
+#         |                    /--------|          \-F
+#         |                   |         |
+#         |          /--------|          \-G
+#         |         |         |
+#          \--------|          \-H
+#                   |
+#                    \-E
+#
+# Locate some nodes
+A = t&"A"
+C = t&"C"
+# Calculate distance from current node
+print "The distance between A and C is",  A.get_distance("C")
+# Calculate distance between two descendants of current node
+print "The distance between A and C is",  t.get_distance("A","C")
+# Calculate the toplogical distance (number of nodes in between)
+print "The number of nodes between A and D is ",  \
+    t.get_distance("A","D", topology_only=True)
+# Calculate the farthest node from E within the whole structure
+farthest, dist = (t&"E").get_farthest_node()
+print "The farthest node from E is", farthest.name, "with dist=", dist
+# Calculate the farthest node from E within the whole structure,
+# regarding the number of nodes in between as distance value
+# Note that the result is differnt.
+farthest, dist = (t&"E").get_farthest_node(topology_only=True)
+print "The farthest (topologically) node from E is", \
+    farthest.name, "with", dist, "nodes in between"
+# Calculate farthest node from an internal node
+farthest, dist = t.get_farthest_node()
+print "The farthest node from root is", farthest.name, "with dist=", dist
+#
+# The program results in the following information:
+#
+# The distance between A and C is 0.1011
+# The distance between A and C is 0.1011
+# The number of nodes between A and D is  8.0
+# The farthest node from E is A with dist= 1.1010011
+# The farthest (topologically) node from E is I with 5.0 nodes in between
+# The farthest node from root is A with dist= 1.101
diff --git a/examples/general/get_midpoint_outgroup.py b/examples/general/get_midpoint_outgroup.py
new file mode 100644
index 0000000..ce29e35
--- /dev/null
+++ b/examples/general/get_midpoint_outgroup.py
@@ -0,0 +1,71 @@
+from ete3 import Tree
+# generates a random tree
+t = Tree();
+t.populate(15);
+print t
+#
+#
+#                    /-qogjl
+#          /--------|
+#         |          \-vxbgp
+#         |
+#         |          /-xyewk
+#---------|         |
+#         |         |                    /-opben
+#         |         |                   |
+#         |         |          /--------|                    /-xoryn
+#          \--------|         |         |          /--------|
+#                   |         |         |         |         |          /-wdima
+#                   |         |          \--------|          \--------|
+#                   |         |                   |                    \-qxovz
+#                   |         |                   |
+#                   |         |                    \-isngq
+#                    \--------|
+#                             |                    /-neqsc
+#                             |                   |
+#                             |                   |                              /-waxkv
+#                             |          /--------|                    /--------|
+#                             |         |         |          /--------|          \-djeoh
+#                             |         |         |         |         |
+#                             |         |          \--------|          \-exmsn
+#                              \--------|                   |
+#                                       |                   |          /-udspq
+#                                       |                    \--------|
+#                                       |                              \-buxpw
+#                                       |
+#                                        \-rkzwd
+# Calculate the midpoint node
+R = t.get_midpoint_outgroup()
+# and set it as tree outgroup
+t.set_outgroup(R)
+print t
+#                              /-opben
+#                             |
+#                    /--------|                    /-xoryn
+#                   |         |          /--------|
+#                   |         |         |         |          /-wdima
+#                   |          \--------|          \--------|
+#          /--------|                   |                    \-qxovz
+#         |         |                   |
+#         |         |                    \-isngq
+#         |         |
+#         |         |          /-xyewk
+#         |          \--------|
+#         |                   |          /-qogjl
+#         |                    \--------|
+#---------|                              \-vxbgp
+#         |
+#         |                    /-neqsc
+#         |                   |
+#         |                   |                              /-waxkv
+#         |          /--------|                    /--------|
+#         |         |         |          /--------|          \-djeoh
+#         |         |         |         |         |
+#         |         |          \--------|          \-exmsn
+#          \--------|                   |
+#                   |                   |          /-udspq
+#                   |                    \--------|
+#                   |                              \-buxpw
+#                   |
+#                    \-rkzwd
+#
diff --git a/examples/general/getting_leaves.py b/examples/general/getting_leaves.py
new file mode 100644
index 0000000..ffce262
--- /dev/null
+++ b/examples/general/getting_leaves.py
@@ -0,0 +1,33 @@
+from ete3 import Tree
+# Loads a basic tree
+t = Tree( '(A:0.2,(B:0.4,(C:1.1,D:0.45):0.5):0.1);' )
+print t
+#          /-A
+#---------|
+#         |          /-B
+#          \--------|
+#                   |          /-C
+#                    \--------|
+#                              \-D
+# Counts leaves within the tree
+nleaves = 0
+for leaf in t.get_leaves():
+    nleaves += 1
+print "This tree has", nleaves, "terminal nodes"
+# But, like this is much simpler :)
+nleaves = len(t)
+print "This tree has", nleaves, "terminal nodes [proper way: len(tree) ]"
+# Counts leaves within the tree
+ninternal = 0
+for node in t.get_descendants():
+    if not node.is_leaf():
+        ninternal +=1
+print "This tree has", ninternal,  "internal nodes"
+# Counts nodes with whose distance is higher than 0.3
+nnodes = 0
+for node in t.get_descendants():
+    if node.dist >  0.3:
+        nnodes +=1
+# or, translated into a better pythonic
+nnodes = len([n for n in t.get_descendants() if n.dist>0.3])
+print "This tree has", nnodes,  "nodes with a branch length > 0.3"
diff --git a/examples/general/human.png b/examples/general/human.png
new file mode 100644
index 0000000..ac6f164
Binary files /dev/null and b/examples/general/human.png differ
diff --git a/examples/general/iterators.py b/examples/general/iterators.py
new file mode 100644
index 0000000..a533f51
--- /dev/null
+++ b/examples/general/iterators.py
@@ -0,0 +1,22 @@
+import time
+from ete3 import Tree
+# Creates a random tree with 10,000 leaf nodes
+tree = Tree()
+tree.populate(10000)
+# This code should be faster
+t1 = time.time()
+for leaf in tree.iter_leaves():
+    if "aw" in leaf.name:
+        print "found a match:", leaf.name,
+        break
+print "Iterating: ellapsed time:", time.time()-t1
+# This slower
+t1 = time.time()
+for leaf in tree.get_leaves():
+    if "aw" in leaf.name:
+        print "found a match:", leaf.name,
+        break
+print "Getting: ellapsed time:", time.time()-t1
+# Results in something like:
+# found a match: guoaw Iterating: ellapsed time: 0.00436091423035 secs
+# found a match: guoaw Getting: ellapsed time: 0.124316930771 secs
diff --git a/examples/general/label_nodes.py b/examples/general/label_nodes.py
new file mode 100644
index 0000000..22656cb
--- /dev/null
+++ b/examples/general/label_nodes.py
@@ -0,0 +1,16 @@
+from ete3 import Tree
+tree = Tree( '(A:1,(B:1,(C:1,D:1):0.5):0.5);' )
+# Prints the name of every leaf under the tree root
+print "Leaf names:"
+for leaf in tree.get_leaves():
+    print leaf.name
+# Label nodes as terminal or internal. If internal, saves also the
+# number of leaves that it contains.
+print "Labeled tree:"
+for node in tree.get_descendants():
+    if node.is_leaf():
+        node.add_features(ntype="terminal")
+    else:
+        node.add_features(ntype="internal", size=len(node))
+# Gets the extended newick of the tree including new node features
+print tree.write(features=[])
diff --git a/examples/general/mouse.png b/examples/general/mouse.png
new file mode 100644
index 0000000..8929910
Binary files /dev/null and b/examples/general/mouse.png differ
diff --git a/examples/general/nhx_format.py b/examples/general/nhx_format.py
new file mode 100644
index 0000000..059e7eb
--- /dev/null
+++ b/examples/general/nhx_format.py
@@ -0,0 +1,49 @@
+import random
+from ete3 import Tree
+# Creates a normal tree
+t = Tree('((H:0.3,I:0.1):0.5, A:1,(B:0.4,(C:0.5,(J:1.3,(F:1.2, D:0.1):0.5):0.5):0.5):0.5);')
+print t
+# Let's locate some nodes using the get common ancestor method
+ancestor=t.get_common_ancestor("J", "F", "C")
+# Let's label  leaf nodes
+for leaf in t.traverse():
+    if leaf.name in "AEIOU":
+        leaf.add_features(vowel=True, confidence=random.random())
+    else:
+        leaf.add_features(vowel=False, confidence=random.random())
+# Let's detect leaf nodes under "ancestor" with distance higher thatn
+# 1. Note that I'm traversing a subtree which starts from "ancestor"
+matches = [leaf for leaf in ancestor.traverse() if leaf.dist>1.0]
+# And save this pre-computed information into the ancestor node
+ancestor.add_feature("long_branch_nodes", matches)
+print
+print "NHX notation including vowel and confidence attributes"
+print
+print t.write(features=["vowel", "confidence"])
+print
+print "NHX notation including all node's data"
+print
+# Note that when all features are requested, only those with values
+# equal to text-strings or numbers are considered. "long_branch_nodes"
+# is not included into the newick string.
+print t.write(features=[])
+print
+print "basic newick formats are still available"
+print
+print t.write(format=9, features=["vowel"])
+# You don't need to do anything speciall to read NHX notation. Just
+# specify the newick format and the NHX tags will be automatically
+# detected.
+nw = """
+(((ADH2:0.1[&&NHX:S=human:E=1.1.1.1], ADH1:0.11[&&NHX:S=human:E=1.1.1.1])
+:0.05[&&NHX:S=Primates:E=1.1.1.1:D=Y:B=100], ADHY:0.1[&&NHX:S=nematode:
+E=1.1.1.1],ADHX:0.12[&&NHX:S=insect:E=1.1.1.1]):0.1[&&NHX:S=Metazoa:
+E=1.1.1.1:D=N], (ADH4:0.09[&&NHX:S=yeast:E=1.1.1.1],ADH3:0.13[&&NHX:S=yeast:
+E=1.1.1.1], ADH2:0.12[&&NHX:S=yeast:E=1.1.1.1],ADH1:0.11[&&NHX:S=yeast:E=1.1.1.1]):0.1
+ [&&NHX:S=Fungi])[&&NHX:E=1.1.1.1:D=N];"""
+# Loads the NHX example found at http://www.phylosoft.org/NHX/
+t = Tree(nw)
+# And access node's attributes.
+for n in t.traverse():
+    if hasattr(n,"S"):
+        print n.name, n.S
diff --git a/examples/general/prune_tree.py b/examples/general/prune_tree.py
new file mode 100644
index 0000000..0c8772e
--- /dev/null
+++ b/examples/general/prune_tree.py
@@ -0,0 +1,40 @@
+from ete3 import Tree
+# Let's create simple tree
+t = Tree('((((H,K),(F,I)G),E),((L,(N,Q)O),(P,S)));', format=1)
+print "Original tree looks like this:"
+print t
+#
+#                                        /-H
+#                              /--------|
+#                             |          \-K
+#                    /--------|
+#                   |         |          /-F
+#          /--------|          \--------|
+#         |         |                    \-I
+#         |         |
+#         |          \-E
+#---------|
+#         |                    /-L
+#         |          /--------|
+#         |         |         |          /-N
+#         |         |          \--------|
+#          \--------|                    \-Q
+#                   |
+#                   |          /-P
+#                    \--------|
+#                              \-S
+# Prune the tree in order to keep only some leaf nodes.
+t.prune(["H","F","E","Q", "P"])
+print "Pruned tree"
+print t
+#
+#                              /-F
+#                    /--------|
+#          /--------|          \-H
+#         |         |
+#---------|          \-E
+#         |
+#         |          /-Q
+#          \--------|
+#                    \-P
+# Let's re-create the same tree again
diff --git a/examples/general/random_tree.png b/examples/general/random_tree.png
new file mode 100644
index 0000000..69e6436
Binary files /dev/null and b/examples/general/random_tree.png differ
diff --git a/examples/general/read_newick.py b/examples/general/read_newick.py
new file mode 100644
index 0000000..6fa6b04
--- /dev/null
+++ b/examples/general/read_newick.py
@@ -0,0 +1,9 @@
+from ete3 import Tree
+# Loads a tree structure from a newick string. The returned variable
+# 't' is the root node for the tree.
+t = Tree('(A:1,(B:1,(E:1,D:1):0.5):0.5);' )
+# Load a tree structure from a newick file.
+t = Tree('genes_tree.nh')
+# You can also specify the newick format. For instance, for named
+# internal nodes we will format 1.
+t = Tree('(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;', format=1)
diff --git a/examples/general/remove_and_delete_nodes.py b/examples/general/remove_and_delete_nodes.py
new file mode 100644
index 0000000..9d3d7ca
--- /dev/null
+++ b/examples/general/remove_and_delete_nodes.py
@@ -0,0 +1,73 @@
+from ete3 import Tree
+# Loads a tree. Note that we use format 1 to read internal node names
+t = Tree('((((H,K)D,(F,I)G)B,E)A,((L,(N,Q)O)J,(P,S)M)C);', format=1)
+print "original tree looks like this:"
+# This is an alternative way of using "print t". Thus we have a bit
+# more of control on how tree is printed. Here i print the tree
+# showing internal node names
+print t.get_ascii(show_internal=True)
+#
+#                                        /-H
+#                              /D-------|
+#                             |          \-K
+#                    /B-------|
+#                   |         |          /-F
+#          /A-------|          \G-------|
+#         |         |                    \-I
+#         |         |
+#         |          \-E
+#-NoName--|
+#         |                    /-L
+#         |          /J-------|
+#         |         |         |          /-N
+#         |         |          \O-------|
+#          \C-------|                    \-Q
+#                   |
+#                   |          /-P
+#                    \M-------|
+#                              \-S
+# Get pointers to specific nodes
+G = t.search_nodes(name="G")[0]
+J = t.search_nodes(name="J")[0]
+C = t.search_nodes(name="C")[0]
+# If we remove J from the tree, the whole partition under J node will
+# be detached from the tree and it will be considered an independent
+# tree. We can do the same thing using two approaches: J.detach() or
+# C.remove_child(J)
+removed_node = J.detach() # = C.remove_child(J)
+# if we know print the original tree, we will see how J partition is
+# no longer there.
+print "Tree after REMOVING the node J"
+print t.get_ascii(show_internal=True)
+#                                        /-H
+#                              /D-------|
+#                             |          \-K
+#                    /B-------|
+#                   |         |          /-F
+#          /A-------|          \G-------|
+#         |         |                    \-I
+#         |         |
+#-NoName--|          \-E
+#         |
+#         |                    /-P
+#          \C------- /M-------|
+#                              \-S
+# however, if we DELETE the node G, only G will be eliminated from the
+# tree, and all its descendants will then hang from the next upper
+# node.
+G.delete()
+print "Tree after DELETING the node G"
+print t.get_ascii(show_internal=True)
+#                                        /-H
+#                              /D-------|
+#                             |          \-K
+#                    /B-------|
+#                   |         |--F
+#          /A-------|         |
+#         |         |          \-I
+#         |         |
+#-NoName--|          \-E
+#         |
+#         |                    /-P
+#          \C------- /M-------|
+#                              \-S
diff --git a/examples/general/render_tree_images.py b/examples/general/render_tree_images.py
new file mode 100644
index 0000000..c0dd5df
--- /dev/null
+++ b/examples/general/render_tree_images.py
@@ -0,0 +1,13 @@
+from ete3 import Tree
+t = Tree()
+# Generate a random tree with 50 leaves
+t.populate(50)
+# Render  tree in png and pdf format using the default size
+t.render("./random_tree.png")
+t.render("./random_tree.pdf")
+# Render tree in pdf setting a custom width. height will be imputed
+t.render("./random_tree.pdf", w=300)
+# Render tree in pdf setting a custom height. Width will be imputed
+t.render("./random_tree.pdf", h=600)
+# Render tree in pdf setting a custom width and height
+t.render("./random_tree.pdf", w=300, h=300)
diff --git a/examples/general/rooting_subtrees.py b/examples/general/rooting_subtrees.py
new file mode 100644
index 0000000..e3b153d
--- /dev/null
+++ b/examples/general/rooting_subtrees.py
@@ -0,0 +1,55 @@
+from ete3 import Tree
+t = Tree('(((A,C),((H,F),(L,M))),((B,(J,K)),(E,D)));')
+print "Original tree:"
+print t
+#                              /-A
+#                    /--------|
+#                   |          \-C
+#                   |
+#          /--------|                    /-H
+#         |         |          /--------|
+#         |         |         |          \-F
+#         |          \--------|
+#         |                   |          /-L
+#         |                    \--------|
+#---------|                              \-M
+#         |
+#         |                    /-B
+#         |          /--------|
+#         |         |         |          /-J
+#         |         |          \--------|
+#          \--------|                    \-K
+#                   |
+#                   |          /-E
+#                    \--------|
+#                              \-D
+#
+# Each main branch of the tree is independently rooted.
+node1 = t.get_common_ancestor("A","H")
+node2 = t.get_common_ancestor("B","D")
+node1.set_outgroup("H")
+node2.set_outgroup("E")
+print "Tree after rooting each node independently:"
+print t
+#
+#                              /-F
+#                             |
+#                    /--------|                    /-L
+#                   |         |          /--------|
+#                   |         |         |          \-M
+#                   |          \--------|
+#          /--------|                   |          /-A
+#         |         |                    \--------|
+#         |         |                              \-C
+#         |         |
+#         |          \-H
+#---------|
+#         |                    /-D
+#         |          /--------|
+#         |         |         |          /-B
+#         |         |          \--------|
+#          \--------|                   |          /-J
+#                   |                    \--------|
+#                   |                              \-K
+#                   |
+#                    \-E
diff --git a/examples/general/rooting_trees.py b/examples/general/rooting_trees.py
new file mode 100644
index 0000000..7264ade
--- /dev/null
+++ b/examples/general/rooting_trees.py
@@ -0,0 +1,54 @@
+from ete3 import Tree
+# Load an unrooted tree. Note that three branches hang from the root
+# node. This usually means that no information is available about
+# which of nodes is more basal.
+t = Tree('(A,(H,F),(B,(E,D)));')
+print "Unrooted tree"
+print t
+#          /-A
+#         |
+#         |          /-H
+#---------|---------|
+#         |          \-F
+#         |
+#         |          /-B
+#          \--------|
+#                   |          /-E
+#                    \--------|
+#                              \-D
+#
+# Let's define that the ancestor of E and D as the tree outgroup.  Of
+# course, the definition of an outgroup will depend on user criteria.
+ancestor = t.get_common_ancestor("E","D")
+t.set_outgroup(ancestor)
+print "Tree rooteda at E and D's ancestor is more basal that the others."
+print t
+#
+#                    /-B
+#          /--------|
+#         |         |          /-A
+#         |          \--------|
+#         |                   |          /-H
+#---------|                    \--------|
+#         |                              \-F
+#         |
+#         |          /-E
+#          \--------|
+#                    \-D
+#
+# Note that setting a different outgroup, a different interpretation
+# of the tree is possible
+t.set_outgroup( t&"A" )
+print "Tree rooted at a terminal node"
+print t
+#                              /-H
+#                    /--------|
+#                   |          \-F
+#          /--------|
+#         |         |          /-B
+#         |          \--------|
+#---------|                   |          /-E
+#         |                    \--------|
+#         |                              \-D
+#         |
+#          \-A
diff --git a/examples/general/search_nodes.py b/examples/general/search_nodes.py
new file mode 100644
index 0000000..725cc15
--- /dev/null
+++ b/examples/general/search_nodes.py
@@ -0,0 +1,20 @@
+from ete3 import Tree
+#Loads a tree
+t = Tree( '((H:1,I:1):0.5, A:1, (B:1,(C:1,D:1):0.5):0.5);' )
+print t
+#                    /-H
+#          /--------|
+#         |          \-I
+#         |
+#---------|--A
+#         |
+#         |          /-B
+#          \--------|
+#                   |          /-C
+#                    \--------|
+#                              \-D
+# I get D
+D = t.search_nodes(name="D")
+# I get all nodes with distance=0.5
+nodes = t.search_nodes(dist=0.5)
+print len(nodes), "nodes have distance=0.5"
diff --git a/examples/general/tree_basis.py b/examples/general/tree_basis.py
new file mode 100644
index 0000000..211f41d
--- /dev/null
+++ b/examples/general/tree_basis.py
@@ -0,0 +1,21 @@
+from ete3 import Tree
+# Creates an empty tree and populates it with some new
+# nodes
+t = Tree()
+A = t.add_child(name="A")
+B = t.add_child(name="B")
+C = A.add_child(name="C")
+D = A.add_child(name="D")
+print t
+#                    /-C
+#          /--------|
+#---------|          \-D
+#         |
+#          \-B
+print 'is "t" the root?', t.is_root() # True
+print 'is "A" a terminal node?', A.is_leaf() # False
+print 'is "B" a terminal node?', B.is_leaf() # True
+print 'B.get_tree_root() is "t"?', B.get_tree_root() is t # True
+print 'Number of leaves in tree:', len(t) # returns number of leaves under node (3)
+print 'is C in tree?', C in t # Returns true
+print "All leaf names in tree:", [node.name for node in t]
diff --git a/examples/general/tree_traverse.py b/examples/general/tree_traverse.py
new file mode 100644
index 0000000..769b144
--- /dev/null
+++ b/examples/general/tree_traverse.py
@@ -0,0 +1,48 @@
+from ete3 import Tree
+t = Tree( '(A:1,(B:1,(C:1,D:1):0.5):0.5);' )
+# Visit nodes in preorder (this is the default strategy)
+for n in t.traverse():
+    print n
+# It Will visit the nodes in the following order:
+#           /-A
+# ---------|
+#          |          /-B
+#           \--------|
+#                    |          /-C
+#                     \--------|
+#                               \-D
+# --A
+#           /-B
+# ---------|
+#          |          /-C
+#           \--------|
+#                     \-D
+# --B
+#           /-C
+# ---------|
+#           \-D
+# --C
+# --D
+# Visit nodes in postorder
+for n in t.traverse("postorder"):
+    print n
+# It Will visit the nodes in the following order:
+# --A
+# --B
+# --C
+# --D
+#           /-C
+# ---------|
+#           \-D
+#           /-B
+# ---------|
+#          |          /-C
+#           \--------|
+#                     \-D
+#           /-A
+# ---------|
+#          |          /-B
+#           \--------|
+#                    |          /-C
+#                     \--------|
+#                               \-D
diff --git a/examples/general/write_newick.py b/examples/general/write_newick.py
new file mode 100644
index 0000000..fc53770
--- /dev/null
+++ b/examples/general/write_newick.py
@@ -0,0 +1,8 @@
+from ete3 import Tree
+# Loads a tree with internal node names
+t = Tree('(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;', format=1)
+# And prints its newick representation omiting all the information but
+# the tree topology
+print t.write(format=100) # (,(,(,)));
+# We can also write into a file
+t.write(format=100, outfile="/tmp/tree.new")
diff --git a/examples/nexml/02_dogfish_no_taxrefs.xml b/examples/nexml/02_dogfish_no_taxrefs.xml
new file mode 100644
index 0000000..ce0e13d
--- /dev/null
+++ b/examples/nexml/02_dogfish_no_taxrefs.xml
@@ -0,0 +1,94 @@
+<nex:nexml generator="Bio::Phylo::Project v.0.17_RC9_841"
+	version="0.9" xmlns="http://www.nexml.org/2009" xmlns:nex="http://www.nexml.org/2009"
+	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns" xmlns:xml="http://www.w3.org/XML/1998/namespace"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd">
+	<otus id="otus1">
+		<otu id="otu2" label="S. acanthias" /> <!-- Squalus acanthias, spiny dogfish, NCBI 7797 -->
+		<otu id="otu3" label="S. glaucus" />
+		<!--
+			Squalus glaucus,
+			http://www.zoobank.org/?lsid=urn:lsid:zoobank.org:act:A6AD1B85-C65C-4079-B425-56828418620C
+		-->
+		<otu id="otu4" label="S. cubensis" /> <!-- Cuban dogfish, NCBI 134995 -->
+		<otu id="otu5" label="S. megalops" />  <!-- dogfish, NCBI 335062 -->
+		<otu id="otu6" label="S. grahami" />  <!-- dogfish, NCBI 335029 -->
+		<otu id="otu7" label="S. brevirostris" />  <!--  dogfish, NCBI 436290 -->
+	</otus>
+	<trees id="trees16" otus="otus1">
+		<tree id="tree18" label="'the tree'" xsi:type="nex:IntTree">
+			<node id="node19" root="true" />
+			<node id="node20" label="S. acanthias" otu="otu2" />
+			<node id="node21" />
+			<node id="node22" />
+			<node id="node27" />
+			<node id="node23" />
+			<node id="node26" label="S. megalops" otu="otu5" />
+			<node id="node28" label="S. grahami" otu="otu6" />
+			<node id="node29" label="S. brevirostris" otu="otu7" />
+			<node id="node24" label="S. glaucus" otu="otu3" />
+			<node id="node25" label="S. cubensis" otu="otu4" />
+			<edge id="edge20" length="4" source="node19" target="node20" />
+			<edge id="edge21" length="1" source="node19" target="node21" />
+			<edge id="edge22" length="1" source="node21" target="node22" />
+			<edge id="edge27" length="2" source="node21" target="node27" />
+			<edge id="edge23" length="1" source="node22" target="node23" />
+			<edge id="edge26" length="2" source="node22" target="node26" />
+			<edge id="edge28" length="1" source="node27" target="node28" />
+			<edge id="edge29" length="1" source="node27" target="node29" />
+			<edge id="edge24" length="1" source="node23" target="node24" />
+			<edge id="edge25" length="1" source="node23" target="node25" />
+		</tree>
+	</trees>
+	<characters id="characters8" otus="otus1" xsi:type="nex:StandardCells">
+		<format>
+			<states id="states10">
+				<state id="s1" symbol="0" />
+				<state id="s2" symbol="1" />
+				<state id="s3" symbol="2" />
+				<state id="s4" symbol="3" />
+				<state id="s5" symbol="4" />
+				<state id="s6" symbol="5" />
+				<state id="s7" symbol="6" />
+				<state id="s8" symbol="7" />
+				<state id="s9" symbol="8" />
+				<state id="s10" symbol="9" />
+				<uncertain_state_set id="s11" symbol="-"></uncertain_state_set>
+				<uncertain_state_set id="s12" symbol="?">
+					<member state="s1" />
+					<member state="s2" />
+					<member state="s3" />
+					<member state="s4" />
+					<member state="s5" />
+					<member state="s6" />
+					<member state="s7" />
+					<member state="s8" />
+					<member state="s9" />
+					<member state="s10" />
+					<member state="s11" />
+				</uncertain_state_set>
+			</states>
+			<char id="c1" states="states10" />
+		</format>
+		<matrix>
+			<row id="row9" label="S. acanthias" otu="otu2">
+				<cell char="c1" state="s1" />
+			</row>
+			<row id="row11" label="S. glaucus" otu="otu3">
+				<cell char="c1" state="s3" />
+			</row>
+			<row id="row12" label="S. cubensis" otu="otu4">
+				<cell char="c1" state="s3" />
+			</row>
+			<row id="row13" label="S. megalops" otu="otu5">
+				<cell char="c1" state="s1" />
+			</row>
+			<row id="row14" label="S. grahami" otu="otu6">
+				<cell char="c1" state="s2" />
+			</row>
+			<row id="row15" label="S. brevirostris" otu="otu7">
+				<cell char="c1" state="s1" />
+			</row>
+		</matrix>
+	</characters>
+</nex:nexml>
\ No newline at end of file
diff --git a/examples/nexml/characters.xml b/examples/nexml/characters.xml
new file mode 100644
index 0000000..7527525
--- /dev/null
+++ b/examples/nexml/characters.xml
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--  
+    This file shows encodings of character state data.
+-->
+<!--
+    For more discussion of the structure of the root element,
+    refer to 'taxa.xml' 
+-->
+<nex:nexml 
+    version="0.9" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"
+    xmlns:nex="http://www.nexml.org/2009"
+    xmlns="http://www.nexml.org/2009">
+    
+    <!--  
+        For more discussion of the structure of the taxa
+        element, refer to 'taxa.xml'
+    -->    
+    <otus id="taxa1" label="Primary taxa block">
+        <otu id="t1" label="Homo sapiens"/>
+        <otu id="t2" label="Pan paniscus"/>
+        <otu id="t3" label="Pan troglodytes"/>
+        <otu id="t4" label="Gorilla gorilla"/>
+        <otu id="t5" label="Pongo pygmaeus"/>
+    </otus>
+    <!--
+        This characters block encodes restriction site data, i.e.
+        presence (1) / absence (0) observations. Because the states
+        that can occur - and what they mean - are known, there is no
+        'format' element to define states (see below for examples of
+        that). In this example, restriction site data is encoded
+        as a sequence of characters (rather than individual cells),
+        hence we use the subclass xsi:type="RestrictionSeqs".
+        
+        All characters blocks must have an id attribute and a 
+        reference to a taxa block that precedes it. In addition,
+        it may have the same additional attributes (label, xml:base, 
+        xml:lang, xml:id, xlink:href and class) as the taxa element. 
+    -->
+    <characters otus="taxa1" id="m1" xsi:type="nex:RestrictionSeqs" label="Restriction site sequences">
+    	<format>
+	      <states id="RestrictionSiteStateSet">
+	        <state id="Absent" symbol="0"/>
+	        <state id="Present" symbol="1"/>
+	      </states>
+    	    <char id="Site1" states="RestrictionSiteStateSet"/>
+    	    <char id="Site2" states="RestrictionSiteStateSet"/>
+    	    <char id="Site3" states="RestrictionSiteStateSet"/>
+    	    <char id="Site4" states="RestrictionSiteStateSet"/>
+        </format>
+        <matrix>
+        <!--
+            The matrix element is a container for row elements. 
+        -->        
+            <!--
+                Each row element must have an id and a reference
+                to a taxon element that precedes it. 
+            -->
+            <row otu="t1" id="RestrictionSiteRow1">
+                <!--
+                    Because this characters block is an instance
+                    of the subclass RestrictionSeqs it contains
+                    'seq' elements with 1's and 0's. 
+                -->
+                <seq>0101</seq>
+            </row>
+            <row otu="t2" id="RestrictionSiteRow2">
+                <seq>0101</seq>
+            </row>
+            <row otu="t3" id="RestrictionSiteRow3">
+                <seq>0101</seq>
+            </row>
+            <row otu="t4" id="RestrictionSiteRow4">
+                <seq>0101</seq>
+            </row>
+            <row otu="t5" id="RestrictionSiteRow5">
+                <seq>0101</seq>
+            </row>
+        </matrix>
+    </characters>
+    <!--
+        This characters block encodes 'standard' categorical characters,
+        marked up granularly, as cells. 
+    -->
+    <characters otus="taxa1" id="m2" xsi:type="nex:StandardCells" label="Categorical characters">
+        <!--
+            Because categorical characters in instances of this subclass
+            don't have a priori known numbers of states, they must be
+            defined using the 'format' element. 
+        -->
+        <format>
+            <!--
+                The first elements inside a format element are stateset
+                definitions. In this example, there is a set of four
+                states, each tagged with an id. The symbol attribute is
+                a shorthand token that would be used when serializing to
+                NEXUS, for example.
+            -->
+            <states id="StandardCategoricalStateSet1">
+                <state id="StandardCategoricalState1" symbol="1"/>                                
+                <state id="StandardCategoricalState2" symbol="2"/>                
+                <state id="StandardCategoricalState3" symbol="3"/>                 
+                <polymorphic_state_set symbol="4" id="StandardCategoricalState4">                    
+                    <member state="StandardCategoricalState2"/>
+                    <member state="StandardCategoricalState3"/>                    
+                </polymorphic_state_set>
+                <uncertain_state_set symbol="5" id="StandardCategoricalState5">
+                    <member state="StandardCategoricalState1"/>
+                    <member state="StandardCategoricalState2"/>
+                </uncertain_state_set>      
+            </states>
+            <!--
+                The matrix in this example contains two columns, both
+                referring to the same stateset - and so cells in both
+                columns can occupy one of four states. 
+             -->
+            <char states="StandardCategoricalStateSet1" id="StandardCharacter1"/>
+            <char states="StandardCategoricalStateSet1" id="StandardCharacter2"/>
+        </format>
+        <!--
+            In this subclass, the matrix contains rows consisting of
+            individual cells. 
+        -->
+        <matrix>
+            <row id="StandardCategoricalStateCellsRow1" otu="t1">
+                <!--
+                    Each cell must contain a reference to the column 
+                    it belongs to, and to a state allowed within that
+                    column. 
+                 -->
+                <cell char="StandardCharacter1" state="StandardCategoricalState1"/>
+                <cell char="StandardCharacter2" state="StandardCategoricalState2"/>
+            </row>
+            <row id="StandardCategoricalStateCellsRow2" otu="t2">
+                <cell char="StandardCharacter1" state="StandardCategoricalState2"/>
+                <cell char="StandardCharacter2" state="StandardCategoricalState2"/>
+            </row>
+            <row id="StandardCategoricalStateCellsRow3" otu="t3">
+                <cell char="StandardCharacter1" state="StandardCategoricalState3"/>
+                <cell char="StandardCharacter2" state="StandardCategoricalState4"/>
+            </row>
+            <row id="StandardCategoricalStateCellsRow4" otu="t4">
+                <cell char="StandardCharacter1" state="StandardCategoricalState2"/>
+                <cell char="StandardCharacter2" state="StandardCategoricalState3"/>
+            </row>
+            <row id="StandardCategoricalStateCellsRow5" otu="t5">
+                <cell char="StandardCharacter1" state="StandardCategoricalState4"/>
+                <cell char="StandardCharacter2" state="StandardCategoricalState1"/>
+            </row>
+        </matrix>
+    </characters>
+    <!--
+        This example is a characters block for continuous characters, marked
+        up as individual cells. 
+    -->
+    <characters otus="taxa1" id="m3" xsi:type="nex:ContinuousCells" label="Continuous characters">        
+        <format>
+            <!--
+                Because in this subclass, characters are marked up granularly -
+                as cells - we must define the columns these cells belong to.
+                Because this is continuous data, we don't (can't) define the
+                states cells in these columns may occupy, hence there are no
+                'states' elements in this subclass.  
+            -->
+            <char id="ContinuousCharacter1" label="this is character 1"/>
+            <char id="ContinuousCharacter2"/>
+            <char id="ContinuousCharacter3"/>
+            <char id="ContinuousCharacter4"/>
+            <char id="ContinuousCharacter5"/>
+        </format>
+        <matrix>
+            <row id="ContinuousCellsRow1" otu="t1">
+                <!--  
+                    In this subclass, the 'state' attribute holds the raw
+                    value of the cell (i.e. a floating point number), not
+                    a reference to a state defined previously.
+                -->
+                <cell char="ContinuousCharacter1" state="-1.545414144070023"/>
+                <cell char="ContinuousCharacter2" state="-2.3905621575431044"/>
+                <cell char="ContinuousCharacter3" state="-2.9610221833467265"/>
+                <cell char="ContinuousCharacter4" state="0.7868662069161243"/>
+                <cell char="ContinuousCharacter5" state="0.22968509237534918"/>
+            </row>
+            <row id="ContinuousCellsRow2" otu="t2">
+                <cell char="ContinuousCharacter1" state="-1.6259836379710066"/>
+                <cell char="ContinuousCharacter2" state="3.649352410850134"/>
+                <cell char="ContinuousCharacter3" state="1.778885099660406"/>
+                <cell char="ContinuousCharacter4" state="-1.2580877968480846"/>
+                <cell char="ContinuousCharacter5" state="0.22335354995610862"/>
+            </row>
+            <row id="ContinuousCellsRow3" otu="t3">
+                <cell char="ContinuousCharacter1" state="-1.5798979984134964"/>
+                <cell char="ContinuousCharacter2" state="2.9548251411133157"/>
+                <cell char="ContinuousCharacter3" state="1.522005675256233"/>
+                <cell char="ContinuousCharacter4" state="-0.8642016921755289"/>
+                <cell char="ContinuousCharacter5" state="-0.938129801832388"/>
+            </row>
+            <row id="ContinuousCellsRow4" otu="t4">
+                <cell char="ContinuousCharacter1" state="2.7436692306788086"/>
+                <cell char="ContinuousCharacter2" state="-0.7151148143399818"/>
+                <cell char="ContinuousCharacter3" state="4.592207937774776"/>
+                <cell char="ContinuousCharacter4" state="-0.6898841440534845"/>
+                <cell char="ContinuousCharacter5" state="0.5769509574453064"/>
+            </row>
+            <row id="ContinuousCellsRow5" otu="t5">
+                <cell char="ContinuousCharacter1" state="3.1060827493657683"/>
+                <cell char="ContinuousCharacter2" state="-1.0453787389160105"/>
+                <cell char="ContinuousCharacter3" state="2.67416332763427"/>
+                <cell char="ContinuousCharacter4" state="-1.4045634106692808"/>
+                <cell char="ContinuousCharacter5" state="0.019890469925520196"/>
+            </row>
+        </matrix>
+    </characters>
+    <!--
+        This subclass encodes DNA as sequences (not cells). Like the restriction
+        site data block shown above, the states are known (being IUPAC single
+        character nucleotide symbols), hence there is no 'format' element. In 
+        addition to the IUPAC symbols, '-' is used for gaps, '?' is used for
+        missing. Spaces are allowed (so that long lines can be broken up, some
+        parsers might otherwise complain) but have no meaning.
+    -->
+    <characters otus="taxa1" id="characters3" xsi:type="nex:DnaSeqs" label="DNA sequences">
+    <format>
+    	<states id="IUPACDNAStateSet1">
+    		<state id="NucA" symbol="A" />
+    		<state id="NucC" symbol="C" />
+    	    <state id="NucG" symbol="G" />
+    	    <state id="NucT" symbol="T" />
+    		<uncertain_state_set id="SymK" symbol="K">
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymM" symbol="M">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymR" symbol="R">
+    		    <member state="NucA" />
+    		    <member state="NucG" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymS" symbol="S">
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymW" symbol="W">
+    		    <member state="NucA" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymY" symbol="Y">
+    		    <member state="NucC" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymB" symbol="B">
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymD" symbol="D">
+    		    <member state="NucA" />
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymH" symbol="H">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymV" symbol="V">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymN" symbol="N">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymX" symbol="X">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		</uncertain_state_set>
+    		<uncertain_state_set id="SymGap" symbol="-" />
+    		<uncertain_state_set id="SymMiss" symbol="?">
+    		    <member state="NucA" />
+    		    <member state="NucC" />
+    		    <member state="NucG" />
+    		    <member state="NucT" />
+    		    <member state="SymK" />
+    		    <member state="SymM" />
+    		    <member state="SymR" />
+    		    <member state="SymS" />
+    		    <member state="SymW" />
+    		    <member state="SymY" />
+    		    <member state="SymB" />
+    		    <member state="SymD" />
+    		    <member state="SymH" />
+    		    <member state="SymV" />
+    		    <member state="SymN" />
+    		    <member state="SymX" />
+    		    <member state="SymGap" />
+    		</uncertain_state_set>
+    	</states>
+        <char id="ResidueCol1" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol2" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol3" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol4" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol5" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol6" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol7" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol8" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol9" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol10" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol11" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol12" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol13" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol14" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol15" states="IUPACDNAStateSet1" />
+        <char id="ResidueCol16" states="IUPACDNAStateSet1" />
+    </format>
+    <matrix>
+        <row otu="t1" id="DNASequence1"><seq>A C G C T C G C A T C G C A T C</seq></row>
+        <row otu="t2" id="DNASequence2"><seq>A C G C T C G C A T C G C A T C</seq></row>
+        <row otu="t3" id="DNASequence3"><seq>A C G C T C G C A T C G C A T C</seq></row>
+    </matrix>
+    </characters>
+    <!--
+        RNA only differs from the previous example by using U instead of T 
+    -->
+    <characters otus="taxa1" id="rnaseqs4" xsi:type="nex:RnaSeqs" label="RNA sequences">
+    <format>
+      <states id="rnastates">
+        <state id="rna1" symbol="A"/>
+        <state id="rna2" symbol="C"/>
+        <state id="rna3" symbol="G"/>
+        <state id="rna4" symbol="U"/>
+        <uncertain_state_set id="rna5" symbol="K">
+          <member state="rna3"/>
+          <member state="rna4"/>
+        </uncertain_state_set>
+        <uncertain_state_set id="rna6" symbol="M">
+            <member state="rna1"/>
+            <member state="rna2"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna7" symbol="R">
+              <member state="rna1"/>
+              <member state="rna3"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna8" symbol="S">
+              <member state="rna2"/>
+              <member state="rna3"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna9" symbol="W">
+              <member state="rna1"/>
+              <member state="rna4"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna10" symbol="Y">
+              <member state="rna2"/>
+              <member state="rna4"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna11" symbol="B">
+              <member state="rna2"/>
+              <member state="rna3"/>
+              <member state="rna4"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna12" symbol="D">
+              <member state="rna1"/>
+              <member state="rna3"/>
+              <member state="rna4"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna13" symbol="H">
+              <member state="rna1"/>
+              <member state="rna2"/>
+              <member state="rna4"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna14" symbol="V">
+              <member state="rna1"/>
+              <member state="rna2"/>
+              <member state="rna3"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna15" symbol="N">
+              <member state="rna3"/>
+              <member state="rna1"/>
+              <member state="rna4"/>
+              <member state="rna2"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna16" symbol="X">
+              <member state="rna3"/>
+              <member state="rna1"/>
+              <member state="rna4"/>
+              <member state="rna2"/>
+        </uncertain_state_set>
+          <uncertain_state_set id="rna17" symbol="-"/>
+          <uncertain_state_set id="rna18" symbol="?">
+              <member state="rna1"/>
+              <member state="rna2"/>
+              <member state="rna3"/>
+              <member state="rna4"/>
+              <member state="rna5"/>
+              <member state="rna6"/>
+              <member state="rna7"/>
+              <member state="rna8"/>
+              <member state="rna9"/>
+              <member state="rna10"/>
+              <member state="rna11"/>
+              <member state="rna12"/>
+              <member state="rna13"/>
+              <member state="rna14"/>
+              <member state="rna15"/>
+              <member state="rna16"/>
+              <member state="rna17"/>
+        </uncertain_state_set>
+      </states>
+        <char id="rnachar1" states="rnastates"/>
+        <char id="rnachar2" states="rnastates"/>
+        <char id="rnachar3" states="rnastates"/>
+        <char id="rnachar4" states="rnastates"/>
+        <char id="rnachar5" states="rnastates"/>
+        <char id="rnachar6" states="rnastates"/>
+        <char id="rnachar7" states="rnastates"/>
+        <char id="rnachar8" states="rnastates"/>
+        <char id="rnachar9" states="rnastates"/>
+        <char id="rnachar10" states="rnastates"/>
+        <char id="rnachar11" states="rnastates"/>
+        <char id="rnachar12" states="rnastates"/>
+        <char id="rnachar13" states="rnastates"/>
+        <char id="rnachar14" states="rnastates"/>
+        <char id="rnachar15" states="rnastates"/>
+        <char id="rnachar16" states="rnastates"/>
+        <char id="rnachar17" states="rnastates"/>
+        <char id="rnachar18" states="rnastates"/>
+        <char id="rnachar19" states="rnastates"/>
+        <char id="rnachar20" states="rnastates"/>    
+      </format>
+        <matrix>
+            <row otu="t1" id="rnarow1">
+                <seq>ACGCUCGCAUCGCAUC</seq>
+            </row>
+            <row otu="t2" id="rnarow2">
+                <seq>ACGCUCGCAUCGCAUC</seq>
+            </row>
+            <row otu="t3" id="rnarow3">
+                <seq>ACGCUCGCAUCGCAUC</seq>
+            </row>
+        </matrix>
+    </characters>
+    <!-- 
+        A more compact example of encoding of continuous characters as raw sequences.    
+    -->
+    <characters otus="taxa1" id="contchars5" xsi:type="nex:ContinuousSeqs" label="Continuous sequences">
+	    <format>
+	      <char id="contchar1"/>
+	        <char id="contchar2"/>
+	        <char id="contchar3"/>
+	        <char id="contchar4"/>
+	        <char id="contchar5"/>	      	      
+	    </format>    
+        <matrix>
+            <row id="controw1" otu="t1">
+                <seq>-1.545414144070023 -2.3905621575431044 -2.9610221833467265 0.7868662069161243 0.22968509237534918</seq>
+            </row>
+            <row id="controw2" otu="t2">
+                <seq>-1.6259836379710066 3.649352410850134 1.778885099660406 -1.2580877968480846 0.22335354995610862</seq>
+            </row>
+            <row id="controw3" otu="t3">
+                <seq>-1.5798979984134964 2.9548251411133157 1.522005675256233 -0.8642016921755289 -0.938129801832388</seq>
+            </row>
+            <row id="controw4" otu="t4">
+                <seq>2.7436692306788086 -0.7151148143399818 4.592207937774776 -0.6898841440534845 0.5769509574453064</seq>
+            </row>
+            <row id="controw5" otu="t5">
+                <seq>3.1060827493657683 -1.0453787389160105 2.67416332763427 -1.4045634106692808 0.019890469925520196</seq>
+            </row>
+        </matrix>
+    </characters>
+    <!-- 
+        A more compact example of encoding of standard data. Note that the symbols used here
+        are integers (also above 9) and so characters must be space-separated. The symbols used
+        here are the same as the symbol attributes used in characters block m2, earlier.    
+    -->
+    <characters otus="taxa1" id="standardchars6" xsi:type="nex:StandardSeqs" label="Standard sequences">
+        <format>
+            <!--
+                The first elements inside a format element are stateset
+                definitions. In this example, there is a set of four
+                states, each tagged with an id. The symbol attribute is
+                a shorthand token. 
+            -->
+            <states id="standardstateset1">
+                <state id="standardstates1" symbol="1"/>                                
+                <state id="standardstates2" symbol="2"/>                
+                <state id="standardstates3" symbol="3"/>                 
+                <polymorphic_state_set symbol="4" id="standardstates4">                    
+                    <member state="standardstates1"/>
+                    <member state="standardstates2"/>                    
+                </polymorphic_state_set>
+                <uncertain_state_set symbol="5" id="standardstates5">
+                    <member state="standardstates3"/>
+                    <member state="standardstates1"/>
+                </uncertain_state_set>      
+            </states>
+            <!--
+                The matrix in this example contains two columns, both
+                referring to the same stateset - and so cells in both
+                columns can occupy one of four states. 
+             -->
+            <char states="standardstateset1" id="standardc1"/>
+            <char states="standardstateset1" id="standardc2"/>
+        </format>    
+        <matrix>
+            <row id="standardr1" otu="t1">
+                <seq>1 2</seq>
+            </row>
+            <row id="standardr2" otu="t2">
+                <seq>2 2</seq>
+            </row>
+            <row id="standardr3" otu="t3">
+                <seq>3 4</seq>
+            </row>
+            <row id="standardr4" otu="t4">
+                <seq>2 3</seq>
+            </row>
+            <row id="standardr5" otu="t5">
+                <seq>4 1</seq>
+            </row>
+        </matrix>
+    </characters>
+</nex:nexml>
diff --git a/examples/nexml/meta_taxa.xml b/examples/nexml/meta_taxa.xml
new file mode 100644
index 0000000..9c5003a
--- /dev/null
+++ b/examples/nexml/meta_taxa.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nex:nexml 
+    generator="Bio::Phylo::Project v.0.17_RC9_1175" 
+    version="0.9" 
+    xmlns="http://www.nexml.org/2009" 
+    xmlns:nex="http://www.nexml.org/2009" 
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+    xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:cdao="http://www.evolutionaryontology.org/cdao.owl#"
+    xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"> 
+    <otus		
+        id="aabef8df4-6968-4d97-961d-b28210c0b318"
+        about="#aabef8df4-6968-4d97-961d-b28210c0b318"        
+        label="Taxa" 
+        xmlns:dwc="http://I-GUESS-THIS-SHOULD-BE-DARWINCORE.org#">    
+        <meta 
+            href="http://purl.org/obo/owl/TTO#TTO_1030115" 
+            id="ad37ab715-8dc6-4959-9b20-c58d5edaef29" 
+            xsi:type="nex:ResourceMeta" 
+            rel="cdao:has_External_Reference"/> 
+        <meta 
+            id="EDA14D9B-9669-48F1-A79A-761DAA82038B" 
+            about="#EDA14D9B-9669-48F1-A79A-761DAA82038B"
+            xsi:type="nex:ResourceMeta" 
+            rel="cdao:hasSpecimen"> 
+            <meta 
+                id="C9F5CAA3-421B-4830-8DC5-686FD75EB9F3" 
+                xsi:type="nex:ResourceMeta" 
+                rel="dwc:collectionID" 
+                href="http://purl.org/obo/owl/COLLECTION#COLLECTION_0000194"/> 
+            <meta 
+                id="C3E89AAC-AFE3-4225-869C-A2380B6EF83E" 
+                datatype="xsd:string" 
+                xsi:type="nex:LiteralMeta" 
+                property="dwc:catalogNumber" 
+                content="12345"/> 
+        </meta> 
+        <otu 
+            xmlns:cdao="http://evolutionaryontology.org#" 
+            xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
+            about="#aaa0ec8a9-7b38-411f-9c4d-f4a47bcffac3" 
+            id="aaa0ec8a9-7b38-411f-9c4d-f4a47bcffac3" 
+            label="Nannostomus unifasciatus"> 
+        </otu>        
+    </otus> 
+</nex:nexml>
\ No newline at end of file
diff --git a/examples/nexml/nexml.xml b/examples/nexml/nexml.xml
new file mode 100644
index 0000000..56f7d3f
--- /dev/null
+++ b/examples/nexml/nexml.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<nex:nexml 
+    version="0.9" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"
+    xmlns:xi="http://www.w3.org/2003/XInclude"
+    xmlns:nex="http://www.nexml.org/2009"
+    xmlns="http://www.nexml.org/2009"/>
\ No newline at end of file
diff --git a/examples/nexml/nexml_annotated_trees.py b/examples/nexml/nexml_annotated_trees.py
new file mode 100644
index 0000000..845506d
--- /dev/null
+++ b/examples/nexml/nexml_annotated_trees.py
@@ -0,0 +1,48 @@
+from ete3 import Nexml
+
+# Creates and empty NeXML project
+p = Nexml()
+# Fill it with the tolweb example
+p.build_from_file("tolweb.xml")
+
+# extract the first collection of trees
+tree_collection = p.trees[0]
+# and all the tree instances in it
+trees = tree_collection.tree
+
+# For each loaded tree, prints its structure and some of its
+# meta-properties
+for t in trees:
+    print t
+    print
+    print "Leaf node meta information:\n"
+    print
+    for meta in  t.children[0].nexml_node.meta:
+        print  meta.property, ":", (meta.content)
+
+
+# Output
+# ==========
+#
+# ---- /-node3(Eurysphindus)
+#
+# Leaf node meta information:
+#
+#
+# dc:description :
+# tbe:AUTHORITY : Leconte
+# tbe:AUTHDATE : 1878
+# tba:ANCESTORWITHPAGE : 117851
+# tba:CHILDCOUNT : 0
+# tba:COMBINATION_DATE : null
+# tba:CONFIDENCE : 0
+# tba:EXTINCT : 0
+# tba:HASPAGE : 1
+# tba:ID : 117855
+# tba:INCOMPLETESUBGROUPS : 0
+# tba:IS_NEW_COMBINATION : 0
+# tba:ITALICIZENAME : 1
+# tba:LEAF : 0
+# tba:PHYLESIS : 0
+# tba:SHOWAUTHORITY : 0
+# tba:SHOWAUTHORITYCONTAINING : 1
diff --git a/examples/nexml/nexml_from_scratch.py b/examples/nexml/nexml_from_scratch.py
new file mode 100644
index 0000000..bf4e0ad
--- /dev/null
+++ b/examples/nexml/nexml_from_scratch.py
@@ -0,0 +1,30 @@
+import sys
+# Note that we import the nexml module rather than the root Nexml
+#  class.  This module contains a python object for each of the
+#  nexml elements declared in its XML schema.
+from ete3 import nexml
+
+# Create an empty Nexml project
+nexml_project = nexml.Nexml()
+tree_collection = nexml.Trees()
+
+# NexmlTree is a special PhyloTree instance that is prepared to be
+# added to NeXML projects. So lets populate a random tree
+nexml_tree = nexml.NexmlTree()
+# Random tree with 10 leaves
+nexml_tree.populate(10, random_branches=True)
+# We add the tree to the collection
+tree_collection.add_tree(nexml_tree)
+
+# Create another tree from a newick string
+nexml_tree2 = nexml.NexmlTree("((hello, nexml):1.51, project):0.6;")
+tree_collection.add_tree(nexml_tree2)
+
+# Tree can be handled as normal ETE objects
+nexml_tree2.show()
+
+# Add the collection of trees to the NexML project object
+nexml_project.add_trees(tree_collection)
+
+# Now we can export the project containing our two trees
+nexml_project.export()
diff --git a/examples/nexml/nexml_parser.py b/examples/nexml/nexml_parser.py
new file mode 100644
index 0000000..67e9d66
--- /dev/null
+++ b/examples/nexml/nexml_parser.py
@@ -0,0 +1,77 @@
+from ete3 import Nexml
+# Create an empty Nexml project
+nexml_project = Nexml()
+
+# Load content from NeXML file
+nexml_project.build_from_file("trees.xml")
+
+# All XML elements are within the project instance.
+# exist in each element to access their attributes.
+print "Loaded Taxa:"
+for taxa in  nexml_project.get_otus():
+    for otu in taxa.get_otu():
+        print "OTU:", otu.id
+
+# Extracts all the collection of trees in the project
+tree_collections = nexml_project.get_trees()
+# Select the first collection
+collection_1 = tree_collections[0]
+
+# print the topology of every tree
+for tree in  collection_1.get_tree():
+    # trees contain all the nexml information in their "nexml_node",
+    # "nexml_tree", and "nexml_edge" attributes.
+    print "Tree id", tree.nexml_tree.id
+    print tree
+    for node in tree.traverse():
+        print "node", node.nexml_node.id, "is associated with", node.nexml_node.otu, "OTU"
+
+
+# Output:
+# ==========
+# Loaded Taxa:
+# OTU: t1
+# OTU: t2
+# OTU: t3
+# OTU: t4
+# OTU: t5
+# Tree id tree1
+#
+#                /-n5(n5)
+#           /---|
+#          |     \-n6(n6)
+#      /---|
+#     |    |     /-n8(n8)
+# ----|     \---|
+#     |          \-n9(n9)
+#     |
+#      \-n2(n2)
+# node n1 is associated with None OTU
+# node n3 is associated with None OTU
+# node n2 is associated with t1 OTU
+# node n4 is associated with None OTU
+# node n7 is associated with None OTU
+# node n5 is associated with t3 OTU
+# node n6 is associated with t2 OTU
+# node n8 is associated with t5 OTU
+# node n9 is associated with t4 OTU
+# Tree id tree2
+#
+#                /-tree2n5(n5)
+#           /---|
+#          |     \-tree2n6(n6)
+#      /---|
+#     |    |     /-tree2n8(n8)
+# ----|     \---|
+#     |          \-tree2n9(n9)
+#     |
+#      \-tree2n2(n2)
+# node tree2n1 is associated with None OTU
+# node tree2n3 is associated with None OTU
+# node tree2n2 is associated with t1 OTU
+# node tree2n4 is associated with None OTU
+# node tree2n7 is associated with None OTU
+# node tree2n5 is associated with t3 OTU
+# node tree2n6 is associated with t2 OTU
+# node tree2n8 is associated with t5 OTU
+# node tree2n9 is associated with t4 OTU
diff --git a/examples/nexml/phenoscape.xml b/examples/nexml/phenoscape.xml
new file mode 100644
index 0000000..9a7508d
--- /dev/null
+++ b/examples/nexml/phenoscape.xml
@@ -0,0 +1,44 @@
+<nex:nexml 
+    generator="Bio::Phylo::Project v.0.17_RC9_1175" 
+    version="0.9" 
+    xmlns="http://www.nexml.org/2009" 
+    xmlns:nex="http://www.nexml.org/2009" 
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+    xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:cdao="http://www.evolutionaryontology.org/cdao.owl#"
+    xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd">
+	<otus		
+		id="aabef8df4-6968-4d97-961d-b28210c0b318" label="Taxa">    
+        <otu 
+            xmlns:cdao="http://evolutionaryontology.org#" 
+            xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
+            about="#aaa0ec8a9-7b38-411f-9c4d-f4a47bcffac3" 
+            id="aaa0ec8a9-7b38-411f-9c4d-f4a47bcffac3" 
+            label="Nannostomus unifasciatus"
+            xmlns:dwc="http://I-GUESS-THIS-SHOULD-BE-DARWINCORE.org#">
+            <meta 
+                href="http://purl.org/obo/owl/TTO#TTO_1030115" 
+                id="ad37ab715-8dc6-4959-9b20-c58d5edaef29" 
+                xsi:type="nex:ResourceMeta" 
+                rel="cdao:has_External_Reference"/>
+            <meta 
+                id="EDA14D9B-9669-48F1-A79A-761DAA82038B" 
+                xsi:type="nex:ResourceMeta" 
+                rel="cdao:hasSpecimen">
+                <meta 
+                    id="C9F5CAA3-421B-4830-8DC5-686FD75EB9F3" 
+                    xsi:type="nex:ResourceMeta" 
+                    rel="dwc:collectionID" 
+                    href="http://purl.org/obo/owl/COLLECTION#COLLECTION_0000194"/>
+                <meta 
+                    id="C3E89AAC-AFE3-4225-869C-A2380B6EF83E" 
+                    datatype="xsd:string" 
+                    xsi:type="nex:LiteralMeta" 
+                    property="dwc:catalogNumber" 
+                    content="12345"/>
+            </meta>
+        </otu>        
+    </otus>
+</nex:nexml>
\ No newline at end of file
diff --git a/examples/nexml/taxa.xml b/examples/nexml/taxa.xml
new file mode 100644
index 0000000..d6e3a29
--- /dev/null
+++ b/examples/nexml/taxa.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 
+	This file is an example of a simple taxa block.
+-->
+<!-- 
+	The nexml root element below is structured as follows:
+		* there is a required version attribute. Additions where
+		  the 'core' remains backward compatible are identified
+		  by decimal increases (1.1, 1.2, etc.). Changes to the
+		  core standard are identified by integer increases (2.0,
+		  3.0, etc.). The former is somewhat likely to happen in
+		  practice, the latter hopefully isn't.
+		  
+		* In some places in instance documents, snippets of schema
+		  language code are necessary, for example to specify 
+		  concrete subclasses. Such snippets are bound to the 
+		  http://www.w3.org/2001/XMLSchema-instance namespace, and
+		  by convention identified by the 'xsi' prefix.
+		  http://en.wikipedia.org/wiki/Xsd
+		  
+		* to facilitate validation, the location of the schema is
+		  specified in the root element. Such a specification is
+		  done using the schema language snippet xsi:schemaLocation
+		  
+		* by convention, root elements of nexml fragments are 
+		  pre-fixed with 'nex', which is bound to the namespace
+		  http://www.nexml.org/1.0
+		  	
+		* the optional 'generator' attribute can be used to specify
+		  which program wrote out the file.
+		  
+		* other xml namespaces (i.e. attributes with the 'xmlns'
+		  prefix) can be specified here, in case they're used 
+		  in child elements. For example, the xlink namespace
+		  is used for links ('href' attributes, as in html), so
+		  that child elements may contain links to other resources.
+		  http://en.wikipedia.org/wiki/XLink
+-->
+<nex:nexml 
+	version="0.9"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	generator="mesquite"
+	xmlns:xlink="http://www.w3.org/1999/xlink"
+	xmlns:nex="http://www.nexml.org/2009"
+	xmlns="http://www.nexml.org/2009"
+	xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd">
+	<!--
+		The taxa element is analogous to the taxa block in nexus
+		files. Like all elements that capture things that might
+		need to be referred to elsewhere, it requires an 'id'
+		attribute, whose value must consist of a string of alpha-
+		numeric characters, starting with a letter. In addition,
+		it may (optionally) have the following attributes:
+			* 'label', a free form string, only meant for humans
+			* 'xml:base', indicating the base url of the resource
+			* 'xml:lang', indicating a two-letter language code
+			* 'xml:id', a file-scope unique ID
+			* 'xlink:href', a link to somewhere else
+			* 'class', a vector of nexml id references pointing
+			  to classes the element belongs to (this is analogous
+			  to 'sets' in nexus, but using the xml idiom to do
+			  the same thing).
+	-->
+	<otus 
+		id="taxa1" 
+		label="My taxa block" 
+		xml:base="http://example.org/" 
+		xml:id="taxa1" 
+		xml:lang="EN" 
+		xlink:href="#taxa1">
+		<!--  
+			The taxon element is analogous to a single label in 
+			a nexus taxa block. It may have the same additional
+			attributes (label, xml:base, xml:lang, xml:id, xlink:href
+			and class) as the taxa element.
+		-->
+		<otu id="t1"/>
+		<otu id="t2"/>
+		<otu id="t3"/>
+		<otu id="t4"/>
+		<otu id="t5"/>
+	</otus>
+</nex:nexml>
diff --git a/examples/nexml/timetree.xml b/examples/nexml/timetree.xml
new file mode 100644
index 0000000..bd63a38
--- /dev/null
+++ b/examples/nexml/timetree.xml
@@ -0,0 +1,282 @@
+<nex:nexml 
+	generator="Bio::Phylo::Project v.0.17_RC9_841" 
+	version="0.9" 
+	xmlns:nex="http://www.nexml.org/2009" 
+	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns" 
+	xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"
+	xmlns="http://www.nexml.org/2009">
+  <otus id="otus3">
+    <otu id="taxona"/>
+    <otu id="taxonb"/>
+  </otus>
+  <trees id="trees2" otus="otus3">
+    <tree id="tree6" xsi:type="nex:FloatTree">
+      <node id="node12" root="true"/>
+      <node id="node13" label="Pan" otu="taxona"/>
+      <node id="node14" label="Homo" otu="taxonb"/>
+      <edge id="edge13" length="6.6" source="node12" target="node13"/>
+      <edge id="edge14" length="6.6" source="node12" target="node14"/>
+    </tree>
+    <tree id="tree15" xsi:type="nex:FloatTree">
+      <node id="node21" root="true"/>
+      <node id="node22" label="Pan" otu="taxona"/>
+      <node id="node23" label="Homo" otu="taxonb"/>
+      <edge id="edge22" length="5.8" source="node21" target="node22"/>
+      <edge id="edge23" length="5.8" source="node21" target="node23"/>
+    </tree>
+    <tree id="tree24" xsi:type="nex:FloatTree">
+      <node id="node30" root="true"/>
+      <node id="node31" label="Pan" otu="taxona"/>
+      <node id="node32" label="Homo" otu="taxonb"/>
+      <edge id="edge31" length="6.1" source="node30" target="node31"/>
+      <edge id="edge32" length="6.1" source="node30" target="node32"/>
+    </tree>
+    <tree id="tree33" xsi:type="nex:FloatTree">
+      <node id="node39" root="true"/>
+      <node id="node40" label="Pan" otu="taxona"/>
+      <node id="node41" label="Homo" otu="taxonb"/>
+      <edge id="edge40" length="6.8" source="node39" target="node40"/>
+      <edge id="edge41" length="6.8" source="node39" target="node41"/>
+    </tree>
+    <tree id="tree42" xsi:type="nex:FloatTree">
+      <node id="node48" root="true"/>
+      <node id="node49" label="Pan" otu="taxona"/>
+      <node id="node50" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge49" length="6.3" source="node48" target="node49"/>
+      <edge id="edge50" length="6.3" source="node48" target="node50"/>
+    </tree>
+    <tree id="tree51" xsi:type="nex:FloatTree">
+      <node id="node57" root="true"/>
+      <node id="node58" label="Pan" otu="taxona"/>
+      <node id="node59" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge58" length="8.1" source="node57" target="node58"/>
+      <edge id="edge59" length="8.1" source="node57" target="node59"/>
+    </tree>
+    <tree id="tree60" xsi:type="nex:IntTree">
+      <node id="node66" root="true"/>
+      <node id="node67" label="Pan" otu="taxona"/>
+      <node id="node68" label="Homo" otu="taxonb"/>
+      <edge id="edge67" length="6" source="node66" target="node67"/>
+      <edge id="edge68" length="6" source="node66" target="node68"/>
+    </tree>
+    <tree id="tree69" xsi:type="nex:FloatTree">
+      <node id="node75" root="true"/>
+      <node id="node76" label="Pan troglodytes" otu="taxona"/>
+      <node id="node77" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge76" length="5.1" source="node75" target="node76"/>
+      <edge id="edge77" length="5.1" source="node75" target="node77"/>
+    </tree>
+    <tree id="tree78" xsi:type="nex:FloatTree">
+      <node id="node84" root="true"/>
+      <node id="node85" label="Pan troglodytes" otu="taxona"/>
+      <node id="node86" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge85" length="5.1" source="node84" target="node85"/>
+      <edge id="edge86" length="5.1" source="node84" target="node86"/>
+    </tree>
+    <tree id="tree87" xsi:type="nex:FloatTree">
+      <node id="node93" root="true"/>
+      <node id="node94" label="Pan troglodytes" otu="taxona"/>
+      <node id="node95" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge94" length="5.4" source="node93" target="node94"/>
+      <edge id="edge95" length="5.4" source="node93" target="node95"/>
+    </tree>
+    <tree id="tree96" xsi:type="nex:FloatTree">
+      <node id="node102" root="true"/>
+      <node id="node103" label="Pan troglodytes" otu="taxona"/>
+      <node id="node104" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge103" length="7.5" source="node102" target="node103"/>
+      <edge id="edge104" length="7.5" source="node102" target="node104"/>
+    </tree>
+    <tree id="tree105" xsi:type="nex:FloatTree">
+      <node id="node111" root="true"/>
+      <node id="node112" label="Pan troglodytes" otu="taxona"/>
+      <node id="node113" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge112" length="7.6" source="node111" target="node112"/>
+      <edge id="edge113" length="7.6" source="node111" target="node113"/>
+    </tree>
+    <tree id="tree114" xsi:type="nex:FloatTree">
+      <node id="node120" root="true"/>
+      <node id="node121" label="Pan" otu="taxona"/>
+      <node id="node122" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge121" length="7.4" source="node120" target="node121"/>
+      <edge id="edge122" length="7.4" source="node120" target="node122"/>
+    </tree>
+    <tree id="tree123" xsi:type="nex:FloatTree">
+      <node id="node129" root="true"/>
+      <node id="node130" label="Pan troglodytes" otu="taxona"/>
+      <node id="node131" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge130" length="7.1" source="node129" target="node130"/>
+      <edge id="edge131" length="7.1" source="node129" target="node131"/>
+    </tree>
+    <tree id="tree132" xsi:type="nex:FloatTree">
+      <node id="node138" root="true"/>
+      <node id="node139" label="Pan troglodytes" otu="taxona"/>
+      <node id="node140" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge139" length="7.1" source="node138" target="node139"/>
+      <edge id="edge140" length="7.1" source="node138" target="node140"/>
+    </tree>
+    <tree id="tree141" xsi:type="nex:FloatTree">
+      <node id="node147" root="true"/>
+      <node id="node148" label="Pan troglodytes" otu="taxona"/>
+      <node id="node149" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge148" length="8.3" source="node147" target="node148"/>
+      <edge id="edge149" length="8.3" source="node147" target="node149"/>
+    </tree>
+    <tree id="tree150" xsi:type="nex:FloatTree">
+      <node id="node156" root="true"/>
+      <node id="node157" label="Pan troglodytes" otu="taxona"/>
+      <node id="node158" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge157" length="9.2" source="node156" target="node157"/>
+      <edge id="edge158" length="9.2" source="node156" target="node158"/>
+    </tree>
+    <tree id="tree159" xsi:type="nex:IntTree">
+      <node id="node165" root="true"/>
+      <node id="node166" label="Pan" otu="taxona"/>
+      <node id="node167" label="Homo" otu="taxonb"/>
+      <edge id="edge166" length="11" source="node165" target="node166"/>
+      <edge id="edge167" length="11" source="node165" target="node167"/>
+    </tree>
+    <tree id="tree168" xsi:type="nex:FloatTree">
+      <node id="node174" root="true"/>
+      <node id="node175" label="Pan troglodytes" otu="taxona"/>
+      <node id="node176" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge175" length="6.2" source="node174" target="node175"/>
+      <edge id="edge176" length="6.2" source="node174" target="node176"/>
+    </tree>
+    <tree id="tree177" xsi:type="nex:FloatTree">
+      <node id="node183" root="true"/>
+      <node id="node184" label="Pan troglodytes" otu="taxona"/>
+      <node id="node185" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge184" length="5.2" source="node183" target="node184"/>
+      <edge id="edge185" length="5.2" source="node183" target="node185"/>
+    </tree>
+    <tree id="tree186" xsi:type="nex:FloatTree">
+      <node id="node192" root="true"/>
+      <node id="node193" label="Pan troglodytes" otu="taxona"/>
+      <node id="node194" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge193" length="5.4" source="node192" target="node193"/>
+      <edge id="edge194" length="5.4" source="node192" target="node194"/>
+    </tree>
+    <tree id="tree195" xsi:type="nex:FloatTree">
+      <node id="node201" root="true"/>
+      <node id="node202" label="Pan troglodytes" otu="taxona"/>
+      <node id="node203" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge202" length="5.6" source="node201" target="node202"/>
+      <edge id="edge203" length="5.6" source="node201" target="node203"/>
+    </tree>
+    <tree id="tree204" xsi:type="nex:FloatTree">
+      <node id="node210" root="true"/>
+      <node id="node211" label="Pan troglodytes" otu="taxona"/>
+      <node id="node212" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge211" length="7.3" source="node210" target="node211"/>
+      <edge id="edge212" length="7.3" source="node210" target="node212"/>
+    </tree>
+    <tree id="tree213" xsi:type="nex:FloatTree">
+      <node id="node219" root="true"/>
+      <node id="node220" label="Pan troglodytes" otu="taxona"/>
+      <node id="node221" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge220" length="7.4" source="node219" target="node220"/>
+      <edge id="edge221" length="7.4" source="node219" target="node221"/>
+    </tree>
+    <tree id="tree222" xsi:type="nex:FloatTree">
+      <node id="node228" root="true"/>
+      <node id="node229" label="Pan" otu="taxona"/>
+      <node id="node230" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge229" length="6.6" source="node228" target="node229"/>
+      <edge id="edge230" length="6.6" source="node228" target="node230"/>
+    </tree>
+    <tree id="tree231" xsi:type="nex:FloatTree">
+      <node id="node237" root="true"/>
+      <node id="node238" label="Pan troglodytes" otu="taxona"/>
+      <node id="node239" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge238" length="5.41" source="node237" target="node238"/>
+      <edge id="edge239" length="5.41" source="node237" target="node239"/>
+    </tree>
+    <tree id="tree240" xsi:type="nex:FloatTree">
+      <node id="node246" root="true"/>
+      <node id="node247" label="Pan troglodytes" otu="taxona"/>
+      <node id="node248" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge247" length="6.7" source="node246" target="node247"/>
+      <edge id="edge248" length="6.7" source="node246" target="node248"/>
+    </tree>
+    <tree id="tree249" xsi:type="nex:FloatTree">
+      <node id="node255" root="true"/>
+      <node id="node256" label="Pan" otu="taxona"/>
+      <node id="node257" label="Homo" otu="taxonb"/>
+      <edge id="edge256" length="4.3" source="node255" target="node256"/>
+      <edge id="edge257" length="4.3" source="node255" target="node257"/>
+    </tree>
+    <tree id="tree258" xsi:type="nex:IntTree">
+      <node id="node264" root="true"/>
+      <node id="node265" label="Pan" otu="taxona"/>
+      <node id="node266" label="Homo" otu="taxonb"/>
+      <edge id="edge265" length="13" source="node264" target="node265"/>
+      <edge id="edge266" length="13" source="node264" target="node266"/>
+    </tree>
+    <tree id="tree267" xsi:type="nex:FloatTree">
+      <node id="node273" root="true"/>
+      <node id="node274" label="Pan troglodytes" otu="taxona"/>
+      <node id="node275" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge274" length="5.5" source="node273" target="node274"/>
+      <edge id="edge275" length="5.5" source="node273" target="node275"/>
+    </tree>
+    <tree id="tree276" xsi:type="nex:FloatTree">
+      <node id="node282" root="true"/>
+      <node id="node283" label="Pan troglodytes" otu="taxona"/>
+      <node id="node284" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge283" length="3.6" source="node282" target="node283"/>
+      <edge id="edge284" length="3.6" source="node282" target="node284"/>
+    </tree>
+    <tree id="tree285" xsi:type="nex:IntTree">
+      <node id="node291" root="true"/>
+      <node id="node292" label="Pan troglodytes" otu="taxona"/>
+      <node id="node293" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge292" length="4" source="node291" target="node292"/>
+      <edge id="edge293" length="4" source="node291" target="node293"/>
+    </tree>
+    <tree id="tree294" xsi:type="nex:FloatTree">
+      <node id="node300" root="true"/>
+      <node id="node301" label="Pan" otu="taxona"/>
+      <node id="node302" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge301" length="5.12" source="node300" target="node301"/>
+      <edge id="edge302" length="5.12" source="node300" target="node302"/>
+    </tree>
+    <tree id="tree303" xsi:type="nex:FloatTree">
+      <node id="node309" root="true"/>
+      <node id="node310" label="Pan" otu="taxona"/>
+      <node id="node311" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge310" length="5.55" source="node309" target="node310"/>
+      <edge id="edge311" length="5.55" source="node309" target="node311"/>
+    </tree>
+    <tree id="tree312" xsi:type="nex:FloatTree">
+      <node id="node318" root="true"/>
+      <node id="node319" label="Pan troglodytes" otu="taxona"/>
+      <node id="node320" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge319" length="4.87" source="node318" target="node319"/>
+      <edge id="edge320" length="4.87" source="node318" target="node320"/>
+    </tree>
+    <tree id="tree321" xsi:type="nex:FloatTree">
+      <node id="node327" root="true"/>
+      <node id="node328" label="Pan troglodytes" otu="taxona"/>
+      <node id="node329" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge328" length="6.4" source="node327" target="node328"/>
+      <edge id="edge329" length="6.4" source="node327" target="node329"/>
+    </tree>
+    <tree id="tree330" xsi:type="nex:FloatTree">
+      <node id="node336" root="true"/>
+      <node id="node337" label="Pan" otu="taxona"/>
+      <node id="node338" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge337" length="10.4" source="node336" target="node337"/>
+      <edge id="edge338" length="10.4" source="node336" target="node338"/>
+    </tree>
+    <tree id="tree339" xsi:type="nex:FloatTree">
+      <node id="node345" root="true"/>
+      <node id="node346" label="Pan" otu="taxona"/>
+      <node id="node347" label="Homo sapiens" otu="taxonb"/>
+      <edge id="edge346" length="13.7" source="node345" target="node346"/>
+      <edge id="edge347" length="13.7" source="node345" target="node347"/>
+    </tree>
+  </trees>
+</nex:nexml>
\ No newline at end of file
diff --git a/examples/nexml/tolweb.xml b/examples/nexml/tolweb.xml
new file mode 100644
index 0000000..d94a492
--- /dev/null
+++ b/examples/nexml/tolweb.xml
@@ -0,0 +1,48 @@
+<nex:nexml 
+  generator="Bio::Phylo::Project v.0.21_1265" 
+  version="0.9" 
+  xmlns="http://www.nexml.org/2009" 
+  xmlns:dc="http://purl.org/dc/elements/1.1/contributor" 
+  xmlns:dcterms="http://purl.org/dc/terms/" 
+  xmlns:nex="http://www.nexml.org/2009" 
+  xmlns:owl="http://www.w3.org/2002/07/owl#" 
+  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+  xmlns:tba="http://tolweb.org/tree/home.pages/downloadtree.html#attributes" 
+  xmlns:tbe="http://tolweb.org/tree/home.pages/downloadtree.html#elements" 
+  xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+  xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"> 
+  <otus id="otus26"> 
+    <otu id="otu27" label="Eurysphindus"/> 
+  </otus> 
+  <trees about="#trees22" id="trees22" otus="otus26"> 
+    <meta content="117855" datatype="xsd:integer" id="meta24" property="dcterms:identifier" xsi:type="nex:LiteralMeta"/> 
+    <meta href="http://tolweb.org/117855" id="meta25" rel="owl:sameAs" xsi:type="nex:ResourceMeta"/> 
+    <tree id="tree1" xsi:type="nex:IntTree"> 
+      <node about="#node2" id="node2" root="true"> 
+        <meta content="117851" datatype="xsd:integer" id="meta21" property="tba:ID" xsi:type="nex:LiteralMeta"/> 
+      </node> 
+      <node about="#node3" id="node3" label="Eurysphindus" otu="otu27"> 
+        <meta content="" datatype="xsd:string" id="meta4" property="dc:description" xsi:type="nex:LiteralMeta"/> 
+        <meta content="Leconte" datatype="xsd:string" id="meta5" property="tbe:AUTHORITY" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1878" datatype="xsd:integer" id="meta6" property="tbe:AUTHDATE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="117851" datatype="xsd:integer" id="meta7" property="tba:ANCESTORWITHPAGE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta8" property="tba:CHILDCOUNT" xsi:type="nex:LiteralMeta"/> 
+        <meta content="null" datatype="xsd:string" id="meta9" property="tba:COMBINATION_DATE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta10" property="tba:CONFIDENCE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta11" property="tba:EXTINCT" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta12" property="tba:HASPAGE" xsi:type="nex:LiteralMeta"/> 
+        <meta content="117855" datatype="xsd:integer" id="meta13" property="tba:ID" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta14" property="tba:INCOMPLETESUBGROUPS" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta15" property="tba:IS_NEW_COMBINATION" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta16" property="tba:ITALICIZENAME" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta17" property="tba:LEAF" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta18" property="tba:PHYLESIS" xsi:type="nex:LiteralMeta"/> 
+        <meta content="0" datatype="xsd:integer" id="meta19" property="tba:SHOWAUTHORITY" xsi:type="nex:LiteralMeta"/> 
+        <meta content="1" datatype="xsd:integer" id="meta20" property="tba:SHOWAUTHORITYCONTAINING" xsi:type="nex:LiteralMeta"/> 
+      </node> 
+      <edge id="edge3" source="node2" target="node3"/> 
+    </tree> 
+  </trees> 
+</nex:nexml> 
\ No newline at end of file
diff --git a/examples/nexml/trees.xml b/examples/nexml/trees.xml
new file mode 100644
index 0000000..dbaa85e
--- /dev/null
+++ b/examples/nexml/trees.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 
+	For an explanation of the structure of the root element 
+	and the taxa element refer to the file taxa.xml.
+-->
+<nex:nexml 
+	version="0.9" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:xml="http://www.w3.org/XML/1998/namespace"
+	xsi:schemaLocation="http://www.nexml.org/2009 ../xsd/nexml.xsd"
+	xmlns:nex="http://www.nexml.org/2009"
+	xmlns:cdao="http://www.cs.nmsu.edu/~epontell/CURRENT.owl#"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns="http://www.nexml.org/2009">	        
+	<otus id="tax1" label="RootTaxaBlock">
+		<otu id="t1"/>
+		<otu id="t2"/>
+		<otu id="t3"/>
+		<otu id="t4"/>
+		<otu id="t5"/>
+	</otus>
+	<!--
+		The trees block is structured as follows:
+			* the root element takes the same attributes as 
+			  characters elements do: an id, a reference
+			  to a taxa element, and various optional
+			  attributes.
+			* the trees element contains one or more tree/network
+			  elements, which are the same structure as
+			  GraphML documents (http://graphml.graphdrawing.org/),
+			  with the following extentions:
+			  	- there are two subclasses (xsi:type="nex:Tree" and
+			  	  xsi:type="nex:Network"), which only differ in the
+			  	  constrained in-degree of node elements (one for 
+			  	  trees, one or more for networks)
+			  	- node elements can have an additional taxon attribute
+			  	  to refer to a taxon element defined earlier 
+			  	- edge elements can have a 'length' attribute
+			  	  to specify edge length/weight, which is a 
+			  	  IEEE 754-1985 compliant floating point number on 
+			  	  trees of type FloatTree.
+	-->
+	<trees otus="tax1" id="Trees" label="TreesBlockFromXML">
+		<!--
+			A tree with float edges. 
+		-->
+		<tree id="tree1" xsi:type="nex:FloatTree" label="tree1">
+			<node id="n1" label="n1" root="true"/>
+			<node id="n2" label="n2" otu="t1"/>
+			<node id="n3" label="n3"/>
+			<node id="n4" label="n4" about="#n4">
+			    <meta 
+			        id="dict1" 
+			        property="cdao:has_tag" 
+			        content="true" 
+			        xsi:type="nex:LiteralMeta"
+			        datatype="xsd:boolean"/>
+			</node>
+			<node id="n5" label="n5" otu="t3"/>
+			<node id="n6" label="n6" otu="t2"/>
+			<node id="n7" label="n7"/>
+			<node id="n8" label="n8" otu="t5"/>
+			<node id="n9" label="n9" otu="t4"/>
+			<edge source="n1" target="n3" id="e1" length="0.34534"/>			
+			<edge source="n1" target="n2" id="e2" length="0.4353"/>
+			<edge source="n3" target="n4" id="e3" length="0.324"/>
+			<edge source="n3" target="n7" id="e4" length="0.3247"/>
+			<edge source="n4" target="n5" id="e5" length="0.234"/>
+			<edge source="n4" target="n6" id="e6" length="0.3243"/>
+			<edge source="n7" target="n8" id="e7" length="0.32443"/>
+			<edge source="n7" target="n9" id="e8" length="0.2342"/>
+		</tree>
+		<!--  
+			A tree with int edges.
+		-->
+		<tree id="tree2" xsi:type="nex:IntTree" label="tree2">
+			<node id="tree2n1" label="n1"/>
+			<node id="tree2n2" label="n2" otu="t1"/>
+			<node id="tree2n3" label="n3"/>
+			<node id="tree2n4" label="n4">
+			    <meta 
+			    	id="tree2dict1" 
+			        property="cdao:has_tag" 
+			        content="true" 
+			        xsi:type="nex:LiteralMeta"
+			        datatype="xsd:boolean"/>
+			</node>
+			<node id="tree2n5" label="n5" otu="t3"/>
+			<node id="tree2n6" label="n6" otu="t2"/>
+			<node id="tree2n7" label="n7"/>
+			<node id="tree2n8" label="n8" otu="t5"/>
+			<node id="tree2n9" label="n9" otu="t4"/>
+			<edge source="tree2n1" target="tree2n3" id="tree2e1" length="1"/>			
+			<edge source="tree2n1" target="tree2n2" id="tree2e2" length="2"/>
+			<edge source="tree2n3" target="tree2n4" id="tree2e3" length="3"/>
+			<edge source="tree2n3" target="tree2n7" id="tree2e4" length="1"/>
+			<edge source="tree2n4" target="tree2n5" id="tree2e5" length="2"/>
+			<edge source="tree2n4" target="tree2n6" id="tree2e6" length="1"/>
+			<edge source="tree2n7" target="tree2n8" id="tree2e7" length="1"/>
+			<edge source="tree2n7" target="tree2n9" id="tree2e8" length="1"/>
+		</tree>	
+		<!--  
+			A network with int edges.
+		-->
+		<network id="tree3" xsi:type="nex:IntNetwork" label="tree2">
+			<node id="tree3n1" label="tree3n1"/>
+			<node id="tree3n2" label="tree3n2" otu="t1"/>
+			<node id="tree3n3" label="tree3n3"/>
+			<node id="tree3n4" label="tree3n4"/>
+			<node id="tree3n5" label="tree3n5" otu="t3"/>
+			<node id="tree3n6" label="tree3n6" otu="t2"/>
+			<node id="tree3n7" label="tree3n7"/>
+			<node id="tree3n8" label="tree3n8" otu="t5"/>
+			<node id="tree3n9" label="tree3n9" otu="t4"/>
+			<edge source="tree3n1" target="tree3n3" id="tree3e1" length="1"/>			
+			<edge source="tree3n1" target="tree3n2" id="tree3e2" length="2"/>
+			<edge source="tree3n3" target="tree3n4" id="tree3e3" length="3"/>
+			<edge source="tree3n3" target="tree3n7" id="tree3e4" length="1"/>
+			<edge source="tree3n4" target="tree3n5" id="tree3e5" length="2"/>
+			<edge source="tree3n4" target="tree3n6" id="tree3e6" length="1"/>
+			<edge source="tree3n7" target="tree3n6" id="tree3e7" length="1"/> <!-- extra edge -->
+			<edge source="tree3n7" target="tree3n8" id="tree3e9" length="1"/>
+			<edge source="tree3n7" target="tree3n9" id="tree3e8" length="1"/>
+		</network>				
+	</trees>
+</nex:nexml>
diff --git a/examples/phylogenies/dating_evolutionary_events.py b/examples/phylogenies/dating_evolutionary_events.py
new file mode 100644
index 0000000..98cd2b3
--- /dev/null
+++ b/examples/phylogenies/dating_evolutionary_events.py
@@ -0,0 +1,71 @@
+from ete3 import PhyloTree
+# Creates a gene phylogeny with several duplication events at
+# different levels. Note that we are using the default method for
+# detecting the species code of leaves (three first lettes in the node
+# name are considered the species code).
+nw = """
+((Dme_001,Dme_002),(((Cfa_001,Mms_001),((((Hsa_001,Hsa_003),Ptr_001)
+,Mmu_001),((Hsa_004,Ptr_004),Mmu_004))),(Ptr_002,(Hsa_002,Mmu_002))));
+"""
+t = PhyloTree(nw)
+print "Original tree:",
+print t
+#
+#             /-Dme_001
+#   /--------|
+#  |          \-Dme_002
+#  |
+#  |                              /-Cfa_001
+#  |                    /--------|
+#  |                   |          \-Mms_001
+#  |                   |
+#--|                   |                                        /-Hsa_001
+#  |                   |                              /--------|
+#  |          /--------|                    /--------|          \-Hsa_003
+#  |         |         |                   |         |
+#  |         |         |          /--------|          \-Ptr_001
+#  |         |         |         |         |
+#  |         |         |         |          \-Mmu_001
+#  |         |          \--------|
+#   \--------|                   |                    /-Hsa_004
+#            |                   |          /--------|
+#            |                    \--------|          \-Ptr_004
+#            |                             |
+#            |                              \-Mmu_004
+#            |
+#            |          /-Ptr_002
+#             \--------|
+#                      |          /-Hsa_002
+#                       \--------|
+#                                 \-Mmu_002
+# Create a dictionary with relative ages for the species present in
+# the phylogenetic tree.  Note that ages are only relative numbers to
+# define which species are older, and that different species can
+# belong to the same age.
+species2age = {
+  'Hsa': 1, # Homo sapiens (Hominids)
+  'Ptr': 2, # P. troglodytes (primates)
+  'Mmu': 2, # Macaca mulata (primates)
+  'Mms': 3, # Mus musculus (mammals)
+  'Cfa': 3, # Canis familiaris (mammals)
+  'Dme': 4  # Drosophila melanogaster (metazoa)
+}
+# We can translate each number to its correspondig taxonomic number
+age2name = {
+  1:"hominids",
+  2:"primates",
+  3:"mammals",
+  4:"metazoa"
+}
+event1= t.get_common_ancestor("Hsa_001", "Hsa_004")
+event2=t.get_common_ancestor("Hsa_001", "Hsa_002")
+print
+print "The duplication event leading to the human sequences Hsa_001 and "+\
+    "Hsa_004 is dated at: ", age2name[event1.get_age(species2age)]
+print "The duplication event leading to the human sequences Hsa_001 and "+\
+    "Hsa_002 is dated at: ", age2name[event2.get_age(species2age)]
+# The duplication event leading to the human sequences Hsa_001 and Hsa_004
+# is dated at:  primates
+#
+# The duplication event leading to the human sequences Hsa_001 and Hsa_002
+# is dated at:  mammals
diff --git a/examples/phylogenies/link_sequences_to_phylogenies.py b/examples/phylogenies/link_sequences_to_phylogenies.py
new file mode 100644
index 0000000..40220f0
--- /dev/null
+++ b/examples/phylogenies/link_sequences_to_phylogenies.py
@@ -0,0 +1,72 @@
+from ete3 import PhyloTree
+fasta_txt = """
+ >seqA
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+ >seqB
+ MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+ >seqC
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+ >seqD
+ MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+"""
+iphylip_txt = """
+ 4 76
+      seqA   MAEIPDETIQ QFMALT---H NIAVQYLSEF GDLNEALNSY YASQTDDIKD RREEAHQFMA
+      seqB   MAEIPDATIQ QFMALTNVSH NIAVQY--EF GDLNEALNSY YAYQTDDQKD RREEAHQFMA
+      seqC   MAEIPDATIQ ---ALTNVSH NIAVQYLSEF GDLNEALNSY YASQTDDQPD RREEAHQFMA
+      seqD   MAEAPDETIQ QFMALTNVSH NIAVQYLSEF GDLNEAL--- ---------- -REEAHQ---
+             LTNVSHQFMA LTNVSH
+             LTNVSH---- ------
+             LTNVSH---- ------
+             -------FMA LTNVSH
+"""
+# Load a tree and link it to an alignment. As usual, 'alignment' can
+# be the path to a file or data in text format.
+t = PhyloTree("(((seqA,seqB),seqC),seqD);", alignment=fasta_txt, alg_format="fasta")
+
+#We can now access the sequence of every leaf node
+print "These are the nodes and its sequences:"
+for leaf in t.iter_leaves():
+    print leaf.name, leaf.sequence
+#seqD MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+#seqC MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+#seqA MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+#seqB MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+#
+# The associated alignment can be changed at any time
+t.link_to_alignment(alignment=iphylip_txt, alg_format="iphylip")
+# Let's check that sequences have changed
+print "These are the nodes and its re-linked sequences:"
+for leaf in t.iter_leaves():
+    print leaf.name, leaf.sequence
+#seqD MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAHQ----------FMALTNVSH
+#seqC MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAHQFMALTNVSH----------
+#seqA MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQFMALTNVSHQFMALTNVSH
+#seqB MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAHQFMALTNVSH----------
+#
+# The sequence attribute is considered as node feature, so you can
+# even include sequences in your extended newick format!
+print t.write(features=["sequence"], format=9)
+#
+#
+# (((seqA[&&NHX:sequence=MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQF
+# MALTNVSHQFMALTNVSH],seqB[&&NHX:sequence=MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSY
+# YAYQTDDQKDRREEAHQFMALTNVSH----------]),seqC[&&NHX:sequence=MAEIPDATIQ---ALTNVSHNIA
+# VQYLSEFGDLNEALNSYYASQTDDQPDRREEAHQFMALTNVSH----------]),seqD[&&NHX:sequence=MAEAPD
+# ETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAHQ----------FMALTNVSH]);
+#
+# And yes, you can save this newick text and reload it into a PhyloTree instance.
+sametree = PhyloTree(t.write(features=["sequence"]))
+print "Recovered tree with sequence features:"
+print sametree
+#
+#                              /-seqA
+#                    /--------|
+#          /--------|          \-seqB
+#         |         |
+#---------|          \-seqC
+#         |
+#          \-seqD
+#
+print "seqA sequence:", (t&"seqA").sequence
+# MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAHQFMALTNVSHQFMALTNVSH
diff --git a/examples/phylogenies/orthology_and_paralogy_prediction.py b/examples/phylogenies/orthology_and_paralogy_prediction.py
new file mode 100644
index 0000000..bcab60e
--- /dev/null
+++ b/examples/phylogenies/orthology_and_paralogy_prediction.py
@@ -0,0 +1,73 @@
+from ete3 import PhyloTree
+# Loads an example tree
+nw = """
+((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),
+(Ptr_002,(Hsa_002,Mmu_002))));
+"""
+t = PhyloTree(nw)
+print t
+#                    /-Dme_001
+#          /--------|
+#         |          \-Dme_002
+#         |
+#         |                              /-Cfa_001
+#         |                    /--------|
+#---------|                   |          \-Mms_001
+#         |          /--------|
+#         |         |         |                    /-Hsa_001
+#         |         |         |          /--------|
+#         |         |          \--------|          \-Ptr_001
+#          \--------|                   |
+#                   |                    \-Mmu_001
+#                   |
+#                   |          /-Ptr_002
+#                    \--------|
+#                             |          /-Hsa_002
+#                              \--------|
+#                                        \-Mmu_002
+#
+# To obtain all the evolutionary events involving a given leaf node we
+# use get_my_evol_events method
+matches = t.search_nodes(name="Hsa_001")
+human_seq = matches[0]
+# Obtains its evolutionary events
+events = human_seq.get_my_evol_events()
+# Print its orthology and paralogy relationships
+print "Events detected that involve Hsa_001:"
+for ev in events:
+    if ev.etype == "S":
+        print '   ORTHOLOGY RELATIONSHIP:', ','.join(ev.in_seqs), "<====>", ','.join(ev.out_seqs)
+    elif ev.etype == "D":
+        print '   PARALOGY RELATIONSHIP:', ','.join(ev.in_seqs), "<====>", ','.join(ev.out_seqs)
+
+# Alternatively, you can scan the whole tree topology
+events = t.get_descendant_evol_events()
+# Print its orthology and paralogy relationships
+print "Events detected from the root of the tree"
+for ev in events:
+    if ev.etype == "S":
+        print '   ORTHOLOGY RELATIONSHIP:', ','.join(ev.in_seqs), "<====>", ','.join(ev.out_seqs)
+    elif ev.etype == "D":
+        print '   PARALOGY RELATIONSHIP:', ','.join(ev.in_seqs), "<====>", ','.join(ev.out_seqs)
+
+# If we are only interested in the orthology and paralogy relationship
+# among a given set of species, we can filter the list of sequences
+#
+# fseqs is a function that, given a list of sequences, returns only
+# those from human and mouse
+fseqs = lambda slist: [s for s in slist if s.startswith("Hsa") or s.startswith("Mms")]
+print "Paralogy relationships among human and mouse"
+for ev in events:
+    if ev.etype == "D":
+        # Prints paralogy relationships considering only human and
+        # mouse. Some duplication event may not involve such species,
+        # so they will be empty
+        print '   PARALOGY RELATIONSHIP:', \
+            ','.join(fseqs(ev.in_seqs)), \
+            "<====>",\
+            ','.join(fseqs(ev.out_seqs))
+
+# Note that besides the list of events returned, the detection
+# algorithm has labeled the tree nodes according with the
+# predictions. We can use such lables as normal node features.
+dups = t.search_nodes(evoltype="D") # Return all duplication nodes
diff --git a/examples/phylogenies/phylotree.png b/examples/phylogenies/phylotree.png
new file mode 100644
index 0000000..1da59eb
Binary files /dev/null and b/examples/phylogenies/phylotree.png differ
diff --git a/examples/phylogenies/phylotree_visualization.py b/examples/phylogenies/phylotree_visualization.py
new file mode 100644
index 0000000..6bb6233
--- /dev/null
+++ b/examples/phylogenies/phylotree_visualization.py
@@ -0,0 +1,44 @@
+from ete3 import PhyloTree, TreeStyle
+
+alg = """
+ >Dme_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEAL--YYASQTDDIKDRREEAH
+ >Dme_002
+ MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH
+ >Cfa_001
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+ >Mms_001
+ MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+ >Hsa_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+ >Ptr_002
+ MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH
+ >Mmu_002
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+ >Hsa_002
+ MAEAPDETIQQFM-LTNVSHNIAVQYLSEFGDLNEAL--------------REEAH
+ >Mmu_001
+ MAEIPDETIQQFMALT---HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH
+ >Ptr_001
+ MAEIPDATIQ-FMALTNVSHNIAVQY--EFGDLNEALNSY--YQTDDQKDRREEAH
+ >Mmu_001
+ MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH
+"""
+
+def get_example_tree():
+
+    # Performs a tree reconciliation analysis
+    gene_tree_nw = '((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'
+    species_tree_nw = "((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"
+    genetree = PhyloTree(gene_tree_nw)
+    sptree = PhyloTree(species_tree_nw)
+    recon_tree, events = genetree.reconcile(sptree)
+    recon_tree.link_to_alignment(alg)
+    return recon_tree, TreeStyle()
+
+if __name__ == "__main__":
+    # Visualize the reconciled tree
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #recon_tree.render("phylotree.png", w=750)
+
diff --git a/examples/phylogenies/species_aware_phylogenies.py b/examples/phylogenies/species_aware_phylogenies.py
new file mode 100644
index 0000000..dc1312b
--- /dev/null
+++ b/examples/phylogenies/species_aware_phylogenies.py
@@ -0,0 +1,84 @@
+from ete3 import PhyloTree
+# Reads a phylogenetic tree (using default species name encoding)
+t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
+#                              /-Hsa_001
+#                    /--------|
+#                   |          \-Ptr_001
+#          /--------|
+#         |         |          /-Cfa_001
+#         |          \--------|
+#---------|                    \-Mms_001
+#         |
+#         |          /-Dme_001
+#          \--------|
+#                    \-Dme_002
+#
+# Prints current leaf names and species codes
+print "Deafult mode:"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Dme
+# node: Dme_002 Species name: Dme
+# node: Hsa_001 Species name: Hsa
+# node: Ptr_001 Species name: Ptr
+# node: Cfa_001 Species name: Cfa
+# node: Mms_001 Species name: Mms
+#
+# We can also use our own leaf name parsing function to obtain species
+# names. All we need to do is create a python function that takes
+# node's name as argument and return its corresponding species name.
+def get_species_name(node_name_string):
+    # Species code is the first part of leaf name (separated by an
+    #  underscore character)
+    spcode = node_name_string.split("_")[0]
+    # We could even translate the code to complete names
+    code2name = {
+      "Dme":"Drosophila melanogaster",
+      "Hsa":"Homo sapiens",
+      "Ptr":"Pan troglodytes",
+      "Mms":"Mus musculus",
+      "Cfa":"Canis familiaris"
+      }
+    return code2name[spcode]
+# Now, let's ask the tree to use our custom species naming function
+t.set_species_naming_function(get_species_name)
+print "Custom mode:"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Drosophila melanogaster
+# node: Dme_002 Species name: Drosophila melanogaster
+# node: Hsa_001 Species name: Homo sapiens
+# node: Ptr_001 Species name: Pan troglodytes
+# node: Cfa_001 Species name: Canis familiaris
+# node: Mms_001 Species name: Mus musculus
+#
+# Of course, you can disable the automatic generation of species
+# names. To do so, you can set the species naming function to
+# None. This is useful to set the species names manually or for
+# reading them from a newick file. Other wise, species attribute would
+# be overwriten
+mynewick = """
+(((Hsa_001[&&NHX:species=Human],Ptr_001[&&NHX:species=Chimp]),
+(Cfa_001[&&NHX:species=Dog],Mms_001[&&NHX:species=Mouse])),
+(Dme_001[&&NHX:species=Fly],Dme_002[&&NHX:species=Fly]));
+"""
+t = PhyloTree(mynewick, sp_naming_function=None)
+print "Disabled mode (manual set):"
+for n in t.get_leaves():
+    print "node:", n.name, "Species name:", n.species
+# node: Dme_001 Species name: Fly
+# node: Dme_002 Species name: Fly
+# node: Hsa_001 Species name: Human
+# node: Ptr_001 Species name: Chimp
+# node: Cfa_001 Species name: Dog
+# node: Mms_001 Species name: Mouse
+#
+# Of course, once this info is available you can query any internal
+# node for species covered.
+human_mouse_ancestor = t.get_common_ancestor("Hsa_001", "Mms_001")
+print "These are the species under the common ancestor of Human & Mouse"
+print '\n'.join( human_mouse_ancestor.get_species() )
+# Mouse
+# Chimp
+# Dog
+# Human
diff --git a/examples/phylogenies/tree_reconciliation.py b/examples/phylogenies/tree_reconciliation.py
new file mode 100644
index 0000000..58122ec
--- /dev/null
+++ b/examples/phylogenies/tree_reconciliation.py
@@ -0,0 +1,80 @@
+from ete3 import PhyloTree
+
+# Loads a gene tree and its corresponding species tree. Note that
+# species names in sptree are the 3 firs letters of leaf nodes in
+# genetree.
+gene_tree_nw = '((Dme_001,Dme_002),(((Cfa_001,Mms_001),((Hsa_001,Ptr_001),Mmu_001)),(Ptr_002,(Hsa_002,Mmu_002))));'
+species_tree_nw = "((((Hsa, Ptr), Mmu), (Mms, Cfa)), Dme);"
+genetree = PhyloTree(gene_tree_nw)
+sptree = PhyloTree(species_tree_nw)
+print genetree
+#                    /-Dme_001
+#          /--------|
+#         |          \-Dme_002
+#         |
+#         |                              /-Cfa_001
+#         |                    /--------|
+#---------|                   |          \-Mms_001
+#         |          /--------|
+#         |         |         |                    /-Hsa_001
+#         |         |         |          /--------|
+#         |         |          \--------|          \-Ptr_001
+#          \--------|                   |
+#                   |                    \-Mmu_001
+#                   |
+#                   |          /-Ptr_002
+#                    \--------|
+#                             |          /-Hsa_002
+#                              \--------|
+#                                        \-Mmu_002
+#
+# Let's reconcile our genetree with the species tree
+recon_tree, events = genetree.reconcile(sptree)
+# a new "reconcilied tree" is returned. As well as the list of
+# inferred events.
+print "Orthology and Paralogy relationships:"
+for ev in events:
+    if ev.etype == "S":
+        print 'ORTHOLOGY RELATIONSHIP:', ','.join(ev.inparalogs), "<====>", ','.join(ev.orthologs)
+    elif ev.etype == "D":
+        print 'PARALOGY RELATIONSHIP:', ','.join(ev.inparalogs), "<====>", ','.join(ev.outparalogs)
+# And we can explore the resulting reconciled tree
+print recon_tree
+# You will notice how the reconcilied tree is the same as the gene
+# tree with some added branches. They are inferred gene losses.
+#
+#
+#                    /-Dme_001
+#          /--------|
+#         |          \-Dme_002
+#         |
+#         |                              /-Cfa_001
+#         |                    /--------|
+#         |                   |          \-Mms_001
+#---------|          /--------|
+#         |         |         |                    /-Hsa_001
+#         |         |         |          /--------|
+#         |         |          \--------|          \-Ptr_001
+#         |         |                   |
+#         |         |                    \-Mmu_001
+#          \--------|
+#                   |                    /-Mms
+#                   |          /--------|
+#                   |         |          \-Cfa
+#                   |         |
+#                   |         |                              /-Hsa
+#                    \--------|                    /--------|
+#                             |          /--------|          \-Ptr_002
+#                             |         |         |
+#                             |         |          \-Mmu
+#                              \--------|
+#                                       |                    /-Ptr
+#                                       |          /--------|
+#                                        \--------|          \-Hsa_002
+#                                                 |
+#                                                  \-Mmu_002
+#
+# And we can visualize the trees using the default phylogeny
+# visualization layout
+genetree.show()
+recon_tree.show()
diff --git a/examples/phyloxml/apaf.xml b/examples/phyloxml/apaf.xml
new file mode 100644
index 0000000..b43221d
--- /dev/null
+++ b/examples/phyloxml/apaf.xml
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd" xmlns="http://www.phyloxml.org">
+<phylogeny rooted="true">
+   <clade>
+      <clade>
+         <branch_length>0.18105</branch_length>
+         <confidence type="unknown">89.0</confidence>
+         <clade>
+            <branch_length>0.07466</branch_length>
+            <confidence type="unknown">32.0</confidence>
+            <clade>
+               <branch_length>0.26168</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <branch_length>0.22058</branch_length>
+                  <confidence type="unknown">89.0</confidence>
+                  <clade>
+                     <branch_length>0.28901</branch_length>
+                     <confidence type="unknown">100.0</confidence>
+                     <clade>
+                        <branch_length>0.06584</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <branch_length>0.02309</branch_length>
+                           <confidence type="unknown">43.0</confidence>
+                           <clade>
+                              <branch_length>0.0746</branch_length>
+                              <confidence type="unknown">100.0</confidence>
+                              <clade>
+                                 <branch_length>0.02365</branch_length>
+                                 <confidence type="unknown">88.0</confidence>
+                                 <clade>
+                                    <name>22_MOUSE</name>
+                                    <branch_length>0.05998</branch_length>
+                                    <taxonomy>
+                                       <code>MOUSE</code>
+                                    </taxonomy>
+                                    <sequence>
+                                       <domain_architecture length="1249">
+                                          <domain from="6" to="90" confidence="7.0E-26">CARD</domain>
+                                          <domain from="109" to="414" confidence="7.2E-117">NB-ARC</domain>
+                                          <domain from="605" to="643" confidence="2.4E-6">WD40</domain>
+                                          <domain from="647" to="685" confidence="1.1E-12">WD40</domain>
+                                          <domain from="689" to="729" confidence="2.4E-7">WD40</domain>
+                                          <domain from="733" to="771" confidence="4.7E-14">WD40</domain>
+                                          <domain from="872" to="910" confidence="2.5E-8">WD40</domain>
+                                          <domain from="993" to="1031" confidence="4.6E-6">WD40</domain>
+                                          <domain from="1075" to="1113" confidence="6.3E-7">WD40</domain>
+                                          <domain from="1117" to="1155" confidence="1.4E-7">WD40</domain>
+                                          <domain from="1168" to="1204" confidence="0.3">WD40</domain>
+                                       </domain_architecture>
+                                    </sequence>
+                                 </clade>
+                                 <clade>
+                                    <name>Apaf-1_HUMAN</name>
+                                    <branch_length>0.01825</branch_length>
+                                    <taxonomy>
+                                       <code>HUMAN</code>
+                                    </taxonomy>
+                                    <sequence>
+                                       <domain_architecture length="1248">
+                                          <domain from="6" to="90" confidence="1.1E-25">CARD</domain>
+                                          <domain from="109" to="414" confidence="3.0E-134">NB-ARC</domain>
+                                          <domain from="605" to="643" confidence="8.5E-6">WD40</domain>
+                                          <domain from="647" to="685" confidence="2.5E-11">WD40</domain>
+                                          <domain from="689" to="729" confidence="2.4E-8">WD40</domain>
+                                          <domain from="733" to="771" confidence="3.6E-14">WD40</domain>
+                                          <domain from="872" to="910" confidence="3.8E-8">WD40</domain>
+                                          <domain from="1075" to="1113" confidence="4.0E-7">WD40</domain>
+                                          <domain from="1117" to="1155" confidence="5.9E-8">WD40</domain>
+                                       </domain_architecture>
+                                    </sequence>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <name>12_CANFA</name>
+                                 <branch_length>0.04683</branch_length>
+                                 <taxonomy>
+                                    <code>CANFA</code>
+                                 </taxonomy>
+                                 <sequence>
+                                    <domain_architecture length="1153">
+                                       <domain from="6" to="90" confidence="4.5E-22">CARD</domain>
+                                       <domain from="110" to="415" confidence="4.0E-119">NB-ARC</domain>
+                                       <domain from="597" to="635" confidence="3.9E-5">WD40</domain>
+                                       <domain from="639" to="677" confidence="2.5E-11">WD40</domain>
+                                       <domain from="681" to="721" confidence="1.8E-7">WD40</domain>
+                                       <domain from="725" to="763" confidence="9.4E-13">WD40</domain>
+                                       <domain from="889" to="927" confidence="1.1E-6">WD40</domain>
+                                       <domain from="971" to="1009" confidence="1.7E-7">WD40</domain>
+                                       <domain from="1013" to="1051" confidence="1.9E-7">WD40</domain>
+                                    </domain_architecture>
+                                 </sequence>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>11_CHICK</name>
+                              <branch_length>0.15226</branch_length>
+                              <taxonomy>
+                                 <code>CHICK</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="1207">
+                                    <domain from="6" to="90" confidence="3.6E-21">CARD</domain>
+                                    <domain from="109" to="414" confidence="3.6E-109">NB-ARC</domain>
+                                    <domain from="603" to="641" confidence="1.6E-4">WD40</domain>
+                                    <domain from="645" to="683" confidence="8.2E-11">WD40</domain>
+                                    <domain from="687" to="727" confidence="6.2E-10">WD40</domain>
+                                    <domain from="731" to="769" confidence="1.8E-11">WD40</domain>
+                                    <domain from="828" to="866" confidence="1.8">WD40</domain>
+                                    <domain from="993" to="1030" confidence="2.9E-4">WD40</domain>
+                                    <domain from="1034" to="1072" confidence="1.7E-8">WD40</domain>
+                                    <domain from="1076" to="1114" confidence="7.5E-9">WD40</domain>
+                                    <domain from="1127" to="1163" confidence="0.044">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>16_XENLA</name>
+                           <branch_length>0.4409</branch_length>
+                           <taxonomy>
+                              <code>XENLA</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1362">
+                                 <domain from="6" to="90" confidence="4.0E-20">CARD</domain>
+                                 <domain from="109" to="410" confidence="3.1E-56">NB-ARC</domain>
+                                 <domain from="148" to="298" confidence="0.8">NACHT</domain>
+                                 <domain from="729" to="767" confidence="7.0E-6">WD40</domain>
+                                 <domain from="771" to="809" confidence="2.3E-11">WD40</domain>
+                                 <domain from="813" to="853" confidence="1.1E-8">WD40</domain>
+                                 <domain from="857" to="895" confidence="1.1E-10">WD40</domain>
+                                 <domain from="992" to="1030" confidence="8.4E-9">WD40</domain>
+                                 <domain from="1116" to="1154" confidence="7.3E-11">WD40</domain>
+                                 <domain from="1158" to="1196" confidence="1.6E-8">WD40</domain>
+                                 <domain from="1200" to="1238" confidence="1.2E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.17031</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <branch_length>0.10929</branch_length>
+                           <confidence type="unknown">100.0</confidence>
+                           <clade>
+                              <name>14_FUGRU</name>
+                              <branch_length>0.02255</branch_length>
+                              <taxonomy>
+                                 <code>FUGRU</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="1258">
+                                    <domain from="8" to="92" confidence="4.6E-24">CARD</domain>
+                                    <domain from="111" to="418" confidence="7.0E-74">NB-ARC</domain>
+                                    <domain from="609" to="647" confidence="2.8E-4">WD40</domain>
+                                    <domain from="651" to="689" confidence="2.3E-12">WD40</domain>
+                                    <domain from="740" to="778" confidence="1.8E-6">WD40</domain>
+                                    <domain from="874" to="912" confidence="1.6E-9">WD40</domain>
+                                    <domain from="998" to="1036" confidence="9.8E-13">WD40</domain>
+                                    <domain from="1040" to="1080" confidence="1.6E-4">WD40</domain>
+                                    <domain from="1084" to="1122" confidence="1.5E-9">WD40</domain>
+                                    <domain from="1126" to="1164" confidence="6.2E-9">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                           <clade>
+                              <name>15_TETNG</name>
+                              <branch_length>0.09478</branch_length>
+                              <taxonomy>
+                                 <code>TETNG</code>
+                              </taxonomy>
+                              <sequence>
+                                 <domain_architecture length="621">
+                                    <domain from="8" to="92" confidence="2.5E-24">CARD</domain>
+                                    <domain from="104" to="308" confidence="9.8E-11">NB-ARC</domain>
+                                    <domain from="366" to="404" confidence="1.2E-12">WD40</domain>
+                                    <domain from="455" to="493" confidence="1.0E-10">WD40</domain>
+                                    <domain from="537" to="575" confidence="4.1E-10">WD40</domain>
+                                 </domain_architecture>
+                              </sequence>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>17_BRARE</name>
+                           <branch_length>0.1811</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1260">
+                                 <domain from="6" to="90" confidence="3.9E-23">CARD</domain>
+                                 <domain from="137" to="444" confidence="1.7E-72">NB-ARC</domain>
+                                 <domain from="635" to="673" confidence="1.6">WD40</domain>
+                                 <domain from="694" to="732" confidence="5.3E-12">WD40</domain>
+                                 <domain from="783" to="821" confidence="2.0E-8">WD40</domain>
+                                 <domain from="1040" to="1078" confidence="2.4E-8">WD40</domain>
+                                 <domain from="1081" to="1121" confidence="6.6E-4">WD40</domain>
+                                 <domain from="1125" to="1163" confidence="5.1E-8">WD40</domain>
+                                 <domain from="1167" to="1205" confidence="1.3E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.01594</branch_length>
+                     <confidence type="unknown">53.0</confidence>
+                     <clade>
+                        <branch_length>0.10709</branch_length>
+                        <confidence type="unknown">68.0</confidence>
+                        <clade>
+                           <name>1_BRAFL</name>
+                           <branch_length>0.26131</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1238">
+                                 <domain from="6" to="89" confidence="5.7E-19">CARD</domain>
+                                 <domain from="111" to="413" confidence="4.2E-48">NB-ARC</domain>
+                                 <domain from="600" to="638" confidence="3.2E-8">WD40</domain>
+                                 <domain from="642" to="680" confidence="1.5E-10">WD40</domain>
+                                 <domain from="730" to="768" confidence="9.6E-11">WD40</domain>
+                                 <domain from="857" to="895" confidence="3.7E-10">WD40</domain>
+                                 <domain from="984" to="1022" confidence="6.7E-10">WD40</domain>
+                                 <domain from="1025" to="1064" confidence="3.1E-6">WD40</domain>
+                                 <domain from="1069" to="1107" confidence="1.5E-4">WD40</domain>
+                                 <domain from="1111" to="1149" confidence="7.9E-7">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                        <clade>
+                           <name>18_NEMVE</name>
+                           <branch_length>0.38014</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="1290">
+                                 <domain from="7" to="90" confidence="1.5E-13">CARD</domain>
+                                 <domain from="117" to="200" confidence="5.4E-14">CARD</domain>
+                                 <domain from="216" to="517" confidence="1.5E-50">NB-ARC</domain>
+                                 <domain from="711" to="749" confidence="1.0E-7">WD40</domain>
+                                 <domain from="753" to="791" confidence="8.5E-12">WD40</domain>
+                                 <domain from="795" to="833" confidence="4.3E-11">WD40</domain>
+                                 <domain from="837" to="875" confidence="1.0E-12">WD40</domain>
+                                 <domain from="920" to="957" confidence="2.0E-4">WD40</domain>
+                                 <domain from="961" to="999" confidence="3.0E-6">WD40</domain>
+                                 <domain from="1085" to="1123" confidence="4.4E-6">WD40</domain>
+                                 <domain from="1128" to="1166" confidence="3.0E-4">WD40</domain>
+                                 <domain from="1170" to="1207" confidence="1.7E-10">WD40</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>23_STRPU</name>
+                        <branch_length>0.48179</branch_length>
+                        <taxonomy>
+                           <code>STRPU</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="1236">
+                              <domain from="110" to="402" confidence="1.0E-40">NB-ARC</domain>
+                              <domain from="594" to="632" confidence="8.9E-4">WD40</domain>
+                              <domain from="636" to="673" confidence="2.5E-6">WD40</domain>
+                              <domain from="721" to="759" confidence="0.0043">WD40</domain>
+                              <domain from="765" to="802" confidence="0.0036">WD40</domain>
+                              <domain from="848" to="886" confidence="9.0E-10">WD40</domain>
+                              <domain from="975" to="1013" confidence="1.9E-5">WD40</domain>
+                              <domain from="1015" to="1053" confidence="2.4E-6">WD40</domain>
+                              <domain from="1057" to="1095" confidence="2.7E-9">WD40</domain>
+                              <domain from="1099" to="1137" confidence="4.9E-8">WD40</domain>
+                              <domain from="1141" to="1177" confidence="0.011">WD40</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>0.34475</branch_length>
+                  <confidence type="unknown">100.0</confidence>
+                  <clade>
+                     <name>26_STRPU</name>
+                     <branch_length>0.36374</branch_length>
+                     <taxonomy>
+                        <code>STRPU</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1319">
+                           <domain from="18" to="98" confidence="3.4E-5">Death</domain>
+                           <domain from="189" to="481" confidence="1.8E-10">NB-ARC</domain>
+                           <domain from="630" to="668" confidence="8.2E-5">WD40</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>25_STRPU</name>
+                     <branch_length>0.33137</branch_length>
+                     <taxonomy>
+                        <code>STRPU</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1947">
+                           <domain from="143" to="227" confidence="7.4E-5">Death</domain>
+                           <domain from="227" to="550" confidence="2.0E-13">NB-ARC</domain>
+                           <domain from="697" to="736" confidence="7.9E-4">WD40</domain>
+                           <domain from="745" to="785" confidence="1.5">WD40</domain>
+                           <domain from="1741" to="1836" confidence="2.0">Adeno_VII</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>1.31498</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <name>CED4_CAEEL</name>
+                  <branch_length>0.13241</branch_length>
+                  <taxonomy>
+                     <code>CAEEL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="714">
+                        <domain from="7" to="90" confidence="9.2E-14">CARD</domain>
+                        <domain from="116" to="442" confidence="5.8E-151">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+               <clade>
+                  <name>31_CAEBR</name>
+                  <branch_length>0.04777</branch_length>
+                  <taxonomy>
+                     <code>CAEBR</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="554">
+                        <domain from="1" to="75" confidence="0.0046">CARD</domain>
+                        <domain from="101" to="427" confidence="2.1E-123">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+         </clade>
+         <clade>
+            <branch_length>0.13172</branch_length>
+            <confidence type="unknown">45.0</confidence>
+            <clade>
+               <branch_length>0.24915</branch_length>
+               <confidence type="unknown">95.0</confidence>
+               <clade>
+                  <branch_length>0.76898</branch_length>
+                  <confidence type="unknown">100.0</confidence>
+                  <clade>
+                     <name>28_DROPS</name>
+                     <branch_length>0.1732</branch_length>
+                     <taxonomy>
+                        <code>DROPS</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="535">
+                           <domain from="112" to="399" confidence="1.4E-5">NB-ARC</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>Dark_DROME</name>
+                     <branch_length>0.18863</branch_length>
+                     <taxonomy>
+                        <code>DROME</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1421">
+                           <domain from="108" to="397" confidence="2.1E-5">NB-ARC</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>29_AEDAE</name>
+                  <branch_length>0.86398</branch_length>
+                  <taxonomy>
+                     <code>AEDAE</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="423">
+                        <domain from="109" to="421" confidence="9.3E-6">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <name>30_TRICA</name>
+               <branch_length>0.97698</branch_length>
+               <taxonomy>
+                  <code>TRICA</code>
+               </taxonomy>
+               <sequence>
+                  <domain_architecture length="1279">
+                     <domain from="5" to="81" confidence="0.59">CARD</domain>
+                     <domain from="92" to="400" confidence="9.0E-11">NB-ARC</domain>
+                     <domain from="630" to="668" confidence="1.1E-5">WD40</domain>
+                  </domain_architecture>
+               </sequence>
+            </clade>
+         </clade>
+      </clade>
+      <clade>
+         <branch_length>0.18105</branch_length>
+         <confidence type="unknown">89.0</confidence>
+         <clade>
+            <branch_length>0.15891</branch_length>
+            <confidence type="unknown">64.0</confidence>
+            <clade>
+               <branch_length>0.54836</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <branch_length>0.09305</branch_length>
+                  <confidence type="unknown">46.0</confidence>
+                  <clade>
+                     <branch_length>0.21648</branch_length>
+                     <confidence type="unknown">61.0</confidence>
+                     <clade>
+                        <branch_length>0.93134</branch_length>
+                        <confidence type="unknown">100.0</confidence>
+                        <clade>
+                           <name>34_BRAFL</name>
+                           <branch_length>0.093</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="752">
+                                 <domain from="49" to="356" confidence="9.0E-6">NB-ARC</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                        <clade>
+                           <name>35_BRAFL</name>
+                           <branch_length>0.08226</branch_length>
+                           <taxonomy>
+                              <code>BRAFL</code>
+                           </taxonomy>
+                           <sequence>
+                              <domain_architecture length="753">
+                                 <domain from="25" to="105" confidence="0.16">DED</domain>
+                                 <domain from="113" to="409" confidence="1.1E-6">NB-ARC</domain>
+                              </domain_architecture>
+                           </sequence>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>8_BRAFL</name>
+                        <branch_length>0.58563</branch_length>
+                        <taxonomy>
+                           <code>BRAFL</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="916">
+                              <domain from="58" to="369" confidence="8.4E-7">NB-ARC</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.28437</branch_length>
+                     <confidence type="unknown">84.0</confidence>
+                     <clade>
+                        <name>20_NEMVE</name>
+                        <branch_length>0.71946</branch_length>
+                        <taxonomy>
+                           <code>NEMVE</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="786">
+                              <domain from="8" to="91" confidence="1.7E-17">DED</domain>
+                              <domain from="8" to="85" confidence="0.37">PAAD_DAPIN</domain>
+                              <domain from="90" to="388" confidence="6.8E-5">NB-ARC</domain>
+                              <domain from="575" to="608" confidence="0.27">TPR_1</domain>
+                              <domain from="657" to="690" confidence="0.22">TPR_2</domain>
+                              <domain from="698" to="731" confidence="4.2E-5">TPR_2</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                     <clade>
+                        <name>21_NEMVE</name>
+                        <branch_length>0.9571</branch_length>
+                        <taxonomy>
+                           <code>NEMVE</code>
+                        </taxonomy>
+                        <sequence>
+                           <domain_architecture length="1563">
+                              <domain from="234" to="317" confidence="2.3E-14">CARD</domain>
+                              <domain from="238" to="318" confidence="0.5">Death</domain>
+                              <domain from="329" to="619" confidence="0.022">NB-ARC</domain>
+                              <domain from="906" to="939" confidence="0.17">TPR_1</domain>
+                              <domain from="1326" to="1555" confidence="3.2E-26">RVT_1</domain>
+                           </domain_architecture>
+                        </sequence>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>9_BRAFL</name>
+                  <branch_length>1.09612</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1011">
+                        <domain from="5" to="321" confidence="5.0E-5">NB-ARC</domain>
+                        <domain from="497" to="616" confidence="1.6">BTAD</domain>
+                        <domain from="500" to="533" confidence="5.6E-4">TPR_1</domain>
+                        <domain from="542" to="575" confidence="0.43">TPR_1</domain>
+                        <domain from="626" to="659" confidence="0.0084">TPR_2</domain>
+                        <domain from="708" to="741" confidence="1.9E-4">TPR_2</domain>
+                        <domain from="708" to="739" confidence="1.3">TPR_3</domain>
+                        <domain from="708" to="733" confidence="0.16">TPR_4</domain>
+                        <domain from="833" to="916" confidence="5.6E-14">Death</domain>
+                        <domain from="846" to="868" confidence="0.36">LTXXQ</domain>
+                        <domain from="930" to="1011" confidence="8.3E-17">Death</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>0.34914</branch_length>
+               <confidence type="unknown">98.0</confidence>
+               <clade>
+                  <branch_length>0.22189</branch_length>
+                  <confidence type="unknown">95.0</confidence>
+                  <clade>
+                     <name>3_BRAFL</name>
+                     <branch_length>0.48766</branch_length>
+                     <taxonomy>
+                        <code>BRAFL</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="2080">
+                           <domain from="116" to="423" confidence="1.4E-12">NB-ARC</domain>
+                           <domain from="620" to="659" confidence="1.4E-6">WD40</domain>
+                           <domain from="663" to="701" confidence="1.4E-8">WD40</domain>
+                           <domain from="705" to="743" confidence="3.0E-11">WD40</domain>
+                           <domain from="747" to="785" confidence="1.1E-8">WD40</domain>
+                           <domain from="788" to="826" confidence="1.6E-5">WD40</domain>
+                           <domain from="830" to="870" confidence="1.3E-4">WD40</domain>
+                           <domain from="874" to="914" confidence="6.2E-9">WD40</domain>
+                           <domain from="919" to="957" confidence="0.0011">WD40</domain>
+                           <domain from="961" to="1000" confidence="1.8E-8">WD40</domain>
+                           <domain from="1013" to="1051" confidence="1.3E-6">WD40</domain>
+                           <domain from="1055" to="1092" confidence="0.096">WD40</domain>
+                           <domain from="1794" to="1853" confidence="3.6E-4">Collagen</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+                  <clade>
+                     <name>2_BRAFL</name>
+                     <branch_length>0.65293</branch_length>
+                     <taxonomy>
+                        <code>BRAFL</code>
+                     </taxonomy>
+                     <sequence>
+                        <domain_architecture length="1691">
+                           <domain from="162" to="457" confidence="4.4E-10">NB-ARC</domain>
+                           <domain from="640" to="680" confidence="0.0068">WD40</domain>
+                           <domain from="684" to="722" confidence="1.6E-8">WD40</domain>
+                           <domain from="726" to="764" confidence="6.0E-9">WD40</domain>
+                           <domain from="827" to="865" confidence="6.9E-10">WD40</domain>
+                           <domain from="868" to="906" confidence="1.2E-6">WD40</domain>
+                           <domain from="910" to="950" confidence="0.0080">WD40</domain>
+                           <domain from="954" to="994" confidence="0.0016">WD40</domain>
+                           <domain from="999" to="1037" confidence="4.9E-6">WD40</domain>
+                           <domain from="1042" to="1080" confidence="6.3E-8">WD40</domain>
+                           <domain from="1100" to="1138" confidence="1.9E-8">WD40</domain>
+                           <domain from="1142" to="1178" confidence="1.4">WD40</domain>
+                           <domain from="1577" to="1615" confidence="4.3E-4">WD40</domain>
+                        </domain_architecture>
+                     </sequence>
+                  </clade>
+               </clade>
+               <clade>
+                  <name>19_NEMVE</name>
+                  <branch_length>0.57144</branch_length>
+                  <taxonomy>
+                     <code>NEMVE</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1649">
+                        <domain from="99" to="174" confidence="4.6E-7">DED</domain>
+                        <domain from="181" to="503" confidence="8.0E-13">NB-ARC</domain>
+                        <domain from="696" to="734" confidence="1.4E-8">WD40</domain>
+                        <domain from="738" to="776" confidence="2.9E-9">WD40</domain>
+                        <domain from="780" to="818" confidence="3.8E-10">WD40</domain>
+                        <domain from="822" to="860" confidence="6.4E-9">WD40</domain>
+                        <domain from="864" to="902" confidence="2.1E-10">WD40</domain>
+                        <domain from="906" to="944" confidence="1.3E-8">WD40</domain>
+                        <domain from="948" to="986" confidence="1.2E-8">WD40</domain>
+                        <domain from="990" to="1028" confidence="9.4E-8">WD40</domain>
+                        <domain from="1032" to="1070" confidence="6.0E-8">WD40</domain>
+                        <domain from="1074" to="1112" confidence="2.6E-4">WD40</domain>
+                        <domain from="1364" to="1597" confidence="1.9">SGL</domain>
+                        <domain from="1442" to="1480" confidence="9.7E-7">WD40</domain>
+                        <domain from="1527" to="1565" confidence="1.2">WD40</domain>
+                        <domain from="1568" to="1606" confidence="1.1E-6">WD40</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+         </clade>
+         <clade>
+            <branch_length>0.43438</branch_length>
+            <confidence type="unknown">92.0</confidence>
+            <clade>
+               <branch_length>0.92214</branch_length>
+               <confidence type="unknown">100.0</confidence>
+               <clade>
+                  <name>37_BRAFL</name>
+                  <branch_length>0.21133</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="1793">
+                        <domain from="6" to="89" confidence="9.6E-13">CARD</domain>
+                        <domain from="118" to="202" confidence="4.5E-9">CARD</domain>
+                        <domain from="206" to="491" confidence="0.0011">NB-ARC</domain>
+                        <domain from="238" to="388" confidence="0.0043">NACHT</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+               <clade>
+                  <name>36_BRAFL</name>
+                  <branch_length>0.16225</branch_length>
+                  <taxonomy>
+                     <code>BRAFL</code>
+                  </taxonomy>
+                  <sequence>
+                     <domain_architecture length="918">
+                        <domain from="9" to="93" confidence="1.6E-9">CARD</domain>
+                        <domain from="98" to="403" confidence="0.0019">NB-ARC</domain>
+                     </domain_architecture>
+                  </sequence>
+               </clade>
+            </clade>
+            <clade>
+               <name>33_BRAFL</name>
+               <branch_length>0.8363</branch_length>
+               <taxonomy>
+                  <code>BRAFL</code>
+               </taxonomy>
+               <sequence>
+                  <domain_architecture length="1212">
+                     <domain from="5" to="87" confidence="4.7E-12">Death</domain>
+                     <domain from="154" to="465" confidence="2.0E-6">NB-ARC</domain>
+                  </domain_architecture>
+               </sequence>
+            </clade>
+         </clade>
+      </clade>
+   </clade>
+</phylogeny>
+</phyloxml>
\ No newline at end of file
diff --git a/examples/phyloxml/bcl_2.xml b/examples/phyloxml/bcl_2.xml
new file mode 100644
index 0000000..974c84d
--- /dev/null
+++ b/examples/phyloxml/bcl_2.xml
@@ -0,0 +1,2099 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd"
+   xmlns="http://www.phyloxml.org">
+   <phylogeny rooted="true">
+      <name>Bcl-2</name>
+      <clade>
+         <events>
+            <duplications>1</duplications>
+         </events>
+         <clade>
+            <branch_length>0.21409500000000004</branch_length>
+            <confidence type="bootstrap">33.0</confidence>
+            <events>
+               <duplications>1</duplications>
+            </events>
+            <clade>
+               <branch_length>0.22234</branch_length>
+               <confidence type="bootstrap">58.0</confidence>
+               <events>
+                  <duplications>1</duplications>
+               </events>
+               <clade>
+                  <branch_length>0.68133</branch_length>
+                  <confidence type="bootstrap">99.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <branch_length>0.0946</branch_length>
+                     <confidence type="bootstrap">72.0</confidence>
+                     <events>
+                        <duplications>1</duplications>
+                     </events>
+                     <clade>
+                        <branch_length>0.24716</branch_length>
+                        <confidence type="bootstrap">35.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <branch_length>0.18828</branch_length>
+                           <confidence type="bootstrap">33.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <branch_length>0.10487</branch_length>
+                              <confidence type="bootstrap">37.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <name>51_CHICK</name>
+                                 <branch_length>0.28045</branch_length>
+                                 <taxonomy>
+                                    <code>CHICK</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>145_XENLA</name>
+                                 <branch_length>0.59876</branch_length>
+                                 <taxonomy>
+                                    <code>XENLA</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <branch_length>0.38418</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <branch_length>0.0267</branch_length>
+                                 <confidence type="bootstrap">39.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>88_CANFA</name>
+                                    <branch_length>0.08127</branch_length>
+                                    <taxonomy>
+                                       <code>CANFA</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>115_MOUSE</name>
+                                    <branch_length>0.14168</branch_length>
+                                    <taxonomy>
+                                       <code>MOUSE</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <confidence type="bootstrap">55.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>74_BOVIN</name>
+                                    <branch_length>0.09416</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>9_HUMAN</name>
+                                    <branch_length>0.06828</branch_length>
+                                    <taxonomy>
+                                       <code>HUMAN</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <branch_length>0.35342</branch_length>
+                           <confidence type="bootstrap">100.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <name>159_BRARE</name>
+                              <branch_length>0.01275</branch_length>
+                              <taxonomy>
+                                 <code>BRARE</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <name>166_BRARE</name>
+                              <branch_length>0.02259</branch_length>
+                              <taxonomy>
+                                 <code>BRARE</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.39739</branch_length>
+                        <confidence type="bootstrap">99.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <name>52_CHICK</name>
+                           <branch_length>0.27747</branch_length>
+                           <taxonomy>
+                              <code>CHICK</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <name>144_XENLA</name>
+                           <branch_length>0.34644</branch_length>
+                           <taxonomy>
+                              <code>XENLA</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.51997</branch_length>
+                     <confidence type="bootstrap">100.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.0983</branch_length>
+                        <confidence type="bootstrap">56.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <branch_length>0.5126</branch_length>
+                           <confidence type="bootstrap">100.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <branch_length>1.0E-5</branch_length>
+                              <confidence type="bootstrap">46.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <name>90_CANFA</name>
+                                 <branch_length>0.03744</branch_length>
+                                 <taxonomy>
+                                    <code>CANFA</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>12_HUMAN</name>
+                                 <branch_length>0.07368</branch_length>
+                                 <taxonomy>
+                                    <code>HUMAN</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>64_BOVIN</name>
+                              <branch_length>0.05675</branch_length>
+                              <taxonomy>
+                                 <code>BOVIN</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>142_XENLA</name>
+                           <branch_length>0.26292</branch_length>
+                           <taxonomy>
+                              <code>XENLA</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.34592</branch_length>
+                        <confidence type="bootstrap">99.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <name>155_BRARE</name>
+                           <branch_length>1.0E-5</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <name>154_BRARE</name>
+                           <branch_length>1.0E-5</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>1.25362</branch_length>
+                  <confidence type="bootstrap">100.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <name>125_MOUSE</name>
+                     <branch_length>0.04425</branch_length>
+                     <taxonomy>
+                        <code>MOUSE</code>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <branch_length>0.14928</branch_length>
+                     <confidence type="bootstrap">40.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <name>95_CANFA</name>
+                        <branch_length>0.09977</branch_length>
+                        <taxonomy>
+                           <code>CANFA</code>
+                        </taxonomy>
+                     </clade>
+                     <clade>
+                        <name>13_HUMAN</name>
+                        <branch_length>0.07433</branch_length>
+                        <taxonomy>
+                           <code>HUMAN</code>
+                        </taxonomy>
+                     </clade>
+                  </clade>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>0.57089</branch_length>
+               <confidence type="bootstrap">66.0</confidence>
+               <events>
+                  <speciations>1</speciations>
+               </events>
+               <clade>
+                  <branch_length>0.53798</branch_length>
+                  <confidence type="bootstrap">100.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <name>16_SPHGR</name>
+                     <branch_length>1.0E-5</branch_length>
+                     <taxonomy>
+                        <code>SPHGR</code>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <name>17_SPHGR</name>
+                     <branch_length>1.0E-5</branch_length>
+                     <taxonomy>
+                        <code>SPHGR</code>
+                     </taxonomy>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>0.69471</branch_length>
+                  <confidence type="bootstrap">89.0</confidence>
+                  <events>
+                     <speciations>1</speciations>
+                  </events>
+                  <clade>
+                     <branch_length>0.15935</branch_length>
+                     <confidence type="bootstrap">83.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.24123</branch_length>
+                        <confidence type="bootstrap">100.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <name>158_BRARE</name>
+                           <branch_length>1.0E-5</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <name>169_BRARE</name>
+                           <branch_length>1.0E-5</branch_length>
+                           <taxonomy>
+                              <code>BRARE</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>130_TETNG</name>
+                        <branch_length>0.37777</branch_length>
+                        <taxonomy>
+                           <code>TETNG</code>
+                        </taxonomy>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.13835</branch_length>
+                     <confidence type="bootstrap">44.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.1765</branch_length>
+                        <confidence type="bootstrap">73.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <name>122_MOUSE</name>
+                           <branch_length>0.10759</branch_length>
+                           <taxonomy>
+                              <code>MOUSE</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <branch_length>0.09256</branch_length>
+                           <confidence type="bootstrap">44.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <branch_length>0.01016</branch_length>
+                              <confidence type="bootstrap">40.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <branch_length>0.0243</branch_length>
+                                 <confidence type="bootstrap">32.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>11_HUMAN</name>
+                                    <branch_length>0.02336</branch_length>
+                                    <taxonomy>
+                                       <code>HUMAN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>68_BOVIN</name>
+                                    <branch_length>0.24624</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <name>92_CANFA</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>CANFA</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>46_CHICK</name>
+                              <branch_length>1.06707</branch_length>
+                              <taxonomy>
+                                 <code>CHICK</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <name>147_XENLA</name>
+                        <branch_length>0.43513</branch_length>
+                        <taxonomy>
+                           <code>XENLA</code>
+                        </taxonomy>
+                     </clade>
+                  </clade>
+               </clade>
+            </clade>
+         </clade>
+         <clade>
+            <branch_length>0.21984499999999996</branch_length>
+            <confidence type="bootstrap">33.0</confidence>
+            <events>
+               <duplications>1</duplications>
+            </events>
+            <clade>
+               <branch_length>0.13885</branch_length>
+               <confidence type="bootstrap">14.0</confidence>
+               <events>
+                  <duplications>1</duplications>
+               </events>
+               <clade>
+                  <branch_length>0.07066</branch_length>
+                  <confidence type="bootstrap">2.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <branch_length>0.0137</branch_length>
+                     <confidence type="bootstrap">3.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.10632</branch_length>
+                        <confidence type="bootstrap">4.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <branch_length>0.09782</branch_length>
+                           <confidence type="bootstrap">15.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <branch_length>0.08093</branch_length>
+                              <confidence type="bootstrap">32.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <branch_length>0.17228</branch_length>
+                                 <confidence type="bootstrap">52.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <branch_length>0.22305</branch_length>
+                                    <confidence type="bootstrap">76.0</confidence>
+                                    <events>
+                                       <duplications>1</duplications>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.00625</branch_length>
+                                       <confidence type="bootstrap">55.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <name>140_TETNG</name>
+                                          <branch_length>0.92309</branch_length>
+                                          <taxonomy>
+                                             <code>TETNG</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <branch_length>0.07662</branch_length>
+                                          <confidence type="bootstrap">43.0</confidence>
+                                          <events>
+                                             <speciations>1</speciations>
+                                          </events>
+                                          <clade>
+                                             <name>152_XENLA</name>
+                                             <branch_length>0.19286</branch_length>
+                                             <taxonomy>
+                                                <code>XENLA</code>
+                                             </taxonomy>
+                                          </clade>
+                                          <clade>
+                                             <branch_length>0.0429</branch_length>
+                                             <confidence type="bootstrap">35.0</confidence>
+                                             <events>
+                                                <speciations>1</speciations>
+                                             </events>
+                                             <clade>
+                                                <branch_length>0.06125</branch_length>
+                                                <confidence type="bootstrap">68.0</confidence>
+                                                <events>
+                                                   <duplications>1</duplications>
+                                                </events>
+                                                <clade>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <confidence type="bootstrap">93.0</confidence>
+                                                   <events>
+                                                      <duplications>1</duplications>
+                                                   </events>
+                                                   <clade>
+                                                      <branch_length>1.0E-5</branch_length>
+                                                      <confidence type="bootstrap">75.0</confidence>
+                                                      <events>
+                                                         <speciations>1</speciations>
+                                                      </events>
+                                                      <clade>
+                                                         <name>0_HUMAN</name>
+                                                         <branch_length>1.0E-5</branch_length>
+                                                         <taxonomy>
+                                                            <code>HUMAN</code>
+                                                         </taxonomy>
+                                                      </clade>
+                                                      <clade>
+                                                         <name>72_BOVIN</name>
+                                                         <branch_length>0.0105</branch_length>
+                                                         <taxonomy>
+                                                            <code>BOVIN</code>
+                                                         </taxonomy>
+                                                      </clade>
+                                                   </clade>
+                                                   <clade>
+                                                      <name>123_MOUSE</name>
+                                                      <branch_length>0.01053</branch_length>
+                                                      <taxonomy>
+                                                         <code>MOUSE</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                </clade>
+                                                <clade>
+                                                   <name>97_CANFA</name>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <taxonomy>
+                                                      <code>CANFA</code>
+                                                   </taxonomy>
+                                                </clade>
+                                             </clade>
+                                             <clade>
+                                                <name>41_CHICK</name>
+                                                <branch_length>0.03818</branch_length>
+                                                <taxonomy>
+                                                   <code>CHICK</code>
+                                                </taxonomy>
+                                             </clade>
+                                          </clade>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <branch_length>0.07344</branch_length>
+                                       <confidence type="bootstrap">38.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <branch_length>0.18878</branch_length>
+                                          <confidence type="bootstrap">96.0</confidence>
+                                          <events>
+                                             <speciations>1</speciations>
+                                          </events>
+                                          <clade>
+                                             <branch_length>0.02241</branch_length>
+                                             <confidence type="bootstrap">81.0</confidence>
+                                             <events>
+                                                <duplications>1</duplications>
+                                             </events>
+                                             <clade>
+                                                <name>132_TETNG</name>
+                                                <branch_length>1.0E-5</branch_length>
+                                                <taxonomy>
+                                                   <code>TETNG</code>
+                                                </taxonomy>
+                                             </clade>
+                                             <clade>
+                                                <name>135_TETNG</name>
+                                                <branch_length>1.0E-5</branch_length>
+                                                <taxonomy>
+                                                   <code>TETNG</code>
+                                                </taxonomy>
+                                             </clade>
+                                          </clade>
+                                          <clade>
+                                             <name>102_FUGRU</name>
+                                             <branch_length>0.00904</branch_length>
+                                             <taxonomy>
+                                                <code>FUGRU</code>
+                                             </taxonomy>
+                                          </clade>
+                                       </clade>
+                                       <clade>
+                                          <name>167_BRARE</name>
+                                          <branch_length>0.26949</branch_length>
+                                          <taxonomy>
+                                             <code>BRARE</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>0.0375</branch_length>
+                                    <confidence type="bootstrap">23.0</confidence>
+                                    <events>
+                                       <duplications>1</duplications>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.23552</branch_length>
+                                       <confidence type="bootstrap">99.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <name>151_XENLA</name>
+                                          <branch_length>0.12315</branch_length>
+                                          <taxonomy>
+                                             <code>XENLA</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <branch_length>0.22499</branch_length>
+                                          <confidence type="bootstrap">100.0</confidence>
+                                          <events>
+                                             <duplications>1</duplications>
+                                          </events>
+                                          <clade>
+                                             <name>126_MOUSE</name>
+                                             <branch_length>1.0E-5</branch_length>
+                                             <taxonomy>
+                                                <code>MOUSE</code>
+                                             </taxonomy>
+                                          </clade>
+                                          <clade>
+                                             <branch_length>0.01047</branch_length>
+                                             <confidence type="bootstrap">100.0</confidence>
+                                             <events>
+                                                <duplications>1</duplications>
+                                             </events>
+                                             <clade>
+                                                <name>96_CANFA</name>
+                                                <branch_length>1.0E-5</branch_length>
+                                                <taxonomy>
+                                                   <code>CANFA</code>
+                                                </taxonomy>
+                                             </clade>
+                                             <clade>
+                                                <branch_length>1.0E-5</branch_length>
+                                                <confidence type="bootstrap">100.0</confidence>
+                                                <events>
+                                                   <speciations>1</speciations>
+                                                </events>
+                                                <clade>
+                                                   <name>8_HUMAN</name>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <taxonomy>
+                                                      <code>HUMAN</code>
+                                                   </taxonomy>
+                                                </clade>
+                                                <clade>
+                                                   <name>79_BOVIN</name>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <taxonomy>
+                                                      <code>BOVIN</code>
+                                                   </taxonomy>
+                                                </clade>
+                                             </clade>
+                                          </clade>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <branch_length>0.04974</branch_length>
+                                       <confidence type="bootstrap">25.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <branch_length>0.20281</branch_length>
+                                          <confidence type="bootstrap">86.0</confidence>
+                                          <events>
+                                             <duplications>1</duplications>
+                                          </events>
+                                          <clade>
+                                             <branch_length>1.0E-5</branch_length>
+                                             <confidence type="bootstrap">92.0</confidence>
+                                             <events>
+                                                <speciations>1</speciations>
+                                             </events>
+                                             <clade>
+                                                <name>164_BRARE</name>
+                                                <branch_length>0.02901</branch_length>
+                                                <taxonomy>
+                                                   <code>BRARE</code>
+                                                </taxonomy>
+                                             </clade>
+                                             <clade>
+                                                <branch_length>0.06877</branch_length>
+                                                <confidence type="bootstrap">100.0</confidence>
+                                                <events>
+                                                   <speciations>1</speciations>
+                                                </events>
+                                                <clade>
+                                                   <name>136_TETNG</name>
+                                                   <branch_length>0.01045</branch_length>
+                                                   <taxonomy>
+                                                      <code>TETNG</code>
+                                                   </taxonomy>
+                                                </clade>
+                                                <clade>
+                                                   <name>100_FUGRU</name>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <taxonomy>
+                                                      <code>FUGRU</code>
+                                                   </taxonomy>
+                                                </clade>
+                                             </clade>
+                                          </clade>
+                                          <clade>
+                                             <branch_length>0.17649</branch_length>
+                                             <confidence type="bootstrap">84.0</confidence>
+                                             <events>
+                                                <duplications>1</duplications>
+                                             </events>
+                                             <clade>
+                                                <branch_length>0.05352</branch_length>
+                                                <confidence type="bootstrap">97.0</confidence>
+                                                <events>
+                                                   <speciations>1</speciations>
+                                                </events>
+                                                <clade>
+                                                   <name>129_TETNG</name>
+                                                   <branch_length>6.9E-4</branch_length>
+                                                   <taxonomy>
+                                                      <code>TETNG</code>
+                                                   </taxonomy>
+                                                </clade>
+                                                <clade>
+                                                   <name>104_FUGRU</name>
+                                                   <branch_length>0.03078</branch_length>
+                                                   <taxonomy>
+                                                      <code>FUGRU</code>
+                                                   </taxonomy>
+                                                </clade>
+                                             </clade>
+                                             <clade>
+                                                <branch_length>0.23291</branch_length>
+                                                <confidence type="bootstrap">95.0</confidence>
+                                                <events>
+                                                   <speciations>1</speciations>
+                                                </events>
+                                                <clade>
+                                                   <name>128_TETNG</name>
+                                                   <branch_length>0.36032</branch_length>
+                                                   <taxonomy>
+                                                      <code>TETNG</code>
+                                                   </taxonomy>
+                                                </clade>
+                                                <clade>
+                                                   <branch_length>0.24906</branch_length>
+                                                   <confidence type="bootstrap">100.0</confidence>
+                                                   <events>
+                                                      <duplications>1</duplications>
+                                                   </events>
+                                                   <clade>
+                                                      <name>103_FUGRU</name>
+                                                      <branch_length>0.24206</branch_length>
+                                                      <taxonomy>
+                                                         <code>FUGRU</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                   <clade>
+                                                      <branch_length>0.09945</branch_length>
+                                                      <confidence type="bootstrap">65.0</confidence>
+                                                      <events>
+                                                         <duplications>1</duplications>
+                                                      </events>
+                                                      <clade>
+                                                         <name>106_FUGRU</name>
+                                                         <branch_length>0.04182</branch_length>
+                                                         <taxonomy>
+                                                            <code>FUGRU</code>
+                                                         </taxonomy>
+                                                      </clade>
+                                                      <clade>
+                                                         <branch_length>1.0E-5</branch_length>
+                                                         <confidence type="bootstrap">77.0</confidence>
+                                                         <events>
+                                                            <duplications>1</duplications>
+                                                         </events>
+                                                         <clade>
+                                                            <branch_length>0.0141</branch_length>
+                                                            <confidence type="bootstrap">71.0</confidence>
+                                                            <events>
+                                                            <duplications>1</duplications>
+                                                            </events>
+                                                            <clade>
+                                                            <name>112_FUGRU</name>
+                                                            <branch_length>0.03123</branch_length>
+                                                            <taxonomy>
+                                                            <code>FUGRU</code>
+                                                            </taxonomy>
+                                                            </clade>
+                                                            <clade>
+                                                            <name>113_FUGRU</name>
+                                                            <branch_length>0.09693</branch_length>
+                                                            <taxonomy>
+                                                            <code>FUGRU</code>
+                                                            </taxonomy>
+                                                            </clade>
+                                                         </clade>
+                                                         <clade>
+                                                            <branch_length>0.195</branch_length>
+                                                            <confidence type="bootstrap">100.0</confidence>
+                                                            <events>
+                                                            <duplications>1</duplications>
+                                                            </events>
+                                                            <clade>
+                                                            <name>108_FUGRU</name>
+                                                            <branch_length>0.01027</branch_length>
+                                                            <taxonomy>
+                                                            <code>FUGRU</code>
+                                                            </taxonomy>
+                                                            </clade>
+                                                            <clade>
+                                                            <name>111_FUGRU</name>
+                                                            <branch_length>0.01081</branch_length>
+                                                            <taxonomy>
+                                                            <code>FUGRU</code>
+                                                            </taxonomy>
+                                                            </clade>
+                                                         </clade>
+                                                      </clade>
+                                                   </clade>
+                                                </clade>
+                                             </clade>
+                                          </clade>
+                                       </clade>
+                                       <clade>
+                                          <branch_length>0.03668</branch_length>
+                                          <confidence type="bootstrap">58.0</confidence>
+                                          <events>
+                                             <speciations>1</speciations>
+                                          </events>
+                                          <clade>
+                                             <name>149_XENLA</name>
+                                             <branch_length>0.32167</branch_length>
+                                             <taxonomy>
+                                                <code>XENLA</code>
+                                             </taxonomy>
+                                          </clade>
+                                          <clade>
+                                             <branch_length>0.07846</branch_length>
+                                             <confidence type="bootstrap">90.0</confidence>
+                                             <events>
+                                                <speciations>1</speciations>
+                                             </events>
+                                             <clade>
+                                                <name>49_CHICK</name>
+                                                <branch_length>0.05537</branch_length>
+                                                <taxonomy>
+                                                   <code>CHICK</code>
+                                                </taxonomy>
+                                             </clade>
+                                             <clade>
+                                                <branch_length>0.03275</branch_length>
+                                                <confidence type="bootstrap">83.0</confidence>
+                                                <events>
+                                                   <duplications>1</duplications>
+                                                </events>
+                                                <clade>
+                                                   <branch_length>0.192</branch_length>
+                                                   <confidence type="bootstrap">99.0</confidence>
+                                                   <events>
+                                                      <duplications>1</duplications>
+                                                   </events>
+                                                   <clade>
+                                                      <name>63_BOVIN</name>
+                                                      <branch_length>0.1324</branch_length>
+                                                      <taxonomy>
+                                                         <code>BOVIN</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                   <clade>
+                                                      <name>80_BOVIN</name>
+                                                      <branch_length>0.13424</branch_length>
+                                                      <taxonomy>
+                                                         <code>BOVIN</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                </clade>
+                                                <clade>
+                                                   <branch_length>1.0E-5</branch_length>
+                                                   <confidence type="bootstrap">51.0</confidence>
+                                                   <events>
+                                                      <duplications>1</duplications>
+                                                   </events>
+                                                   <clade>
+                                                      <name>57_BOVIN</name>
+                                                      <branch_length>0.01041</branch_length>
+                                                      <taxonomy>
+                                                         <code>BOVIN</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                   <clade>
+                                                      <branch_length>1.0E-5</branch_length>
+                                                      <confidence type="bootstrap">20.0</confidence>
+                                                      <events>
+                                                         <duplications>1</duplications>
+                                                      </events>
+                                                      <clade>
+                                                         <name>117_MOUSE</name>
+                                                         <branch_length>1.0E-5</branch_length>
+                                                         <taxonomy>
+                                                            <code>MOUSE</code>
+                                                         </taxonomy>
+                                                      </clade>
+                                                      <clade>
+                                                         <branch_length>0.01043</branch_length>
+                                                         <confidence type="bootstrap">66.0</confidence>
+                                                         <events>
+                                                            <speciations>1</speciations>
+                                                         </events>
+                                                         <clade>
+                                                            <name>87_CANFA</name>
+                                                            <branch_length>1.0E-5</branch_length>
+                                                            <taxonomy>
+                                                            <code>CANFA</code>
+                                                            </taxonomy>
+                                                         </clade>
+                                                         <clade>
+                                                            <name>1_HUMAN</name>
+                                                            <branch_length>1.0E-5</branch_length>
+                                                            <taxonomy>
+                                                            <code>HUMAN</code>
+                                                            </taxonomy>
+                                                         </clade>
+                                                      </clade>
+                                                   </clade>
+                                                </clade>
+                                             </clade>
+                                          </clade>
+                                       </clade>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <name>25_BRAFL</name>
+                                 <branch_length>0.4534</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>15_SPHGR</name>
+                              <branch_length>0.68488</branch_length>
+                              <taxonomy>
+                                 <code>SPHGR</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>21_SPHGR</name>
+                           <branch_length>1.05022</branch_length>
+                           <taxonomy>
+                              <code>SPHGR</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.08808</branch_length>
+                        <confidence type="bootstrap">22.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <name>33_NEMVE</name>
+                           <branch_length>0.482</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <name>30_NEMVE</name>
+                           <branch_length>0.47217</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.28685</branch_length>
+                     <confidence type="bootstrap">9.0</confidence>
+                     <events>
+                        <duplications>1</duplications>
+                     </events>
+                     <clade>
+                        <branch_length>0.17977</branch_length>
+                        <confidence type="bootstrap">14.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <branch_length>0.4495</branch_length>
+                           <confidence type="bootstrap">92.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <branch_length>0.33029</branch_length>
+                              <confidence type="bootstrap">89.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <branch_length>0.13116</branch_length>
+                                 <confidence type="bootstrap">61.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <name>165_BRARE</name>
+                                    <branch_length>0.30255</branch_length>
+                                    <taxonomy>
+                                       <code>BRARE</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>162_BRARE</name>
+                                    <branch_length>0.62996</branch_length>
+                                    <taxonomy>
+                                       <code>BRARE</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.22822</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>137_TETNG</name>
+                                    <branch_length>0.24501</branch_length>
+                                    <taxonomy>
+                                       <code>TETNG</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>107_FUGRU</name>
+                                    <branch_length>0.04204</branch_length>
+                                    <taxonomy>
+                                       <code>FUGRU</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <branch_length>0.25726</branch_length>
+                              <confidence type="bootstrap">94.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <branch_length>0.15529</branch_length>
+                                 <confidence type="bootstrap">59.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>42_CHICK</name>
+                                    <branch_length>0.29479</branch_length>
+                                    <taxonomy>
+                                       <code>CHICK</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>143_XENLA</name>
+                                    <branch_length>0.60398</branch_length>
+                                    <taxonomy>
+                                       <code>XENLA</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.13595</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <name>58_BOVIN</name>
+                                    <branch_length>0.05604</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <confidence type="bootstrap">60.0</confidence>
+                                    <events>
+                                       <duplications>1</duplications>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.02217</branch_length>
+                                       <confidence type="bootstrap">78.0</confidence>
+                                       <events>
+                                          <duplications>1</duplications>
+                                       </events>
+                                       <clade>
+                                          <branch_length>1.0E-5</branch_length>
+                                          <confidence type="bootstrap">42.0</confidence>
+                                          <events>
+                                             <speciations>1</speciations>
+                                          </events>
+                                          <clade>
+                                             <name>85_CANFA</name>
+                                             <branch_length>0.01109</branch_length>
+                                             <taxonomy>
+                                                <code>CANFA</code>
+                                             </taxonomy>
+                                          </clade>
+                                          <clade>
+                                             <name>2_HUMAN</name>
+                                             <branch_length>0.01103</branch_length>
+                                             <taxonomy>
+                                                <code>HUMAN</code>
+                                             </taxonomy>
+                                          </clade>
+                                       </clade>
+                                       <clade>
+                                          <name>124_MOUSE</name>
+                                          <branch_length>0.04504</branch_length>
+                                          <taxonomy>
+                                             <code>MOUSE</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <name>73_BOVIN</name>
+                                       <branch_length>1.0E-5</branch_length>
+                                       <taxonomy>
+                                          <code>BOVIN</code>
+                                       </taxonomy>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <branch_length>0.53052</branch_length>
+                           <confidence type="bootstrap">100.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <name>45_CHICK</name>
+                              <branch_length>0.17601</branch_length>
+                              <taxonomy>
+                                 <code>CHICK</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <branch_length>0.40974</branch_length>
+                              <confidence type="bootstrap">98.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <branch_length>0.05702</branch_length>
+                                 <confidence type="bootstrap">52.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>91_CANFA</name>
+                                    <branch_length>0.10905</branch_length>
+                                    <taxonomy>
+                                       <code>CANFA</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>0.06948</branch_length>
+                                    <confidence type="bootstrap">63.0</confidence>
+                                    <events>
+                                       <speciations>1</speciations>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.18193</branch_length>
+                                       <confidence type="bootstrap">100.0</confidence>
+                                       <events>
+                                          <duplications>1</duplications>
+                                       </events>
+                                       <clade>
+                                          <name>118_MOUSE</name>
+                                          <branch_length>0.18633</branch_length>
+                                          <taxonomy>
+                                             <code>MOUSE</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <name>127_MOUSE</name>
+                                          <branch_length>1.0E-5</branch_length>
+                                          <taxonomy>
+                                             <code>MOUSE</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <name>3_HUMAN</name>
+                                       <branch_length>0.04341</branch_length>
+                                       <taxonomy>
+                                          <code>HUMAN</code>
+                                       </taxonomy>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.09486</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <name>76_BOVIN</name>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>71_BOVIN</name>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.13006</branch_length>
+                        <confidence type="bootstrap">23.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <branch_length>0.40777</branch_length>
+                           <confidence type="bootstrap">73.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <branch_length>0.33571</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <name>157_BRARE</name>
+                                 <branch_length>0.2958</branch_length>
+                                 <taxonomy>
+                                    <code>BRARE</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>109_FUGRU</name>
+                                 <branch_length>0.19527</branch_length>
+                                 <taxonomy>
+                                    <code>FUGRU</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <branch_length>0.1832</branch_length>
+                              <confidence type="bootstrap">68.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <branch_length>0.78705</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>55_BOVIN</name>
+                                    <branch_length>0.43001</branch_length>
+                                    <taxonomy>
+                                       <code>BOVIN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>0.08251</branch_length>
+                                    <confidence type="bootstrap">65.0</confidence>
+                                    <events>
+                                       <speciations>1</speciations>
+                                    </events>
+                                    <clade>
+                                       <name>119_MOUSE</name>
+                                       <branch_length>0.64738</branch_length>
+                                       <taxonomy>
+                                          <code>MOUSE</code>
+                                       </taxonomy>
+                                    </clade>
+                                    <clade>
+                                       <name>10_HUMAN</name>
+                                       <branch_length>0.18995</branch_length>
+                                       <taxonomy>
+                                          <code>HUMAN</code>
+                                       </taxonomy>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.09353</branch_length>
+                                 <confidence type="bootstrap">48.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>171_CHICK</name>
+                                    <branch_length>0.56823</branch_length>
+                                    <taxonomy>
+                                       <code>CHICK</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>141_XENLA</name>
+                                    <branch_length>0.57176</branch_length>
+                                    <taxonomy>
+                                       <code>XENLA</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>40_CAEEL</name>
+                           <branch_length>1.20795</branch_length>
+                           <taxonomy>
+                              <code>CAEEL</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>0.09583</branch_length>
+                  <confidence type="bootstrap">8.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <branch_length>0.03647</branch_length>
+                     <confidence type="bootstrap">6.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.15942</branch_length>
+                        <confidence type="bootstrap">15.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <branch_length>0.37935</branch_length>
+                           <confidence type="bootstrap">100.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <branch_length>1.0E-5</branch_length>
+                              <confidence type="bootstrap">65.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <name>23_BRAFL</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>24_BRAFL</name>
+                                 <branch_length>0.08958</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>26_BRAFL</name>
+                              <branch_length>1.0E-5</branch_length>
+                              <taxonomy>
+                                 <code>BRAFL</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <branch_length>0.07297</branch_length>
+                           <confidence type="bootstrap">24.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <branch_length>0.74877</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <branch_length>0.22523</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>168_BRARE</name>
+                                    <branch_length>0.13915</branch_length>
+                                    <taxonomy>
+                                       <code>BRARE</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>131_TETNG</name>
+                                    <branch_length>0.07883</branch_length>
+                                    <taxonomy>
+                                       <code>TETNG</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <name>146_XENLA</name>
+                                 <branch_length>0.27947</branch_length>
+                                 <taxonomy>
+                                    <code>XENLA</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>14_SPHGR</name>
+                              <branch_length>0.61862</branch_length>
+                              <taxonomy>
+                                 <code>SPHGR</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.145</branch_length>
+                        <confidence type="bootstrap">29.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <branch_length>0.14662</branch_length>
+                           <confidence type="bootstrap">25.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <name>35_NEMVE</name>
+                              <branch_length>0.49481</branch_length>
+                              <taxonomy>
+                                 <code>NEMVE</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <name>38_NEMVE</name>
+                              <branch_length>0.35293</branch_length>
+                              <taxonomy>
+                                 <code>NEMVE</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>34_NEMVE</name>
+                           <branch_length>0.32221</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+                  <clade>
+                     <branch_length>0.40409</branch_length>
+                     <confidence type="bootstrap">89.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <branch_length>0.10452</branch_length>
+                        <confidence type="bootstrap">28.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <branch_length>0.1139</branch_length>
+                           <confidence type="bootstrap">41.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <branch_length>0.18551</branch_length>
+                              <confidence type="bootstrap">35.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <branch_length>0.13606</branch_length>
+                                 <confidence type="bootstrap">92.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <branch_length>0.05378</branch_length>
+                                    <confidence type="bootstrap">57.0</confidence>
+                                    <events>
+                                       <speciations>1</speciations>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.11874</branch_length>
+                                       <confidence type="bootstrap">90.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <name>110_FUGRU</name>
+                                          <branch_length>0.56162</branch_length>
+                                          <taxonomy>
+                                             <code>FUGRU</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <name>134_TETNG</name>
+                                          <branch_length>0.03296</branch_length>
+                                          <taxonomy>
+                                             <code>TETNG</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <branch_length>0.091</branch_length>
+                                       <confidence type="bootstrap">66.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <branch_length>0.04421</branch_length>
+                                          <confidence type="bootstrap">62.0</confidence>
+                                          <events>
+                                             <speciations>1</speciations>
+                                          </events>
+                                          <clade>
+                                             <branch_length>0.13167</branch_length>
+                                             <confidence type="bootstrap">94.0</confidence>
+                                             <events>
+                                                <duplications>1</duplications>
+                                             </events>
+                                             <clade>
+                                                <name>7_HUMAN</name>
+                                                <branch_length>1.0E-5</branch_length>
+                                                <taxonomy>
+                                                   <code>HUMAN</code>
+                                                </taxonomy>
+                                             </clade>
+                                             <clade>
+                                                <branch_length>0.01865</branch_length>
+                                                <confidence type="bootstrap">61.0</confidence>
+                                                <events>
+                                                   <speciations>1</speciations>
+                                                </events>
+                                                <clade>
+                                                   <branch_length>0.51198</branch_length>
+                                                   <confidence type="bootstrap">100.0</confidence>
+                                                   <events>
+                                                      <speciations>1</speciations>
+                                                   </events>
+                                                   <clade>
+                                                      <name>89_CANFA</name>
+                                                      <branch_length>0.01988</branch_length>
+                                                      <taxonomy>
+                                                         <code>CANFA</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                   <clade>
+                                                      <name>62_BOVIN</name>
+                                                      <branch_length>1.0E-5</branch_length>
+                                                      <taxonomy>
+                                                         <code>BOVIN</code>
+                                                      </taxonomy>
+                                                   </clade>
+                                                </clade>
+                                                <clade>
+                                                   <name>114_MOUSE</name>
+                                                   <branch_length>0.01315</branch_length>
+                                                   <taxonomy>
+                                                      <code>MOUSE</code>
+                                                   </taxonomy>
+                                                </clade>
+                                             </clade>
+                                          </clade>
+                                          <clade>
+                                             <name>48_CHICK</name>
+                                             <branch_length>1.0E-5</branch_length>
+                                             <taxonomy>
+                                                <code>CHICK</code>
+                                             </taxonomy>
+                                          </clade>
+                                       </clade>
+                                       <clade>
+                                          <name>150_XENLA</name>
+                                          <branch_length>0.0853</branch_length>
+                                          <taxonomy>
+                                             <code>XENLA</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <confidence type="bootstrap">38.0</confidence>
+                                    <events>
+                                       <speciations>1</speciations>
+                                    </events>
+                                    <clade>
+                                       <branch_length>0.19569</branch_length>
+                                       <confidence type="bootstrap">100.0</confidence>
+                                       <events>
+                                          <speciations>1</speciations>
+                                       </events>
+                                       <clade>
+                                          <name>101_FUGRU</name>
+                                          <branch_length>0.02185</branch_length>
+                                          <taxonomy>
+                                             <code>FUGRU</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <name>133_TETNG</name>
+                                          <branch_length>0.00907</branch_length>
+                                          <taxonomy>
+                                             <code>TETNG</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                    <clade>
+                                       <branch_length>0.1765</branch_length>
+                                       <confidence type="bootstrap">100.0</confidence>
+                                       <events>
+                                          <duplications>1</duplications>
+                                       </events>
+                                       <clade>
+                                          <name>160_BRARE</name>
+                                          <branch_length>1.0E-5</branch_length>
+                                          <taxonomy>
+                                             <code>BRARE</code>
+                                          </taxonomy>
+                                       </clade>
+                                       <clade>
+                                          <name>161_BRARE</name>
+                                          <branch_length>1.0E-5</branch_length>
+                                          <taxonomy>
+                                             <code>BRARE</code>
+                                          </taxonomy>
+                                       </clade>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.43964</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <duplications>1</duplications>
+                                 </events>
+                                 <clade>
+                                    <name>98_DROME</name>
+                                    <branch_length>0.38195</branch_length>
+                                    <taxonomy>
+                                       <code>DROME</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>99_DROME</name>
+                                    <branch_length>0.30802</branch_length>
+                                    <taxonomy>
+                                       <code>DROME</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <branch_length>0.18404</branch_length>
+                              <confidence type="bootstrap">45.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <name>22_BRAFL</name>
+                                 <branch_length>0.39195</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>18_SPHGR</name>
+                                 <branch_length>0.4734</branch_length>
+                                 <taxonomy>
+                                    <code>SPHGR</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>20_SPHGR</name>
+                           <branch_length>0.64378</branch_length>
+                           <taxonomy>
+                              <code>SPHGR</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.06108</branch_length>
+                        <confidence type="bootstrap">45.0</confidence>
+                        <events>
+                           <duplications>1</duplications>
+                        </events>
+                        <clade>
+                           <name>39_NEMVE</name>
+                           <branch_length>0.56478</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <branch_length>0.12162</branch_length>
+                           <confidence type="bootstrap">57.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <branch_length>0.46294</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <name>37_NEMVE</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>NEMVE</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>29_NEMVE</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>NEMVE</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                           <clade>
+                              <name>31_NEMVE</name>
+                              <branch_length>0.56073</branch_length>
+                              <taxonomy>
+                                 <code>NEMVE</code>
+                              </taxonomy>
+                           </clade>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+            </clade>
+            <clade>
+               <branch_length>0.11059</branch_length>
+               <confidence type="bootstrap">29.0</confidence>
+               <events>
+                  <duplications>1</duplications>
+               </events>
+               <clade>
+                  <branch_length>0.24695</branch_length>
+                  <confidence type="bootstrap">52.0</confidence>
+                  <events>
+                     <duplications>1</duplications>
+                  </events>
+                  <clade>
+                     <name>172_XENLA</name>
+                     <branch_length>0.53649</branch_length>
+                     <taxonomy>
+                        <code>XENLA</code>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <branch_length>0.09295</branch_length>
+                     <confidence type="bootstrap">50.0</confidence>
+                     <events>
+                        <duplications>1</duplications>
+                     </events>
+                     <clade>
+                        <branch_length>0.14603</branch_length>
+                        <confidence type="bootstrap">87.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <branch_length>0.09214</branch_length>
+                           <confidence type="bootstrap">65.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <name>19_SPHGR</name>
+                              <branch_length>0.37571</branch_length>
+                              <taxonomy>
+                                 <code>SPHGR</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <branch_length>0.09991</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <name>28_BRAFL</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <name>27_BRAFL</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>BRAFL</code>
+                                 </taxonomy>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <name>36_NEMVE</name>
+                           <branch_length>0.36151</branch_length>
+                           <taxonomy>
+                              <code>NEMVE</code>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                     <clade>
+                        <branch_length>0.34289</branch_length>
+                        <confidence type="bootstrap">100.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <name>50_CHICK</name>
+                           <branch_length>0.05827</branch_length>
+                           <taxonomy>
+                              <code>CHICK</code>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <branch_length>0.22124</branch_length>
+                           <confidence type="bootstrap">92.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <name>170_MOUSE</name>
+                              <branch_length>0.17237</branch_length>
+                              <taxonomy>
+                                 <code>MOUSE</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <branch_length>1.0E-5</branch_length>
+                              <confidence type="bootstrap">59.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <name>67_BOVIN</name>
+                                 <branch_length>0.05006</branch_length>
+                                 <taxonomy>
+                                    <code>BOVIN</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.00337</branch_length>
+                                 <confidence type="bootstrap">81.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>84_CANFA</name>
+                                    <branch_length>0.01072</branch_length>
+                                    <taxonomy>
+                                       <code>CANFA</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>0.02097</branch_length>
+                                    <confidence type="bootstrap">98.0</confidence>
+                                    <events>
+                                       <duplications>1</duplications>
+                                    </events>
+                                    <clade>
+                                       <name>6_HUMAN</name>
+                                       <branch_length>0.02091</branch_length>
+                                       <taxonomy>
+                                          <code>HUMAN</code>
+                                       </taxonomy>
+                                    </clade>
+                                    <clade>
+                                       <name>5_HUMAN</name>
+                                       <branch_length>0.01043</branch_length>
+                                       <taxonomy>
+                                          <code>HUMAN</code>
+                                       </taxonomy>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+               <clade>
+                  <branch_length>0.20775</branch_length>
+                  <confidence type="bootstrap">73.0</confidence>
+                  <events>
+                     <speciations>1</speciations>
+                  </events>
+                  <clade>
+                     <name>32_NEMVE</name>
+                     <branch_length>0.30744</branch_length>
+                     <taxonomy>
+                        <code>NEMVE</code>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <branch_length>0.27579</branch_length>
+                     <confidence type="bootstrap">64.0</confidence>
+                     <events>
+                        <speciations>1</speciations>
+                     </events>
+                     <clade>
+                        <name>53_CIOIN</name>
+                        <branch_length>0.40206</branch_length>
+                        <taxonomy>
+                           <code>CIOIN</code>
+                        </taxonomy>
+                     </clade>
+                     <clade>
+                        <branch_length>0.28261</branch_length>
+                        <confidence type="bootstrap">92.0</confidence>
+                        <events>
+                           <speciations>1</speciations>
+                        </events>
+                        <clade>
+                           <branch_length>0.05338</branch_length>
+                           <confidence type="bootstrap">67.0</confidence>
+                           <events>
+                              <duplications>1</duplications>
+                           </events>
+                           <clade>
+                              <name>156_BRAREb</name>
+                              <branch_length>0.64914</branch_length>
+                              <taxonomy>
+                                 <code>BRARE</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <branch_length>0.0829</branch_length>
+                              <confidence type="bootstrap">70.0</confidence>
+                              <events>
+                                 <speciations>1</speciations>
+                              </events>
+                              <clade>
+                                 <name>156_BRAREa</name>
+                                 <branch_length>0.18704</branch_length>
+                                 <taxonomy>
+                                    <code>BRARE</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.03919</branch_length>
+                                 <confidence type="bootstrap">100.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>138_TETNG</name>
+                                    <branch_length>0.03397</branch_length>
+                                    <taxonomy>
+                                       <code>TETNG</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <name>173_FUGRU</name>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <taxonomy>
+                                       <code>FUGRU</code>
+                                    </taxonomy>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                        <clade>
+                           <branch_length>0.15101</branch_length>
+                           <confidence type="bootstrap">78.0</confidence>
+                           <events>
+                              <speciations>1</speciations>
+                           </events>
+                           <clade>
+                              <name>153_XENLA</name>
+                              <branch_length>0.15191</branch_length>
+                              <taxonomy>
+                                 <code>XENLA</code>
+                              </taxonomy>
+                           </clade>
+                           <clade>
+                              <branch_length>0.24267</branch_length>
+                              <confidence type="bootstrap">100.0</confidence>
+                              <events>
+                                 <duplications>1</duplications>
+                              </events>
+                              <clade>
+                                 <name>116_MOUSE</name>
+                                 <branch_length>1.0E-5</branch_length>
+                                 <taxonomy>
+                                    <code>MOUSE</code>
+                                 </taxonomy>
+                              </clade>
+                              <clade>
+                                 <branch_length>0.04527</branch_length>
+                                 <confidence type="bootstrap">49.0</confidence>
+                                 <events>
+                                    <speciations>1</speciations>
+                                 </events>
+                                 <clade>
+                                    <name>4_HUMAN</name>
+                                    <branch_length>1.0E-5</branch_length>
+                                    <taxonomy>
+                                       <code>HUMAN</code>
+                                    </taxonomy>
+                                 </clade>
+                                 <clade>
+                                    <branch_length>0.011</branch_length>
+                                    <confidence type="bootstrap">37.0</confidence>
+                                    <events>
+                                       <speciations>1</speciations>
+                                    </events>
+                                    <clade>
+                                       <name>94_CANFA</name>
+                                       <branch_length>1.0E-5</branch_length>
+                                       <taxonomy>
+                                          <code>CANFA</code>
+                                       </taxonomy>
+                                    </clade>
+                                    <clade>
+                                       <name>82_BOVIN</name>
+                                       <branch_length>1.0E-5</branch_length>
+                                       <taxonomy>
+                                          <code>BOVIN</code>
+                                       </taxonomy>
+                                    </clade>
+                                 </clade>
+                              </clade>
+                           </clade>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+            </clade>
+         </clade>
+      </clade>
+   </phylogeny>
+</phyloxml>
diff --git a/examples/phyloxml/example1.xml b/examples/phyloxml/example1.xml
new file mode 100644
index 0000000..f61b0c0
--- /dev/null
+++ b/examples/phyloxml/example1.xml
@@ -0,0 +1,51 @@
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phyloxml.org" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd">
+    <phylogeny rooted="true">
+        <name>Alcohol dehydrogenases</name>
+        <description>contains examples of commonly used elements</description>
+        <clade>
+            <events>
+                <speciations>1</speciations>
+            </events>
+            <clade>
+                <taxonomy>
+                    <id provider="ncbi">6645</id>
+                    <scientific_name>Octopus vulgaris</scientific_name>
+                    <synonym>Timor monitor</synonym>
+                </taxonomy>
+                <sequence>
+                    <accession source="UniProtKB">P81431</accession>
+                    <name>Alcohol dehydrogenase class-3</name>
+                </sequence>
+
+		<branch_length>10.5</branch_length>
+            </clade>
+            <clade>
+                <confidence type="bootstrap">100</confidence>
+
+                <events>
+                    <speciations>1</speciations>
+                </events>
+                <clade>
+                    <taxonomy>
+                        <id provider="ncbi">1423</id>
+                        <scientific_name>Bacillus subtilis</scientific_name>
+                    </taxonomy>
+                    <sequence>
+                        <accession source="UniProtKB">P71017</accession>
+                        <name>Alcohol dehydrogenase</name>
+                    </sequence>
+                </clade>
+                <clade>
+                    <taxonomy>
+                        <id provider="ncbi">562</id>
+                        <scientific_name>Escherichia coli</scientific_name>
+                    </taxonomy>
+                    <sequence>
+                        <accession source="UniProtKB">Q46856</accession>
+                        <name>Alcohol dehydrogenase</name>
+                    </sequence>
+                </clade>
+            </clade>
+        </clade>
+    </phylogeny>
+</phyloxml>
diff --git a/examples/phyloxml/example2.xml b/examples/phyloxml/example2.xml
new file mode 100644
index 0000000..5fe9dc2
--- /dev/null
+++ b/examples/phyloxml/example2.xml
@@ -0,0 +1,47 @@
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phyloxml.org" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd">
+    <phylogeny rooted="true">
+        <name>Alcohol dehydrogenases</name>
+        <description>contains examples of commonly used elements</description>
+        <clade>
+            <events>
+                <speciations>1</speciations>
+            </events>
+            <clade>
+                <taxonomy>
+                    <id provider="ncbi">6645</id>
+                    <scientific_name>Octopus vulgaris</scientific_name>
+                </taxonomy>
+                <sequence>
+                    <accession source="UniProtKB">P81431</accession>
+                    <name>Alcohol dehydrogenase class-3</name>
+                </sequence>
+            </clade>
+            <clade>
+                <confidence type="bootstrap">100</confidence>
+                <events>
+                    <speciations>1</speciations>
+                </events>
+                <clade>
+                    <taxonomy>
+                        <id provider="ncbi">1423</id>
+                        <scientific_name>Bacillus subtilis</scientific_name>
+                    </taxonomy>
+                    <sequence>
+                        <accession source="UniProtKB">P71017</accession>
+                        <name>Alcohol dehydrogenase</name>
+                    </sequence>
+                </clade>
+                <clade>
+                    <taxonomy>
+                        <id provider="ncbi">562</id>
+                        <scientific_name>Escherichia coli</scientific_name>
+                    </taxonomy>
+                    <sequence>
+                        <accession source="UniProtKB">Q46856</accession>
+                        <name>Alcohol dehydrogenase</name>
+                    </sequence>
+                </clade>
+            </clade>
+        </clade>
+    </phylogeny>
+</phyloxml>
diff --git a/examples/phyloxml/example3.xml b/examples/phyloxml/example3.xml
new file mode 100644
index 0000000..99a02c5
--- /dev/null
+++ b/examples/phyloxml/example3.xml
@@ -0,0 +1,428 @@
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phyloxml.org" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd">
+
+   <phylogeny rooted="true">
+      <name>example from Prof. Joe Felsenstein's book "Inferring Phylogenies"</name>
+      <description>phyloXML allows to use either a "branch_length" attribute or element to indicate branch lengths.</description>
+      <clade>
+         <clade branch_length="0.06">
+            <clade branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>example from Prof. Joe Felsenstein's book "Inferring Phylogenies"</name>
+      <description>phyloXML allows to use either a "branch_length" attribute or element to indicate branch lengths.</description>
+      <clade>
+         <clade>
+            <branch_length>0.06</branch_length>
+            <clade>
+               <name>A</name>
+               <branch_length>0.102</branch_length>
+            </clade>
+            <clade>
+               <name>B</name>
+               <branch_length>0.23</branch_length>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <branch_length>0.4</branch_length>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>same example, with support of type "bootstrap"</name>
+      <clade>
+         <clade branch_length="0.06">
+            <name>AB</name>
+            <confidence type="bootstrap">89</confidence>
+            <clade branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>same example, with species and sequence</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade>
+               <name>A</name>
+               <taxonomy>
+                  <scientific_name>E. coli</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <annotation>
+                     <desc>alcohol dehydrogenase</desc>
+                     <confidence type="probability">0.99</confidence>
+                  </annotation>
+               </sequence>
+            </clade>
+            <clade>
+               <name>B</name>
+               <taxonomy>
+                  <scientific_name>B. subtilis</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <annotation>
+                     <desc>alcohol dehydrogenase</desc>
+                     <confidence type="probability">0.91</confidence>
+                  </annotation>
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <taxonomy>
+               <scientific_name>C. elegans</scientific_name>
+            </taxonomy>
+            <sequence>
+               <annotation>
+                  <desc>alcohol dehydrogenase</desc>
+                  <confidence type="probability">0.67</confidence>
+               </annotation>
+            </sequence>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>same example, with gene duplication information and sequence relationships</name>
+      <clade>
+         <events>
+            <speciations>1</speciations>
+         </events>
+         <clade>
+            <events>
+               <duplications>1</duplications>
+            </events>
+            <clade>
+               <taxonomy>
+                  <scientific_name>Bacillus subtilis</scientific_name>
+               </taxonomy>
+               <sequence id_source="x">
+                  <symbol>adhB</symbol>
+                  <accession source="ncbi">AAB80874</accession>
+                  <name>alcohol dehydrogenase</name>
+               </sequence>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <scientific_name>Bacillus subtilis</scientific_name>
+               </taxonomy>
+               <sequence id_source="y">
+                  <symbol>gbsB</symbol>
+                  <accession source="ncbi">CAB15083</accession>
+                  <name>alcohol dehydrogenase</name>
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <taxonomy>
+               <scientific_name>Caenorhabditis elegans</scientific_name>
+            </taxonomy>
+            <sequence id_source="z">
+               <symbol>ADHX</symbol>
+               <accession source="ncbi">Q17335</accession>
+               <name>alcohol dehydrogenase</name>
+               <annotation ref="InterPro:IPR002085" />
+            </sequence>
+         </clade>
+      </clade>
+      <sequence_relation id_ref_0="x" id_ref_1="y" type="paralogy" />
+      <sequence_relation id_ref_0="x" id_ref_1="z" type="orthology" />
+      <sequence_relation id_ref_0="y" id_ref_1="z" type="orthology" />
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>similar example, with more detailed sequence data</name>
+      <clade>
+         <clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">6645</id>
+                  <code>OCTVU</code>
+                  <scientific_name>Octopus vulgaris</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <symbol>ADHX</symbol>
+                  <accession source="UniProtKB">P81431</accession>
+                  <name>Alcohol dehydrogenase class-3</name>
+                  <mol_seq>TDATGKPIKCMAAIAWEAKKPLSIEEVEVAPPKSGEVRIKILHSGVCHTD</mol_seq>
+                  <annotation ref="EC:1.1.1.1" />
+                  <annotation ref="GO:0004022" />
+               </sequence>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">44689</id>
+                  <code>DICDI</code>
+                  <scientific_name>Dictyostelium discoideum</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <symbol>RT4I1</symbol>
+                  <accession source="UniProtKB">Q54II4</accession>
+                  <name>Reticulon-4-interacting protein 1 homolog, mitochondrial precursor</name>
+                  <mol_seq>MKGILLNGYGESLDLLEYKTDLPVPKPIKSQVLIKIHSTSINPLDNVMRK</mol_seq>
+                  <annotation ref="GO:0008270" />
+                  <annotation ref="GO:0016491" />
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <taxonomy>
+               <id provider="NCBI">1488</id>
+               <code>CLOAB</code>
+               <scientific_name>Clostridium acetobutylicum</scientific_name>
+            </taxonomy>
+            <sequence>
+               <symbol>ADHB</symbol>
+               <accession source="UniProtKB">Q04945</accession>
+               <name>NADH-dependent butanol dehydrogenase B</name>
+               <mol_seq>MVDFEYSIPTRIFFGKDKINVLGRELKKYGSKVLIVYGGGSIKRNGIYDK</mol_seq>
+               <annotation ref="GO:0046872" />
+               <annotation ref="KEGG:Tetrachloroethene degradation" />
+            </sequence>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="false">
+      <name>network, node B is connected to TWO nodes: AB and C</name>
+      <clade>
+         <clade id_source="ab" branch_length="0.06">
+            <name>AB</name>
+            <clade id_source="a" branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade id_source="b" branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade id_source="c" branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+      <clade_relation id_ref_0="b" id_ref_1="c" type="network_connection" />
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>same example, using property elements to indicate a "depth" value for marine organisms</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade>
+               <name>A</name>
+               <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 1200 </property>
+            </clade>
+            <clade>
+               <name>B</name>
+               <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 2300 </property>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 200 </property>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>same example, using property elements to indicate a "depth" value for marine organisms by using id refs in
+         order to have property elements outside of the tree topology</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade id_source="id_a">
+               <name>A</name>
+            </clade>
+            <clade id_source="id_b">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade id_source="id_c">
+            <name>C</name>
+         </clade>
+      </clade>
+      <property id_ref="id_a" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 1200 </property>
+      <property id_ref="id_b" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 2300 </property>
+      <property id_ref="id_c" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 200 </property>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>monitor lizards</name>
+      <description>a pylogeny of some monitor lizards</description>
+      <clade>
+         <taxonomy>
+            <id provider="NCBI">8556</id>
+            <scientific_name>Varanus</scientific_name>
+            <rank>genus</rank>
+            <uri desc="EMBL REPTILE DATABASE">http://www.embl-heidelberg.de/~uetz/families/Varanidae.html</uri>
+         </taxonomy>
+         <clade>
+            <taxonomy>
+               <id provider="NCBI">62046</id>
+               <scientific_name>Varanus niloticus</scientific_name>
+               <common_name>Nile monitor</common_name>
+               <rank>species</rank>
+            </taxonomy>
+            <distribution>
+               <desc>Africa</desc>
+            </distribution>
+         </clade>
+         <clade>
+            <taxonomy>
+               <scientific_name>Odatria</scientific_name>
+               <rank>subgenus</rank>
+            </taxonomy>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">169855</id>
+                  <scientific_name>Varanus storri</scientific_name>
+                  <common_name>Storr's monitor</common_name>
+                  <rank>species</rank>
+               </taxonomy>
+               <distribution>
+                  <desc>Australia</desc>
+               </distribution>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">62053</id>
+                  <scientific_name>Varanus timorensis</scientific_name>
+                  <common_name>Timor monitor</common_name>
+                  <rank>species</rank>
+               </taxonomy>
+               <distribution>
+                  <desc>Asia</desc>
+               </distribution>
+            </clade>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>A tree with phylogeographic information</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+               <distribution>
+                  <desc>Hirschweg, Winterthur, Switzerland</desc>
+                  <point geodetic_datum="WGS84" alt_unit="m">
+                     <lat>47.481277</lat>
+                     <long>8.769303</long>
+                     <alt>472</alt>
+                  </point>
+               </distribution>
+            </clade>
+            <clade>
+               <name>B</name>
+               <distribution>
+                  <desc>Nagoya, Aichi, Japan</desc>
+                  <point geodetic_datum="WGS84" alt_unit="m">
+                     <lat>35.155904</lat>
+                     <long>136.915863</long>
+                     <alt>10</alt>
+                  </point>
+               </distribution>
+            </clade>
+            <clade>
+               <name>C</name>
+               <distribution>
+                  <desc>ETH Zürich</desc>
+                  <point geodetic_datum="WGS84" alt_unit="m">
+                     <lat>47.376334</lat>
+                     <long>8.548108</long>
+                     <alt>452</alt>
+                  </point>
+               </distribution>
+            </clade>
+         </clade>
+         <clade>
+            <name>D</name>
+            <distribution>
+               <desc>San Diego</desc>
+               <point geodetic_datum="WGS84" alt_unit="m">
+                  <lat>32.880933</lat>
+                  <long>-117.217543</long>
+                  <alt>104</alt>
+               </point>
+            </distribution>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>A tree with date information</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+               <date unit="mya">
+                  <desc>Silurian</desc>
+                  <value>425</value>
+                  <minimum>416.0</minimum>
+                  <maximum>443.7</maximum>
+               </date>
+            </clade>
+            <clade>
+               <name>B</name>
+               <date unit="mya">
+                  <desc>Devonian</desc>
+                  <value>320</value>
+               </date>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <date unit="mya">
+               <desc>Ediacaran</desc>
+               <value>600</value>
+            </date>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <phylogeny rooted="true">
+      <name>Using another XML language to store an alignment</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+            </clade>
+            <clade>
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+
+   <align:alignment xmlns:align="http://example.org/align">
+      <seq name="A">acgtcgcggcccgtggaagtcctctcct</seq>
+      <seq name="B">aggtcgcggcctgtggaagtcctctcct</seq>
+      <seq name="C">taaatcgc--cccgtgg-agtccc-cct</seq>
+   </align:alignment>
+
+</phyloxml>
diff --git a/examples/phyloxml/multiple_supports.xml b/examples/phyloxml/multiple_supports.xml
new file mode 100644
index 0000000..0a51040
--- /dev/null
+++ b/examples/phyloxml/multiple_supports.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd"
+   xmlns="http://www.phyloxml.org">
+   <phylogeny rooted="true">
+      <name>multiple supports</name>
+      <clade>
+         <taxonomy>
+            <id provider="tol">16299</id>
+            <common_name>Hominidae</common_name>
+         </taxonomy>
+         <clade>
+            <confidence type="posterior">0.5</confidence>
+            <confidence type="bootstrap">98</confidence>
+            <confidence type="likelihood">0.8</confidence>
+            <confidence type="bootstrap">23</confidence>
+            <taxonomy>
+               <id provider="tol">16410</id>
+               <scientific_name>Pongo</scientific_name>
+            </taxonomy>
+            <clade>
+               <taxonomy>
+                  <id provider="tol">65353</id>
+                  <scientific_name>Pongo abelii</scientific_name>
+               </taxonomy>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <id provider="tol">65354</id>
+                  <scientific_name>Pongo pygmaeus</scientific_name>
+               </taxonomy>
+            </clade>
+         </clade>
+         <clade>
+            <confidence type="posterior">0.1</confidence>
+            <confidence type="bootstrap">5</confidence>
+            <confidence type="bootstrap">77</confidence>
+            <confidence type="likelihood">0.4</confidence>
+            <taxonomy>
+               <id provider="tol">16411</id>
+            </taxonomy>
+            <clade>
+               <confidence type="posterior">0.64</confidence>
+               <confidence type="bootstrap">95</confidence>
+               <confidence type="bootstrap">45</confidence>
+               <confidence type="likelihood">0.943</confidence>
+               <taxonomy>
+                  <id provider="tol">16412</id>
+               </taxonomy>
+               <clade>
+                  <confidence type="posterior">0.6</confidence>
+                  <confidence type="bootstrap">94</confidence>
+                  <confidence type="bootstrap">26</confidence>
+                  <confidence type="likelihood">0.78</confidence>
+                  <taxonomy>
+                     <id provider="tol">16413</id>
+                     <scientific_name>Pan</scientific_name>
+                  </taxonomy>
+                  <clade>
+                     <taxonomy>
+                        <id provider="tol">26564</id>
+                        <scientific_name>Pan paniscus</scientific_name>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <taxonomy>
+                        <id provider="tol">26565</id>
+                        <scientific_name>Pan troglodytes</scientific_name>
+                     </taxonomy>
+                  </clade>
+               </clade>
+               <clade>
+                  <confidence type="posterior">0.56</confidence>
+                  <confidence type="bootstrap">100</confidence>
+                  <confidence type="likelihood">0.2</confidence>
+                  <confidence type="bootstrap">20</confidence>
+                  <taxonomy>
+                     <id provider="tol">16414</id>
+                  </taxonomy>
+                  <clade>
+                     <taxonomy>
+                        <id provider="tol">16415</id>
+                        <scientific_name>Ardipithecus</scientific_name>
+                     </taxonomy>
+                  </clade>
+                  <clade>
+                     <confidence type="posterior">0.51</confidence>
+                     <confidence type="bootstrap">99</confidence>
+                     <confidence type="likelihood">0.4</confidence>
+                     <confidence type="bootstrap">21</confidence>
+                     <taxonomy>
+                        <id provider="tol">16416</id>
+                     </taxonomy>
+                     <clade>
+                        <taxonomy>
+                           <id provider="tol">16417</id>
+                           <scientific_name>Australopithecus</scientific_name>
+                        </taxonomy>
+                     </clade>
+                     <clade>
+                        <confidence type="bootstrap">21</confidence>
+                        <confidence type="posterior">0.99</confidence>
+                        <confidence type="bootstrap">77</confidence>
+                        <confidence type="likelihood">0.4</confidence>
+                        <taxonomy>
+                           <id provider="tol">16418</id>
+                           <scientific_name>Homo</scientific_name>
+                        </taxonomy>
+                        <clade>
+                           <taxonomy>
+                              <id provider="tol">16421</id>
+                              <scientific_name>Homo sapiens</scientific_name>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <taxonomy>
+                              <id provider="tol">16422</id>
+                              <scientific_name>Homo erectus</scientific_name>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <taxonomy>
+                              <id provider="tol">16423</id>
+                              <scientific_name>Homo ergaster</scientific_name>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <taxonomy>
+                              <id provider="tol">16424</id>
+                              <scientific_name>Homo rudolfensis</scientific_name>
+                           </taxonomy>
+                        </clade>
+                        <clade>
+                           <taxonomy>
+                              <id provider="tol">16425</id>
+                              <scientific_name>Homo habilis</scientific_name>
+                           </taxonomy>
+                        </clade>
+                     </clade>
+                  </clade>
+               </clade>
+            </clade>
+            <clade>
+               <confidence type="posterior">0.9</confidence>
+               <confidence type="bootstrap">20</confidence>
+               <confidence type="likelihood">0.8</confidence>
+               <confidence type="bootstrap">30</confidence>
+               <taxonomy>
+                  <id provider="tol">16419</id>
+                  <scientific_name>Gorilla</scientific_name>
+               </taxonomy>
+               <clade>
+                  <taxonomy>
+                     <id provider="tol">65355</id>
+                     <scientific_name>Gorilla beringei</scientific_name>
+                  </taxonomy>
+               </clade>
+               <clade>
+                  <taxonomy>
+                     <id provider="tol">65356</id>
+                     <scientific_name>Gorilla gorilla</scientific_name>
+                  </taxonomy>
+               </clade>
+            </clade>
+         </clade>
+      </clade>
+   </phylogeny>
+</phyloxml>
diff --git a/examples/phyloxml/ncbi_taxonomy_metazoa.xml.bz2 b/examples/phyloxml/ncbi_taxonomy_metazoa.xml.bz2
new file mode 100644
index 0000000..eb9327a
Binary files /dev/null and b/examples/phyloxml/ncbi_taxonomy_metazoa.xml.bz2 differ
diff --git a/examples/phyloxml/phyloxml_examples.xml b/examples/phyloxml/phyloxml_examples.xml
new file mode 100644
index 0000000..16cf763
--- /dev/null
+++ b/examples/phyloxml/phyloxml_examples.xml
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd"
+   xmlns="http://www.phyloxml.org">
+   <phylogeny rooted="true">
+      <name>example from Prof. Joe Felsenstein's book "Inferring Phylogenies"</name>
+      <description>phyloXML allows to use either a "branch_length" attribute or element to indicate branch lengths.</description>
+      <clade>
+         <clade branch_length="0.06">
+            <clade branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>example from Prof. Joe Felsenstein's book "Inferring Phylogenies"</name>
+      <description>phyloXML allows to use either a "branch_length" attribute or element to indicate branch lengths.</description>
+      <clade>
+         <clade>
+            <branch_length>0.06</branch_length>
+            <clade>
+               <name>A</name>
+               <branch_length>0.102</branch_length>
+            </clade>
+            <clade>
+               <name>B</name>
+               <branch_length>0.23</branch_length>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <branch_length>0.4</branch_length>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>same example, with support of type "bootstrap"</name>
+      <clade>
+         <clade branch_length="0.06">
+            <name>AB</name>
+            <confidence type="bootstrap">89</confidence>
+            <clade branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>same example, with species and sequence</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade>
+               <name>A</name>
+               <taxonomy>
+                  <scientific_name>E. coli</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <annotation>
+                     <desc>alcohol dehydrogenase</desc>
+                     <confidence type="probability">0.99</confidence>
+                  </annotation>
+               </sequence>
+            </clade>
+            <clade>
+               <name>B</name>
+               <taxonomy>
+                  <scientific_name>B. subtilis</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <annotation>
+                     <desc>alcohol dehydrogenase</desc>
+                     <confidence type="probability">0.91</confidence>
+                  </annotation>
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <taxonomy>
+               <scientific_name>C. elegans</scientific_name>
+            </taxonomy>
+            <sequence>
+               <annotation>
+                  <desc>alcohol dehydrogenase</desc>
+                  <confidence type="probability">0.67</confidence>
+               </annotation>
+            </sequence>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>same example, with gene duplication information and sequence relationships</name>
+      <clade>
+         <events>
+            <speciations>1</speciations>
+         </events>
+         <clade>
+            <events>
+               <duplications>1</duplications>
+            </events>
+            <clade>
+               <taxonomy>
+                  <scientific_name>Bacillus subtilis</scientific_name>
+               </taxonomy>
+               <sequence id_source="x">
+                  <symbol>adhB</symbol>
+                  <accession source="ncbi">AAB80874</accession>
+                  <name>alcohol dehydrogenase</name>
+               </sequence>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <scientific_name>Bacillus subtilis</scientific_name>
+               </taxonomy>
+               <sequence id_source="y">
+                  <symbol>gbsB</symbol>
+                  <accession source="ncbi">CAB15083</accession>
+                  <name>alcohol dehydrogenase</name>
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <taxonomy>
+               <scientific_name>Caenorhabditis elegans</scientific_name>
+            </taxonomy>
+            <sequence id_source="z">
+               <symbol>ADHX</symbol>
+               <accession source="ncbi">Q17335</accession>
+               <name>alcohol dehydrogenase</name>
+               <annotation ref="InterPro:IPR002085"/>
+            </sequence>
+         </clade>
+      </clade>
+      <sequence_relation id_ref_0="x" id_ref_1="y" type="paralogy"/>
+      <sequence_relation id_ref_0="x" id_ref_1="z" type="orthology"/>
+      <sequence_relation id_ref_0="y" id_ref_1="z" type="orthology"/>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>similar example, with more detailed sequence data</name>
+      <clade>
+         <clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">6645</id>
+                  <code>OCTVU</code>
+                  <scientific_name>Octopus vulgaris</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <symbol>ADHX</symbol>
+                  <accession source="UniProtKB">P81431</accession>
+                  <name>Alcohol dehydrogenase class-3</name>
+                  <mol_seq>TDATGKPIKCMAAIAWEAKKPLSIEEVEVAPPKSGEVRIKILHSGVCHTD</mol_seq>
+                  <annotation ref="EC:1.1.1.1"/>
+                  <annotation ref="GO:0004022"/>
+               </sequence>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">44689</id>
+                  <code>DICDI</code>
+                  <scientific_name>Dictyostelium discoideum</scientific_name>
+               </taxonomy>
+               <sequence>
+                  <symbol>RT4I1</symbol>
+                  <accession source="UniProtKB">Q54II4</accession>
+                  <name>Reticulon-4-interacting protein 1 homolog, mitochondrial precursor</name>
+                  <mol_seq>MKGILLNGYGESLDLLEYKTDLPVPKPIKSQVLIKIHSTSINPLDNVMRK</mol_seq>
+                  <annotation ref="GO:0008270"/>
+                  <annotation ref="GO:0016491"/>
+               </sequence>
+            </clade>
+         </clade>
+         <clade>
+            <taxonomy>
+               <id provider="NCBI">1488</id>
+               <code>CLOAB</code>
+               <scientific_name>Clostridium acetobutylicum</scientific_name>
+            </taxonomy>
+            <sequence>
+               <symbol>ADHB</symbol>
+               <accession source="UniProtKB">Q04945</accession>
+               <name>NADH-dependent butanol dehydrogenase B</name>
+               <mol_seq>MVDFEYSIPTRIFFGKDKINVLGRELKKYGSKVLIVYGGGSIKRNGIYDK</mol_seq>
+               <annotation ref="GO:0046872"/>
+               <annotation ref="KEGG:Tetrachloroethene degradation"/>
+            </sequence>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="false">
+      <name>network, node B is connected to TWO nodes: AB and C</name>
+      <clade>
+         <clade id_source="ab" branch_length="0.06">
+            <name>AB</name>
+            <clade id_source="a" branch_length="0.102">
+               <name>A</name>
+            </clade>
+            <clade id_source="b" branch_length="0.23">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade id_source="c" branch_length="0.4">
+            <name>C</name>
+         </clade>
+      </clade>
+      <clade_relation id_ref_0="b" id_ref_1="c" type="network_connection"/>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>same example, using property elements to indicate a "depth" value for marine organisms</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade>
+               <name>A</name>
+               <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 1200 </property>
+            </clade>
+            <clade>
+               <name>B</name>
+               <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 2300 </property>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <property datatype="xsd:integer" ref="NOAA:depth" applies_to="clade" unit="METRIC:m"> 200 </property>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>same example, using property elements to indicate a "depth" value for marine organisms by using id refs in
+         order to have property elements outside of the tree topology</name>
+      <clade>
+         <clade>
+            <name>AB</name>
+            <clade id_source="id_a">
+               <name>A</name>
+            </clade>
+            <clade id_source="id_b">
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade id_source="id_c">
+            <name>C</name>
+         </clade>
+      </clade>
+      <property id_ref="id_a" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 1200 </property>
+      <property id_ref="id_b" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 2300 </property>
+      <property id_ref="id_c" datatype="xsd:integer" ref="NOAA:depth" applies_to="node" unit="METRIC:m"> 200 </property>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>monitor lizards</name>
+      <description>a pylogeny of some monitor lizards</description>
+      <clade>
+         <taxonomy>
+            <id provider="NCBI">8556</id>
+            <scientific_name>Varanus</scientific_name>
+            <rank>genus</rank>
+            <uri desc="EMBL REPTILE DATABASE">http://www.embl-heidelberg.de/~uetz/families/Varanidae.html</uri>
+         </taxonomy>
+         <clade>
+            <taxonomy>
+               <id provider="NCBI">62046</id>
+               <scientific_name>Varanus niloticus</scientific_name>
+               <common_name>Nile monitor</common_name>
+               <rank>species</rank>
+            </taxonomy>
+            <distribution>
+               <desc>Africa</desc>
+            </distribution>
+         </clade>
+         <clade>
+            <taxonomy>
+               <scientific_name>Odatria</scientific_name>
+               <rank>subgenus</rank>
+            </taxonomy>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">169855</id>
+                  <scientific_name>Varanus storri</scientific_name>
+                  <common_name>Storr's monitor</common_name>
+                  <rank>species</rank>
+               </taxonomy>
+               <distribution>
+                  <desc>Australia</desc>
+               </distribution>
+            </clade>
+            <clade>
+               <taxonomy>
+                  <id provider="NCBI">62053</id>
+                  <scientific_name>Varanus timorensis</scientific_name>
+                  <common_name>Timor monitor</common_name>
+                  <rank>species</rank>
+               </taxonomy>
+               <distribution>
+                  <desc>Asia</desc>
+               </distribution>
+            </clade>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>A tree with phylogeographic information</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+               <distribution>
+                  <desc>Hirschweg, Winterthur, Switzerland</desc>
+                  <point geodetic_datum="WGS84">
+                     <lat>47.481277</lat>
+                     <long>8.769303</long>
+                     <alt>472</alt>
+                  </point>
+               </distribution>
+            </clade>
+            <clade>
+               <name>B</name>
+               <distribution>
+                  <desc>Nagoya, Aichi, Japan</desc>
+                  <point geodetic_datum="WGS84">
+                     <lat>35.155904</lat>
+                     <long>136.915863</long>
+                     <alt>10</alt>
+                  </point>
+               </distribution>
+            </clade>
+            <clade>
+               <name>C</name>
+               <distribution>
+                  <desc>ETH Zürich</desc>
+                  <point geodetic_datum="WGS84">
+                     <lat>47.376334</lat>
+                     <long>8.548108</long>
+                     <alt>452</alt>
+                  </point>
+               </distribution>
+            </clade>
+         </clade>
+         <clade>
+            <name>D</name>
+            <distribution>
+               <desc>San Diego</desc>
+               <point geodetic_datum="WGS84">
+                  <lat>32.880933</lat>
+                  <long>-117.217543</long>
+                  <alt>104</alt>
+               </point>
+            </distribution>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>A tree with date information</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+               <date unit="mya">
+                  <desc>Silurian</desc>
+                  <value>425</value>
+                  <minimum>416.0</minimum>
+                  <maximum>443.7</maximum>
+               </date>
+            </clade>
+            <clade>
+               <name>B</name>
+               <date unit="mya">
+                  <desc>Devonian</desc>
+                  <value>320</value>
+               </date>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+            <date unit="mya">
+               <desc>Ediacaran</desc>
+               <value>600</value>
+            </date>
+         </clade>
+      </clade>
+   </phylogeny>
+   <phylogeny rooted="true">
+      <name>Using another XML language to store an alignment</name>
+      <clade>
+         <clade>
+            <clade>
+               <name>A</name>
+            </clade>
+            <clade>
+               <name>B</name>
+            </clade>
+         </clade>
+         <clade>
+            <name>C</name>
+         </clade>
+      </clade>
+   </phylogeny>
+   <align:alignment xmlns:align="http://example.org/align">
+      <seq name="A">acgtcgcggcccgtggaagtcctctcct</seq>
+      <seq name="B">aggtcgcggcctgtggaagtcctctcct</seq>
+      <seq name="C">taaatcgc--cccgtgg-agtccc-cct</seq>
+   </align:alignment>
+</phyloxml>
diff --git a/examples/phyloxml/phyloxml_from_scratch.py b/examples/phyloxml/phyloxml_from_scratch.py
new file mode 100644
index 0000000..4ce568a
--- /dev/null
+++ b/examples/phyloxml/phyloxml_from_scratch.py
@@ -0,0 +1,80 @@
+from ete3 import Phyloxml, phyloxml
+import random
+project = Phyloxml()
+
+# Creates a random tree
+phylo = phyloxml.PhyloxmlTree()
+phylo.populate(5, random_branches=True)
+phylo.phyloxml_phylogeny.set_name("test_tree")
+# Add the tree to the phyloxml project
+project.add_phylogeny(phylo)
+
+print project.get_phylogeny()[0]
+
+#          /-iajom
+#     /---|
+#    |     \-wiszh
+#----|
+#    |     /-xrygw
+#     \---|
+#         |     /-gjlwx
+#          \---|
+#               \-ijvnk
+
+# Trees can be operated as normal ETE trees
+phylo.show()
+
+
+# Export the project as phyloXML format
+project.export()
+
+# <phy:Phyloxml xmlns:phy="http://www.phyloxml.org/1.10/phyloxml.xsd">
+#     <phy:phylogeny>
+#         <phy:name>test_tree</phy:name>
+#         <phy:clade>
+#             <phy:name>NoName</phy:name>
+#             <phy:branch_length>0.000000e+00</phy:branch_length>
+#             <phy:confidence type="branch_support">1.0</phy:confidence>
+#             <phy:clade>
+#                 <phy:name>NoName</phy:name>
+#                 <phy:branch_length>1.665083e-01</phy:branch_length>
+#                 <phy:confidence type="branch_support">0.938507980435</phy:confidence>
+#                 <phy:clade>
+#                     <phy:name>NoName</phy:name>
+#                     <phy:branch_length>1.366655e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.791888248212</phy:confidence>
+#                     <phy:clade>
+#                         <phy:name>ojnfg</phy:name>
+#                         <phy:branch_length>2.194209e-01</phy:branch_length>
+#                         <phy:confidence type="branch_support">0.304705977822</phy:confidence>
+#                     </phy:clade>
+#                     <phy:clade>
+#                         <phy:name>qrfnz</phy:name>
+#                         <phy:branch_length>5.235437e-02</phy:branch_length>
+#                         <phy:confidence type="branch_support">0.508533765418</phy:confidence>
+#                     </phy:clade>
+#                 </phy:clade>
+#                 <phy:clade>
+#                     <phy:name>shngq</phy:name>
+#                     <phy:branch_length>9.740958e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.642187390965</phy:confidence>
+#                 </phy:clade>
+#             </phy:clade>
+#             <phy:clade>
+#                 <phy:name>NoName</phy:name>
+#                 <phy:branch_length>3.806412e-01</phy:branch_length>
+#                 <phy:confidence type="branch_support">0.383619811911</phy:confidence>
+#                 <phy:clade>
+#                     <phy:name>vfmnk</phy:name>
+#                     <phy:branch_length>6.495163e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.141298879514</phy:confidence>
+#                 </phy:clade>
+#                 <phy:clade>
+#                     <phy:name>btexi</phy:name>
+#                     <phy:branch_length>5.704955e-01</phy:branch_length>
+#                     <phy:confidence type="branch_support">0.951876078012</phy:confidence>
+#                 </phy:clade>
+#             </phy:clade>
+#         </phy:clade>
+#     </phy:phylogeny>
+# </phy:Phyloxml>
diff --git a/examples/phyloxml/phyloxml_parser.py b/examples/phyloxml/phyloxml_parser.py
new file mode 100644
index 0000000..0deeb4c
--- /dev/null
+++ b/examples/phyloxml/phyloxml_parser.py
@@ -0,0 +1,16 @@
+from ete3 import Phyloxml
+project = Phyloxml()
+project.build_from_file("apaf.xml")
+
+# Each tree contains the same methods as a PhyloTree object
+for tree in project.get_phylogeny():
+    print tree
+    # you can even use rendering options
+    tree.show()
+    # PhyloXML features are stored in the phyloxml_clade attribute
+    for node in tree:
+        print "Node name:", node.name
+        for seq in node.phyloxml_clade.get_sequence():
+            for domain in seq.domain_architecture.get_domain():
+                domain_data = [domain.valueOf_, domain.get_from(), domain.get_to()]
+                print "  Domain:", '\t'.join(map(str, domain_data))
diff --git a/examples/phyloxml/tol_life_on_earth.xml.bz2 b/examples/phyloxml/tol_life_on_earth.xml.bz2
new file mode 100644
index 0000000..9c074aa
Binary files /dev/null and b/examples/phyloxml/tol_life_on_earth.xml.bz2 differ
diff --git a/examples/treeview/barchart_and_piechart_faces.py b/examples/treeview/barchart_and_piechart_faces.py
new file mode 100755
index 0000000..63c9556
--- /dev/null
+++ b/examples/treeview/barchart_and_piechart_faces.py
@@ -0,0 +1,41 @@
+import sys
+import random
+from ete3 import Tree, faces, TreeStyle, COLOR_SCHEMES
+
+schema_names = COLOR_SCHEMES.keys()
+
+def layout(node):
+    if node.is_leaf():
+        F= faces.PieChartFace([10,10,10,10,10,10,10,10,10,4,6],
+                              colors=COLOR_SCHEMES["set3"],
+                              width=50, height=50)
+        F.border.width = None
+        F.opacity = 0.8
+        faces.add_face_to_node(F,node, 0, position="branch-right")
+
+        F= faces.PieChartFace([10,20,5,5,60],
+                              colors=COLOR_SCHEMES[random.sample(schema_names, 1)[0]],
+                              width=100, height=40)
+        F.border.width = None
+        F.opacity = 0.8
+        faces.add_face_to_node(F,node, 0, position="branch-right")
+    else:
+        F= faces.BarChartFace([40,20,70,100,30,40,50,40,70,-12], min_value=-12,
+                              colors=COLOR_SCHEMES["spectral"],
+                              labels = "aaa,bbb,cccccc,dd,eeee,ffff,gg,HHH,II,JJJ,KK".split(","),
+                              label_fsize=10, scale_fsize=10)
+        faces.add_face_to_node(F,node, 0, position="branch-top")
+        F.background.color = "#eee"
+
+def get_example_tree():
+    t = Tree()
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.mode = "r"
+    ts.show_leaf_name = False
+    t.populate(10)
+    return t, ts
+
+if __name__ == '__main__':
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
diff --git a/examples/treeview/barcharts.png b/examples/treeview/barcharts.png
new file mode 100644
index 0000000..d62bb8a
Binary files /dev/null and b/examples/treeview/barcharts.png differ
diff --git a/examples/treeview/bubble_map.png b/examples/treeview/bubble_map.png
new file mode 100644
index 0000000..01dbcd6
Binary files /dev/null and b/examples/treeview/bubble_map.png differ
diff --git a/examples/treeview/bubble_map.py b/examples/treeview/bubble_map.py
new file mode 100755
index 0000000..16ac539
--- /dev/null
+++ b/examples/treeview/bubble_map.py
@@ -0,0 +1,49 @@
+import random
+from ete3 import Tree, TreeStyle, NodeStyle, faces, AttrFace, CircleFace
+
+def layout(node):
+    if node.is_leaf():
+        # Add node name to laef nodes
+        N = AttrFace("name", fsize=14, fgcolor="black")
+        faces.add_face_to_node(N, node, 0)
+    if "weight" in node.features:
+        # Creates a sphere face whose size is proportional to node's
+        # feature "weight"
+        C = CircleFace(radius=node.weight, color="RoyalBlue", style="sphere")
+        # Let's make the sphere transparent
+        C.opacity = 0.3
+        # And place as a float face over the tree
+        faces.add_face_to_node(C, node, 0, position="float")
+
+def get_example_tree():
+    # Random tree
+    t = Tree()
+    t.populate(20, random_branches=True)
+
+    # Some random features in all nodes
+    for n in t.traverse():
+        n.add_features(weight=random.randint(0, 50))
+
+    # Create an empty TreeStyle
+    ts = TreeStyle()
+
+    # Set our custom layout function
+    ts.layout_fn = layout
+
+    # Draw a tree
+    ts.mode = "c"
+
+    # We will add node names manually
+    ts.show_leaf_name = False
+    # Show branch data
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+
+    #t.render("bubble_map.png", w=600, dpi=300, tree_style=ts)
+    t.show(tree_style=ts)
+
diff --git a/examples/treeview/face_grid.py b/examples/treeview/face_grid.py
new file mode 100755
index 0000000..410f850
--- /dev/null
+++ b/examples/treeview/face_grid.py
@@ -0,0 +1,48 @@
+from ete3 import Tree, TextFace, NodeStyle, TreeStyle
+
+def get_example_tree():
+    t = Tree("((a,b),c);")
+
+    right_c0_r0 = TextFace("right_col0_row0")
+    right_c0_r1 = TextFace("right_col0_row1")
+    right_c1_r0 = TextFace("right_col1_row0")
+    right_c1_r1 = TextFace("right_col1_row1")
+    right_c1_r2 = TextFace("right_col1_row2")
+
+    top_c0_r0 = TextFace("top_col0_row0")
+    top_c0_r1 = TextFace("top_col0_row1")
+
+    bottom_c0_r0 = TextFace("bottom_col0_row0")
+    bottom_c1_r0 = TextFace("bottom_col1_row0")
+
+    aligned_c0_r0 = TextFace("aligned_col0_row0")
+    aligned_c0_r1 = TextFace("aligned_col0_row1")
+
+    aligned_c1_r0 = TextFace("aligned_col1_row0")
+    aligned_c1_r1 = TextFace("aligned_col1_row1")
+
+
+    t.add_face(right_c0_r1, column=1, position="branch-right")
+    t.add_face(right_c0_r0, column=0, position="branch-right")
+
+    t.add_face(right_c1_r2, column=2, position="branch-right")
+    t.add_face(right_c1_r1, column=1, position="branch-right")
+    t.add_face(right_c1_r0, column=0, position="branch-right")
+
+    t.add_face(top_c0_r1, column=1, position="branch-top")
+    t.add_face(top_c0_r0, column=0, position="branch-top")
+
+    t.add_face(bottom_c0_r0, column=0, position="branch-bottom")
+    t.add_face(bottom_c1_r0, column=1, position="branch-bottom")
+
+    for leaf in t.iter_leaves():
+        leaf.add_face(aligned_c0_r1, 0, "aligned")
+        leaf.add_face(aligned_c0_r0, 0, "aligned")
+        leaf.add_face(aligned_c1_r1, 0, "aligned")
+        leaf.add_face(aligned_c1_r0, 0, "aligned")
+
+    return t, TreeStyle()
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show()
diff --git a/examples/treeview/face_positions.py b/examples/treeview/face_positions.py
new file mode 100755
index 0000000..49b75e9
--- /dev/null
+++ b/examples/treeview/face_positions.py
@@ -0,0 +1,103 @@
+from ete3 import Tree, faces, TreeStyle, NodeStyle
+
+def get_example_tree():
+    t = Tree()
+    t.populate(10)
+
+    # Margins, alignment, border, background and opacity can now be set for any face
+    rs1 = faces.TextFace("branch-right\nmargins&borders",
+                         fsize=12, fgcolor="#009000")
+    rs1.margin_top = 10
+    rs1.margin_bottom = 50
+    rs1.margin_left = 40
+    rs1.margin_right = 40
+    rs1.border.width = 1
+    rs1.background.color = "lightgreen"
+    rs1.inner_border.width = 0
+    rs1.inner_border.line_style = 1
+    rs1.inner_border.color= "red"
+    rs1.opacity = 0.6
+    rs1.hz_align = 2 # 0 left, 1 center, 2 right
+    rs1.vt_align = 1 # 0 left, 1 center, 2 right
+
+    br1 = faces.TextFace("branch-right1", fsize=12, fgcolor="#009000")
+    br2 = faces.TextFace("branch-right3", fsize=12, fgcolor="#009000")
+
+    # New face positions (branch-top and branch-bottom)
+    bb = faces.TextFace("branch-bottom 1", fsize=8, fgcolor="#909000")
+    bb2 = faces.TextFace("branch-bottom 2", fsize=8, fgcolor="#909000")
+    bt = faces.TextFace("branch-top 1", fsize=6, fgcolor="#099000")
+
+    # And faces can also be used as headers or foot notes of aligned
+    # columns
+    t1 = faces.TextFace("Header Face", fsize=12, fgcolor="#aa0000")
+    t2 = faces.TextFace("Footer Face", fsize=12, fgcolor="#0000aa")
+
+    # Attribute faces can now contain prefix and suffix fixed text
+    aligned = faces.AttrFace("name", fsize=12, fgcolor="RoyalBlue",
+                             text_prefix="Aligned (", text_suffix=")")
+    # horizontal and vertical alignment per face
+    aligned.hz_align = 1 # 0 left, 1 center, 2 right
+    aligned.vt_align = 1
+
+    # Node style handling is no longer limited to layout functions. You
+    # can now create fixed node styles and use them many times, save them
+    # or even add them to nodes before drawing (this allows to save and
+    # reproduce an tree image design)
+    style = NodeStyle()
+    style["fgcolor"] = "Gold"
+    style["shape"] = "square"
+    style["size"] = 15
+    style["vt_line_color"] = "#ff0000"
+    t.set_style(style)
+    # add a face to the style. This face will be render in any node
+    # associated to the style.
+    fixed = faces.TextFace("FIXED branch-right", fsize=11, fgcolor="blue")
+    t.add_face(fixed, column=1, position="branch-right")
+    # Bind the precomputed style to the root node
+
+    # ETE 2.1 has now support for general image properties
+    ts = TreeStyle()
+
+    # You can add faces to the tree image (without any node
+    # associated). They will be used as headers and foot notes of the
+    # aligned columns (aligned faces)
+    ts.aligned_header.add_face(t1, column = 0)
+    ts.aligned_header.add_face(t1, 1)
+    ts.aligned_header.add_face(t1, 2)
+    ts.aligned_header.add_face(t1, 3)
+    t1.hz_align = 1 # 0 left, 1 center, 2 right
+    t1.border.width = 1
+
+    ts.aligned_foot.add_face(t2, column = 0)
+    ts.aligned_foot.add_face(t2, 1)
+    ts.aligned_foot.add_face(t2, 2)
+    ts.aligned_foot.add_face(t2, 3)
+    t2.hz_align = 1
+
+    # Set tree image style. Note that aligned header and foot is only
+    # visible in "rect" mode.
+
+    ts.mode =  "r"
+    ts.scale = 10
+    for node in t.traverse():
+        # If node is a leaf, add the nodes name and a its scientific
+        # name
+        if node.is_leaf():
+            node.add_face(aligned, column=0, position="aligned")
+            node.add_face(aligned, column=1, position="aligned")
+            node.add_face(aligned, column=3, position="aligned")
+        else:
+            node.add_face(bt, column=0, position="branch-top")
+            node.add_face(bb, column=0, position="branch-bottom")
+            node.add_face(bb2, column=0, position="branch-bottom")
+            node.add_face(br1, column=0, position="branch-right")
+            node.add_face(rs1, column=0, position="branch-right")
+            node.add_face(br2, column=0, position="branch-right")
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+
diff --git a/examples/treeview/face_rotation.py b/examples/treeview/face_rotation.py
new file mode 100755
index 0000000..1331707
--- /dev/null
+++ b/examples/treeview/face_rotation.py
@@ -0,0 +1,30 @@
+from ete3 import Tree, TreeStyle, add_face_to_node, TextFace
+
+from random import randint
+
+def rotation_layout(node):
+    if node.is_leaf():
+        F = TextFace(node.name, tight_text=True)
+        F.rotation = randint(0, 360)
+        add_face_to_node(TextFace("third" ), node, column=8, position="branch-right")
+        add_face_to_node(TextFace("second" ), node, column=2, position="branch-right")
+        add_face_to_node(F, node, column=0, position="branch-right")
+
+        F.border.width = 1
+        F.inner_border.width = 1
+
+def get_example_tree():
+    t = Tree()
+    t.populate(10)
+    ts = TreeStyle()
+    ts.rotation = 45
+    ts.show_leaf_name = False
+    ts.layout_fn = rotation_layout
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+
+
diff --git a/examples/treeview/float_piechart.png b/examples/treeview/float_piechart.png
new file mode 100644
index 0000000..5afb49d
Binary files /dev/null and b/examples/treeview/float_piechart.png differ
diff --git a/examples/treeview/floating_piecharts.py b/examples/treeview/floating_piecharts.py
new file mode 100755
index 0000000..ed057af
--- /dev/null
+++ b/examples/treeview/floating_piecharts.py
@@ -0,0 +1,30 @@
+import sys
+import random
+from ete3 import Tree, faces, TreeStyle, COLOR_SCHEMES
+
+schema_names = COLOR_SCHEMES.keys()
+
+def layout(node):
+    if not node.is_leaf():
+        size = random.randint(20,50)
+        F= faces.PieChartFace([10,20,60,10],
+                              colors=COLOR_SCHEMES[random.sample(schema_names, 1)[0]],
+                              width=size, height=size)
+        F.border.width = None
+        F.opacity = 0.6
+        faces.add_face_to_node(F,node, 0, position="float")
+
+def get_example_tree():
+    t = Tree()
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.mode = "c"
+    ts.show_leaf_name = True
+    ts.min_leaf_separation = 15
+    t.populate(100)
+    return t, ts
+
+if __name__ == '__main__':
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #t.render("float_piechart.png", tree_style=ts)
diff --git a/examples/treeview/img_faces/chimp.png b/examples/treeview/img_faces/chimp.png
new file mode 100644
index 0000000..5dca588
Binary files /dev/null and b/examples/treeview/img_faces/chimp.png differ
diff --git a/examples/treeview/img_faces/dog.png b/examples/treeview/img_faces/dog.png
new file mode 100644
index 0000000..b6926c6
Binary files /dev/null and b/examples/treeview/img_faces/dog.png differ
diff --git a/examples/treeview/img_faces/fish.png b/examples/treeview/img_faces/fish.png
new file mode 100644
index 0000000..e8a7cfb
Binary files /dev/null and b/examples/treeview/img_faces/fish.png differ
diff --git a/examples/treeview/img_faces/fly.png b/examples/treeview/img_faces/fly.png
new file mode 100644
index 0000000..31b5f1f
Binary files /dev/null and b/examples/treeview/img_faces/fly.png differ
diff --git a/examples/treeview/img_faces/human.png b/examples/treeview/img_faces/human.png
new file mode 100644
index 0000000..ac6f164
Binary files /dev/null and b/examples/treeview/img_faces/human.png differ
diff --git a/examples/treeview/img_faces/img_faces.png b/examples/treeview/img_faces/img_faces.png
new file mode 100644
index 0000000..f0ecc54
Binary files /dev/null and b/examples/treeview/img_faces/img_faces.png differ
diff --git a/examples/treeview/img_faces/img_faces.py b/examples/treeview/img_faces/img_faces.py
new file mode 100644
index 0000000..ed4e382
--- /dev/null
+++ b/examples/treeview/img_faces/img_faces.py
@@ -0,0 +1,135 @@
+# Import Tree instance and faces module
+from ete3 import Tree, faces, TreeStyle
+
+# Loads an example tree
+nw = """
+(((Dre:0.008339,Dme:0.300613)1.000000:0.596401,
+(Cfa:0.640858,Hsa:0.753230)1.000000:0.182035)1.000000:0.106234,
+((Dre:0.271621,Cfa:0.046042)1.000000:0.953250,
+(Hsa:0.061813,Mms:0.110769)1.000000:0.204419)1.000000:0.973467);
+"""
+t = Tree(nw)
+
+# You can create any random tree containing the same leaf names, and
+# layout will work equally
+#
+# t = Tree()
+# Creates a random tree with 8 leaves using a given set of names
+# t.populate(8, ["Dme", "Dre", "Hsa", "Ptr", "Cfa", "Mms"])
+
+# Set the path in which images are located
+img_path = "./"
+# Create faces based on external images
+humanFace = faces.ImgFace(img_path+"human.png")
+mouseFace = faces.ImgFace(img_path+"mouse.png")
+dogFace = faces.ImgFace(img_path+"dog.png")
+chimpFace = faces.ImgFace(img_path+"chimp.png")
+fishFace = faces.ImgFace(img_path+"fish.png")
+flyFace = faces.ImgFace(img_path+"fly.png")
+
+# Create a faces ready to read the name attribute of nodes
+#nameFace = faces.TextFace(open("text").readline().strip(), fsize=20, fgcolor="#009000")
+nameFace = faces.AttrFace("name", fsize=20, fgcolor="#009000")
+
+# Create a conversion between leaf names and real names
+code2name = {
+        "Dre":"Drosophila melanogaster",
+        "Dme":"Danio rerio",
+        "Hsa":"Homo sapiens",
+        "Ptr":"Pan troglodytes",
+        "Mms":"Mus musculus",
+        "Cfa":"Canis familiaris"
+        }
+
+# Creates a dictionary with the descriptions of each leaf name
+code2desc = {
+        "Dre":"""The zebrafish, also known as Danio rerio,
+is a tropical freshwater fish belonging to the
+minnow family (Cyprinidae).""",
+        "Dme":"""True flies are insects of the order Diptera,
+possessing a single pair of wings on the
+mesothorax and a pair of halteres, derived from
+the hind wings, on the metathorax""",
+        "Hsa":"""A human is a member of a species
+of bipedal primates in the family Hominidae.""",
+        "Ptr":"""Chimpanzee, sometimes colloquially
+chimp, is the common name for the
+two extant species of ape in the genus Pan.""",
+        "Mms":"""A mouse is a small mammal belonging to the
+order of rodents.""",
+        "Cfa": """The dog (Canis lupus familiaris) is a
+domesticated subspecies of the Gray Wolf,
+a member of the Canidae family of the
+orderCarnivora."""
+        }
+
+# Creates my own layout function. I will use all previously created
+# faces and will set different node styles depending on the type of
+# node.
+def mylayout(node):
+    # If node is a leaf, add the nodes name and a its scientific
+    # name
+    if node.is_leaf():
+        # Add an static face that handles the node name
+        faces.add_face_to_node(nameFace, node, column=0)
+        # We can also create faces on the fly
+        longNameFace = faces.TextFace(code2name[node.name])
+        faces.add_face_to_node(longNameFace, node, column=0)
+
+        # text faces support multiline. We add a text face
+        # with the whole description of each leaf.
+        descFace = faces.TextFace(code2desc[node.name], fsize=10)
+        descFace.margin_top = 10
+        descFace.margin_bottom = 10
+        descFace.border.margin = 1
+
+        # Note that this faces is added in "aligned" mode
+        faces.add_face_to_node(descFace, node, column=0, aligned=True)
+
+        # Sets the style of leaf nodes
+        node.img_style["size"] = 12
+        node.img_style["shape"] = "circle"
+    #If node is an internal node
+    else:
+        # Sets the style of internal nodes
+        node.img_style["size"] = 6
+        node.img_style["shape"] = "circle"
+        node.img_style["fgcolor"] = "#000000"
+
+    # If an internal node contains more than 4 leaves, add the
+    # images of the represented species sorted in columns of 2
+    # images max.
+    if len(node)>=4:
+        col = 0
+        for i, name in enumerate(set(node.get_leaf_names())):
+            if i>0 and i%2 == 0:
+                col += 1
+            # Add the corresponding face to the node
+            if name.startswith("Dme"):
+                faces.add_face_to_node(flyFace, node, column=col)
+            elif name.startswith("Dre"):
+                faces.add_face_to_node(fishFace, node, column=col)
+            elif name.startswith("Mms"):
+                faces.add_face_to_node(mouseFace, node, column=col)
+            elif name.startswith("Ptr"):
+                faces.add_face_to_node(chimpFace, node, column=col)
+            elif name.startswith("Hsa"):
+                faces.add_face_to_node(humanFace, node, column=col)
+            elif name.startswith("Cfa"):
+                faces.add_face_to_node(dogFace, node, column=col)
+
+            # Modifies this node's style
+            node.img_style["size"] = 16
+            node.img_style["shape"] = "sphere"
+            node.img_style["fgcolor"] = "#AA0000"
+
+    # If leaf is "Hsa" (homo sapiens), highlight it using a
+    # different background.
+    if node.is_leaf() and node.name.startswith("Hsa"):
+        node.img_style["bgcolor"] = "#9db0cf"
+
+# And, finally, Visualize the tree using my own layout function
+ts = TreeStyle()
+ts.layout_fn = mylayout
+t.render("img_faces.png", w=600, tree_style = ts)
+
diff --git a/examples/treeview/img_faces/mouse.png b/examples/treeview/img_faces/mouse.png
new file mode 100644
index 0000000..8929910
Binary files /dev/null and b/examples/treeview/img_faces/mouse.png differ
diff --git a/examples/treeview/item_faces.png b/examples/treeview/item_faces.png
new file mode 100644
index 0000000..57a498c
Binary files /dev/null and b/examples/treeview/item_faces.png differ
diff --git a/examples/treeview/item_faces.py b/examples/treeview/item_faces.py
new file mode 100755
index 0000000..399dfb4
--- /dev/null
+++ b/examples/treeview/item_faces.py
@@ -0,0 +1,121 @@
+# We will need to create Qt4 items
+from PyQt4 import QtCore
+from PyQt4.QtGui import QGraphicsRectItem, QGraphicsSimpleTextItem, \
+    QGraphicsEllipseItem, QColor, QPen, QBrush
+
+from ete3 import Tree, faces, TreeStyle, NodeStyle
+
+# To play with random colors
+import colorsys
+import random
+
+class InteractiveItem(QGraphicsRectItem):
+    def __init__(self, *arg, **karg):
+        QGraphicsRectItem.__init__(self, *arg, **karg)
+        self.node = None
+        self.label = None
+        self.setCursor(QtCore.Qt.PointingHandCursor)
+        self.setAcceptsHoverEvents(True)
+
+    def hoverEnterEvent (self, e):
+        # There are many ways of adding interactive elements. With the
+        # following code, I show/hide a text item over my custom
+        # DynamicItemFace
+        if not self.label:
+            self.label = QGraphicsRectItem()
+            self.label.setParentItem(self)
+            # This is to ensure that the label is rendered over the
+            # rest of item children (default ZValue for items is 0)
+            self.label.setZValue(1)
+            self.label.setBrush(QBrush(QColor("white")))
+            self.label.text = QGraphicsSimpleTextItem()
+            self.label.text.setParentItem(self.label)
+
+        self.label.text.setText(self.node.name)
+        self.label.setRect(self.label.text.boundingRect())
+        self.label.setVisible(True)
+
+    def hoverLeaveEvent(self, e):
+        if self.label:
+            self.label.setVisible(False)
+
+def random_color(h=None):
+    """Generates a random color in RGB format."""
+    if not h:
+        h = random.random()
+    s = 0.5
+    l = 0.5
+    return _hls2hex(h, l, s)
+
+def _hls2hex(h, l, s):
+    return '#%02x%02x%02x' %tuple(map(lambda x: int(x*255),
+                                      colorsys.hls_to_rgb(h, l, s)))
+
+def ugly_name_face(node, *args, **kargs):
+    """ This is my item generator. It must receive a node object, and
+    returns a Qt4 graphics item that can be used as a node face.
+    """
+
+    # receive an arbitrary number of arguments, in this case width and
+    # height of the faces
+    width = args[0][0]
+    height = args[0][1]
+
+    ## Creates a main master Item that will contain all other elements
+    ## Items can be standard QGraphicsItem
+    # masterItem = QGraphicsRectItem(0, 0, width, height)
+
+    # Or your custom Items, in which you can re-implement interactive
+    # functions, etc. Check QGraphicsItem doc for details.
+    masterItem = InteractiveItem(0, 0, width, height)
+
+    # Keep a link within the item to access node info
+    masterItem.node = node
+
+    # I dont want a border around the masterItem
+    masterItem.setPen(QPen(QtCore.Qt.NoPen))
+
+    # Add ellipse around text
+    ellipse = QGraphicsEllipseItem(masterItem.rect())
+    ellipse.setParentItem(masterItem)
+    # Change ellipse color
+    ellipse.setBrush(QBrush(QColor( random_color())))
+
+    # Add node name within the ellipse
+    text = QGraphicsSimpleTextItem(node.name)
+    text.setParentItem(ellipse)
+    text.setPen(QPen(QPen(QColor("white"))))
+
+    # Center text according to masterItem size
+    tw = text.boundingRect().width()
+    th = text.boundingRect().height()
+    center = masterItem.boundingRect().center()
+    text.setPos(center.x()-tw/2, center.y()-th/2)
+
+    return masterItem
+
+def master_ly(node):
+    if node.is_leaf():
+        # Create an ItemFAce. First argument must be the pointer to
+        # the constructor function that returns a QGraphicsItem. It
+        # will be used to draw the Face. Next arguments are arbitrary,
+        # and they will be forwarded to the constructor Face function.
+        F = faces.DynamicItemFace(ugly_name_face, 100, 50)
+        faces.add_face_to_node(F, node, 0, position="aligned")
+
+def get_example_tree():
+
+    t = Tree()
+    t.populate(8, reuse_names=False)
+
+    ts = TreeStyle()
+    ts.layout_fn = master_ly
+    ts.title.add_face(faces.TextFace("Drawing your own Qt Faces", fsize=15), 0)
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+
+    #t.render("item_faces.png", h=400, tree_style=ts)
+    # The interactive features are only available using the GUI
+    t.show(tree_style=ts)
diff --git a/examples/treeview/new_seq_face.py b/examples/treeview/new_seq_face.py
new file mode 100644
index 0000000..81717f2
--- /dev/null
+++ b/examples/treeview/new_seq_face.py
@@ -0,0 +1,308 @@
+# We will need to create Qt4 items
+from PyQt4       import QtCore
+from PyQt4.QtGui import QGraphicsRectItem, QColor, QPen, QBrush
+from PyQt4.QtGui import QGraphicsSimpleTextItem, QFont
+
+from ete3 import faces, TreeStyle, PhyloTree, TextFace
+from random import random
+
+_aafgcolors = {
+    'A':"#000000" ,
+    'R':"#000000" ,
+    'N':"#000000" ,
+    'D':"#000000" ,
+    'C':"#000000" ,
+    'Q':"#000000" ,
+    'E':"#000000" ,
+    'G':"#000000" ,
+    'H':"#000000" ,
+    'I':"#000000" ,
+    'L':"#000000" ,
+    'K':"#000000" ,
+    'M':"#000000" ,
+    'F':"#000000" ,
+    'P':"#000000" ,
+    'S':"#000000" ,
+    'T':"#000000" ,
+    'W':"#000000" ,
+    'Y':"#000000" ,
+    'V':"#000000" ,
+    'B':"#000000" ,
+    'Z':"#000000" ,
+    'X':"#000000",
+    '.':"#000000",
+    '-':"#000000",
+}
+
+_aabgcolors = {
+    'A':"#C8C8C8" ,
+    'R':"#145AFF" ,
+    'N':"#00DCDC" ,
+    'D':"#E60A0A" ,
+    'C':"#E6E600" ,
+    'Q':"#00DCDC" ,
+    'E':"#E60A0A" ,
+    'G':"#EBEBEB" ,
+    'H':"#8282D2" ,
+    'I':"#0F820F" ,
+    'L':"#0F820F" ,
+    'K':"#145AFF" ,
+    'M':"#E6E600" ,
+    'F':"#3232AA" ,
+    'P':"#DC9682" ,
+    'S':"#FA9600" ,
+    'T':"#FA9600" ,
+    'W':"#B45AB4" ,
+    'Y':"#3232AA" ,
+    'V':"#0F820F" ,
+    'B':"#FF69B4" ,
+    'Z':"#FF69B4" ,
+    'X':"#BEA06E",
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    }
+
+_ntfgcolors = {
+    'A':'#000000',
+    'G':'#000000',
+    'I':'#000000',
+    'C':'#000000',
+    'T':'#000000',
+    'U':'#000000',
+    '.':"#000000",
+    '-':"#000000",
+    ' ':"#000000"
+    }
+
+_ntbgcolors = {
+    'A':'#A0A0FF',
+    'G':'#FF7070',
+    'I':'#80FFFF',
+    'C':'#FF8C4B',
+    'T':'#A0FFA0',
+    'U':'#FF8080',
+    '.':"#FFFFFF",
+    '-':"#FFFFFF",
+    ' ':"#FFFFFF"
+}
+
+
+class MySequenceFace(faces.StaticItemFace):
+    """ Creates a new molecular sequence face object.
+
+
+    :argument seq:  Sequence string to be drawn
+    :argument seqtype: Type of sequence: "nt" or "aa"
+    :argument fsize:   Font size,  (default=10)
+
+    You can set custom colors for amino-acids or nucleotides:
+
+    :argument None  codon       : a string that corresponds to the reverse translation of the amino-acid sequence
+    :argument 11    col_w       : width of the column (if col_w is lower than font size, letter wont be displayed)
+    :argument None  fg_colors   : dictionary of colors for foreground, with as keys each possible character in sequences, and as value the colors
+    :argument None  bg_colors   : dictionary of colors for background, with as keys each possible character in sequences, and as value the colors
+    :argument 3     alt_col_w   : works together with special_col option, defines the width of given columns
+    :argument None  special_col : list of lists containing the bounds of columns to be displayed with alt_col_w as width
+    :argument False interactive : more info can be displayed when mouse over sequence
+
+    """
+    def __init__(self, seq, seqtype="aa", fsize=10,
+                 fg_colors=None, bg_colors=None,
+                 codon=None, col_w=11, alt_col_w=3,
+                 special_col=None, interactive=False):
+        self.seq         = seq
+        self.codon       = codon
+        self.fsize       = fsize
+        self.style       = seqtype
+        self.col_w       = float(col_w)
+        self.alt_col_w   = float(alt_col_w)
+        self.special_col = special_col if special_col else []
+        self.width       = 0 # will store the width of the whole sequence
+        self.interact    = interactive
+
+        if self.style == "aa":
+            if not fg_colors:
+                fg_colors = _aafgcolors
+            if not bg_colors:
+                bg_colors = _aabgcolors
+        else:
+            if not fg_colors:
+                fg_colors = _ntfgcolors
+            if not bg_colors:
+                bg_colors = _ntbgcolors
+
+        self.fg_col = self.__init_col(fg_colors)
+        self.bg_col = self.__init_col(bg_colors)
+
+        # for future?
+        self.row_h       = 13.0
+
+        super(MySequenceFace,
+              self).__init__(QGraphicsRectItem(0, 0, self.width, self.row_h))
+
+    def __init_col(self, color_dic):
+        """to speed up the drawing of colored rectangles and characters"""
+        new_color_dic = {}
+        for car in color_dic:
+            new_color_dic[car] = QBrush(QColor(color_dic[car]))
+        return new_color_dic
+
+    def update_items(self):
+        #self.item = QGraphicsRectItem(0,0,self._total_w, self.row_h)
+        seq_width = 0
+        nopen = QPen(QtCore.Qt.NoPen)
+        font = QFont("Courier", self.fsize)
+        rect_cls = self.InteractiveLetterItem if self.interact else QGraphicsRectItem
+        for i, letter in enumerate(self.seq):
+            width = self.col_w
+            for m in self.special_col:
+                if m[0] < i <= m[1]:
+                    width = self.alt_col_w
+                    break
+            #load interactive item if called correspondingly
+            rectItem = rect_cls(0, 0, width, self.row_h, parent=self.item)
+            rectItem.setX(seq_width) # to give correct X to children item
+            rectItem.setBrush(self.bg_col[letter])
+            rectItem.setPen(nopen)
+            if self.interact:
+                if self.codon:
+                    rectItem.codon = '%s, %d: %s' % (self.seq[i], i,
+                                                     self.codon[i*3:i*3+3])
+                else:
+                    rectItem.codon = '%s, %d' % (self.seq[i], i)
+            # write letter if enough space
+            if width >= self.fsize:
+                text = QGraphicsSimpleTextItem(letter, parent=rectItem)
+                text.setFont(font)
+                text.setBrush(self.fg_col[letter])
+                # Center text according to rectItem size
+                tw = text.boundingRect().width()
+                th = text.boundingRect().height()
+                text.setPos((width - tw)/2, (self.row_h - th)/2)
+            seq_width += width
+        self.width = seq_width
+
+    class InteractiveLetterItem(QGraphicsRectItem):
+        """This is a class"""
+        def __init__(self, *arg, **karg):
+            QGraphicsRectItem.__init__(self, *arg, **karg)
+            self.codon = None
+            self.label = None
+            self.setAcceptsHoverEvents(True)
+
+        def hoverEnterEvent (self, e):
+            """ when mouse is over"""
+            if not self.label:
+                self.label = QGraphicsRectItem(parent=self)
+                #self.label.setY(-18)
+                self.label.setX(11)
+                self.label.setBrush(QBrush(QColor("white")))
+                self.label.text = QGraphicsSimpleTextItem(parent=self.label)
+
+            self.setZValue(1)
+            self.label.text.setText(self.codon)
+            self.label.setRect(self.label.text.boundingRect())
+            self.label.setVisible(True)
+
+        def hoverLeaveEvent(self, e):
+            """when mouse leaves area"""
+            if self.label:
+                self.label.setVisible(False)
+                self.setZValue(0)
+
+
+
+def test_layout_evol(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      codon=node.nt_sequence, fsize=10,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+def test_layout_phylo_aa(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      fsize=10,
+                                      col_w=11, interactive=False)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+def test_layout_phylo_aa_motif(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    special_col = [[10,100],[150,1000],[1000,2000],[3000,4990]]
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "aa",
+                                      fsize=10,special_col=special_col,
+                                      alt_col_w=3,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+def test_layout_phylo_nt(node):
+    '''
+    layout for CodemlTree
+    '''
+    if hasattr(node, "collapsed"):
+        if node.collapsed == 1:
+            node.img_style["draw_descendants"]= False
+    if node.is_leaf():
+        if hasattr (node, "sequence"):
+            seqface =  MySequenceFace(node.sequence, "nt",
+                                      fsize=10,
+                                      col_w=11, interactive=True)
+            faces.add_face_to_node(seqface, node, 1, aligned=True)
+
+
+if __name__ == "__main__":
+    tree = PhyloTree('(Orangutan,Human,Chimp);')
+    tree.link_to_alignment("""
+                           >Chimp
+                           HARWLNEKLRCELRTLKKLGLDGYKAVSQYVKGRA
+                           >Orangutan
+                           DARWINEKLRCVSRTLKKLGLDGYKGVSQYVKGRP
+                           >Human
+                           DARWHNVKLRCELRTLKKLGLVGFKAVSQFVIRRA
+                           """)
+    nt_sequences = {"Human"    : "GACGCACGGTGGCACAACGTAAAATTAAGATGTGAATTGAGAACTCTGAAAAAATTGGGACTGGTCGGCTTCAAGGCAGTAAGTCAATTCGTAATACGTCGTGCG",
+                    "Chimp"    : "CACGCCCGATGGCTCAACGAAAAGTTAAGATGCGAATTGAGAACTCTGAAAAAATTGGGACTGGACGGCTACAAGGCAGTAAGTCAGTACGTTAAAGGTCGTGCG",
+                    "Orangutan": "GATGCACGCTGGATCAACGAAAAGTTAAGATGCGTATCGAGAACTCTGAAAAAATTGGGACTGGACGGCTACAAGGGAGTAAGTCAATACGTTAAAGGTCGTCCG"
+                }
+    for l in nt_sequences:
+        (tree & l).nt_sequence = nt_sequences[l]
+    tree.dist = 0
+    ts = TreeStyle()
+    ts.title.add_face(TextFace("Example for nucleotides...", fsize=15), column=0)
+    ts.layout_fn = test_layout_evol
+    tree.show(tree_style=ts)
+
+    # Show very large algs
+    tree = PhyloTree('(Orangutan,Human,Chimp);')
+    tree.link_to_alignment(">Human\n"       + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in xrange (5000)]) + \
+                           "\n>Chimp\n"     + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in xrange (5000)]) + \
+                           "\n>Orangutan\n" + ''.join([_aabgcolors.keys()[int(random() * len (_aabgcolors))] for _ in xrange (5000)]))
+    tree.dist = 0
+    ts = TreeStyle()
+    ts.title.add_face(TextFace("better not set interactivity if alg is very large", fsize=15), column=0)
+    ts.layout_fn = test_layout_phylo_aa
+
+    tree.show(tree_style=ts)
diff --git a/examples/treeview/node_background.png b/examples/treeview/node_background.png
new file mode 100644
index 0000000..8454f21
Binary files /dev/null and b/examples/treeview/node_background.png differ
diff --git a/examples/treeview/node_background.py b/examples/treeview/node_background.py
new file mode 100755
index 0000000..f9a2a3a
--- /dev/null
+++ b/examples/treeview/node_background.py
@@ -0,0 +1,44 @@
+from ete3 import Tree, faces, AttrFace, TreeStyle, NodeStyle
+
+def layout(node):
+    if node.is_leaf():
+        N = AttrFace("name", fsize=30)
+        faces.add_face_to_node(N, node, 0, position="aligned")
+
+def get_example_tree():
+
+    # Set dashed blue lines in all leaves
+    nst1 = NodeStyle()
+    nst1["bgcolor"] = "LightSteelBlue"
+    nst2 = NodeStyle()
+    nst2["bgcolor"] = "Moccasin"
+    nst3 = NodeStyle()
+    nst3["bgcolor"] = "DarkSeaGreen"
+    nst4 = NodeStyle()
+    nst4["bgcolor"] = "Khaki"
+
+
+    t = Tree("((((a1,a2),a3), ((b1,b2),(b3,b4))), ((c1,c2),c3));")
+    for n in t.traverse():
+        n.dist = 0
+
+    n1 = t.get_common_ancestor("a1", "a2", "a3")
+    n1.set_style(nst1)
+    n2 = t.get_common_ancestor("b1", "b2", "b3", "b4")
+    n2.set_style(nst2)
+    n3 = t.get_common_ancestor("c1", "c2", "c3")
+    n3.set_style(nst3)
+    n4 = t.get_common_ancestor("b3", "b4")
+    n4.set_style(nst4)
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.show_leaf_name = False
+
+    ts.mode = "c"
+    ts.root_opening_factor = 1
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    #t.render("node_background.png", w=400, tree_style=ts)
+    t.show(tree_style=ts)
diff --git a/examples/treeview/node_style.png b/examples/treeview/node_style.png
new file mode 100644
index 0000000..40ae31a
Binary files /dev/null and b/examples/treeview/node_style.png differ
diff --git a/examples/treeview/node_style.py b/examples/treeview/node_style.py
new file mode 100755
index 0000000..c00e0e1
--- /dev/null
+++ b/examples/treeview/node_style.py
@@ -0,0 +1,66 @@
+from ete3 import Tree, faces, AttrFace, TreeStyle, NodeStyle
+
+def layout(node):
+    # If node is a leaf, add the nodes name and a its scientific name
+    if node.is_leaf():
+        faces.add_face_to_node(AttrFace("name"), node, column=0)
+
+def get_example_tree():
+
+    t = Tree()
+    t.populate(8)
+
+    # Node style handling is no longer limited to layout functions. You
+    # can now create fixed node styles and use them many times, save them
+    # or even add them to nodes before drawing (this allows to save and
+    # reproduce an tree image design)
+
+    # Set bold red branch to the root node
+    style = NodeStyle()
+    style["fgcolor"] = "#0f0f0f"
+    style["size"] = 0
+    style["vt_line_color"] = "#ff0000"
+    style["hz_line_color"] = "#ff0000"
+    style["vt_line_width"] = 8
+    style["hz_line_width"] = 8
+    style["vt_line_type"] = 0 # 0 solid, 1 dashed, 2 dotted
+    style["hz_line_type"] = 0
+    t.set_style(style)
+
+    #Set dotted red lines to the first two branches
+    style1 = NodeStyle()
+    style1["fgcolor"] = "#0f0f0f"
+    style1["size"] = 0
+    style1["vt_line_color"] = "#ff0000"
+    style1["hz_line_color"] = "#ff0000"
+    style1["vt_line_width"] = 2
+    style1["hz_line_width"] = 2
+    style1["vt_line_type"] = 2 # 0 solid, 1 dashed, 2 dotted
+    style1["hz_line_type"] = 2
+    t.children[0].img_style = style1
+    t.children[1].img_style = style1
+
+    # Set dashed blue lines in all leaves
+    style2 = NodeStyle()
+    style2["fgcolor"] = "#000000"
+    style2["shape"] = "circle"
+    style2["vt_line_color"] = "#0000aa"
+    style2["hz_line_color"] = "#0000aa"
+    style2["vt_line_width"] = 2
+    style2["hz_line_width"] = 2
+    style2["vt_line_type"] = 1 # 0 solid, 1 dashed, 2 dotted
+    style2["hz_line_type"] = 1
+    for l in t.iter_leaves():
+        l.img_style = style2
+
+    ts = TreeStyle()
+    ts.layout_fn = layout
+    ts.show_leaf_name = False
+
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    t.show(tree_style=ts)
+    #t.render("node_style.png", w=400, tree_style=ts)
+
diff --git a/examples/treeview/random_draw.py b/examples/treeview/random_draw.py
new file mode 100755
index 0000000..8e57408
--- /dev/null
+++ b/examples/treeview/random_draw.py
@@ -0,0 +1,123 @@
+import os
+
+from ete3 import Tree, faces
+from ete3.treeview.main import TreeStyle, NodeStyle, random_color
+import colorsys
+import random
+
+# ::::::::::::::
+# Layout actions
+# ::::::::::::::
+
+def sphere_map(node):
+    # Creates a random color sphere face that will be floating over nodes
+    bubble = faces.CircleFace(random.randint(5,40), random_color(), "sphere")
+    bubble.opacity = 0.7
+    faces.add_face_to_node(bubble, node, 0, position="float")
+
+def random_background(node):
+    # Set a random background color for each node partition
+    node.img_style["bgcolor"] = random_color()
+
+def leaf_name(node):
+    if node.is_leaf():
+        nameF = faces.AttrFace("name")
+        nameF.border.width = 1
+        faces.add_face_to_node(nameF, node, 0, position="branch-right")
+
+
+def aligned_faces(node):
+    if node.is_leaf():
+        for i in xrange(3):
+            F = faces.TextFace("ABCDEFGHIJK"[0:random.randint(1,11)])
+            F.border.width = 1
+            F.border.line_style = 1
+            F.inner_background.color = "lightgreen"
+            F.border.width = 1
+            F.inner_border.width = 1
+            F.background.color = "darkgreen"
+            F.border.width = 2
+            F.vt_align = random.randint(0,4)
+            F.hz_align = random.randint(0,4)
+            F.margin_bottom = random.randint(1, 20)
+            F.margin_right  = random.randint(1, 20)
+            F.margin_left = random.randint(1, 20)
+            F.margin_top = random.randint(1, 20)
+
+            faces.add_face_to_node(F, node, i, position="aligned")
+            if random.randint(0, 1):
+                faces.add_face_to_node(F, node, i, position="aligned")
+
+
+def master_ly(node):
+    random_background(node)
+    sphere_map(node)
+    leaf_name(node)
+    aligned_faces(node)
+
+def tiny_ly(node):
+    node.img_style["size"] = 2
+    node.img_style["shape"] = "square"
+
+size = 15
+t = Tree()
+t.populate(size, reuse_names=False)
+
+I = TreeStyle()
+I.mode = "r"
+
+I.orientation = 0
+I.layout_fn = master_ly
+I.margin_left = 100
+I.margin_right = 50
+I.margin_top = 100
+I.arc_start = 45
+I.arc_span = 360
+I.margin_bottom = 50
+I.show_border = True
+I.legend_position = 4
+I.title.add_face(faces.TextFace("HOLA MUNDO", fsize=30), 0)
+I.draw_aligned_faces_as_table = True
+
+def test(node):
+    if node.is_leaf():
+        faces.add_face_to_node(faces.AttrFace("name"), node, 0, position="aligned")
+
+I.aligned_header.add_face( faces.TextFace("H1"), 0 )
+I.aligned_header.add_face( faces.TextFace("H1"), 1 )
+I.aligned_header.add_face( faces.TextFace("H1"), 2 )
+I.aligned_header.add_face( faces.TextFace("H1111111111111"), 3 )
+I.aligned_header.add_face( faces.TextFace("H1"), 4 )
+
+I.aligned_foot.add_face( faces.TextFace("FO1"), 0 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 1 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 2 )
+I.aligned_foot.add_face( faces.TextFace("F1"), 3 )
+I.aligned_foot.add_face( faces.TextFace("FO1"), 4 )
+
+I.legend.add_face(faces.CircleFace(30, random_color(), "sphere"), 0)
+I.legend.add_face(faces.CircleFace(30, random_color(), "sphere"), 0)
+I.legend.add_face(faces.TextFace("HOLA"), 1)
+I.legend.add_face(faces.TextFace("HOLA"), 1)
+
+# Creates a random tree with 10 leaves
+t2 = Tree()
+t2.populate(10)
+
+# Creates a fixed NodeStyle object containing a TreeFace (A tree image
+# as a face within another tree image)
+# t.add_face(faces.TreeFace(t2, I), "branch-right", 0)
+
+# Attach the fixed style to the first child of the root node
+# t.children[0].img_style = style
+I.rotation = 90
+I.mode = "c"
+t.show(tree_style=I)
+#t.render("/home/jhuerta/test.svg", img_properties=I)
+#t.render("/home/jhuerta/test.pdf", img_properties=I)
+#t.render("/home/jhuerta/test.png", img_properties=I)
+#t.render("/home/jhuerta/test.ps", img_properties=I)
+#os.system("inkscape /home/jhuerta/test.svg")
+#I.mode = "c"
+#t.show(img_properties=I)
+
diff --git a/examples/treeview/rotated_faces.png b/examples/treeview/rotated_faces.png
new file mode 100644
index 0000000..75ba647
Binary files /dev/null and b/examples/treeview/rotated_faces.png differ
diff --git a/examples/treeview/seq_motif_faces.png b/examples/treeview/seq_motif_faces.png
new file mode 100644
index 0000000..cd8a5b3
Binary files /dev/null and b/examples/treeview/seq_motif_faces.png differ
diff --git a/examples/treeview/seq_motif_faces.py b/examples/treeview/seq_motif_faces.py
new file mode 100755
index 0000000..5de06af
--- /dev/null
+++ b/examples/treeview/seq_motif_faces.py
@@ -0,0 +1,83 @@
+import sys
+from ete3 import Tree, SeqMotifFace, TreeStyle, add_face_to_node
+
+seq = ("-----------------------------------------------AQAK---IKGSKKAIKVFSSA---"
+      "APERLQEYGSIFTDA---GLQRRPRHRIQSK-------ALQEKLKDFPVCVSTKPEPEDDAEEGLGGLPSN"
+      "ISSVSSLLLFNTTENLYKKYVFLDPLAG----THVMLGAETEEKLFDAPLSISKREQLEQQVPENYFYVPD"
+      "LGQVPEIDVPSYLPDLPGIANDLMYIADLGPGIAPSAPGTIPELPTFHTEVAEPLKVGELGSGMGAGPGTP"
+      "AHTPSSLDTPHFVFQTYKMGAPPLPPSTAAPVGQGARQDDSSSSASPSVQGAPREVVDPSGGWATLLESIR"
+      "QAGGIGKAKLRSMKERKLEKQQQKEQEQVRATSQGGHL--MSDLFNKLVMRRKGISGKGPGAGDGPGGAFA"
+      "RVSDSIPPLPPPQQPQAEDED----")
+
+mixed_motifs = [
+        # seq.start, seq.end, shape, width, height, fgcolor, bgcolor
+        [10, 100, "[]", None, 10, "black", "rgradient:blue", "arial|8|white|long text clipped long text clipped"],
+        [101, 150, "o", None, 10, "blue", "pink", None],
+        [155, 180, "()", None, 10, "blue", "rgradient:purple", None],
+        [160, 190, "^", None, 14, "black", "yellow", None],
+        [191, 200, "<>", None, 12, "black", "rgradient:orange", None],
+        [201, 250, "o", None, 12, "black", "brown", None],
+        [351, 370, "v", None, 15, "black", "rgradient:gold", None],
+        [370, 420, "compactseq", 2, 10, None, None, None],
+]
+
+simple_motifs = [
+        # seq.start, seq.end, shape, width, height, fgcolor, bgcolor
+        [10, 60, "[]", None, 10, "black", "rgradient:blue", "arial|8|white|long text clipped long text clipped"],
+        [120, 150, "o", None, 10, "blue", "pink", None],
+        [200, 300, "()", None, 10, "blue", "red", "arial|8|white|hello"],
+]
+
+box_motifs = [
+        # seq.start, seq.end, shape, width, height, fgcolor, bgcolor
+        [0,  5, "[]", None, 10, "black", "rgradient:blue", "arial|8|white|10"],
+        [10, 25, "[]", None, 10, "black", "rgradient:ref", "arial|8|white|10"],
+        [30, 45, "[]", None, 10, "black", "rgradient:orange", "arial|8|white|20"],
+        [50, 65, "[]", None, 10, "black", "rgradient:pink", "arial|8|white|20"],
+        [70, 85, "[]", None, 10, "black", "rgradient:green", "arial|8|white|20"],
+        [90, 105, "[]", None, 10, "black", "rgradient:brown", "arial|8|white|20"],
+        [110, 125, "[]", None, 10, "black", "rgradient:yellow", "arial|8|white|20"],
+]
+
+def get_example_tree():
+        # Create a random tree and add to each leaf a random set of motifs
+        # from the original set
+        t = Tree("( (A, B, C, D, E, F, G), H, I);")
+
+        seqFace = SeqMotifFace(seq, gapcolor="red")
+        (t & "A").add_face(seqFace, 0, "aligned")
+
+        seqFace = SeqMotifFace(seq, seq_format="line", gap_format="blank")
+        (t & "B").add_face(seqFace, 0, "aligned")
+
+        seqFace = SeqMotifFace(seq, seq_format="line")
+        (t & "C").add_face(seqFace, 0, "aligned")
+        
+        seqFace = SeqMotifFace(seq, seq_format="()")
+        (t & "D").add_face(seqFace, 0, "aligned")
+
+        seqFace = SeqMotifFace(seq, motifs=simple_motifs, seq_format="-")
+        (t & "E").add_face(seqFace, 0, "aligned")
+
+        seqFace = SeqMotifFace(seq=None, motifs=simple_motifs, gap_format="blank")
+        (t & "F").add_face(seqFace, 0, "aligned")
+
+        seqFace = SeqMotifFace(seq, motifs=mixed_motifs, seq_format="-")
+        (t & "G").add_face(seqFace, 0, "aligned")
+
+        
+        seqFace = SeqMotifFace(seq=None, motifs=box_motifs, gap_format="line")
+        (t & "H").add_face(seqFace, 0, "aligned")
+
+
+        seqFace = SeqMotifFace(seq[30:60], seq_format="seq")
+        (t & "I").add_face(seqFace, 0, "aligned")
+        
+        return t
+        
+if __name__ == '__main__':
+    t = get_example_tree()
+    ts = TreeStyle()
+    ts.tree_width = 50
+    #t.show(tree_style=ts)
+    t.render("seq_motif_faces.png", tree_style=ts)
diff --git a/examples/treeview/seqmotif.png b/examples/treeview/seqmotif.png
new file mode 100644
index 0000000..2d20d96
Binary files /dev/null and b/examples/treeview/seqmotif.png differ
diff --git a/examples/treeview/tree_faces.png b/examples/treeview/tree_faces.png
new file mode 100644
index 0000000..31a6289
Binary files /dev/null and b/examples/treeview/tree_faces.png differ
diff --git a/examples/treeview/tree_faces.py b/examples/treeview/tree_faces.py
new file mode 100755
index 0000000..44db307
--- /dev/null
+++ b/examples/treeview/tree_faces.py
@@ -0,0 +1,53 @@
+import random
+from ete3 import Tree, TreeStyle, NodeStyle, faces, AttrFace, TreeFace
+
+# Tree Style used to render small trees used as leaf faces
+small_ts = TreeStyle()
+small_ts.show_leaf_name = True
+small_ts.scale = 10
+
+def layout(node):
+    if node.is_leaf():
+        # Add node name to laef nodes
+        N = AttrFace("name", fsize=14, fgcolor="black")
+        faces.add_face_to_node(N, node, 0)
+
+        t = Tree()
+        t.populate(10)
+
+        T = TreeFace(t, small_ts)
+        # Let's make the sphere transparent
+        T.opacity = 0.8
+        # And place as a float face over the tree
+        faces.add_face_to_node(T, node, 1, position="aligned")
+
+def get_example_tree():
+    # Random tree
+    t = Tree()
+    t.populate(20, random_branches=True)
+
+    # Some random features in all nodes
+    for n in t.traverse():
+        n.add_features(weight=random.randint(0, 50))
+
+    # Create an empty TreeStyle
+    ts = TreeStyle()
+
+    # Set our custom layout function
+    ts.layout_fn = layout
+
+    # Draw a tree
+    ts.mode = "c"
+
+    # We will add node names manually
+    ts.show_leaf_name = False
+    # Show branch data
+    ts.show_branch_length = True
+    ts.show_branch_support = True
+    return t, ts
+
+if __name__ == "__main__":
+    t, ts = get_example_tree()
+    #t.render("tree_faces.png", w=600, dpi=300, tree_style=ts)
+    t.show(tree_style=ts)
+
diff --git a/ez_setup.py b/ez_setup.py
new file mode 100755
index 0000000..5fb0efb
--- /dev/null
+++ b/ez_setup.py
@@ -0,0 +1,286 @@
+#!python
+"""Bootstrap setuptools installation
+
+If you want to use setuptools in your package's setup.py, just include this
+file in the same directory with it, and add this to the top of your setup.py::
+
+    from ez_setup import use_setuptools
+    use_setuptools()
+
+If you want to require a specific version of setuptools, set a download
+mirror, or use an alternate download directory, you can do so by supplying
+the appropriate options to ``use_setuptools()``.
+
+This file can also be run as a script to install or upgrade setuptools.
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+DEFAULT_VERSION = "0.6c11"
+DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
+
+md5_data = {
+    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
+    'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
+    'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
+    'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
+    'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
+    'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
+    'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
+    'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
+    'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
+    'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
+    'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090',
+    'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4',
+    'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7',
+    'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5',
+    'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de',
+    'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b',
+    'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2',
+    'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086',
+    'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
+    'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
+    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
+    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
+    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
+    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
+    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
+    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
+    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
+    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
+    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
+    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
+    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
+    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
+    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
+    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
+    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
+    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
+    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
+    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
+    'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
+    'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
+    'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
+    'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
+}
+
+import sys, os
+try: from hashlib import md5
+except ImportError: from md5 import md5
+
+def _validate_md5(egg_name, data):
+    if egg_name in md5_data:
+        digest = md5(data).hexdigest()
+        if digest != md5_data[egg_name]:
+            print((
+                "md5 validation of %s failed!  (Possible download problem?)"
+                % egg_name
+            ), file=sys.stderr)
+            sys.exit(2)
+    return data
+
+def use_setuptools(
+    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
+    download_delay=15
+):
+    """Automatically find/download setuptools and make it available on sys.path
+
+    `version` should be a valid setuptools version number that is available
+    as an egg for download under the `download_base` URL (which should end with
+    a '/').  `to_dir` is the directory where setuptools will be downloaded, if
+    it is not already available.  If `download_delay` is specified, it should
+    be the number of seconds that will be paused before initiating a download,
+    should one be required.  If an older version of setuptools is installed,
+    this routine will print a message to ``sys.stderr`` and raise SystemExit in
+    an attempt to abort the calling script.
+    """
+    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
+    def do_download():
+        egg = download_setuptools(version, download_base, to_dir, download_delay)
+        sys.path.insert(0, egg)
+        import setuptools; setuptools.bootstrap_install_from = egg
+    try:
+        import pkg_resources
+    except ImportError:
+        return do_download()
+    try:
+        pkg_resources.require("setuptools>="+version); return
+    except pkg_resources.VersionConflict as e:
+        if was_imported:
+            print((
+            "The required version of setuptools (>=%s) is not available, and\n"
+            "can't be installed while this script is running. Please install\n"
+            " a more recent version first, using 'easy_install -U setuptools'."
+            "\n\n(Currently using %r)"
+            ) % (version, e.args[0]), file=sys.stderr)
+            sys.exit(2)
+        else:
+            del pkg_resources, sys.modules['pkg_resources']    # reload ok
+            return do_download()
+    except pkg_resources.DistributionNotFound:
+        return do_download()
+
+def download_setuptools(
+    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
+    delay = 15
+):
+    """Download setuptools from a specified location and return its filename
+
+    `version` should be a valid setuptools version number that is available
+    as an egg for download under the `download_base` URL (which should end
+    with a '/'). `to_dir` is the directory where the egg will be downloaded.
+    `delay` is the number of seconds to pause before an actual download attempt.
+    """
+    import urllib2, shutil
+    egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
+    url = download_base + egg_name
+    saveto = os.path.join(to_dir, egg_name)
+    src = dst = None
+    if not os.path.exists(saveto):  # Avoid repeated downloads
+        try:
+            from distutils import log
+            if delay:
+                log.warn("""
+---------------------------------------------------------------------------
+This script requires setuptools version %s to run (even to display
+help).  I will attempt to download it for you (from
+%s), but
+you may need to enable firewall access for this script first.
+I will start the download in %d seconds.
+
+(Note: if this machine does not have network access, please obtain the file
+
+   %s
+
+and place it in this directory before rerunning this script.)
+---------------------------------------------------------------------------""",
+                    version, download_base, delay, url
+                ); from time import sleep; sleep(delay)
+            log.warn("Downloading %s", url)
+            src = urllib2.urlopen(url)
+            # Read/write all in one block, so we don't create a corrupt file
+            # if the download is interrupted.
+            data = _validate_md5(egg_name, src.read())
+            dst = open(saveto,"wb"); dst.write(data)
+        finally:
+            if src: src.close()
+            if dst: dst.close()
+    return os.path.realpath(saveto)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def main(argv, version=DEFAULT_VERSION):
+    """Install or upgrade setuptools and EasyInstall"""
+    try:
+        import setuptools
+    except ImportError:
+        egg = None
+        try:
+            egg = download_setuptools(version, delay=0)
+            sys.path.insert(0,egg)
+            from setuptools.command.easy_install import main
+            return main(list(argv)+[egg])   # we're done here
+        finally:
+            if egg and os.path.exists(egg):
+                os.unlink(egg)
+    else:
+        if setuptools.__version__ == '0.0.1':
+            print((
+            "You have an obsolete version of setuptools installed.  Please\n"
+            "remove it from your system entirely before rerunning this script."
+            ), file=sys.stderr)
+            sys.exit(2)
+
+    req = "setuptools>="+version
+    import pkg_resources
+    try:
+        pkg_resources.require(req)
+    except pkg_resources.VersionConflict:
+        try:
+            from setuptools.command.easy_install import main
+        except ImportError:
+            from easy_install import main
+        main(list(argv)+[download_setuptools(delay=0)])
+        sys.exit(0) # try to force an exit
+    else:
+        if argv:
+            from setuptools.command.easy_install import main
+            main(argv)
+        else:
+            print("Setuptools version",version,"or greater has been installed.")
+            print('(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)')
+
+def update_md5(filenames):
+    """Update our built-in md5 registry"""
+
+    import re
+
+    for name in filenames:
+        base = os.path.basename(name)
+        f = open(name,'rb')
+        md5_data[base] = md5(f.read()).hexdigest()
+        f.close()
+
+    data = ["    %r: %r,\n" % it for it in list(md5_data.items())]
+    data.sort()
+    repl = "".join(data)
+
+    import inspect
+    srcfile = inspect.getsourcefile(sys.modules[__name__])
+    f = open(srcfile, 'rb'); src = f.read(); f.close()
+
+    match = re.search("\nmd5_data = {\n([^}]+)}", src)
+    if not match:
+        print("Internal error!", file=sys.stderr)
+        sys.exit(2)
+
+    src = src[:match.start(1)] + repl + src[match.end(1):]
+    f = open(srcfile,'w')
+    f.write(src)
+    f.close()
+
+
+if __name__=='__main__':
+    if len(sys.argv)>2 and sys.argv[1]=='--md5update':
+        update_md5(sys.argv[2:])
+    else:
+        main(sys.argv[1:])
+
+
+
+
+
+
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..60d34ba
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,191 @@
+# -*- coding: utf-8 -*-
+
+#! /usr/bin/env python
+from __future__ import absolute_import
+from __future__ import print_function
+import sys
+import os
+import ez_setup
+import hashlib
+import time, random
+import re
+try:
+    from urllib2 import quote
+    from urllib2 import urlopen
+    from urllib2 import HTTPError
+except ImportError:
+    from urllib.parse import quote
+    from urllib.request import urlopen
+    from urllib.error import HTTPError
+
+HERE = os.path.abspath(os.path.split(os.path.realpath(__file__))[0])
+
+if "--donottrackinstall" in sys.argv:
+    TRACKINSTALL = None
+    sys.argv.remove("--donottrackinstall")
+else:
+    # Avoids importing self module
+    orig_path = list(sys.path)
+    _wd = os.getcwd()
+    try:
+        sys.path.remove(_wd)
+    except ValueError:
+        pass
+    try:
+        sys.path.remove("")
+    except ValueError:
+        pass
+
+    # Is this and upgrade or a new install?
+    try:
+        import ete3
+    except ImportError:
+        TRACKINSTALL = "ete-new-installation"
+    else:
+        TRACKINSTALL = "ete-upgrade"
+
+    sys.path = orig_path
+
+
+try:
+    from setuptools import setup, find_packages
+except ImportError:
+    ez_setup.use_setuptools()
+    from setuptools import setup, find_packages
+
+
+PYTHON_DEPENDENCIES = [
+    ["numpy", "Numpy is required for the ArrayTable and ClusterTree classes.", 0],
+    ["PyQt4", "PyQt4 is required for tree visualization and image rendering.", 0],
+    ["lxml", "lxml is required from Nexml and Phyloxml support.", 0]
+]
+
+CLASSIFIERS= [
+    "Development Status :: 6 - Mature",
+    "Environment :: Console",
+    "Environment :: X11 Applications :: Qt",
+    "Intended Audience :: Developers",
+    "Intended Audience :: Other Audience",
+    "Intended Audience :: Science/Research",
+    "License :: OSI Approved :: GNU General Public License (GPL)",
+    "Natural Language :: English",
+    "Operating System :: MacOS",
+    "Operating System :: Microsoft :: Windows",
+    "Operating System :: POSIX :: Linux",
+    "Programming Language :: Python",
+    "Topic :: Scientific/Engineering :: Bio-Informatics",
+    "Topic :: Scientific/Engineering :: Visualization",
+    "Topic :: Software Development :: Libraries :: Python Modules",
+    ]
+
+def can_import(mname):
+    'Test if a module can be imported '
+    if mname == "PyQt4":
+        try:
+            __import__("PyQt4.QtCore")
+            __import__("PyQt4.QtGui")
+        except ImportError:
+            return False
+        else:
+            return True
+    else:
+        try:
+            __import__(mname)
+        except ImportError:
+            return False
+        else:
+            return True
+
+try:
+    ETE_VERSION = open(os.path.join(HERE, "VERSION")).readline().strip()
+except IOError:
+    ETE_VERSION = 'unknown'
+
+print("\nInstalling ETE (%s) \n" %ETE_VERSION)
+print()
+
+
+    
+MOD_NAME = "ete3"
+
+LONG_DESCRIPTION="""
+The Environment for Tree Exploration (ETE) is a Python programming
+toolkit that assists in the recontruction, manipulation, analysis and
+visualization of phylogenetic trees (although clustering trees or any
+other tree-like data structure are also supported).
+
+ETE is currently developed as a tool for researchers working in
+phylogenetics and genomics. If you use ETE for a published work,
+please cite:
+
+::
+
+   Jaime Huerta-Cepas, François Serra and Peer Bork. "ETE 3: Reconstruction,
+   analysis and visualization of phylogenomic data."  Mol Biol Evol (2016) doi:
+   10.1093/molbev/msw046
+
+Visit http://etetoolkit.org for more info.
+"""
+
+try:
+    _s = setup(
+        include_package_data = True,
+
+        name = MOD_NAME,
+        version = ETE_VERSION,
+        packages = find_packages(),
+
+        entry_points = {"console_scripts":
+                        ["ete3 = %s.tools.ete:main" %MOD_NAME]},
+        requires = ["six"],
+
+        # Project uses reStructuredText, so ensure that the docutils get
+        # installed or upgraded on the target machine
+        install_requires = [
+            ],
+        package_data = {
+
+        },
+        data_files = [("%s/tools" %MOD_NAME, ["%s/tools/phylobuild.cfg" %MOD_NAME])],
+
+        # metadata for upload to PyPI
+        author = "Jaime Huerta-Cepas",
+        author_email = "jhcepas at gmail.com",
+        maintainer = "Jaime Huerta-Cepas",
+        maintainer_email = "huerta at embl.de",
+        platforms = "OS Independent",
+        license = "GPLv3",
+        description = "A Python Environment for (phylogenetic) Tree Exploration",
+        long_description = LONG_DESCRIPTION,
+        classifiers = CLASSIFIERS,
+        provides = [MOD_NAME],
+        keywords = "tree, tree reconstruction, tree visualization, tree comparison, phylogeny, phylogenetics, phylogenomics",
+        url = "http://etetoolkit.org",
+        download_url = "http://etetoolkit.org/static/releases/ete3/",
+
+    )
+
+except:
+    print("\033[91m - Errors found! - \033[0m")
+    raise
+
+else:
+
+    print("\033[92m - Done! - \033[0m")
+    missing = False
+    for mname, msg, ex in PYTHON_DEPENDENCIES:
+        if not can_import(mname):
+            print(" Warning:\033[93m Optional library [%s] could not be found \033[0m" %mname)
+            print("  ",msg)
+            missing=True
+
+    notwanted = set(["-h", "--help", "-n", "--dry-run"])
+    seen = set(_s.script_args)
+    wanted = set(["install", "bdist", "bdist_egg"])
+    if TRACKINSTALL is not None and (wanted & seen) and not (notwanted & seen):
+        try:
+            welcome = quote("New alien in earth! (%s %s)" %(TRACKINSTALL, time.ctime()))
+            urlopen("http://etetoolkit.org/static/et_phone_home.php?ID=%s&VERSION=%s&MSG=%s"
+                            %(TRACKINSTALL, ETE_VERSION, welcome))
+        except Exception:
+            pass

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-ete3.git



More information about the debian-med-commit mailing list